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里面的信息进行修改。


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