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程序包的构成
- 必须包含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
以上是关于ROS官网初级教程学习总结(1-4)的主要内容,如果未能解决你的问题,请参考以下文章