一、问题描述
使用 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 的显示。所以按照上面分析的进行修改之后就可以正常显示话题数据了。