【问题标题】:How to publish 2D lists with ROS?如何使用 ROS 发布 2D 列表?
【发布时间】:2020-07-06 23:18:09
【问题描述】:

我有一个列表,里面有字典列表,我想将里面的信息发布到另一个节点。

我有类似的东西:

[[ {data0 : String, start0 : Float, end0 : Float}, {data1 : String, start1 : Float, end1 : Float}, {data2 : String, start2 : Float, end2 : Float} ], {data0 : String, start0 : Float, end0 : Float}, {data1 : String, start1 : Float, end1 : Float} ]

所以我想发布一个二维字符串列表和两个二维浮点列表,但我不知道如何使用 custom_message。

【问题讨论】:

  • 如果你真的很懒,在python中,你可以使用jsonget it back out,通过String msg发送。如果您想从 ROS 强大的类型检查和编译时错误捕获中受益,那么您需要一个自定义消息。

标签: python ros


【解决方案1】:

您将有 2 个 msg:一个 msg 定义 struct/dict {data : String, start: float, end: float},另一个将声明它们的某种排列。 (See also.)

# MyMsg.msg
float32 data
string start
string end

选项:

# MyMsgArray.msg
Header header
MyMsg[] data
# MyMsgMatrix.msg
Header header
MyMsg[][] data
# MyMsgPairArray.msg
Header header
MyMsg[2][] data

或者这两个:

# MyMsgPair.msg
float32[2] data
string[2] start
string[2] end
# MyMsgPairArray.msg
Header header
MyMsgPair[] data

记得在package.xml和CMakeLists.txt中添加相关的东西:http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多