< >
Home » cartographer ros指南 » cartographer ros使用指南-Assets writer

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来生成一个磁盘上的八叉树,该八叉树可由同一仓库中的查看器查看。

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: cartographer ros使用指南