สวัสดีครับ ผม นาย พีรวิชญ์ ศิริเศรษฐ์ มาจากโครงการ 2B-KMUTT รุ่นที่ 18 กลุ่มวิจัย หุ่นยนต์เเละระบบอัตโนมัติ Blog นี้จะเป็นการบันทึกการปฏิบัติงานประจําวันตลอดโครงงานวิจัยตลอด 2 สัปดาห์
Canva Presentation : https://www.canva.com/design/DAGBXiAaJjE/yV_3ubdwFThpNmDWitx0Zw/edit
วันที่ 25 มีนาคม 2567
วันนี้เป็นวันเเรกที่ผมได้เข้ามาที่ Lab ของ FIBO หรือ สถาบันวิทยาการหุ่นยนต์ภาคสนาม ได้เจอกับ อาจารย์ สยาม เเละพี่ๆนักวิจัยของ HCI LAB พวกเราได้จับกลุ่มวิจัยกันทั้งหมด 7 คน โดยมีพี่ๆช่วยคิดไอเดีย หัวข้อการวิจัย ซึ่งผลออกมาว่ากลุ่มของเราจะทําเป็นงานวิจัยในหัวข้อ การควบคุมหุ่นยนต์จากระยะไกลโดยใช้ Meta Quest II ควบคู่ไปกับ HTC Vive Tracker เพื่อใช้ในโรงพยาบาล
โดยในงานนี้ผมทําหน้าที่เขียนโปรเเกรมควบคุมหุ่นยนต์จาก Meta Quest II เเละ Vive Tracker ผ่านโปรเเกรม Unity โดยใช้ภาษา C# Object-Oriented Programming
วันที่ 26 มีนาคม 2567
ในวันนี้ผมได้ทดลองการเชื่อมต่อ HTC Vive Pro เเละ Tracker เข้ากับโปรเเกรม Unity ผ่าน Plugin SteamVR นอกจากนี้ยังได้ลอง Connect Object ใน Unity ให้ขยับเเละหมุนตาม Position Input ของตัว Tracker SteamVR Plugin : https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://assetstore.unity.com/packages/tools/integration/steamvr-plugin-32647&ved=2ahUKEwj6-fKfqqqFAxXscWwGHS8DBOAQFnoECBUQAQ&usg=AOvVaw2qIdiF2n8YJen4y9XiUKHk
วันที่ 27 มีนาคม 2567
วันนี้มาทําเรื่องการเก็บค่า Vector3 จากตัว Vive Tracker จากนั้นนํามาเเสดงผลผ่าน ConsoleLog เพื่อดูการเปลี่ยนเเปลงของค่าเเละเเกนต่างๆตามการเคลื่อนไหวของร่างกาย
ทางทีม Design เเละ Mechanic ได้สร้างตัว Prototype ของหุ่นยนต์เรา ซึ่งมีหัวใจหลักเป็นบอร์ด Raspberry Pi 4
28 มีนาคม 2567
ฟังชั่น Body Tracking Ver.2
ตั้งเวลานับถอยหลังเพื่อให้ผู้ใช้เตรียมตัว Calibrate
29 มีนาคม 2567
วันนี้ทําการจูนการขยับของร่างกายเพื่อนํามาปรับใช้กับ Vive Tracker เเละสามารถตั้งค่าการเดินตามท่าทางต่างๆได้สําเร็จ ทั้งเดินหน้าถอยหลัง โดยใช้การอ่านค่าจากพิกัดเเกน X ซึ่งก็คือการอ่านจาก Transform.position.x
1 เมษยน 2567
วันนี้ได้ทําการเก็บค่าองศาการหมุนของส่วนหัว จากนั้นทําการเเปลงค่าให้อยู่ในรูปเเบบที่นําไปใช้ส่ง mqtt ได้ โดยใช้ค่ามุม rotation.eulerAngle.y ซึ่งคือการหมุนเเนวระนาบ จุดประสงค์เพื่อการหมุนควบคุมกล้องที่ต่ออยู่กับหุ่นยนต์ เเปลงคําสั้งให้เป็นรูปเเบบ String พยัญชนะตัวเเรกเเสดงถึงประเภทที่จะสั่งเเละตัวต่อจากนั้นคือค่าที่อยากจะสั่ง
จากนั้นก็ทดลองส่ง mqtt ด้วย Library M2MQTT สําหรับ Unity ผ่าน EMQX Server ไปที่บอร์ด ESP32 ซึ่งต่อกับ Stepper Motor อยู่ ผลประกฎว่าสําเร็จ ถึงเเม้ว่าจะใช้เวลามากพอสมควร
MQTT Publisher : C# Unity
MQTT Subscriber : ESP32 Wifi
M2MQTT Library : https://github.com/eclipse/paho.mqtt.m2mqtt
MQTT EMQX Broker : https://www.emqx.io/
2 เมษายน 2567
วันนี้ได้ทําฟังชั่นการเลี้ยวโดยอ่านค่าพิกัดเเกน Z ซึ่งก็คล้ายกันฟังชั่นการเดินเพราะว่าเป็น transform.positon เหมือนกันเลย
วันที่ 3 เมษายน
ทําระบบ Calibration เพื่อรีเซ็ตค่าเวกเตอร์ให้เป็นศูนย์ทั้งหมด จะได้อ้างอิงได้ง่าย เเล้วจะทําการส่งข้อความคําสั่งหลังจาก Calibrate เเล้วเท่านั้น
วันที่ 4 เมษายน
ทําการทดลองต่อ mqtt รวมกับ บอร์ด ESP32 Wifi เพื่อควบคุมหุ่นยนต์
PubSubClient For Arduino IDE : https://github.com/knolleary/pubsubclient
ทําการจูนความถี่การส่งข้อมูลผ่าน MQTT Broker ให้ไม่เกิดดีเลย์กับการบังคับ โดยใช้วิธีที่จะส่งเฉพาะข้อความที่ไม่ซั้ากันเท่านั้น ใช้ if(PreviousMovement != Movement)
ผลเป็นไปตามคาด นับว่าเป็นความสําเร็จที่ดี