ROS2 分布式 及 ssh远程控制 和 上传下载文件或文件夹

问题1.

多台计算机连接同一wifi后 ,运行ROS2的小乌龟案例,自己的计算机,无法控制其他电脑的小乌龟

按照正常的情况来说,ROS2是DDS的自发现通信机制,只要处在同一wifi网络中,

A计算机执行启动小乌龟的命令

ros2 run turtlesim turtlesim_node

B计算机执行键盘控制节点

ros2 run turtlesim turtle_teleop_key

 无需任何配置和修改,B计算机上的按键,就可以控制A计算机上的小乌龟 

但我的计算机始终无法再ROS2的多机环境中,去控制其他几台计算机上的小乌龟,其他几台计算机也无法控制我的计算机上的小乌龟,但其他几台计算机运行的都很正常,都可以彼此控制,然后本人研究了一晚上发现是自己计算机ubuntu22.04实体机的防火墙没关,导致无法此计算机与其他多台计算机无法通信。

运行以下命令关闭防火墙:

sudo ufw disable

瞬间解决问题!!!

在ROS2中,多个计算机通过同一个WiFi网络连接并协作时,可能会遇到一些网络配置的问题,导致无法控制其他计算机上的节点。以下是一些常见的故障排除步骤和配置建议,帮助你解决无法控制其他计算机上的小乌龟的问题。
步骤1:检查网络连接
确保所有计算机都连接到同一个WiFi网络,并且可以相互ping通。
ping   其他电脑IP

步骤2:配置ROSDOMAINID
为了确保ROS2在多台计算机上可以相互发现节点和主题,需要设置相同的ROS_DOMAIN_ID。这个ID可以是一个0到232之间的整数。你可以在每台计算机的终端中设置这个环境变量:
export ROS_DOMAIN_ID=1

为了使这个设置永久生效,可以将其添加到每个用户的~/.bashrc文件中:
echo "export ROS_DOMAIN_ID=1" >> ~/.bashrc
source ~/.bashrc

步骤3:设置环境变量
为了确保ROS2节点能够正确解析和访问网络中的其他节点,需要设置一些环境变量。
在每台计算机上,编辑~/.bashrc文件并添加以下内容:
export ROS_LOCALHOST_ONLY=0

### ROS2 分布式系统中的通讯机制及 DDS 实现 ROS2分布式通信能力依赖于其核心中间件——数据分发服务(Data Distribution Service, DDS)。以下是关于 ROS2 中基于 DDS分布式通信机制及其实现的详细介绍: #### 1. **DDS 的基础功能** DDS 是一种高效的去中心化数据通信协议,提供了发布-订阅模式的数据交换方式。它允许多个程序之间进行实时、可靠的数据传输[^1]。在 ROS2 中,DDS 被用作底层通信中间件,负责节点间的高效数据传递。 #### 2. **DDS 的发现机制** DDS 提供了两种主要的发现机制:动态发现静态发现。 - 动态发现允许任意两个 DDS 应用程序在网络中自动识别彼此并建立连接,而无需额外的集中式协调工具(如 ROS1 中的 Master)[^1]。 - 静态发现则是由多个 DDS 供应商提供的另一种选项,适用于特定场景下减少动态配置开销的情况[^1]。 #### 3. **ROS2 中的分布式通信架构** ROS2 构建了一个分布式的通信框架,能够轻松实现跨设备的节点间通信。这种能力的核心在于 DDS 所支持的域 ID (Domain ID) 机制。通过设置 `ROS_DOMAIN_ID` 环境变量,可以定义不同节点所属的逻辑网络分区。只有具有相同域 ID 的节点才能互相发现并通信;相反,域 ID 不同的节点即使位于同一物理网络也无法相互通信[^3]。 #### 4. **DDS 的高级特性** 除了基本的发布-订阅模型外,DDS 还具备一系列增强的功能,这些功能显著提升了 ROS2 在复杂环境下的适应能力可靠性: - **应用解耦**:使用 DDS 的应用程序完全独立运作,几乎不需要考虑与其他组件的具体交互细节。这意味着开发者不必关心目标接收方的身份者地理位置等问题[^4]。 - **服务质量(QoS)**:为了应对各种可能存在的恶劣网络条件,ROS2 利用了 DDS 内置的服务质量策略(QoS Policies),从而保障即便是在带宽受限其他不利条件下仍能维持稳定的性能表现[^2]。 #### 5. **实际操作案例** 假设存在两台计算机 A B,各自运行着不同的 ROS2 应用实例,并希望通过各自的专属通道来进行无干扰交流,则可以通过如下方法完成设定: ```bash export ROS_DOMAIN_ID=6 # 设置A机器上的所有新启动节点归属到domain id为6的网络里 ``` 同样地,在另一端也执行相应指令指定另一个唯一编号作为B侧对应部分成员身份标志即可达成预期目的[^5]。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值