ROS rtabmap rgbd_image empty headertimestamp。

问题描述 投票:0回答:1

我在Ubuntu 18.04上运行ROS Melodic。我试图使用Intel realsense d451i深度摄像头和编码器来创建一个自主机器人。正确的Tf也已经实现了。由于我们没有使用任何激光扫描,我们正试图使用rtabmap在点云中映射我们的环境。

我们按照以下ROS教程中的2.4点来设置我们的启动文件。http:/wiki.ros.orgrtabmap_rosTutor。...

这就是我们已经可以根据这些信息创建的启动文件。

 <launch>
  <group ns="rtabmap">

    <node pkg="nodelet" type="nodelet" name="rgbd_sync" args="standalone rtabmap_ros/rgbd_sync" output="screen">
      <remap from="rgb/image"       to="/camera/color/image_raw"/>
      <remap from="depth/image"

 to="/camera/depth/image_rect_raw"/>
  <remap from="rgb/camera_info" to="/camera/color/camera_info"/>
  <remap from="rgbd_image"      to="rgbd_image"/> <!-- output -->

  <!-- Should be true for not synchronized camera topics
       (e.g., false for kinectv2, zed, realsense, true for xtion, kinect360)-->
  <param name="approx_sync"       value="false"/>
</node>

<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">
      <param name="frame_id" type="string" value="base_link"/>

      <param name="subscribe_depth" type="bool" value="false"/>
      <param name="subscribe_rgbd" type="bool" value="true"/>
      <!-- <param name="subscribe_scan_cloud" type="bool" value="true"/> -->

      <remap from="odom" to="/odom"/>
      <remap from="rgbd_image" to="rgbd_image"/>
      <!-- <remap from="scan_cloud" to="/camera/depth/color/points"/> -->

      <param name="queue_size" type="int" value="50"/>

      <!-- RTAB-Map's parameters -->
      <param name="RGBD/AngularUpdate"        type="string" value="0.01"/>
      <param name="RGBD/LinearUpdate"         type="string" value="0.01"/>
      <param name="RGBD/OptimizeFromGraphEnd" type="string" value="false"/>
</node>
</group> </launch>

当启动这个文件时,我们得到了一个不断产生的警告。

    [ WARN] [1589361789.149552328]: /rtabmap/rtabmap: Did not receive data since 5 seconds! Make
sure the input topics are published ("$ rostopic hz my_topic") and the timestamps in their
header are set. If topics are coming from different computers, make sure the clocks of the
computers are synchronized ("ntpdate"). If topics are not published at the same rate, you could
increase "queue_size" parameter (current=50).
    /rtabmap/rtabmap subscribed to (approx sync):
       /rtabmap/odom,
       /rtabmap/rgbd_image

我们检查了一下,在正确的主题 "odm "上显示了里程表的信息 同时时间戳看起来也是正确的。我们监听了新生成的主题 "rtabmaprgdb_image",可以看到相机帧被使用。但是它生成的每一帧,除了一些随机的0之外,头是完全空的。接下来是这些帧结束的例子。

    ...   209, 6, 209, 6, 214, 6, 219, 6, 219, 6, 219, 6, 224, 6, 224, 6, 229, 6, 229, 6, 229,
6, 234, 6, 234, 6, 234, 6, 239, 6, 239, 6, 234, 6, 234, 6, 229, 6, 224, 6, 224, 6, 224, 6, 214,
6, 209, 6, 209, 6, 199, 6, 195, 6, 199, 6, 204, 6, 209, 6, 209, 6, 214, 6, 214, 6, 219, 6, 224,
6, 229, 6, 229, 6, 229, 6, 224, 6, 224, 6, 224, 6, 224, 6, 224, 6, 224, 6, 219, 6, 219, 6, 224,
6, 224, 6, 229, 6, 234, 6, 239,  6, 244, 6, 255, 6, 4, 7, 14, 7, 20, 7, 25, 7, 30, 7, 0, 0, 0,
0, 0, 0, 0, 0]
    rgbCompressed: 
      header: 
        seq: 0
        stamp: 
          secs: 0
          nsecs:         0
        frame_id: ''
      format: ''
      data: []
    depthCompressed: 
      header: 
        seq: 0
        stamp: 
          secs: 0
          nsecs:         0
        frame_id: ''
      format: ''
      data: []

有谁知道我们如何同步 "rtabmaprgdb_image "中的时间戳?我们已经尝试过使用 "about_sync"。或者也许问题出在其他地方?我们是SLAM的新手。

先谢谢你!Joren

mapping ros slam
1个回答
0
投票

更新:我意识到头只是被压缩了,当我在 "rtabmaprgbd_imageheader "上听头的时候,我可以看到它是正确的,可惜的是,这还不能解决我的问题:( 我目前正在搜索是否与系统时间有关。

© www.soinside.com 2019 - 2024. All rights reserved.