方法(一):
創建一個工作空間(workspace)
工作區可以作爲一個獨立的項目進行編譯,存放ROS程序的源文件、編譯文件和執行文件。建立工作區的方法如下 $ mkdir -p ~/catkin_ws/src //在主文件夾路徑下創建一個文件夾,src是catkin_ws的子文件夾
$ cd ~/catkin_ws/src //進入子目錄src
$ catkin_init_workspace //初始化工作空間
雖然這時候工作區是空的,但是我們依然可以進行編譯:
$ cd ~/catkin_ws/ //進入catkin_ws路徑
$ catkin_make //編譯package,雖然是空的
這時候,會在當前文件夾下生成devel,build這兩個子文件夾,在devel文件夾下能看到幾個setup.*sh文件
接下來把工作區在bash中註冊
$ source devel/setup.bash
要驗證是否已經在bash中註冊可以使用如下命令:
$ echo $ROS_PACKAGE_PATH
如果能看到自己工作區的文件路徑就說明已經成功了
創建一個ROS數據包(Package)
首先切換到工作區:
$ cd ~/catkin_ws/src
現在可以使用catkin_create_pkg命令去創建一個叫beginner_tutorials的包,這個包依靠std_msgs、roscpp、rospy。
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
接下來在工作區編譯這個工程包
$ cd ~/catkin_ws
$ catkin_make
方法(二)
ROS的軟件以Package的方式組織起來。package包含節點(Node)、ROS依賴庫、數據套、配置文件、第三方軟件、或者任何其他邏輯構成。package的目標是提供一種易於使用的結構以便於軟件的重複使用。總得來說,ROS的package遵從Goldilocks原則:短小精幹。所有的ROSpackages包括很多類似的文件:manifests, CMakeLists.txt, mainpage.dox,和Makefiles.
(1) 利用 rorcreate-pkg 創建 package
$ roscreate-pkg beginner_tutorials std_msgs roscpp rospy
這裏我們需要仔細閱讀manifest.xml,所以這裏我把生成的manifest.xml貼於下面:
$ exportROS_PACKAGE_PATH=YOUR_BEGINNER_TUTORIALS_PATH:$ROS_PACKAGE_PATH
$ rospack find beginner_tutorials
$ rospack find beginner_tutorials
/home/zc/catkin_ws/src/beginner_tutorials前面我們用roscreate-pkg建立package,這裏我們根據系統關聯來編譯這些packages
$ roscd turtlesim
$ cat package.xml
$ rosmake turtlesim
注意:只是截圖了後半部分,沒有全部截
完成
!!!!!!!!!!!