Class Project: Teleoperation Control for Unitree Go1 Robot Dog

Class Project: Teleoperation Control for Unitree Go1 Robot Dog

การควบคุมการเคลื่อนที่ของ Unitree Go1 Robot Dog ระยะไกลโดยการตรวจจับท่าทางของมือ หรือการสั่งงานด้วยเสียง โดยใช้ unitree_legged_sdk ในการสื่อสารระหว่าง PC กับบอร์ด Controller ผ่านคำสั่งที่เขียนลงในไฟล์ command.txt

Objective

  • เพื่อศึกษาการทำงานและการควบคุม ของ Unitree Go1 Robot Dog
  • เพื่อศึกษาวิธีการตรวจจับท่าทางของมือ
  • เพื่อศึกษาวิธีการสั่งงานด้วยเสียง

System Performance

  • Operating Time 1-2 hr.
  • Operating Systems: Motion control – Ubuntu
  • Network: WIFI
  • Communication Protocol: unitree_legged_sdk

System Scenario

System Overview

การทำระบบ Hand Tracking
แบบ Real-time ด้วย MediaPipe Library ของ Google โดยการใช้งาน MediaPipe Hands สามารถนำวิดีโอหรือภาพนิ่งที่ต้องการตรวจจับมือเข้ามา แล้วใช้ API ที่มีอยู่ใน MediaPipe Hands เพื่อดึงข้อมูลต่างๆ เช่น ตำแหน่งของมือ และรูปแบบการเคลื่อนไหวของมือ โดยแต่ละ Landmark จะเป็นจุดที่ถูกกำหนด ทั้งหมด 21 จุด เพื่อช่วยให้ระบบสามารถระบุตำแหน่งและรูปแบบของมือได้อย่างแม่นยำ

โดยท่าทางที่ใช้ในการควบคุม Unitree Go1 Robot Dog มีดังนี้

  • หยุด/ยืน
  • นั่ง
  • เดินหน้า
  • เลี้ยวซ้าย
  • เลี้ยวขวา

การทำงานของโค้ด: การตรวจจับมือของท่าทางต่างๆ โดยใช้ Landmark แต่ละจุดเป็นตัวเปรียบ เพื่อใช้ระบุท่าทาง

การทำระบบ Speech Recognition
Speech Recognition เป็นเทคโนโลยีที่ทำให้คอมพิวเตอร์รู้และจำเสียงมนุษย์ เพื่อแปลงเสียงมนุษย์เป็นคำสั่งให้คอมพิวเตอร์ โดยเราจะทำ Speech Recognition ด้วย Google Speech Recognition API (รองรับภาษาไทย)

การทำงานของโค้ด: ใช้ while loop ในการรอรับเสียงจากไมค์ และเมื่อเรากด Spacebar + Enter โปรแกรมจะเริ่มต้นการรับเสียง นำไปแปลงเป็นข้อความด้วย speech_recognition library แล้วตรวจสอบว่ามีคำสั่งไหนตรงกับคำสั่งที่กำหนดไว้หรือไม่ ถ้ามีจะเขียนคำสั่งนั้นลงในไฟล์ command.txt โดยกำหนดค่าเพื่อให้หุ่นยนต์เคลื่อนที่ตามคำสั่งนั้น แต่ถ้าไม่มีคำสั่งที่ตรงกับที่กำหนด โปรแกรมจะไม่เขียนอะไรลงในไฟล์ command.txt โดยคำสั่งที่ใช้ในการควบคุม Unitree Go1 Robot Dog มีดังนี้

  • หยุด/ยืน
  • นั่ง
  • เดินหน้า
  • เลี้ยวซ้าย
  • เลี้ยวขวา

การทำงานของระบบ
การทำงานจะแบ่งออกเป็น 2 โหมด ได้แก่ 1.) การตรวจจับท่าทางของมือ 2.) การสั่งงานด้วยเสียง

การทดสอบ
การทดสอบจากผู้ใช้งานเป็นแบบ In-person usability testing จะมีการสาธิตวิธีการใช้งานก่อนเบื้องต้น และจะมีการทำภารกิจ
โดยภารกิจที่ต้องทำ คือ การเคลื่อนที่จากจุดเริ่มต้นไปยังเส้นชัย

ความคิดเห็นเพิ่มเติม

  • ควรพัฒนาระบบสั่งงานด้วยเสียง User Interface
  • การสั่งงานด้วยเสียงควรเพิ่มภาษาอังกฤษ
  • การเข้าถึง UnitreecameraSDK

ผู้จัดทำ
น.ส.สุภาวดี จันทร์แสงดี รหัสนักศึกษา 62340500056

GitHub
https://github.com/JMild/unitree_go1

References
https://github.com/unitreerobotics/unitree_legged_sdk
https://google.github.io/mediapipe/solutions/hands