Gmapping报错 :[mapping-4] process has died 的可能解决原因与解决方法

一、问题描述

自己在运行 Gmapping 时候遇到如下问题:
一旦自己运行数据集,就报如下错:

[ INFO] [1615126357.797909859, 1607495981.113536673]: Laser is mounted upwards.
[mapping-4] process has died [pid 26559, exit code -11, cmd /home/wong/catkin_ws/devel/lib/gmapping/slam_gmapping scan:=/r2000_node/scan __name:=mapping __log:=/home/wong/.ros/log/2a1cf17a-7f4f-11eb-bcb2-2c6e85a86894/mapping-4.log].
log file: /home/wong/.ros/log/2a1cf17a-7f4f-11eb-bcb2-2c6e85a86894/mapping-4*.log

二、解决方法

1.结论和解决方法

Gmapping 只适用于 单帧二维激光点数小于1440的点,如果单帧激光点数大于1440,那么就会出现[mapping-4] process has died 这样的问题。
所以把单帧二维激光点数配置为1440,就可以正常进行建图了。

2.Debug过程

刚开始是以为自己没有写参数 <param name="use_sim_time" value="true"/>,但是当自己加上这个参数依旧报上面的错误。

后来自己使用 “控制变量法”,一步一步调试,一步一步修改数据集文件配置,发现依旧会出现这样的问题。后来换了另外一个激光的数据集,竟然可以正常运行!!!
然后查看单帧激光的点数,发现两个数据集的单帧激光点数不同,也就是激光分辨率不同。

所以能够运行 Gmapping 的数据集单帧激光点数是1440,不能运行Gmapping 算法的数据集对应的单帧激光点数是3600。 所以以后对于这种情况,要么配置激光单帧激光点数为1440,要么编写一个 二维激光点降采样的程序,将单帧激光点数高于1440的topic降采样为单帧激光点数低于1440的topic。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值