教程網址: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程序包的構成
- 必須包含catkin compliant package.xml文件。這個package.xml文件提供有關程序包的元信息。
- 必須包含一個catkin 版本的CMakeLists.txt文件
- 每個目錄下只能有一個程序包
最簡單的程序包也許就像這樣:
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