一段展示自建的 ROS CLI 工具連結 Arduino 內的 CLI,相關程式碼與說明釋出
設計動機與想法
FBTUG Mini FarmBot 一直想整合到 ROS 內, 採果專案也需要將 Arduino 周邊(尤其是手臂)整合進來,需要 ROS 能跟 Arduino 溝通,需要 ROS 通過 UART 發 G-code 字串到 Arduino, 並取得 Arduino 以 G-code 字串回覆的狀態。一直搞不定是因為,ROS 怎麼跟 Arduino 溝通不是很懂,似乎一直是個謎,能夠通也不太會把字串發下去,發下去後怎麼接上原來的 G-code processor. 就算都接起來了, ROS 內還是需要一個 CLI 才能讓使用者輸入命令字串,而且這個 CLI 還得接收狀態回復的字串。另外,因為主 Serial 被 rosserial 佔用,但也不能讓 Arduino 那邊,失去 debug 功能以及,沒有 ROS 在的時候也希望能單獨開發。這表示 debug console 是必須同時存在的。
簡單說,我們需要一個 ROS 上的 Arduino UART Console 以及讓原來複雜的 Arduino 程式賦予 ROS 的能力與架構
此範例就是用最精簡的方式,展示解決以上問題的一點建議參考,由於精簡當然很多可以改善的空間,但也讓這個範例很容易移植到各式各樣類似的情境,希望此範例能為很多苦惱於相同問題的夥伴,帶來一點幫助,預祝大家很快能看到自己的 Arduino 程式跟 ROS 相處得很融洽
操作步驟
1. hardware setup : RPI —usb-- Arduino MEGA , 可參考接線與環境,由於不需要 MEGA 上的 console debug, 所以 debug console 的接線不需要(含 usb-to-serial)
2. firmware setup: using this
3. ROS setup
3.1. git clone
https://github.com/FBTUG/FarmHarvestBot.git
# 其實只需要裡面的 software/debug_ros/src/debug_ros.py
4. ROS usage:
4.1. roscore
4.2. ubuntu@ha:~$ rosrun rosserial_python serial_node.py /dev/ttyACM0
4.3. cd [github downloaded source]/software/debug_ros/src
4.4. chmod +x debug_ros.py
4.5. ./debug_ros.py
文件請參考:
https://paper.dropbox.com/…/FBTUG-FarmHarvestBot-Debug-ROS-…
(-serial-CLI-enabl
哈爸
David Chuang
2018-10-26 12:27:05
Wuulong Hsu
2018-10-26 20:56:59