一、问题描述

使用 rviz 订阅某个话题的时候,rviz 终端出现以下报错:

rviz: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfsg1/OgreMain/include/OgreAxisAlignedBox.h:252: void Ogre::AxisAlignedBox::setExtents(const Ogre::Vector3&, const Ogre::Vector3&): Assertion `(min.x <= max.x && min.y <= max.y && min.z <= max.z) && "The minimum corner of the box must be less than or equal to maximum corner"' failed.
Aborted

在这里插入图片描述

二、解决方法

经过分析测试,发现这个问题的主要原因就是因为当前要 订阅的话题数据中有不正确的数据或者配置信息.\color{#FF0000}{订阅的话题数据中有不正确的数据或者配置信息.}.

所以需要修改话题的发布,使话题能够发布正确的数据。

三、自己遇到的情况是这样的:

自己使用 rviz 订阅某一个 odom 话题的时候,直接导致 rviz 闪退,并且报上面的错误。但是此时 rviz 订阅其他话题都能正常显示。所以猜测是 该 odom 话题有问题。

通过 rostopic echo 发现:
使 rviz 报错闪退的话题中的 odom_msg.pose.covariance 中有几个非常大的数据。是这几个非常大的数据导致的。
所以重新修改掉这几个非常大的协方差数据,就可以在 rviz 中正常显示了。

修改前的 odom 数据(这个话题数据 会导致 rviz 闪退):

---
header: 
  seq: 5682
  stamp: 
    secs: 1264198839
    nsecs: 200013000
  frame_id: "odom"
child_frame_id: ''
pose: 
  pose: 
    position: 
      x: 5.10070188766
      y: -0.0767400033807
      z: 0.0
    orientation: 
      x: 0.0
      y: 0.0
      z: -0.351045426132
      w: 0.936358429658
  covariance: [4e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028900000000000003]
twist: 
  twist: 
    linear: 
      x: 0.480280011892
      y: 0.0031543020159
      z: 0.0
    angular: 
      x: 0.0
      y: 0.0
      z: -0.141017943621
  covariance: [4e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028900000000000003]
---

修改后的 odom 数据(这个话题数据 可以在 rviz 中正常显示):

---
header: 
  seq: 109
  stamp: 
    secs: 1264198823
    nsecs: 591010000
  frame_id: "odom"
child_frame_id: ''
pose: 
  pose: 
    position: 
      x: -0.00228483468371
      y: 0.000182211201756
      z: 0.0
    orientation: 
      x: 0.0
      y: 0.0
      z: -0.00160702870368
      w: 0.999998708729
  covariance: [4e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028900000000000003]
twist: 
  twist: 
    linear: 
      x: 0.0
      y: -0.0
      z: 0.0
    angular: 
      x: 0.0
      y: 0.0
      z: 0.0
  covariance: [4e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4e-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028900000000000003]
---

刚开始自己以为是话题的child_frame_id 为空导致的,但是测试之发现,child_frame_id 为空并不影响 rviz 的显示。所以按照上面分析的进行修改之后就可以正常显示话题数据了。

Logo

一站式 AI 云服务平台

更多推荐