ROS官网初级教程学习总结(1-4)

Posted NodYoung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于ROS官网初级教程学习总结(1-4)的主要内容,如果未能解决你的问题,请参考以下文章

ROS官网初级教程学习总结(10-16)

ROS官网初级教程学习总结(10-16)

ROS官网初级教程学习总结(5-9)

ROS官网初级教程学习总结(5-9)

ROS官网初级教程学习总结(17-20)

ROS官网初级教程学习总结(17-20)