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

教程網址:http://wiki.ros.org/cn/ROS/Tutorials
本博客爲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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章