# 軟體組小專題 -- 平衡球 {%youtube 9Cm7HZLUdoY %} {%youtube JFTJ2SS4xyA %} ## 說明 整體的機構類似上面的第二個影片,由一個馬達控制板子的傾斜來讓球平衡在中間。 唯一不同的地方在於我們要將超音波感測器換成相機。相機由正上方往下看,來判斷球的位置。 ## 架構 ![image](https://hackmd.io/_uploads/r1MjfI4Ba.png) ## 設備 - USB 相機 - RPI - Arduino ## 任務分配 (1 個人可能負責多項) 控制任務: - [ ] (1人)Rpi上需要建立接收相機訊息的 ros的 node,內容要根據相機訊息去計算給馬達轉多少,並傳出 topic 給 arduino。 - [ ] (1人)Arduino 接收 rpi 給的訊息後,要寫控制馬達的 code。 - [ ] (1人)ROS1 跟 ROS2 要想辦法溝通 - 若視覺組決定要用 ROS2,要用 [ros1_bridge](https://github.com/ros2/ros1_bridge) 將 ROS1 和 ROS2 接通 - 若視覺組配合用 ROS1,就不須擔心這項 視覺任務: - [ ] (1 人) 寫 publisher node (topic: /delta_pos) - [ ] 探索以不同方式辨識球的方法 (最後看哪個效果好) - [ ] (2~3 人) YOLO - 正常的 YOLOv8 在 RPI 上應該跑不動,請使用比較輕量的模型 (e.g. YOLO Tiny, YOLO Fastest),或使用外部 server (e.g. https://github.com/roboflow/inference) - [ ] (1 人) OpenCV color based method 機構: - [ ] (1~2 人) 共同設計一個合適的機構,不需要太精緻