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
cd catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
此时:
- catkin_ws 目录下build、devel文件夹被创建
- src 目录下CMakeLists.txt被创建
2.创建功能包 或 下载功能包
cd src
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
rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
catkin_make
source ~/catkin_ws/devel/setup.bash
4. package常用命令
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)