ROS分布式部署通信
目录
一、概念
二、设置 ROS 分布式网络
1. 环境要求
2. 主机(Master)设置
3. 从机(节点设备)设置
4. 测试是否正常通信
三、进阶启动多从机节点(launch)。
一、概念
ROS 分布式通信用于在多台计算机之间共享 ROS 话题(topics)、服务(services)和参数(parameters)。这在机器人系统中非常常见,例如:一台主控电脑(主机) 运行计算任务,多个机器人或设备(从机) 负责执行任务。
ROS 使用 ROS Master(roscore) 作为中央协调节点,所有 ROS 进程(节点) 需要与 Master 通信:ROS Master 运行在一台主机上,其他设备 通过
ROS_MASTER_URI
连接到 Master,节点之间直接 P2P点对点通信(数据流不经过 Master)。
适用场景:假设我们有一台PC虚拟机和一台树莓派,它们都运行相同的操作系统,并处于同一局域网中。在这种配置下,我们可以将树莓派连接到小车,利用树莓派来控制小车的运动。由于ROS采用基于节点的通信机制,我们可以将主节点运行在PC虚拟机上,而将树莓派上运行小车底盘控制节点。树莓派的主要职责是控制小车的运动,而其他计算任务和算法则由PC虚拟机上的节点来完成。这样,PC虚拟机作为控制中心,负责协调和处理其他任务,树莓派只需专注于执行小车的控制功能,无需承担其他计算任务。这种方式能够高效地分配任务,确保系统的协同工作,从而实现智能控制。
解决问题:当从机数量增加时,这种分布式架构的优势更加明显。每个从机只需要专注于执行自己的基本任务,例如控制硬件或处理低层任务,而其他复杂的计算任务、算法处理等则由主机来完成。这样,不仅可以减轻从机的负担,还能够将计算密集型的任务集中在主机上,提升整个系统的效率和可扩展性。随着从机数量的增加,主机作为控制中心,能够协调更多的从机,确保系统的高效运行,而不需要为每个从机单独处理算法和计算任务。
当我们使用第三方插件来进行地图建模或视频采集时,如果这些任务都在树莓派上运行,由于树莓派的硬件资源有限,可能会导致性能下降,甚至无法满足某些任务的需求。为了解决这个问题,我们可以采用分布式架构,将这些资源消耗较大的插件迁移到PC端运行,这样可以避免树莓派的性能瓶颈,确保系统的流畅运行。具体来说,树莓派可以专注于进行传感器数据采集和控制任务,而计算密集型的任务,如地图建模和视频处理,可以交给PC端处理,从而提高整个系统的效率,避免因树莓派资源不足导致的性能问题。