使用mid360进行fast_lio建图、octomap生成栅格地图

 前面我已经实现了fast_lio建图并使用octomap转为三维栅格地图,今天来填上次留的坑

使用Livox-Mid360激光雷达,复现FAST_LIO(保姆级教程)-CSDN博客

这是我上次写的,来复现上次失败的,这个教程:

使用mid360从0开始搭建实物机器人入门级导航系统,基于Fast_Lio,Move_Base-CSDN博客

 之前由于怕把我已经装好的雷达驱动给破坏了,我想着新建一个工作空间,然后在新的空间里去再装一次雷达驱动,装好后再去编译fast_lio,但这样一直编译失败,显示找不到驱动的包,试了很多方法也不行。最后大着胆子在已经编译好的雷达驱动工作空间里进行了fast_lio的编译,居然就成功了。想了一下,应该是路径的问题。

按照链接里的教程来,几乎没有大问题,感谢大佬们的开源!

前提:保证你已经安装好了mid360的雷达驱动

正式开始!

一、下载大佬源码

GitHub - 66Lau/NEXTE_Sentry_Nav: The navigation system of "sentry" for Next-E team in RoboMaster2023

 下载之后记得把文件名改了

二、安装依赖

sudo apt install libeigen3-dev

sudo apt install libpcl-dev

# ros2需要安装
sudo apt install ros-humble-pcl-ros



三、编译fast_lio

#进入你的雷达驱动工作空间,我的是catkin_livox_ros_driver2
cd catkin_livox_driver2

#将源码包放入src,和驱动的包在同一目录下,见图

#编译
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

source devel/setup.bash



 7c4aa25a37d648e7911e9b04ebfe70a3.png

 

注意,这里一定是先把驱动编译成功再编译fast_lio

四、安装sophus库

直接照搬教程

# 安装sophus
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build
cd build
cmake ../ -DUSE_BASIC_LOGGING=ON
make
sudo make install

报错的话:打开其位置so2.cpp:32:26改为
SO2::SO2()
{
  unit_complex_.real(1.);
  unit_complex_.imag(0.);
}


¥sophus安装成功后再重新编译fast-lio

 五、运行fast_lio

source devel/setup.bash
roslaunch livox_ros_driver2 msg_MID360.launch
#再开一个终端
source devel/setup.bash
roslaunch fast_lio mapping_mid360.launch

运行完毕后结果自动保存到PCD文件夹中,名称为scans.pcd

结果:1e23dd09cf7d4766b668e8082ceec288.png

六、使用octomap转为栅格地图

1.转为二维栅格地图

我之前已经装过octomap了,如果你没有,按照大佬的教程:

sudo apt install ros-noetic-map-server
# 打开一个终端.(ctrl+alt+T)输入下面指令安装octomap.
sudo apt-get install ros-noetic-octomap-ros #安装octomap
sudo apt-get install ros-noetic-octomap-msgs
sudo apt-get install ros-noetic-octomap-server
 
# 安装octomap 在 rviz 中的插件
sudo apt-get install ros-noetic-octomap-rviz-plugins
# install move_base
sudo apt-get install ros-noetic-move-base

#如果使用方式一,还需将pcd2pgm拉到工作空间的src目录下编译
#本文代码仓库已经包含了该仓库,再sentry_tools/pcd2pgm,如果直接使用本文代码仓库,则不需要再拉
git clone https://github.com/Hinson-A/pcd2pgm_package.git

 教程里作者已经把建图,重定位和栅格地图写在了一个launch里:

roslaunch fast_lio_localization sentry_build_map.launch

结果:

092ce661e9064930a82505c2072880d5.png

 如果你想保存二维栅格地图:

# save the pgm map file
rosrun map_server map_saver map:=/<Map Topic> -f PATH_TO_YOUR_FILE/mymap
#eg,举例:
rosrun map_server map_saver map:=/projected_map -f /home/rm/ws_sentry/src/FAST_LIO/PCD/scans

e5d34dae7c9e42dc972c4f13e33333a8.png

 2.保存为三维栅格地图

参考这篇里文末的链接: 

 使用Livox-Mid360激光雷达,复现FAST_LIO(保姆级教程)-CSDN博客

 将前面建图得到的scans.pcd文件放到data文件夹中,然后去修改launch文件里的路径,就可以了。

地图保存:

rosrun octomap_server octomap_saver -f my_map1.bt

octovis my_map.bt  #查看保存的地图

结果:

f328a1be75594d9aa90d18b86501afa6.png

这是点云和地图一起显示的结果,单独显示地图:

cdade577d46540c5b98b4359af22fdfe.png

 这次的效果感觉比上次的好。

这样的圆满完成了!!!

 

 

### 如何使用 Fast-LIO 实现 SLAM #### 准备工作 为了成功实现基于Fast-LIO的SLAM,需先准备好硬件设备并配置软件环境。通常情况下,这涉及到LiDAR传感器(如Livox MID-360)以及惯性测量单元(IMU),这些组件的数据流将被用于构地图。 对于软件方面,在Ubuntu操作系统环境下推荐采用ROS(机器人操作系统)作为开发平台。确保已正确安装ROS版本,并设置好对应的Python解释器和其他依赖项[^3]。 #### 下载与编译源码 获取Fast-LIO项目的最新版源代码是必要的第一步。可以通过GitHub仓库克隆项目到本地计算机上: ```bash git clone --recursive https://github.com/hku-mars/FAST_LIO.git ~/catkin_ws/src/ cd ~/catkin_ws && catkin_make -j1 source devel/setup.bash ``` 上述命令会拉取Fast-LIO库至指定目录内,并完成编译过程以便后续调用其功能节点[^1]。 #### 配置参数文件 根据所使用的具体型号调整相应的启动脚本中的参数设定非常重要。例如当选用Livox系列激光雷达时,则应参照官方文档修改`mapping_avia.launch`内的相应字段来匹配实际连接情况;同样地也要针对IMU数据同步等问题作出适当处理[^4]。 #### 启动系统 一切准备就绪之后就可以尝试执行完整的SLAM流程了。打开终端窗口依次输入如下指令以激活各个服务端口并加载预设好的场景模型: ```bash roslaunch livox_ros_driver2 msg_MID360.launch # 开启LiDAR驱动程序 roslaunch fast_lio mapping_avia.launch # 执行Fast-LIO SLAM算法 rviz -d ./config/rviz_config.rviz # 可视化显示结果 ``` 以上步骤能够帮助用户快速搭起一套基于Fast-LIO框架下的三维空间重实验环境[^5]。 #### 数据保存与分析 最后一步是在测试过程中定期保存生成地图文件供后期研究之用。一般而言,可通过RVIZ插件或者专门设计的小工具来进行此操作。此外还可以利用MATLAB等科学计算工具进一步解析所得成果的质量指标。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值