3D激光slam,cartographer的使用,第一视角点云

cartographer的使用

编译安装

cartographer的安装
cartographer的安装在cartographer_ros;有详细的步骤。偶尔出现ceres库clone不了,不过也不是大问题,下载后,粘贴过去也是可以的。
point_cloud_viewer的安装
安装步骤:point_cloud_viewer,显示的部分是基于node.js的web工程。

curl https://sh.rustup.rs -sSf | sh
# in the root of repo
cargo build --release   #这个时候在target/release下有build_octree二进制文件
 complie the web_viewer
cd web_viewer
cd client
# install [nvm](https://github.com/creationix/nvm)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
# make sure it's done  node version mannager
nvm ls && nvm ls-remote && nvm install v**
sudo apt-get install npm
# install javascript dependencies ,node.js package mannager
npm install
# build the client
npm run build     # 完成之后,会在web_viewer目录下得到target目录,其中app_bundle.js app_bundle.js.map
cargo build --release 
#  http://localhost:5433 in Chrome

使用说明

  1. 使用建图生成.pbstream的文件,推荐使用offline模式的节点程序。
  2. 使用bag 和对应的pbstream文件生成ply文件,和bag的大小有关(需要大量的内存),推荐16G内存。
  3. 将ply文件通过point_cloud_viewer的build_octree得到一个文件夹,将点云分割。
  4. 使用point_cloud_viewer的web_viewer下的可执行文件第一视角观察

步骤的详细说明

生成pbstream文件,用来记录运动过程中的数据。运行的命令参考Assets writer;下面列出launch文件和配置文件需要注意的地方:
—确保offline_backpack_3d.launch 中points2变换到对应的topic

—确保backpack_3d.lua 中的坐标系和scans_per_accmulation正确,以及发布odom

—确保backpack_3d.urdf中 的坐标系标定,变换正确

在文件配置了解之后,建议使用cartographer的数据测试一下,加深印象

运行

launch cartographer_ros offline_backpack_3d.launch bag_filenames:=${your_bag_file_path}
# 同时使用rosservice得到状态值,命名的时候在原来的bag文件的基础上添加后缀.pbstream
rosservice call /write_state ${your_bag_file_path.pbstream}

在得到上面的pbstream文件之后,连同bag文件一起。

roslaunch cartographer_ros assets_writer_backpack_3d.launch \
   bag_filenames:=${your_bag_file_path} \
   pose_graph_filename:=${your_bag_file_path.pbstream}

当程序运行结束之后,在~/.ros目录下,可以看到points.ply以及*.png

ply数据类型的转换与显示

使用target/release/build_octree将得到的ply文件转成很多的小文件,用与显示。

target/release/build_octree ${you_ply_path} --output_directory ${out_dir}

使用target/release/web_viewer以第一视角观察点云: target/release/web_viewer ${out_dir}

在Chrome的浏览器中 http://localhost:5433查看点云,其中的gamma可以用来调整颜色。

这里使用的是中国的3D激光禾赛科技pandar40,点云结果:
3D激光slam,cartographer的使用,第一视角点云_第1张图片
3D激光slam,cartographer的使用,第一视角点云_第2张图片
3D激光slam,cartographer的使用,第一视角点云_第3张图片

你可能感兴趣的:(slam的原理,3D激光SLAM)