cartographer订阅/发布话题

订阅的话题

Cartographer订阅哪些话题,主要由你在 Lua 配置文件中的设置决定。其中,测距数据(Range Data)是必需的,以下几种话题是互斥的,即至少需要提供其中一种。

话题名 消息类型 说明与配置参数
scan sensor_msgs/LaserScan 用于2D或3D建图的单线激光雷达数据。由 num_laser_scans 控制数量,默认为1。
points2 sensor_msgs/PointCloud2 PointCloud2格式的点云数据 。由 num_point_clouds 控制数量。

除了必需的测距数据,Cartographer 还可以通过配置选择性地订阅以下辅助传感器数据,以提高建图精度和鲁棒性。

话题名 消息类型 说明与配置参数
imu sensor_msgs/Imu IMU数据 。在2D建图中可选 ,但在3D建图中必需 。如果Lua配置中启用了 use_imu_data,则会订阅。
odom nav_msgs/Odometry 轮式里程计数据。当 Lua 配置中 use_odometry 设置为 true 时启用。
fix sensor_msgs/NavSatFix GPS数据。当 Lua 配置中 use_nav_sat 设置为 true 时启用。
landmark cartographer_ros_msgs/LandmarkList 已知地标数据。当 Lua 配置中 use_landmarks 设置为 true 时启用。

要求的TF变换 (Required tf Transforms) :Cartographer 期望整个 TF 树中,tracking_frame 到所有传感器帧(如 laser_frame)的变换路径是完整且畅通的。

++tracking_frame 是 Cartographer 在 lua 配置文件中指定的一个坐标帧,它通常是机器人本体上的一个关键点,比如 base_linkimu_link++ 通常由 robot_state_publisher通过URDF来发布,根据 URDF 文件计算并发布各个 link 之间的坐标变换。

robot_state_publisher 完成发布后,TF 树中就有了从 map -> odom -> base_link -> laser_frame 这样完整的链条。此时,Cartographer 只需要将 tracking_frame 设为链条上的一个节点(如 base_linkimu_link),就能通过 TF 系统随时查询到任何传感器在世界坐标系下的位置了。

发布的话题

话题名 消息类型 说明
submap_list cartographer_ros_msgs/SubmapList 所有子图的列表,包含每个子图的位姿和版本号。这是构建和更新地图的核心数据。
scan_matched_points2 sensor_msgs/PointCloud2 用于扫描匹配的点云。这通常是经过滤波或投影后的点云,便于调试和观察实际参与匹配的数据。
tracked_pose geometry_msgs/PoseStamped 跟踪帧在map坐标系下的位姿 。仅在将 publish_tracked_pose 参数设置为 true 时才会发布。

提供的TF变换 (Provided tf Transforms) :Cartographer 会发布从配置的 map_framepublished_frame 的变换。如果启用了 provide_odom_frame,还会发布一个不受回环检测影响的、连续的 odom_framepublished_frame 的变换,这主要用于里程计推算。

对于livox_ros_driver2 发布的3D点云数据,需要配置3D建图的 .lua 文件,通过++设置 num_point_clouds = 1 并确保雷达数据被映射到 points2++,Cartographer就能正常工作了。

相关推荐
HAPPY酷6 小时前
【ROS2】 Conda 环境搭建(命令行版)
linux·运维·python·ubuntu·机器人·conda
Urbano8 小时前
模板机选购全维度科普:不止做服装,扫地机器人拖布批量量产品牌选型指南
机器人
Agilex松灵机器人9 小时前
UMR × NAVIS:移动机器人行业级通用一体化底盘与3D导航解决方案
人工智能·3d·机器人·ros·slam·vla·松灵机器人
山东穆柯传感器11 小时前
雷达尺寸重量受限,车顶或机器人安装有小型化版本吗
机器人·雷达
白白白飘12 小时前
【9】Langchain实战案例:构建一个聊天机器人
microsoft·langchain·机器人
Tronlong创龙12 小时前
TL3588 工控单板 ROS2 开发实战:交叉编译、机器人通信与功能包部署全流程
机器人·开发板·嵌入式开发·硬件开发·工业控制·工业开发板
国科安芯13 小时前
空间在轨服务机器人通信链路中抗辐射收发器的应用研究
网络·数据库·算法·机器人·安全性测试
txg66614 小时前
机器人领域热点简报(2026-06-30 — 2026-07-07)
人工智能·搜索引擎·机器人
yonlin1 天前
Telegram Rss Bot - RssStream 面向创作者和开发者的 Telegram 自动化机器人简介
机器人·telegram·电报