lego-loam建立栅格地图并保存

本文介绍了如何在Ubuntu上安装和配置ROS的octomap,包括创建launch文件、设定参数以及启动相关节点。通过修改launch文件以适配不同传感器数据,如a-LOAM的lego-loam。同时,展示了在rviz中可视化建图过程,并给出了保存地图的步骤。最终目标是实现在无人车上进行导航。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载octomap并建立launch文件

这里要注意ubuntu版本

#安装octomap
sudo apt-get install ros-melodic-octomap-ros 
sudo apt-get install ros-melodic-octomap-server
#安装octomap在rviz中的插件
 sudo apt-get install ros-melodic-octomap-rviz-plugins
#进入octomap_server的launch文件夹
cd /opt/ros/melodic/share/octomap_server/launch
 
#创建launch文件
sudo touch octomap_server.launch
 
#给launch文件加可写权限
sudo chmod a+w octomap_server.launch

launch文件内容如下:

<launch>
  <node pkg="octomap_server" type="octomap_server_node" name="octomap_server"> 
 
     <!--resolution in meters per pixel-->
    <param name="resulution" value="0.1" />
    
     <!--name of the fixed frame,needs to be "/map" for SLAM-->
    <param name="frame_id" type="string" value="/camera_init" />
 
     <!--max range/depth resolution of the kinect meters-->
    <param name="sensor_model/max_range" value="50.0" />
    <param name="latch" value="true" />
 
     <!--max/min height for occupancy map, should be in meters-->
    <param name="pointcloud_max_z" value="1.6" />
    <param name="pointcloud_min_z" value="0.8" />
 
    <param name="graound_filter_angle" value="3.14" />
 
     <!--topic from where pointcloud2 messages are subscribed-->
    <remap from="/cloud_in" to="/laser_cloud_map" />
 
  </node>
 
</launch>

这是a-loam的 lego-loam需要将“/laser_cloud_map”改为“/registered_cloud”订阅话题要与pointcloud2的一致

启动雷达,loam

roslaunch octomap_server octomap_server.launch #启动map_sever

roslaunch rslidar_pointcloud rs_lidar_16.launch #启动速腾雷达rs-16

roslaunch lego_loam run.launch #lego_loam

roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch #这是启动a-loam的


rosrun map_server map_saver map:=/projected_map -f /home/a/mymap #保存地图

 最后结果如图所示:

下一步进行小车上的实现和导航。

期间建图过程可视化设置如下:

启动rviz后,点击“add”,分别添加"Map"、"OccupancyGrid"与"OccupancyMap",并把其话题名依次改为"/projected_map"、"octomap_full"与"octomap_binary"。

 主要参考:

A-LOAM/LOAM/Lego-LOAM/SC_Lego_LOAM实时构建3d点云地图与2d栅格地图(octomap)_studentu的博客-优快云博客

Octomap 在ROS环境下实时显示_熊猫飞天-优快云博客

十分感谢。

### 使用深度相机在ROS RVIZ中创建地图 为了实现基于深度相机的地图构建,在 ROS 中通常会集成多种传感器数据来提高定位精度和建图质量。对于配备有 D435i 深度相机的机器人平台来说,可以采用 VINS-Fusion 来融合视觉惯导信息,通过 OctoMap 或其他三维映射工具生成环境模型。 具体操作流程如下: #### 启动深度相机节点 启动深度相机驱动程序以发布图像话题,这可以通过 `realsense2_camera` 包完成。确保安装了相应的软件包之后执行命令: ```bash roslaunch realsense2_camera rs_camera.launch ``` #### 运行VINS-Fusion进行SLAM 加载预先配置好的参数文件启动 VINS-Fusion 节点来进行同步定位与建图(SLAM),此过程涉及IMU、RGB-D等多源感知设备的数据处理。 ```bash roslaunch vins_estimator vins_rtk.launch ``` #### 构建Octomap八叉树栅格地图 当 SLAM 正常工作后,可利用 octomap_server 将点云转换成占用网格表示形式即所谓的“八叉树”。设置好订阅的话题名称以及输出路径再运行下面指令: ```bash rosrun octomap_server octomap_server_node __name:=octomap_mapping _frame_id:=odom _sensor_model/max_range:=5.0 _resolution:=0.05 ``` 此处需要注意调整 `_frame_id`, `_max_range` 和分辨率等参数适应实际应用场景需求[^1]。 #### 显示地图于RVIZ可视化界面 最后一步是在 Rviz 中查看实时更新的地图效果。打开 rviz 客户端应用,添加 Display 类型为 OccupancyGrid 的面板用于显示二维投影后的地图;或者选择 PointCloud2 查看原始点云数据流。Fixed Frame 设置为 odom 坐标系下即可正常渲染出完整的空间结构[^3]。 #### 保存二维栅格地图 如果希望将当前时刻的地图状态持久化存储下来,则可通过 map_server 提供的服务接口调用来达成目的。指定要保存的目标位置及文件名前缀作为输入参数传递给服务请求消息体: ```bash rosservice call /map_saver/save_map "filename: 'path/to/mapfile'" ``` 上述方法同样适用于仅需获取平面视图的情况,只需替换对应的主题名称为 `/projected_map` 即可。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值