天天看点

rviz闪退问题: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfsg1/OgreMain/include/OgreAxisAlignedBox.h:252一、问题描述二、解决方法三、自己遇到的情况是这样的:

一、问题描述

使用 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
           
rviz闪退问题: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfsg1/OgreMain/include/OgreAxisAlignedBox.h:252一、问题描述二、解决方法三、自己遇到的情况是这样的:

二、解决方法

经过分析测试,发现这个问题的主要原因就是因为当前要 订 阅 的 话 题 数 据 中 有 不 正 确 的 数 据 或 者 配 置 信 息 . \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 的显示。所以按照上面分析的进行修改之后就可以正常显示话题数据了。