cartographer 调参-ROS API 文档

Posted jiangxinyu1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cartographer 调参-ROS API 文档相关的知识,希望对你有一定的参考价值。

cartographer 调参(2)-ROS API 文档

技术图片

1 Cartographer Node

这个节点用于线上实时SLAM

1.1 Subscribed Topics

下面三个距离数据的的话题是互斥的。至少需要一个。

1 scan (sensor_msgs/LaserScan)
  1. 支持2D和3D(例如使用轴向旋转的平面激光扫描仪)。
  2. 如果在Lua配置参考文档中将num_laser_scans设置为1,则此主题将用作SLAM的输入。
  3. 如果num_laser_scans大于1,则多个编号的扫描主题(即scan_1,scan_2,scan_3,......直到并包括num_laser_scans)将用作SLAM的输入。
2echoes (sensor_msgs/MultiEchoLaserScan)
  1. 支持2D和3D(例如使用轴向旋转的平面激光扫描仪)。
  2. 如果在Lua配置参考文档中将num_multi_echo_laser_scans设置为1,则此主题将用作SLAM的输入。 仅使用第一个回声。
  3. 如果num_multi_echo_laser_scans大于1,则多个编号的回声主题(即echoes_1,echoes_2,echoes_3,......直到并包括num_multi_echo_laser_scans)将用作SLAM的输入。
3points2 (sensor_msgs/PointCloud2)
  1. 如果在Lua配置参考文档中将num_point_clouds设置为1,则此主题将用作SLAM的输入。
  2. 如果num_point_clouds大于1,则多个编号的points2主题(即points2_1,points2_2,points2_3,......直到并包括num_point_clouds)将用作SLAM的输入。

还可以提供以下附加传感器数据主题

imu (sensor_msgs/Imu)

支持2D(可选)和3D(必需)。 本主题将用作SLAM的输入。

odom (nav_msgs/Odometry)

支持2D(可选)和3D(可选)。 如果在Lua配置参考文档中启用了use_odometry,则此主题将用作SLAM的输入。

1.2 Published Topics

scan_matched_points2 (sensor_msgs/PointCloud2)
  1. 点云,因为它用于扫描到子图匹配。 根据Lua配置参考文档,可以对此云进行过滤和投影。
submap_list (cartographer_ros_msgs/SubmapList)
  1. 所有子图的列表,包括所有轨迹中每个子图的姿势和最新版本号。

1.3 Services

submap_query (cartographer_ros_msgs/SubmapQuery)
  1. 获取请求的子图。
start_trajectory (cartographer_ros_msgs/StartTrajectory)
  1. 通过将其传感器主题和轨迹选项指定为二进制编码的原型来启动另一个轨迹。
  2. 返回指定的轨迹ID。
  3. start_trajectory可执行文件提供了一个方便的包装器来使用此服务。
finish_trajectory (cartographer_ros_msgs/FinishTrajectory)
  1. 通过运行最终优化来完成给定的轨迹_id的轨迹
write_state (cartographer_ros_msgs/WriteState)
  1. 将当前内部状态写入磁盘到文件名。 如果设置了该文件,通常会在?/ .ros或ROS_HOME中结束。
  2. 此文件可用作assets_writer_main的输入,以生成概率网格,X-Rays或PLY文件等资源。
get_trajectory_states (cartographer_ros_msgs/GetTrajectoryStates)
  1. 返回ID和轨迹的状态。 例如,这可以用于从单独的节点观察Cartographer的状态。
read_metrics (cartographer_ros_msgs/ReadMetrics)
  1. 返回Cartographer的所有内部指标的最新值。
  2. 运行时度量标准的集合是可选的,必须使用节点中的--collect_metrics命令行标志激活。

1.4 Required tf Transforms

必须提供从所有传入传感器数据帧到配置的 tracking_frame 和 published_frame的转换。
通常,这些是由robot_state_publisher或static_transform_publisher定期发布的。

1.5 Provided tf Transforms

  1. 始终提供已配置的 map_frame 和 published_frame之间的转换。
  2. 如果在Lua配置参考文档中启用了provide_odom_frame,则将提供配置的odom_frame和published_frame之间的连续(不受循环闭包影响)转换。

以上是关于cartographer 调参-ROS API 文档的主要内容,如果未能解决你的问题,请参考以下文章

Cartographer调参

cartographer 调参-lua文件配置参考文档

ROS实验笔记之——基于cartographer方法的SLAM

cartographer给ros开放的接口

代码修改记录-cartographer_ros Run函数

Cartographer ROS for Turtlebots 初探