---
# System prepended metadata

title: 軟體組小專題
tags: [2023 軟體培訓]

---

# 軟體組小專題 -- 平衡球

{%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 人) 共同設計一個合適的機構，不需要太精緻