这是机器人与计算机视觉实战系列第三篇:ROS2 基础入门。由于我之前已经写过ROS2入门系列,有兴趣的可以直接移步入门的第一篇入门的第一篇,逐步往后跟进,或者进入我的ROS2专栏按照兴趣和需要进行阅读。
ROS2是什么?
ROS2是机器人操作系统 (ROS) 的最新版本,它是一组用于构建机器人应用程序的软件库和工具集。ROS2不仅能运行在Linux系统之上,还增加了对Windows、MacOS、RTOS等系统的支持,让开发者的选择更加自由。ROS2重新设计了系统架构,引入了新的通信层DDS (Data Distribution Service) ,提高了性能、可靠性和安全性。ROS2还保留了ROS1的优点,如发布/订阅模式、节点、话题、服务、参数等概念,以及丰富的软件包和工具。
ROS2的基本概念
ROS2系统的核心部分是ROS网络 (ROS Graph) ,它是由一组相互通信的节点 (Node) 组成的。节点是执行特定功能的进程,如控制传感器、执行算法、控制执行器等。节点之间通过话题 (Topic) 、服务 (Service) 和动作 (Action) 进行信息交换。话题是一种基于发布/订阅模式的异步通信方式,一个节点可以发布一个话题,其他节点可以订阅这个话题,从而接收到发布者发送的消息。服务是一种基于请求/响应模式的同步通信方式,一个节点可以提供一个服务,其他节点可以请求这个服务,并得到提供者返回的响应。动作是一种基于目标/结果模式的通信方式,一个节点可以发送一个动作目标给另一个节点,并得到执行结果和反馈信息。除了这些通信方式,节点之间还可以通过参数 (Parameter) 和共享内存 (Shared Memory) 进行数据交换。参数是一种用于配置节点行为的键值对,可以