【发布时间】:2018-06-27 20:16:03
【问题描述】:
我有一个使用 rosbridge_suite/web 套接字发布/订阅 ROS 的 JavaScript Web 应用程序。
我可以使用 std_msgs/String、std_msgs/Int32 等成功发布/订阅主题,所以我知道我的连接很好。我遇到的问题是知道如何格式化要发布到接受几何/Point32 的主题的数据。
这是一个例子:
const topic = new ROSLIB.Topic({
ros, // defined elsewhere
name: '/my_topic',
messageType: 'geometry_msgs/Point32'
});
topic.publish({ data: { x: 1.0, y: 1.0, z: 1.0 } });
然后,我运行rostopic echo /my_topic,但无法显示。同样,我的所有其他主题都有效,并且它们的结构相同。我和我的同事最终将他的 messageType 更改为字符串并解析出值,但我真的认为这应该是可能的。有什么想法吗?
这是我尝试过的:
publish({ data: { x: 1.0, y: 1.0, z: 1.0 } })
publish({ x: 1.0, y: 1.0, z: 1.0 })
publish(JSON.stringify({ x: 1.0, y: 1.0, z: 1.0 } }))
publish({ data: JSON.stringify({ x: 1.0, y: 1.0, z: 1.0 } }) })
publish({ data: 'x: 1.0, y: 1.0' })
const coords = ROSLIB.Message({
x: 1.0,
y: 1.0,
z: 1.0
});
publish({ data: coords });
publish(coords);
...
你明白了。
我正在使用 ROS Kinetic。
【问题讨论】:
标签: javascript websocket ros