cartographer ros使用指南-Assets writer
cartographer ros使用指南-Assets writer
说明:
- 介绍如何对有效资源的保存和使用
Assets writer
SLAM的目的是通过一个度量空间来计算单个传感器的轨迹。
在更高的层面上,SLAM的输入是传感器的数据,它的输出是对轨迹到目前为止的最佳估计。
为了实时和高效,Cartographer 将大部分传感器数据立即扔掉。
单独的轨迹没什么用处,但是一旦估计出了最佳轨迹,就可以用全部的传感器数据来推导和显现周围环境的信息。
Cartographer 为此提供资源,输入的是:
- 1、在ROS的包文件中输入给SLAM最原始的数据,
- 2、SLAM创建的包含在.pbstream文件中的cartographer状态,
- 3、传感器的外部特征(即从包里或URDF中获取的TF数据),
- 4、还有一个定义在.lua文件中的管道配置。
该资源以已知的轨迹分批地运行传感器数据。
它可用于各种格式的颜色、过滤器和导出SLAM 点云数据。
有关该资源可以使用的更多信息,请参阅下面的示例和cartographer/io中的头文件。
示例:
- 获取示例包:
# Download the 3D backpack example bag.
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/b3-2016-04-05-14-14-00.bag
# Launch the 3D offline demo.
roslaunch cartographer_ros offline_backpack_3d.launch bag_filenames:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag
- 观察命令行上的输出,直到离线节点终止。
- 在处理完所有数据并完成所有优化之后,描绘的Cartographer 的状态会写入b3-2016-04-05-14-14-00.bag.pbstream。
- 您可以通过运行在线节点和调用来获得相同的状态数据:
# Finish the first trajectory. No further data will be accepted on it.
rosservice call /finish_trajectory 0
# Ask Cartographer to serialize its current state.
rosservice call /write_state ${HOME}/Downloads/b3-2016-04-05-14-14-00.bag.pbstream
- 现在,我们运行3D backpack的采样配置文件:
roslaunch cartographer_ros assets_writer_backpack_3d.launch \
bag_filenames:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag \
pose_graph_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag.pbstream
- 所有输出文件都是以--output_file_prefix为前缀,该前缀默认为第一个包的文件名。
- 对于最后一个例子,如果你在管道配置文件中指定了points.ply,前缀将变为${HOME}/Downloads/b3-2016-04-05-14-14-00.bag_points.ply
配置
资源的模型是管道。它由一个 PointsProcessors(点处理器)和一个流过它的 PointsBatchs(点流)组成。
从第一个处理器到下一个处理器的数据流,都有机会在被传递之前修改PointsBatch(点流)。
例如assets_writer_backpack_3d.lua使用min_max_range_filter来移除离传感器太近或太远的点。
之后它会写X-Rays,然后根据传感器坐标系ID重新画出这个PointsBatch(点流),并且用这些新的颜色来写另一组X-Rays。
每个PointsProcessors(点处理器)都在cartographer/io子目录中,并记录在它们的单独的头文件中。
点云的第一人称视角的可视化
一般情况下通过点生成一个fly 需要两步:
首先,用你想要可视化的点写一个PLY文件,然后使用point_cloud_viewer。
第一步通常是通过使用IntensityToColorPointsProcessor给将点设置为非白色,
然后使用PlyWritingPointsProcessor写到PLY。
这样的例子在assets_writer_backpack_2d.lua。
一旦有了PLY文件,按照point_cloud_viewer的README来生成一个磁盘上的八叉树,该八叉树可由同一仓库中的查看器查看。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号