ROS(一)關於創建一個工作空間並且編譯一個package的兩種方法

方法(一):

創建一個工作空間(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.

        package很容易手工製作,也可使用其他工具,例如roscreate-pkg。ROS的package可以是ROS_ROOT或者ROS_PACKAGE_PATH裏面的一個目錄/文件夾,包含一個manifest.xml文件。package可以是ROSstacks的組成部分。首先我們用roscreate來創建package:
$ roscreate-pkg [package_name]
這裏我直接引用官網提供的這個例子:---創建beginner_tutorialspackage,他依賴std_msgs, roscpp, rospy
(1) 利用 rorcreate-pkg 創建 package
$ roscreate-pkg beginner_tutorials std_msgs roscpp rospy

這裏我們需要仔細閱讀manifest.xml,所以這裏我把生成的manifest.xml貼於下面:


(2) 將該路徑添加到rox系統中(即更新ros查找路徑)
$ exportROS_PACKAGE_PATH=YOUR_BEGINNER_TUTORIALS_PATH:$ROS_PACKAGE_PATH
然後我確認是否在ROS可以找到:
$ rospack find beginner_tutorials
然後我確認是否在ROS可以找到:
$ rospack find beginner_tutorials
/home/zc/catkin_ws/src/beginner_tutorials

前面我們用roscreate-pkg建立package,這裏我們根據系統關聯來編譯這些packages

1,系統關聯
       ROSpackage有時運行時需要連接外部庫或者可執行程序。這些庫或者程序的連接經常被關聯到系統關聯中。在一些情況下,這些系統關聯不會被默認的安裝,ROS提供了一個簡單的工具--rosdep,用來下載和安裝系統關聯的。
     ROS rospack必須在相應的packagemanifest申明,參考小海龜的例子,
$ roscd turtlesim
$ cat package.xml


2,編譯packages
     當所有的系統關聯都已經被安裝,我們就可以開始用 rosmake命令編譯我們創建好的package

rosmake命令 ---編譯package
$ rosmake turtlesim
注意:只是截圖了後半部分,沒有全部截

完成

吐舌頭吐舌頭吐舌頭吐舌頭吐舌頭吐舌頭吐舌頭吐舌頭!!!!!!!!!!!





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章