這台除草機器人的Delta手臂參考了IMWI公司的開源項目https://github.com/deltaxrobot/Delta-X-Firmware.git ,並更改了一些設計,規格如下:
Parameter | Spectifications |
---|---|
Working space | D = 595.81 mm, H = 209.69 mm |
Power supply | 12VDC |
Controller Board | Arduino Mega 2560, RAMPS 1.4 |
更改後的程式放在另一個Repository: Ziller0831/Delta-X-Firmware
底盤設計為2 Wheel Drive - 2 Wheel Steer,即2輪驅動轉向設計,驅動馬達為13吋的BLDC輪鼓馬達,轉向馬達為57型閉迴路步進馬達,控制器使用NodeMCU-32S單晶片,通訊上使用MicroROS。
ESP32程式放在另一個Repository: Ziller0831/MicroROS_2WD-2WS
本機器人的上位機採用LattePanda Delta,規格如下:
- Intel® Celeron® N4100, Quad-Core 1.1-2.4GHz
- Intel® UHD Graphics 600
- Dual-Band 2.5GHz/5GHz Wi-Fi & Bluetooth 5.0
- USB3.0 x3,USB Type-C x1
- Gigabit Ethernet
- 2 x M.2 PCIe (Support B&M Key and A&E Key)
- Support Windows 10 & Linux OS
- Integrated Arduino Coprocessor ATMEL 32U4
作業系統使用Linux架構的Ubuntu22.04,並配合ROS2 humble進行資料溝通。
目前專案使用的package如下:
src
├── customize_interface
├── delta_robot
├── gamepad_controller
├── ldlidar_stl_ros2
├── ros2.repos
├── uros
└── weeding_robot
手臂的運作架構如下:
上下位機溝通使用Pyserial進行傳輸,由上位機整合好的GCode命令通過Serial Port的形式發送至下位機。
於command window中輸入ros2 launch weeding_robot joycontrol_launch.xml
,會跑出下面畫面:
這表示ROS2正在等待Joy與ESP32的MicroROS的接通,以下一項項處理。
- Joy: 這邊手把使用Xbox Series X控制器並使用藍牙連接,如果要用其他產品,則需要到`src/weeding_robot/launch/joycontrol_launch.xml‵中進行更改,連上方式就於Setting的Bluetooth中進行配對即可。
- ESP32: ESP32則是需要按壓Reset按鈕即可。
若使用到一半發現Joy無法控制底盤時,則重新執行launch即可。
於command window中輸入ros2 launch delta_robot delta_robot_launch.xml
,手臂就會從"/home/ced/Image_recognition_ws/output/keypoints_3d.csv
中提取目標點座標並編排成一套流程。
該程式還未設計自動停止,因此會一直重複執行流程,若想執行一遍,則需要在手臂歸零時,終止launch檔的運作