ROS(機器人操作系統)教程(一)

ROS:ROS是用於編寫機器人軟件程序的一種具有高度靈活性的軟件架構,ROS也就是robot operating system,他的主要目標是爲了機器人研究和開發提供代碼複用的支持。ROS是一個分佈式進程,也就是節點框架,這些進程被封裝在易於被分享和發佈的程序包和功能包中。

catkin:ROS的原始編譯和打包系統是rosbuild,而catkin是現在ROS的官方指定系統,catkin的原理和流程和Cmake都很類似。


1. 安裝並配置ROS

安裝ros
http://wiki.ros.org/cn/ROS/Installation

管理環境
每次打開終端都需要source一下才能運行ros的相關命令:

source /opt/ros/<distro>/setup.bash

創建ROS工作空間
我們使用catkin來創建catkin工作空間

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_make

我們在當前目錄下能看到build和devel兩個文件夾,在devel文件夾中可以看到很多setup.*sh文件,source其中的任何一個都可以將當前工作空間設置在ROS工作環境的最頂層。所以:

source devel/setup.bash

我們需要查看一下工作空間是否配置正確:

$ echo $ROS_PACKAGE_PATH
/home/<youruser>/catkin_ws/src:/opt/ros/kinetic/share

/home/youruser/catkin_ws/src這一塊其實就是你自己一開始被build的工作目錄


2. ROS文件系統

文件系統:

  1. packages 軟件包,是ROS應用程序代碼的組織單元,每個軟件包都可以包含程序庫,可執行文件,腳本或者其他手動創建的東西
  2. Manifest : package.xml,清單,是對於軟件包相關信息的描述,用於定義軟件包相關元信息之間的依賴關係。

rospack命令
rospack用於獲取軟件包的相關信息,使用find參數找到軟件包路徑:

rospack find [包名稱]

roscd命令

roscd [本地包名稱[/子目錄]]

roscd只能切換到那些路徑已經包含在ROS_PACKAGE_PATH環境變量中的軟件包,查看路徑:

echo $ROS_PACKAGE_PATH
/home/wangyf/xxx:/opt/ros/melodic/share

和其他的路徑環境變量類似,可以添加更多的其他路徑,每條路徑用冒號隔開。


3. 創建ROS程序包

一個catkin程序包包含:

my_package/
  CMakeLists.txt
  package.xml

一個工作空間看起來應該像:

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 beginner_tutorials std_msgs rospy roscpp

這行命令創建了一個beginner_tutorials新程序包,這個包依賴於std_msgs/roscpp/rospy

查看程序包依賴

rospack depends1 rospy

最後記得對package.xml裏面的信息進行修改。


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