Cartographer_ros 配置文件参数讲解

Cartographer_ros 配置文件参数讲解

参考Cartographer_ros官方教程

请注意,Cartographer 的 ROS 使用 tf2,因此所有坐标系名称都应仅包含坐标系的名字(带下划线的小写),并且没有前缀或斜线。

请注意,在 Cartographer 的 ROS 中,消息名称按照ros的基础名称来定义(参见 ROS 名称)。 这意味着由 Cartographer 节点的用户需要使用remap命令进行消息的重新映射。

以下是Cartographer ROS的top-level配置选项,所有这些都必须在Lua配置文件中指定:

map_frame

用于发布子图的 ROS 坐标系名称,同时也是用于定义位姿的坐标系,通常是“map”。

tracking_frame

SLAM 算法跟踪的坐标系的名称。 如果使用了IMU,则应该定义为IMU的坐标系,尽管相对于机体IMU可能会有一个旋转的角度。 一个常见的选择是“imu_link”。

这里我们一般选择频率最高的传感器,因为所有的传感器都需要转换到tracking_frame之后再进行计算,如果选择低频传感器,那么高频传感器将会浪费大量的时间用于坐标系转换

published_frame

用作发布位姿的子坐标系的的名称。 例如,可以设置为“odom”如果“odom”坐标系由系统的不同部分提供。 在这种情况下,将发布地图坐标系中“odom”坐标系的位姿。 否则,将其设置为“base_link”可能是合适的。

odom_frame

仅在 provide_odom_frame 为真时使用。 这个published_framemap_frame 之间的坐标系用于发布(非闭环)的局部SLAM 结果。 通常是“odom”。

provide_odom_frame

如果启用,局部的、非闭环的、连续的位姿将作为map_frame中的odom_frame发布。

publish_frame_projected_to_2d

如果启用,发布的位姿将被限制为纯 2D 位姿(无横滚、俯仰或 z轴的偏移)。

use_odometry

如果启用,则订阅消息“odom”,格式为nav_msgs/Odometry。 在这种情况下必须提供里程计,该信息将包含在 SLAM 中。

use_nav_sat

如果启用,则订阅消息“fix”,格式为sensor_msgs/NavSatFix。 在这种情况下必须提供导航数据,该信息将包含在全局 SLAM 中。

use_landmarks

如果启用,则订阅消息“landmarks”,格式为cartographer_ros_msgs/LandmarkList。在这种情况下必须提供地标,cartographer_ros_msgs/LandmarkList 中的每个数据为cartographer_ros_msgs/LandmarkEntry。 如果提供了cartographer_ros_msgs/LandmarkEntry 数据,则根据 cartographer_ros_msgs/LandmarkEntry的的坐标系,该信息将包含在 SLAM 中。cartographer_ros_msgs/LandmarkList 应以与其他传感器相当的采样频率提供。 该列表可以为空,但必须提供,因为 Cartographer 严格按时间排序传感器数据,以使地标具有确定性。 然而,可以将trajectory builder中的选项“collate_landmarks”设置为 false 并允许非确定性但也非阻塞的方法。

num_laser_scans

要订阅的激光扫描消息的数量。 订阅sensor_msgs/LaserScan类型的关于一台激光扫描仪的“scan”消息,或订阅多台激光扫描仪的“scan_1”、“scan_2”等消息。

num_multi_echo_laser_scans

要订阅的多回波激光扫描消息的数量。 订阅sensor_msgs/MultiEchoLaserScan类型的 关于一台激光扫描仪的“echoes”消息,或多台激光扫描仪的“echoes_1”、“echoes_2”等消息。

num_subdivisions_per_laser_scan

将每个接收到的(多回波)激光扫描分割成的点云数量。 有一个相应的trajectory builder选项可以将细分的扫描累积到一个点云中,该点云将用于扫描匹配。

一般市面上的雷达都不提供这种功能,这个选项基本用不到

num_point_clouds

要订阅的点云消息数。 为一个激光测距仪订阅“points2”消息,类型为sensor_msgs/PointCloud2,或者为多个测距仪订阅“points2_1”、“points2_2”等消息。

lookup_transform_timeout_sec

用于使用 tf2 查找坐标变换的超时时间(以秒为单位)。

submap_publish_period_sec

发布子图位姿的时间间隔(以秒为单位),例如 0.3 秒。

pose_publish_period_sec

发布位姿的时间间隔(以秒为单位),例如 5e-3 频率为 200 Hz。

publish_to_tf

开启或者关闭tf坐标变换的发布

publish_tracked_pose

启用将被跟踪坐标系的位姿发布为geometry_msgs/PoseStamped类型的消息“tracked_pose”。

trajectory_publish_period_sec

发布轨迹标记的间隔(以秒为单位),例如 30e-3代表30毫秒。

rangefinder_sampling_ratio

激光测距仪消息的采样比率。

这个代表了使用到的激光消息总数/接收到的激光消息总数,主要是为了降低运算量,提高实时性。接下来的几个选项的意义与这个一样。

odometry_sampling_ratio

里程计消息的采样比率。

fixed_frame_sampling_ratio

GPS消息的采样比率。

imu_sampling_ratio

IMU消息的采样比率。

landmarks_sampling_ratio

路标消息的采样比率。

你可能感兴趣的:(自动驾驶)