ROS的安装就不介绍了,官方教程是最好的:点击打开链接
ROS是机器人操作系统,它应该有自己的工程结构,Linux系统的文件系统如下:
而ROS的文件系统级如下:
接下来逐一介绍它们:
1. catkin 工作空间
工作空间就是管理 ROS 工程和代码的地方,而 catkin 是 ROS 定制的编译构建系统,是对 CMake 的扩展。catkin 工作空间其实就是一个文件夹,用来组织和管理功能包,用 catkin 工具编译。
首先对其进行创建(必须有 src 目录):
mkdir -p ~/catkin_ws/src
进入工作空间:
cd ~/catkin_ws/
对其进行编译(必须在工作空间进行)
catkin_make
如果你的输出像这样:
那就成功了。
这只是完成了编译(编译整个空间),如果要执行某个文件,还需要执行这样一句话:
source ~/catkin_ws/devel/setup.bash
刷新环境,这样才不会报错。
2. src,build 和 devel
src 中存放的是 package 源代码,编译完成之后会发现工作空间中多了这两个文件夹,其中 build 中存放的是 cmake 和 catkin 的缓存信息以及中间文件, devel 中存放的则是生成的目标文件,比如头文件,可执行文件,链接库等等。
src 目录下存放着各种各样的功能包,包是 catkin 编译的基本单元。
3.package
又称 功能包,是 ROS 软件的基本组织形式,一个 package 可以包含多个可执行文件(节点),一个最精简的 package,应该如下:
CMakeLists.txt 规定了 catkin 编译的规则,具体写法如下:
package.xml 定义了 package 的属性,例如 包名,版本号,作者等。它的写法如下:
接下来就是将代码放入 package 中,ROS中的代码文件分为 脚本(python,shell) 和 C++(头文件,源文件)。
因此,一般创建 scripts 存放脚本,创建 include 存放 C++ 头文件,src 存放 C++ 源文件。
package 下也可以存放自定义通信格式,分别存放在 srv,msg 和 action 文件夹下。
launch 文件存放在 launch 文件夹下,launch 文件的好处是不用手动编译每一个可执行文件,参数设置文件 yaml 放在 config 文件夹下。
ROS常用命令: