ROS 2 RMW Zenoh实施指南

ROS 2 RMW Zenoh实施指南

rmw_zenoh RMW for ROS 2 using Zenoh as the middleware rmw_zenoh 项目地址: https://gitcode.com/gh_mirrors/rm/rmw_zenoh

ROS 2 RMW Zenoh是一款基于Zenoh中间件并利用zenoh-c绑定编写的RMW实现。此文档旨在引导用户安装、配置并有效使用该库于ROS 2环境中。

安装指南

  1. 初始化工作空间

    mkdir -p ~/ws_rmw_zenoh/src && cd ~/ws_rmw_zenoh/src
    git clone https://github.com/ros2/rmw_zenoh.git
    cd ~/ws_rmw_zenoh
    
  2. 依赖安装: 替换<DISTRO>为您的ROS 2发行版,执行以下命令来安装依赖。

    rosdep install --from-paths src --ignore-src --rosdistro <DISTRO> -y
    source /opt/ros/<DISTRO>/setup.bash
    
  3. 构建工作空间: 使用colcon以释放模式构建。

    colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
    

使用说明

设置环境

在使用之前,确保源用了刚构建的工作区。

source install/setup.bash

启动Zenoh路由器(临时步骤)

目前,需要手动启动Zenoh路由器。

ros2 run rmw_zenoh_cpp rmw_zenohd

终止其他RMW的ROS 2守护进程

避免因使用不同RMW导致的问题。

pkill -9 -f ros && ros2 daemon stop

示例运行

运行Talker和Listener节点

设置环境变量指定使用rmw_zenoh_cpp,并分别运行Talker与Listener节点。

export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run demo_nodes_cpp talker &  
ros2 run demo_nodes_cpp listener

此时,Listener应能接收到来自Talker的消息。

配置详情

Zenoh路由器检查

通过ZENOH_ROUTER_CHECK_ATTEMPTS环境变量控制连接行为:

  • 不设置或设为0,将无限等待路由器连接。
  • 小于0,跳过路由器检查。
  • 大于0,按设定次数尝试连接,每次尝试间隔1秒。

自定义配置文件

若需自定义Zenoh路由器和会话配置,可设置:

  • 对于路由器:使用ZENOH_ROUTER_CONFIG_URI指向自定义配置。
  • 对于会话:使用ZENOH_SESSION_CONFIG_URI。 例如,设置自定义路由器配置路径:
export ZENOH_ROUTER_CONFIG_URI=$HOME/MY_ZENOH_ROUTER_CONFIG.json5

跨主机连接

修改路由器配置,添加远程路由器端点,如:

{
  "connect": {
    "endpoints": ["tcp/192.168.1.1:7447"]
  }
}

确保所有参与通信的路由器间相互配置。

日志配置

通过RUST_LOG环境变量调整Zenoh的日志级别,例:

RUST_LOG=zenoh=debug

查看更多日志配置信息,请参考env_logger库文档。


本指南涵盖了ROS 2 RMW Zenoh的基本操作流程,从安装到运行示例应用,以及配置和日志管理的基础知识,旨在帮助用户快速上手。对于更深入的开发或特定场景的应用,建议详细阅读官方设计文档和源代码注释。

rmw_zenoh RMW for ROS 2 using Zenoh as the middleware rmw_zenoh 项目地址: https://gitcode.com/gh_mirrors/rm/rmw_zenoh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惠颉飞Wyman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值