1. ROS安装:
每个ROS版本对应一个Ubuntu版本
UBUNTU | ROS | End of time |
---|---|---|
14.04 LTS | indigo Igloo | April,2019 |
16.04 LTS | Kinetic Kame | April,2021 |
18.04 LTS | Melodic Morenia | April,2023 |
20.04 LTS | Noetic Ninjemys (Recommended) | April,2025 |
下一个ROS长期支持版本Humble Hawksbill将于2022年5月发布,对应Ubuntu 22.04 LTS。
官网:https://www.ros.org/
2. ROS构架:
ROS可以看作是一种中间件,沟通代码和真正的操作系统(如Linux)。
ROS由四部分组成:框架+工具+功能+社区
ROS中把进程或可执行文件称为节点(Node),如上图所示,有5个Node,通过节点管理器(master)进行通信。
3. ROS的工程结构:
一个典型的ROS工程结构如下图,包含 catkin workspace (Catkin 工作空间) 和 package (功能包) :
1. Catkin 工作空间
Catkin是ROS定制的编译构建系统,是对CMake的扩展,负责组织和管理功能包的文件夹,以catkin工具编译。
目标文件包含:生成的头文件、动态链接库、静态链接库、可执行文件
其中,src是写代码的地方,是由我们自己创建的,可以放多个package,没有创建package前是空的。
2. package(功能包)
package(功能包) 是ROS的基本组织形式,也是Catkin的基本编译单元。一个package可以包含多个Node(节点)。Package的完整结构如下:
-
CMakeLists.txt(必须): 规定Catkin的编译规则
-
package.xml(必须): 自我描述,定义package的属性信息,如包名、版本、作者等。一般只需要改<build_depend>和<run_depend>就可以了。
-
scripts: 用于存放一些shell或python脚本
-
include: 源代码的头文件
-
src: 源代码,如cpp文件、py文件等
-
msg: 自定义消息格式,*.msg
-
srv: 自定义服务,*.srv
-
action: 自定义动作,*.action
-
config: 参数、设置文件等,如*.yaml
-
launch: 启动规则文件,*.launch,配合roslaunch命令可以一次运行多个可执行文件
3. ROS实践
1.创建工作空间
//打开终端
mkdir -p ~/catkin_ws/src //创建~/catkin_ws/src目录
cd catkin_ws //切换到工作空间根目录
catkin_make //初始化工作空间
//作用:在当前bash环境下读取并执行FileName中的命令。
//这一步不要忘了,也可以添加到~/.bashrc,这样就不用每次打开都输入一遍
source ~/catkin_ws/devel/setup.bash
此时:
- catkin_ws 目录下build、devel文件夹被创建
- src 目录下CMakeLists.txt被创建
2.创建功能包 或 下载功能包
- 创建功能包
cd src //切换到 src 目录下
//用法:catkin_create_pkg package depends
//例如,新建一个package叫做test_pkg,依赖roscpp、rospy、std_msgs(常用依赖)。
catkin_create_pkg test_pkg roscpp rospy std_msgs //可按照需求加依赖
这样就会在当前路径下新建test_pkg功能包,包括:
├── CMakeLists.txt
├── include
│ └── test_pkg
├── package.xml
└── src
注:若不加依赖,则不会创建 include、src 目录
完成后,你就可以开始代码工作了
- 代码完成后编译
cd catkin_ws //切换到工作空间根目录
catkin_make //编译
- 下载功能包
对于从Github上clone或下载下来的代码
cd ~/catkin_ws/src
git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git
cd ~/catkin_ws
// 安装工作空间下所有软件包的依赖项,kinetic要按你的ROS版本修改
// 可能报错,自行百度
rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
catkin_make
source ~/catkin_ws/devel/setup.bash //再次强调,一般添加到~/.bashrc