Note that Cartographer’s ROS integration uses tf2, thus all frame IDs are expected to contain only a frame name (lower-case with underscores) and no prefix or slashes. See REP 105 for commonly used coordinate frames.
Note that topic names are given as base names (see ROS Names) in Cartographer’s ROS integration. This means it is up to the user of the Cartographer node to remap, or put them into a namespace.
The following are Cartographer’s ROS integration top-level options, all of which must be specified in the Lua configuration file:
- The ROS frame ID to use for publishing submaps, the parent frame of poses, usually “map”.
- The ROS frame ID of the frame that is tracked by the SLAM algorithm. If an IMU is used, it should be at its position, although it might be rotated. A common choice is “imu_link”.
- The ROS frame ID to use as the child frame for publishing poses. For example “odom” if an “odom” frame is supplied by a different part of the system. In this case the pose of “odom” in the map_frame will be published. Otherwise, setting it to “base_link” is likely appropriate.
- Only used if provide_odom_frame is true. The frame between published_frame and map_frame to be used for publishing the (non-loop-closed) local SLAM result. Usually “odom”.
- If enabled, the local, non-loop-closed, continuous pose will be published as the odom_frame in the map_frame.
- If enabled, subscribes to nav_msgs/Odometry on the topic “odom”. Odometry must be provided in this case, and the information will be included in SLAM.
- If enabled, the node subscribes to sensor_msgs/LaserScan on the “scan” topic. If 2D SLAM is used, either this or use_multi_echo_laser_scan must be enabled.
- If enabled, the node subscribes to sensor_msgs/MultiEchoLaserScan on the “echoes” topic. If 2D SLAM is used, either this or use_laser_scan must be enabled.
- Number of 3D lasers to subscribe to. Must be a positive value if and only if using 3D SLAM. Subscribes to sensor_msgs/PointCloud2 on the “points2” topic for one laser, or topics “points2_1”, “points2_2”, etc for multiple lasers.
- Timeout in seconds to use for looking up transforms using tf2.
- Interval in seconds at which to publish the submap poses, e.g. 0.3 seconds.
- Interval in seconds at which to publish poses, e.g. 5e-3 for a frequency of 200 Hz.