RIKIBOT-FX4多线激光雷达用谷歌cartographer构建3D地图

简介

上一篇介绍了用多线激光雷达构建用谷歌cartographer算法构建2D地图,这里介绍用多线激光雷达+谷歌cartographer算法构建3D点云地图,毕竟多线激光雷达就是用来专业构建3D地图的。
在这里插入图片描述

建图测试遇到的问题

怎么安装cartographer可以看前面章节,构建3D地图时这里不建议实时建图,建议用rosbag录包、播放的方式,本人用i7 5代迷你工控机+2G内存+32G固态硬盘(有条件的还是要上更好的硬件),实时测试基本上构建地图稍大一点然后就乱掉了,像用Jetson nano或者Jetson Nx基本上启动后没跑两下就乱掉了,个人估计这些算法用不上GPU,但CPU这种ARM还是比不上X86的,后面测试基本都是用工控机录包测试,效果很完美,建2D地图时实时建图随便玩都行。

录制数据包

  • 1、启动底盘

roslaunch rikibot bringup.launch

  • 2、启动多线雷达

roslaunch rslidar_sdk start.launch

  • 3、录制数据包

rosbag record -O slam /rslidar_points /imu/data /odom /tf /tf_static

基中slam是录制包名,名字可以随便取,后面是需要录制的相关话题,启动录制后,直接控制车行走即可,觉得差不多了就直接Ctrl+C关掉上面包有启动即可,在当前目录就会生成slam.bag这个录制包名
在这里插入图片描述

回放数据并构建地图

  • 1、启动cartographer 3D构建地图

roslaunch rikibot cartographer_3d.launch

  • 2、播放录制好的数据包

rosbag play --clock slam.bag

  • 3、打开rviz,这里打开rikibot/rviz下面的cartographer_3d.rviz,然后右侧可视化可以选择XYOrbit(rviz)可视化,这样就可以看到3D立体数据,左侧报了两个错误不用管,我查了一下,也没找到什么原因,但不影响结果
    在这里插入图片描述
  • 4、构建完后保存点云地图
    停止地图构建

rosservice call /finish_trajectory 0

转换成pbstream文件,执行完后会有一个slam.pbstream文件产生

rosservice call /write_state “{filename: ‘${HOME}/Work/slam.pbstream’}”

生成可视化的点云文件,这里会根据你系统算力大小与你构建地图大小来决定转换速度,硬件越好、地图越小转换的越快,反之。

roslaunch cartographer_ros assets_writer_backpack_3d.launch bag_filenames:=’/home/rikibot/Work/slam.bag’ pose_graph_filename:=’/home/rikibot/Work/slam.pbstream’

这一步执行完成后,我这边会报下面错误,但不影响相关文件的生成,也没搞清楚原因,看提示是执行完成后出的错误,可能是因为这台工控机配置太差的原因。
在这里插入图片描述
执行完成后会有一大堆文件与图片生成,下面核心的已经生成了点云文件pcd与ply格式的点云文件,以及地图图片,这个可以看相关的视频连接
在这里插入图片描述

RIKIBOT-FX4 多线激光雷达谷歌cartograhper算法3D建图

查看点云地图

  • 1、pcd格式的文件需要用pcl_viewer工具查看,如果没有可以直接安装 sudo apt-get install pcl-tools即可,查看直接输入下面命令就行,打开时间也与硬件性能有关,如果是大型地图,硬件太差了就打不开,这个上面的large_slam.bag这个包不敢拿出来做视频与写文章也是这个原因,手中工控机完全打不开,打开后可以用鼠标左键旋转查看,如果硬件性能太差,也不建议此操作,会让你怀疑人生。

pcl_viewer slam.bag_points.pcd

在这里插入图片描述

  • 2、ply格式的点云文件用meshlab这个工具查看,如果没有可以直接安装sudo apt-get install meshlab
    查看直接输入下面命令就行,打开时间也与硬件性能有关,至于打开后鼠标操作也根据手中硬件来看吧,,不然电脑会出现死机给你看。

meshlab slam.bag_points.ply

在这里插入图片描述

关键文件配置

  • 1、打开cartographer_3d.launch 文件,开启use_sim_time然后加载rikibot_x4.urdf这里配置了车体、imu、雷达的静态变换,然后就是重映射相关话题分别是雷达、imu、与odom话题
    在这里插入图片描述
    接下打开rikibot_3d.lua文件,这个文件是根据谷歌里面3d.lua文件重命名,写到我自己包里方便版本管理
    在这里插入图片描述

交流方式

QQ交流群:130486387
RIKIBOT店铺连接

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
激光雷达实现基于cartographer的室内小车导航需要以下步骤: 1. 硬件准备:首先需要一个激光雷达传感器,用于获取环境中的障碍物信息。常见的激光雷达有Hokuyo、SICK等。此外,还需要一台小车平台,可以选择具备驱动和定位功能的小车底盘。 2. 配置cartographerCartographer是一个开源的SLAM(Simultaneous Localization and Mapping)算法,可以用于实现室内环境的建图和定位。你可以从GitHub上获取Cartographer的源代码,并按照其文档进行配置和编译。 3. 雷达数据采集:通过激光雷达传感器获取环境中的障碍物信息。将激光雷达安装在小车上,并使用适当的固定装置使其保持稳定。通过激光雷达发送激光束并测量其返回时间,从而得到距离和角度信息。 4. 地图构建:使用Cartographer算法对激光雷达数据进行处理,生成室内环境的地图Cartographer会根据激光束的反射点信息进行建图,并同时进行定位,得到小车在地图中的位置。 5. 导航规划:基于生成的地图,使用导航算法规划小车的路径。常见的导航算法有A*算法、Dijkstra算法等。根据小车当前位置和目标位置,算法会生成一条最优路径,并将路径上的点作为目标点进行导航。 6. 小车控制:根据导航算法生成的目标点,通过驱动系统控制小车的运动。可以使用电机驱动器、舵机等设备来实现小车的移动和转向。 总结起来,激光雷达实现基于cartographer的室内小车导航需要配置Cartographer算法,采集激光雷达数据进行建图和定位,使用导航算法进行路径规划,并通过控制系统控制小车运动。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值