在ros下實現節點編程,實現一個節點發送消息,另外一個節點接收。實現方式有多種,能夠直接在命令窗口建立工做空間包以及節點,用catkin_make進行編譯,添加.bash路徑,而後執行rosrun package node_name 。這種方式對於一個ROS初學者來講容易出錯,並且不少網上的教程中出現了不一樣的問題,好比須要修改CMakeLists.txt和package.xml中的內容,至關繁瑣。爲了不沒必要要的麻煩,初學者能夠應用IDE進行節點編程,達到必定的水平後,再用上面的方式去實現。下面就介紹一下roboware 軟件實現helloword的發送和接收。node
這個例子是在ROS能正常運行的狀況下進行的,因此爲了避免必要的麻煩,最好先跑跑小烏龜的例子。編程
1.下載安裝roboware.bash
去官網下載地址:http://www.roboware.me/#/home code
選擇Studio v1.2.64bit deb 下載 。若是是32位機選擇v.2.0 32bit deb版本。xml
傻瓜式安裝,一直下一步。安裝好之後以下所示:blog
2.建立工做區教程
打開軟件後,選擇新建工做區,這裏要選擇一個文件夾,這裏最後選擇主文件夾。而後在名稱:robotit
robot 即爲新建的工做空間名稱。建好以後後出現一個src文件夾,和一個CMakeLists.txt文件。io
3.新建ROS包編譯
右鍵src文件夾選擇「新建ROS包」在名稱欄:test
建好以後會出現一個test文件夾,下有一個SRC文件夾。
4.新建ROS節點
右鍵test文件夾,選擇新建C++ROS節點。在名稱:test
建好以後文件內有兩個.cpp文件,一個是test_pub.cpp ,用於發送helloworld 信息,稱爲發送者。 另外一個是test_sub.cpp用於接收信息,稱爲訂閱者。
5.點擊左上角的錘子編譯文件,ROS節點界面會出現test節點。看到100%說明編譯成功。
以上就完成了整個工程的編譯,這部份內容通常不會出現什麼問題,接下來就要執行了,問題就來了。
6.打開ROS master
roscore
7.rosrun執行節點
rosrun test test_pub
分析其緣由多是由於在安裝ROS時已經建立了工做空間,新建的工做空間和以前的不一樣,因此須要將新建的工做空間的路徑添加到bashrc文件中。
因而執行下面的步驟:新開一個終端輸入下面的命令打開文件bashrc
gedit .bashrc
在新建工做空間的devel 文件下找到setup.bash文件,查看其路徑將其路徑添加到bashrc文件的末尾,具體以下:
而後關閉全部終端,從新打開終端執行
roscore
再打開一個終端:
rosrun test test_pub
出現:
這裏實現了發送
8.執行接收節點
rosrun test test_sub
出現same name的問題。
這是咱們在建立節點時沒有修改cpp文件中初始化文件名致使的。
將名稱改成test_pub和test_sub
保存,從新編譯。而後將因此終端所有關閉,從新執行打開master和發送、接收
能夠實現接收了。