最近在ros官網上發現rosserial支持embeddlinux,於是對這個產生了很大的興趣,傳統大家都是用arduino來做下位機,通過串口的形式來做控制的,但是有時候我們的下位機可能需要很大的計算量,這時候用普通的單片機可能性能就不是很夠的了,因此我做這樣一個教程,通過給樹莓派編譯rosserial_embeddedlinux,實現通過網絡的形式給上位機發布消息。
首先我們要有一臺運行Ubuntu的電腦,並安裝好ROS和eclipse(編譯的ide)
首先我們安裝官方的教程,安裝好rosserial或者使用:
sudo apt-get install ros-kinetic-rosserial_embeddedlinux
sudo apt-get install ros-kinetic-rosserial
然後切換到隨便一個目錄,創建libraries:
cd <some_directory>
rm -rf ros_lib examples
rosrun rosserial_embeddedlinux make_libraries.py .
這時候我們便擁有了嵌入式linux文件的庫文件,接下來就要把庫文件加入到eclipse上:
在此之前,我們要去樹莓派官方下載交叉編譯工具:
參考鏈接:Linux主機上實現樹莓派的交叉編譯及文件傳輸,遠程登陸
之後打開eclipse,創建c++項目
配置交叉編譯鏈:
接下來便是添加ros的庫文件了,在project->properties->c/c++ build->setting,給cross g++ compiler添加好庫文件
至此,編譯環境已經搭建完畢,接下來我編譯一個簡單的程序測試一下是否能正常運行;
在項目中新建一個cpp文件,然後把庫文件裏面的例子複製到cpp文件中:
其中要把ip地址改爲ros主節點的IP地址,把程序複製到樹莓派上,運行程序;
在電腦主機上輸入:
rosrun rosserial_python serial_node.py tcp