Octomap建图复现记录——使用Mid360(3)

我在上篇里写了想要实时发布接收点云建图,又刚到手了mid360,这下可以试一试。

思想就和这篇博客里的差不多。

想要实现我这篇里的内容,你需要:

1.已经安装编译好octomap,是可以修改源码的那种。

Octomap复现记录(2)-CSDN博客

2.已经可以使用mid360或其他雷达,收到点云数据。

Livox_Mid-360激光雷达使用教程-CSDN博客

现在,我们就来实现使用mid360激光雷达实时发布点云数据,让octomap_server接收到点云数据生成八叉树地图。

1.需要看现有launch文件

(1)mid360发布的点云话题是livox/lidar

(2)octomap的launch文件:octomap_mapping.launch

<launch>
<!-- 启动octomap_server节点 -->
	<node pkg="octomap_server" type="octomap_server_node" name="octomap_server">
		<!-- 设置分辨率参数,表示八叉树中每个体素的大小 -->
		<param name="resolution" value="0.05" />
		
		<!-- fixed map frame (set to 'map' if SLAM or localization running!) -->
			<!-- 固定的地图坐标系 -->
		<param name="frame_id" type="string" value="livox_frame" />  #修改1
		
		<!-- maximum range to integrate (speedup!) -->
		<!-- 最大传感器整合范围,超过此范围的数据将被忽略,以提高处理速度 -->
		<param name="sensor_model/max_range" value="5.0" />
		
		
		<!-- data source to integrate (PointCloud2) -->
		<!-- 数据源重映射,将输入数据源从cloud_in重映射到/narrow_stereo/points_filtered2 -->
		<remap from="cloud_in" to="/livox/lidar" />   #修改2
	
	</node>
</launch>

这是我已经修改过的文件,作了两个修改:

一是:更改“frame_id”为“livox_frame”,使其与雷达的一致。不然octomap_server会报错,把雷达信息滤除。(但这里我也存有疑惑,这里涉及了TF变换,做个标记),先贴一个不更改的时候的节点图:

二是:更改remap话题为“/livox/lidar”,使其接收雷达发布的点云。

2.准备运行

#启动雷达
cd catkin_livox_ros_driver2  #换成你自己的工作空间
source devel/setup.bash
roslaunch livox_ros_driver2 rviz_MID360.launch

#启动建图
cd octomap_mapping_ws     #换成自己的工作空间
source devel/setup.bash
roslaunch octomap_server octomap_mapping.launch

#地图保存
rosrun octomap_server octomap_saver -f my_map1.bt

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

3.结果展示

这里保存地图的时候我觉得也有点奇怪,因为它保存地图的时间似乎是一定的,在我还没想结束的时候它就停止保存了,也就是说,这样保存的地图似乎只是静态的?不知道是不是我理解有误,欢迎各位大佬指出!

可以调调看分辨率?:


 

好了,这样就完成了使用mid360发布点云,octomap建图啦!还有的问题留待后面解决。

最后还有一点,我觉得直接用octomap接收点云建图效果不好,而且他好像不能实时更新,也就是不能滤除已经不需要的部分。看了一些其他教程,我觉得或许可以先使用一个slam来建图。把建的点云地图传给octomap建三维占据地图。比如这个:使用mid360从0开始搭建实物机器人入门级导航系统,基于Fast_Lio,Move_Base | AI技术聚合

后面再尝试尝试吧!不过我要先在平台上把现有的给部署上。

03-23
### 关于Mid-360的技术资料 #### 设备特性概述 Livox Mid-360 是一款高性能的激光雷达传感器,其设计特点在于提供极宽广的视场角(Field of View, FOV)。具体而言,它的水平FOV达到了完整的360°,而垂直方向的最大FOV则为59°[^1]。这种配置使得该设备非常适合用于需要全方位感知的应用场景。 #### SLAM应用支持 在自动驾驶以及机器人定位导航等领域,SLAM技术扮演着至关重要的角色。为了充分发挥Livox Mid-360的能力,社区开发了一个名为 **LIO-SAM-MID360** 的开源项目。该项目基于流行的LIO-SAM框架构,并专门针对Mid-360的特点进行了适配和优化[^2]。通过这一工具链的支持,开发者可以利用Mid-360实现更加精确的地与实时定位功能。 #### 开源项目的详细描述 LIO-SAM-MID360 不仅继承了原版LIO-SAM的核心优势——即融合惯性测量单元(IMU)数据与激光扫描点云来提升鲁棒性和精度——还特别考虑到了Livox系列产品的独特属性[^3]。例如,在处理稀疏点云时采用了更为智能的数据筛选策略;同时改进了动态目标剔除逻辑以减少环境变化带来的干扰。这些调整共同作用下,即使是在复杂多变的实际环境中也能保持较高的运行效率和服务质量。 以下是安装并测试此系统的Python脚本示例: ```python import subprocess def install_liosam(): try: # Clone repository from GitHub clone_repo = "git clone https://github.com/your-repo/LIO-SAM-MID360.git" subprocess.run(clone_repo.split(), check=True) # Navigate into the cloned directory and build it using Catkin tools. cd_command = ["cd", "./LIO-SAM-MID360"] catkin_build = "catkin build".split() process_cd = subprocess.Popen(&#39; &#39;.join(cd_command), shell=True) process_cd.wait() subprocess.run(catkin_build, check=True) except Exception as e: print(f"An error occurred during installation: {e}") if __name__ == "__main__": install_liosam() ``` 上述代码片段展示了如何克隆仓库并通过Catkin编译系统完成部署过程的一部分操作方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值