中山祥云网站建设,电子商务网站建设实训过程,网站免费制作平台,上海排名前十装修公司问题1: fastdds发布的类型#xff0c;ros2接收不到 原因: 在QoS相互兼容情况下#xff0c;无法通信是由于idl类型没有使用兼容ros2的格式。如用
ros2 topic list -t
查看时#xff0c;会发现同一个topic有两个不同的类型#xff0c;如DDS会显示#xff1a;myclass::peo…问题1: fastdds发布的类型ros2接收不到 原因: 在QoS相互兼容情况下无法通信是由于idl类型没有使用兼容ros2的格式。如用
ros2 topic list -t
查看时会发现同一个topic有两个不同的类型如DDS会显示myclass::people::Name 而ros2会显示: myclass/people/Name,这就早成类型部匹配ros2无法解析。 解决方法: 手动更改($msg_name)PubSubTypes.cxx文件中的构造函数更改setName(..)函数如 setName(myclass::msg::Name);
//更改为
setName(myclass::msg::dds_::Name_); 使用fastddsgen命令加入 -typeros2参数重新生成新的idl源文件: fastddsgen -replace -typeros2 myclass.idl 参考文档:
Topic and Service name mapping to DDS
Use ros2-FastRTPS with standalone FastRTPS programs - ROS Answers: Open Source QA Forum