我将ROS2与一个用于Python的本地RTI-DDS连接器连接,在这里我将在RTI-Connector中发布消息并在ROS2中订阅。你知道吗
对于名为DetectedObjectList
的消息,我有以下消息结构:
int16 id
// An array of objects of another message type
DetectedObject[ ] objects
这在IDL中被解释为无界序列。你知道吗
另一个名为DetectedObject
的消息:
int16 id
string name
int16 x
int16 y
假设用于通信的主题是“objects”,消息类型是“DetectedObjectList”。你知道吗
由于ROS2中的订户正在订阅int16类型的id和DetectedObject[]类型的对象,如何从RTI connector发布对象?你知道吗
RTI连接器中的通常流量为:
获取输出的实例:
output = connector.getOutput("MyPublisher::MyDataWriter")
发布实例:
output.instance.setNumber("id", 5)
output.write()
如何编写类型为DetectedObject
而不是setNumber
的对象?你知道吗
我没有ROS方面的经验,但我会尽力帮助您处理DDS/连接器部分。你知道吗
据我所知,在DDS中不能指定无界数组。可以有无界序列,但不能有数组。因此,如果您使用的类型如下所示:
或者有一个无界序列:
那么连接器代码如下所示:
当涉及到无界数组时,也许其他人可以提供更多关于ROS<;gt;DDS映射的信息。你知道吗
我希望这有帮助, 詹皮罗
相关问题 更多 >
编程相关推荐