ROS 段错误、核心转储、rviz闪退问题解决

报错曾出现在许多地方,处理串口数据的rosrun时、在rviz显示点云时。

总之一句话,仔细检查代码,改正问题,同时备份好中间无差错的过程,随时准备重建工程或者对比查看。


运行处理串口数据的rosrun:
[段错误](核心已转储)

简单说就是程序对内存的访问超出了系统分配的空间,指针使用不当、堆栈溢出等都会导致段错误,访问系统数据区也会导致段错误。

段错误的输出不带任何有帮助的信息,不能确定是哪行代码引起的。关键是如何定位出问题的位置。


rviz的PointCloud2运行中途:
在这里插入图片描述
报错信息:

rviz: /build/ogre-1.9-B6QkmW/ogre-1.9-1.9.0+dfsg1/OgreMain/include/OgreAxisAlignedBox.h:252:void Ogre::AxisAlignedBox::setExtents(const Ogre::Vector3&, const Ogre::Vector3&): 假设 ‘(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"’ 失败。

然后rviz界面自动关闭,弹窗意外中止。

在这里插入图片描述
报错信息:

[sim3-4] process has died [pid 9890, exit code -11, cmd /home/xcapecjh1804/catkin_ws/devel/lib/point_cloud_processing/pointout __name:=sim3 __log:=/home/xcapecjh1804/.
ros/log/65a1c63e-e784-11ea-b79a-000c291c133f/sim3-4.log].
log file: /home/xcapecjh1804/.ros/log/65a1c63e-e784-11ea-b79a-000c291c133f/sim3-4*.log

重新打开rviz又会正常运行一会,然后又会出现同样的问题。

尝试过在launch文件中,把rviz的节点加上respawn=“true”,使rviz窗口在每次关闭后自动打开,但是并不能从根本上解决问题,而且会出现不断关闭,不断打开的"壮观场面"。

最后,检查代码发现给rviz的话题有问题,改正后才彻底解决。


解决方法:
检查代码中的数据,传输数据中可能有不正确或数量不对的地方,导致超出了分配的内存等。修改代码中问题才是最终办法。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值