1. 程式人生 > >ROS+SLAM筆記(5)建立包

ROS+SLAM筆記(5)建立包

1 先建立工作空間

$ mkdir –p ~/dev/catkin_ws/src
$ cd ~/dev/catkin_ws/src
$ catkin_init_workspace

2 編譯工作空間

$ cd ~/dev/catkin_ws
$ catkin_make

3永久新增環境變數

echo "source /opt/ros/xxx/setup.bash" >> ~/.bashrc

其中xxx是所用的ROS型別

4 建立包

$ cd ~/dev/catkin_ws/src
$ catkin_create_pkg name std_msgs roscpp

catkin_creat_pkg的引數依次為包名,依賴1,依賴2。。。。
這裡的std_msgs是一種通用訊息型別,表示原始資料與其他基本訊息結構例如人多維列表等。
ros_cpp表示這是用C++來實現的ROS,提供了客戶端庫是C++程式猿可以快速獲得ROS中話題,服務,引數的介面。

當建立完一個新的包後,需要編譯一下這個包。當編譯包之後,包中的程式碼也相應的編譯完成了。
注意:catkin_make需要在workspace根目錄下才行,雖然pack裡面也有個Cmakekist檔案。

建立一個用於訊息釋出與接收的包

這裡補充一下遇到的問題,我用的是jade版本的ROS,在編寫package.xml時教程上有新增
<run_depend>message_runtime</run_depend>
這樣會報錯,說在format2 中不能使用run_depend 改成所以需要

<exec_depend>message_runtime</exec
_depend>

這樣之後便可以編譯通過。
然後執行節點之前別忘了在source devel/setup.bash一下,不然會報錯說找不到包。最好直接將source catkin_ws/devel/setup.bash 加到 ~/.bashrc中,這樣就不用每次都source了