我正在使用 xml 应用程序创建将 ROS2 与本机 RTI DDS 连接,即意味着所有 QoS 设置都在此 xml 文件中。
现在,对于本机 DDS 应用程序,我可以设置这个 .xml 文件,但是如何为基于 ROS2 的功能设置类似的配置文件?
我正在使用 xml 应用程序创建将 ROS2 与本机 RTI DDS 连接,即意味着所有 QoS 设置都在此 xml 文件中。
现在,对于本机 DDS 应用程序,我可以设置这个 .xml 文件,但是如何为基于 ROS2 的功能设置类似的配置文件?
您是否查看过以下材料:https ://github.com/ros2/ros2/wiki/About-Quality-of-Service-Settings ?ROS2 有一组有限的用于设置 QoS 的选项。
通过在 DDS 应用程序中设置 QoS 策略以匹配 ROS2 中的设置,您可能会取得更大的成功。(顺便说一句,这是 RTI Admin Console 使事情变得更容易的地方;它会立即显示参与者之间的任何 QoS 不匹配)。
我用来获得 DDS/ROS2 互操作性的 DDS QoS 设置包括:
<publisher_qos>
)<participant_qos><resource_limits>
中为 type_code 和 type_object == 0 设置 max_serialized_length 下)ROS2 RMW代码中做的QoS设置不多;Connext 库将使用正常搜索顺序(在此处详述)查找用户 QoS 设置的来源——这意味着您可以使用多种方法为 ROS2 下的 Connext 库提供自己的 QoS 设置。这是我所做的: