点云建图
点云拍平
现有的 Navigation2 框架必须需要一张二维的栅格图 因此需要对先验点云进行拍平
- 从Github上clone修改过的项目
bash
git clone git@github.com:ToroSamy/pcd2pgm.git- 将
.pcd点云文件放入PCD文件夹中后, 运行run.sh查看效果 - 效果不佳则修改
pcd2pgm.yaml中的thre_z_max和thre_z_min后再次运行 - 达到满意效果后, 另起终端键入以下指令, 保存二维栅格地图
bash
ros2 run nav2_map_server map_saver_cli -f <YOUR_MAP_NAME>- 使用修图工具对保存的
.pgm进行修改 - 将
pcd2pgm.yaml中的publish_map修改为false - 将修改过的
map.pgm和map.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.gitbash
pip install rosbagsbash
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.sh和rosbag.sh播放并查看rosbag播放完毕后,在 rviz2 界面左侧 SlamToolBoxPlugin 中设置好文件名,点击 Serialize Map 即可保存
.posegraph与.data地图;点击 Save Map 可保存.pgm和.yaml地图
