ros小车实现slam_gmapping建图
ros小车2d建图,如果有雷达,那么使用gmapping方式建图,其实就一个命令,启动建图程序,它默认会启动小车,之后,我们通过手柄或者键盘控制小车就可以有地图产生,然后就需要保存地图,新手上路,不免出现很多问题。
我这里是轮趣科技WHEELTEC的一款ros教育机器人,根据官方给的示例,在turn_on_wheeltec_robot/launch下面就有一个mapping.launch的启动文件,默认使用的是gmapping建图方式,直接启动该文件即可。
roslaunch turn_on_wheeltec_robot mapping.launch
不出意外,就出现红叉叉:
ERROR: cannot launch node of type [gmapping/slam_gmapping]: gmapping
解决办法就是安装ros-melodic-gmapping,ros-melodic-move-base。
apt install ros-melodic-gmapping ros-melodic-move-base
再重新启动不报错了,但是我们打开rviz查看地图,没有显示地图,我们点击Add,添加Map,Topic选择/map,又出现新的告警:
Status Warn: no map received
这个警告呢,主要是雷达的问题,这里启动成功,查看topic都有,/map,/scan,而且rviz中LaserScan显示正常,通过 rostopic echo /scan没有任何输出,就是雷达启动失败。
根据网上的资料,是因为雷达型号默认设置错误。在文件turn_on_wheel_robot/launch/wheeltec_lidar.launch中根据实际情况设置合适的型号。我这里默认是default = "ls_M10P_uart",实际上我的雷达型号是N10,所以这里修改default="ls_N10"

雷达型号,一般在雷达上有标识:

再次启动,雷达启动正常,打印信息如下所示:

对比前面启动失败的情况,正常启动之后,Initialised lslidar x10 without error 后面还多了雷达初始化信息。 启动失败的时候,是没有这些信息的。
接着可以测试雷达数据,命令行运行 rostopic echo /scan,就会输出很多点位信息。
这个时候rviz里面就显示正常了:

运行一段时间之后,可以保存地图,如下所示,直接在turn_on_wheeltec_robot/map2目录下保存:
rosrun map_server map_saver -f WHEELTEC

生成的文件有pgm,yaml格式。
正常gmapping建图,就两个命令,一个启动建图 roslaunch turn_on_wheeltec_robot mapping.launch和一个保存地图 rosrun map_server map_saver -f WHEELTEC。但是新手常常会遇到很多奇怪的问题。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
