Skip to content

点云建图

点云拍平

现有的 Navigation2 框架必须需要一张二维的栅格图 因此需要对先验点云进行拍平

  • 从Github上clone修改过的项目
bash
git clone git@github.com:ToroSamy/pcd2pgm.git
  • .pcd 点云文件放入 PCD 文件夹中后, 运行 run.sh 查看效果
  • 效果不佳则修改 pcd2pgm.yaml 中的 thre_z_maxthre_z_min 后再次运行
  • 达到满意效果后, 另起终端键入以下指令, 保存二维栅格地图
bash
ros2 run nav2_map_server map_saver_cli -f <YOUR_MAP_NAME>
  • 使用修图工具对保存的 .pgm 进行修改
  • pcd2pgm.yaml 中的 publish_map 修改为 false
  • 将修改过的 map.pgmmap.yaml 放入 map 文件夹
  • 运行 run.sh 发布点云, 运行 map.sh 发布修改过的 .pgm
  • 另起终端并 依次 键入以下指令
bash
ros2 lifecycle set /map_server configure
ros2 lifecycle set /map_server activate
  • 静等几秒后 便可查看修改后的效果

获取 .posegraph 与 .data

  • 使用.tar加载docker的镜像
bash
sudo docker load < ogm2pgbm.tar
  • 从Github上clone修改过的项目 并进行部署
bash
git clone https://github.com/ToroSamy/Ogm2Pgbm.git
bash
pip install rosbags
bash
sudo ./autorun.sh
  • 将map.yaml 和 map.pgm 拷贝到workspace/map
  • docker容器 中执行如下命令行
bash
roslaunch ogm2pgbm ogm2pgbm.launch map_file:=/root/workspace/map/map.yaml record:=true
  • 当 终端 提示 done! 后, 在宿主机中运行 run.sh 按照提示拷贝 .bag. 完成后可关闭 docker 容器

  • 分别运行 rivz.shrosbag.sh 播放并查看 rosbag

  • 播放完毕后,在 rviz2 界面左侧 SlamToolBoxPlugin 中设置好文件名,点击 Serialize Map 即可保存 .posegraph.data 地图;点击 Save Map 可保存 .pgm.yaml 地图