1. 程式人生 > >ROS官網初級教程學習總結(1-4)

ROS官網初級教程學習總結(1-4)

安裝並配置ROS環境

安裝ROS

安裝時記得換個好點的軟體源,要不然會因為網路連線問題一直失敗。

管理環境

export | grep ROS 主要是檢視環境變數是否設定。

ROSLISP_PACKAGE_DIRECTORIES=”” //這個是關於lisp語言的
ROS_DISTRO=”kinetic”
ROS_ETC_DIR=”/opt/ros/kinetic/etc/ros” //一些配置檔案
ROS_MASTER_URI=”http://localhost:11311” //master地址,遠端連線時有用
ROS_PACKAGE_PATH=”/opt/ros/kinetic/share” //ROS包的環境變數
ROS_ROOT=”/opt/ros/kinetic/share/ros” //ROS core包的位置

建立ROS工作空間

建立一個新的catkin工作空間後,source一下新生成的setup.*sh檔案(source devel/setup.bash), 在當前shell下執行echo $ROS_PACKAGE_PATH會看到ROS_PACKAGE_PATH環境變數已包含你新建的工作空間程式包目錄。

ROS檔案系統介紹

安裝程式包

直接使用apt-get安裝,如安裝ros-tutorials:
$ sudo apt-get install ros-<distro>-ros-tutorials

快速瞭解檔案系統概念

Packages: 軟體包,ROS應用程式程式碼的組織單元,每個軟體包都可以包含程式庫、可執行檔案、指令碼或者其它手動建立的東西。
Manifest (package.xml,軟體包的根目錄下): 清單,是對於’軟體包’相關資訊的描述,用於定義軟體包相關元資訊之間的依賴關係,這些資訊包括版本、維護者和許可協議等。

檔案系統工具

程式程式碼是分佈在眾多ROS軟體包當中,當使用命令列工具(比如ls和cd)來瀏覽時會非常繁瑣,因此ROS提供了專門的命令工具來簡化這些操作。

rospack

# rospack find [包名稱]:返回軟體包的路徑資訊。

roscd

直接切換(cd)工作目錄到某個軟體包或者軟體包集當中。
# roscd [本地包名稱[/子目錄]]

roscd log

切換到ROS儲存日記檔案的目錄下。

rosls

rosls [本地包名稱[/子目錄]]:直接按軟體包的名稱而不是絕對路徑執行ls命令。

Tab 自動補全輸入

建立ROS程式包

catkin程式包的構成

  1. 必須包含catkin compliant package.xml檔案。這個package.xml檔案提供有關程式包的元資訊。
  2. 必須包含一個catkin 版本的CMakeLists.txt檔案
  3. 每個目錄下只能有一個程式包
    最簡單的程式包也許就像這樣:
my_package/
  CMakeLists.txt
  package.xml

catkin工作空間

一個簡單的工作空間也許看起來像這樣:

workspace_folder/        -- WORKSPACE
  src/                   -- SOURCE SPACE
    CMakeLists.txt       -- 'Toplevel' CMake file, provided by catkin
    package_1/
      CMakeLists.txt     -- CMakeLists.txt file for package_1
      package.xml        -- Package manifest for package_1
    ...
    package_n/
      CMakeLists.txt     -- CMakeLists.txt file for package_n
      package.xml        -- Package manifest for package_n

建立一個catkin程式包

# catkin_create_pkg <package_name> [depend1] [depend2] [depend3]

程式包依賴關係

一級依賴

$ rospack depends1 <package_name>

間接依賴

$ rospack depends <package_name>

自定義程式包

自定義 package.xml

描述標籤

<description>

維護者標籤

<maintainer

許可標籤

<license>

依賴項標籤

<build_depend>
<buildtool_depend>
<run_depend>
<test_depend>

自定義 CMakeLists.txt

編譯ROS程式包

使用 catkin_make

catkin_make 是一個命令列工具,你可以認為catkin_make是在CMake標準工作流程中依次呼叫了cmake 和 make。
$ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]
catkin_make會編譯src資料夾下的所有catkin工程。

開始編譯你的程式包

執行完catkin_make 後,使用ls檢視:

build  //cmake 和 make是在這裡被呼叫來配置並編譯你的程式包。
devel  //在你安裝程式包之前存放可執行檔案和庫檔案的地方
src