当确定好雷达正常运行、lego-loam正常运行后,就可以开始使用雷达实时运行lego-loam了。

步骤一:连接硬件

步骤二:修改电脑IP地址

        (用完雷达记得将设置中有线地址选择之前的默认地址,否则上不了网)

步骤三:使用雷达实时建图需要修改lego-loam的launch文件

        打开~/lego-loam_ws/src/LeGO-LOAM/LeGO-LOAM/launch/run.launch文件,将<param name="/use_sim_time" value="true" />的true改为false(用数据集运行lego-loam则将false改为true)。

步骤四:运行雷达

cd RS_Helios_16P_ws
source devel/setup.bash
roslaunch rslidar_sdk start.launch

步骤五:运行lego-loam

cd lego-loam_ws
source devel/setup.bash
roslaunch lego_loam run.launch

步骤六:保存pcd

        勾选rviz左侧Map Cloud(不是Map Cloud(stack)),map cloud(stack)对应的话题为:/registered_cloud,此话题发布的是每一帧新加入地图的点云,使用栈的原理累加生成点云地图,当地图范围到一定程度时,就会丢弃最初建立的部分点云地图。map cloud对应的才是真正保存的全局地图,话题名为:/laser_cloud_surround。
建图快结束时新开终端执行(因为地图是累积的,快结束的时候录制/laser_cloud_surround就可以):

rosbag record -o out /laser_cloud_surround

在当前目录会生成一个bag文件,例如out_2023-04-18-21-36-51.bag。

等待建图结束后,Ctrl+C结束掉rosbag命令,存为pcd格式的文件:

rosrun pcl_ros bag_to_pcd 包名.bag /laser_cloud_surround pcd

最后的pcd的意思是在当前目录下创建一个名为pcd文件夹,保存bag包中每一帧的/laser_cloud_surround话题生成的pcd点云文件,其中最后一个生成的(也是内存最大的)pcd文件即为建立的点云地图。

会在当前文件夹下生成一个pcd文件夹,这里面的最后一个pcd文件为最终的建图结果,使用pcl_viewer查看:

pcl_viewer 包名.pcd

也可下载CloudCompare查看。

如果觉得建立出来的点云地图较稀疏,可以修改lego-loam源码中imageProjection.cpp中的labelComponents函数,修改聚类阈值可改变点云的稀疏度。

关于雷达静止不动,rviz上雷达坐标一直在缓慢偏移可参考:

关于lego-loam的总结(一)_虚函数机器人的博客-CSDN博客最近在测试legoloam的时候,总是会碰到雷达坐标系剧烈漂移的情况,即使现实中雷达静止,在rviz中的显示也漂移的很厉害。建的地图也十分糟糕。那么雷达的坐标为什么会漂移,雷达的位置信息是如何计算和确定的?在我想要加入imu,试图通过订阅imu话题来取代雷达的位置信息时,我发现全部代码中,IMU的句柄函数只有两个,且未被使用。继续查找,我发现雷达的位置信息发布被写在了featureAssociation中的PublishOdometry函数中,具体变量为transform数组!...https://blog.csdn.net/qq_31775031/article/details/116054444?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-116054444.pc_agg_new_rank&utm_term=lego+loam+z%E8%BD%B4%E6%BC%82%E7%A7%BB&spm=1000.2123.3001.4430

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐