ROS 2机器人开发:从入门到实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.4 ROS 2机器人开发特色

准备好行装,你马上就将进入基于ROS 2的机器人开发之旅了,但先别着急,启程之前我们一起来看看ROS 2为了让我们可以制作出一个强大的机器人,到底为我们准备了哪些装备。

1.四大核心通信机制

ROS 2的四大通信机制分别是话题(Topic)通信、服务(Service)通信、参数(Parameter)通信和动作(Action)通信。话题通信指的是一种发布-订阅(Publish-Subscribe)通信模式,即发布者(Publisher)将消息发布到某个话题上,订阅者(Subscriber)订阅话题即可获取数据,数据是单向传递的。例如,我们可以通过话题将机器人的位置信息发布到某个名称的话题上,通过订阅该名称的话题就可以获取机器人的位置信息。

相比话题通信机制,服务通信是双向的,可以分为服务端(Service)和客户端(Client),客户端可以发送请求到服务端,由服务端处理并返回结果。动作通信同样分为动作客户端(Action Client)和动作服务端(Action Server),相比于服务通信,动作服务端在处理客户端请求时可以反馈处理进度并可以随时取消,动作通信往往用于复杂的机器人行为。参数通信主要用于机器人参数设置和读取。

2.丰富的调试工具

除了核心通信机制外,ROS 2还提供了丰富的可视化调试工具,比如用于三维可视化的RViz,用于可视化图表、图像等数据的rqt系列工具,以及用于数据记录和回放的ros2bag工具等。

3.建模与运动学工具

ROS 2为我们提供了机器人开发中常用于运动学坐标转换与管理的TF工具,同时定义了描述机器人的结构、关节、传感器等信息的文件格式URDF。

4.强大的开源社区及应用框架

除了ROS 2本身提供的核心工具外,开源社区基于ROS 2也制作了丰富的开源工具和框架,比如强大的可仿真工具Gazebo、用于移动机器人导航的Navigation 2应用框架和用于机械臂运动规划的Moveit 2应用框架等。

既然ROS 2提供了如此丰富的工具,你就不必担心自己无法开发出强大的机器人了。好了,理论介绍到这里就结束了。我相信你已经迫不及待地想要开始踏上机器人开发之旅了,那么我们现在就开始吧!