Class Project: Master-Slave Control with force-feedback with Falcon

Class Project: Master-Slave Control with force-feedback with Falcon

Master control with force-feedback with Falconจะเป็น project ที่จะทำการควบคุม object โดยการใช้ falcon haptics device ซึ่งเมื่อทำการควบคุม object นั้นๆ แล้ว หาก object เคลื่อนที่เข้าใกล้สิ่งกีดขวาง จะมีการส่งแรงมาที่ user โดย falcon haptics device จะฝืดลงเมื่อบังคับทิศทางการเคลื่อนที่ของ object ให้เข้าใกล้สิ่งกีดขวางนั้นๆ ซึ่งการควบคุมนี้จะทำการควบคุม object ที่จะถูก simulate ขึ้นมาใน computer

โดย project นี้ถูกสร้างขึ้นมาเพื่อเป็นการป้องกันเมื่อ User ซึ่งกำลังควบคุม mobile robot บังคับหุ่นยนต์จนจะชนเข้ากับสิ่งกีดขวาง โดยการมี force-feedback เข้ามาที่ตัว controller จะทำให้ผู้ควบคุมสามารถรับรู้ได้ว่าหุ่นยนต์เข้าใกล้สิ่งกีดขวางแล้วโดยไม่จำเป็นต้องมองเห็น ซึ่งจะช่วยลดอุบัติเหตุได้หากมีกรณีที่ตัวของกล้องที่ติดกับหุ่นยนต์ซึ่งกำลังเคลื่อนที่ส่งภาพมาให้ผู้ควบคุมช้าเนื่องจาก delay

System architecture

System Scenario

System Data Flow

Source Code of The Project

สำหรับ source code ของ project นี้ สามารถดูได้ที่ https://github.com/Yumechan33/Falcon_Control_Robot_ROS2

โดยสำหรับการ interface falcon ที่เป็นส่วนสำคัญจะอยู่ใน packages ชื่อ falcon_control โดยส่วนสำคัญสำหรับการทำงานของ code ได้แก่ส่วนการเชื่อมต่อกับ Falcon Haptic Device , ส่วนการอ่านค่า position ของ Falcon’s Knob และ ส่วนการส่งการคำนวณแรงไปยัง Falcon ซึ่ง msg สำหรับการรับ/ส่ง position และ force จะอยู่ใน falcon_interfaces

และสำหรับการควบคุม mobile robot ส่วนของ code ที่สำคัญจะมีชื่อว่า lidar_detect.py ซึ่งอยู่ภายใน scripts โดยจะเป็นการนำค่า position ที่ได้จาก falcon มาทำการควบคุมหุ่นยนต์ และมีการตรวจสอบสิ่งกีดขวางเพื่อทำการส่ง force กลับไปยัง falcon

Example Video of falcon_control

Example Video When using lidar_detect.py

User test

ได้มีการทำการทดสอบการใช้งานโดยให้ผู้ทดลอง ทดลองควบคุมหุ่นยนต์โดยใช้ falcon ควบคุม mobile robot ซึ่งได้มีการจำลองบน Gazebo โดยจะมีการสอนการควบคุมในเบื้องต้น แล้วจึงทดลองให้ผู้ทดลองควบคุมหุ่นยนต์เอง และทดลองให้ผู้ทดลองควบคุมหุ่นยนต์ไปยังสิ่งกีดขวาง ผลที่ได้มีดังนี้

ผลการทดสอบความพึงพอใจและความคิดเห็น (เกณฑ์คะแนน 0 – 5)

User1User2User3
ความง่ายในการควบคุม443.5
แรงที่ส่งมาจาก falcon สามารถทำให้รับรู้ได้ว่าใกล้จะชนกำแพง4.54.54
คิดว่าระบบนี้เป็นประโยชน์ต่อการนำไปใช้ควบคุมหุ่นยนต์มากเท่าใด344

ความคิดเห็น

– การควบคุมยังไม่ค่อย smooth เนื่องจากว่า falcon ยังมี range ที่ค่อนข้างจำกัดเเละถึงขอบง่ายเกินไป

– สามารถเพิ่มความละเอียดของ forcefeedback ที่กระทำกลับมาได้ ตอนนี้รู้สึกว่าเเรงที่กระทำกลับมาค่อนข้าง Agressive เกินไป

– เพิ่มทิศทางของเเรงให้ครบคลุมการเคลื่อนที่ของหุ่นยนต์ได้มากขึ้น

– คิดว่าระบบนี้จะมีประโยชน์ต่อการทำ teleoperation ได้จริงๆ

– อาจจะเพิ่ม feature เชิงการควบคุมไปเช่น การทำให้ position ของ falcon มีผลต่อความเร็วของหุ่นยนต์ใน simulation

Summary

โดยรวมแล้ว Master-Slave Control with force-feedback with Falcon นั้นมีประโยชน์ต่อการใช้ควบคุมหุ่นยนต์ โดยสามารถควบคุมได้ค่อนข้างง่าย และแรงที่ส่งมาจาก Falcon สามารถทำให้รับรู้ได้ว่าหุ่นยนต์ใกล้จะชนกำแพง แต่แรงที่ส่งมายังค่อนข้างแรงเกินไป และทิศทางที่ Falcon ส่งแรงมายังเป็นทิศทางด้านหน้าทิศเดียว จึงอาจทำให้ไม่ครอบคลุมในหลายกรณี แต่สามารถเตือนในกรณีที่จะเกิดการชนในเบื้องต้นได้

Reference

[1]https://github.com/libnifalcon/libnifalcon

[2]https://github.com/atinfinity/megarover_samples_ros2?fbclid=IwAR28dVJoHS-sTShr0RS1__ysloKoPDatnRJehqV0gMAgHBM55c9E_-3zN84