【问题标题】:How to identify which dds is used for transportation of data in ros2.0 integration?ros2.0集成中如何识别哪些dds用于数据传输?
【发布时间】:2018-02-27 08:41:17
【问题描述】:

我正在使用 ROS2.0 和默认的 DDS 供应商 FastRTPS,如果我想切换到 RTI connext(我已经安装)我必须进行哪些环境更改,是否有任何程序来识别哪个 DDS如果系统中安装了多个 DDS,是否用于通信?

我还有一个补充问题:

我们可以将 DDS 用作两个 ros(not ros2.0) 系统之间的通信媒介吗?如果是,那么我们将如何在发布者和订阅者中使用 QoS?

如果我分享的第二个问题有任何支持文件,那将是一个很大的帮助。

谢谢

【问题讨论】:

    标签: ros data-distribution-service


    【解决方案1】:

    要从 Fast RTPS 切换到 Connext,您需要: 1.设置环境变量RMW_IMPLEMENTATION=rmw_connext_cpp 2.确保环境也为Connext安装设置(PATH,NDDSHOME) 3.(可能)使用上述方法重建 ROS 2。

    请参阅https://github.com/ros2/ros2/wiki/Working-with-multiple-RMW-implementations 了解更多详细信息。

    确定正在使用哪种 DDS 实现的快速方法是使用 WireShark 捕获底层 RTPS 数据包; WireShark 包含一个 RTPS 解析器,可以显示任何捕获的 RTPS 数据包的 vendorId。

    至于补充问题:有一个ROS 1 / ROS 2通信桥包。请参阅https://github.com/ros2/ros1_bridge/blob/master/README.md#build-the-bridge-from-source 了解更多信息。

    【讨论】:

    • 感谢 @neil-rti 推荐 WireShark,我没想到。
    • 关于第二个问题:我对使用 ros_bridge 有一些想法,并尝试了一些用例。我的具体问题是我们能否在不涉及 ros2 的情况下使用 DDS 作为 ros 系统之间的通信媒介再次感谢您的回复。
    • wireshark 非常适合分析数据包并获取 DDS 信息
    • 您能否详细说明在没有 ROS2 的情况下使用 DDS 作为 ROS 系统之间的通信媒介? ROS 没有使用 DDS,所以如果你想使用 DDS 进行通信是不可能的。你必须找到或写一些东西来连接这种通信。例如,你有这个包github.com/ros2/ros1_bridge,可以用来在 ROS 和 ROS2 之间进行通信
    猜你喜欢
    • 2021-11-24
    • 1970-01-01
    • 2016-10-19
    • 2017-11-30
    • 1970-01-01
    • 2011-01-11
    • 2017-05-30
    • 1970-01-01
    • 2011-02-23
    相关资源
    最近更新 更多