roslibjs - 使用自定义消息订阅主题

roslibjs - subscribe to topic with custom messages

我想通过 roslibjs 在自定义 gps 消息中访问 gps 节点发布的数据。 因此,我使用了 this tutorial,但在我的例子中,订阅回调返回的消息对象始终只是 undefined.

  var listener = new ROSLIB.Topic({
    ros : ros,
    name : '/gps_raw',
    messageType : 'gps_node/gps_raw'
  });
  listener.subscribe(function(message) {
    console.log('Received message on ' + listener.name + ': ' + message.data);
  });

结果:

Received message on /gps_raw: undefined

消息结构:

int32 gps_sats
float32 lat
float32 lon
int32 heading
int32 alt

https://github.com/MrGrimod/ros_airdrop/blob/master/src/gps_node/msg/gps_raw.msg

您的消息类型没有 data 字段。尝试在控制台日志中显示其他字段:gps_statslatlon

编辑:您还可以使用 JSON.stringify 来显示消息的所有内容,如下所示:

console.log(`Received message on  ${listener.name}: ${JSON.stringify(message)`);