ROS+SLAM筆記(5)建立包
阿新 • • 發佈:2019-01-07
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了