1. 程式人生 > >ROS 用 roboware實現節點資訊傳送和接收

ROS 用 roboware實現節點資訊傳送和接收

在ros下實現節點程式設計,實現一個節點發送訊息,另一個節點接收。實現方式有多種,可以直接在命令視窗建立工作空間包以及節點,用catkin_make進行編譯,新增.bash路徑,然後執行rosrun  package  node_name 。這種方式對於一個ROS初學者來說容易出錯,而且很多網上的教程中出現了不同的問題,比如需要修改CMakeLists.txt和package.xml中的內容,相當繁瑣。為了避免不必要的麻煩,初學者可以應用IDE進行節點程式設計,達到一定的水平後,再用上面的方式去實現。下面就介紹一下roboware 軟體實現helloword的傳送和接收。

這個例子是在ROS能正常執行的情況下進行的,所以為了不必要的麻煩,最好先跑跑小烏龜的例子。

1.下載安裝roboware.

去官網下載地址:http://www.roboware.me/#/home 

選擇Studio v1.2.64bit deb  下載 。如果是32位機選擇v.2.0 32bit deb版本。

傻瓜式安裝,一直下一步。安裝好以後如下所示:

2.建立工作區

開啟軟體後,選擇新建工作區,這裡要選擇一個資料夾,這裡最後選擇主資料夾。然後在名稱:robot

robot 即為新建的工作空間名稱。建好之後後出現一個src資料夾,和一個CMakeLists.txt檔案。

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和傳送、接收

可以實現接收了。