概述
- 一种基于具有实时约束的全局闭环检测器的 RGB-D SLAM 方法
- 可用于生成环境的 3D 点云和/或创建用于导航的 2D 占用网格图
节点
rtabmap
-
RTAB-Map 核心库的包装器
-
输入参数
- “–delete_db_on_start”或“-d”:启动前删除数据库,否则加载之前的映射会话。
- “–udebug” : 显示 RTAB-Map 的调试/信息/警告/错误日志。
- “–uinfo” : 显示 RTAB-Map 的信息/警告/错误日志。
- “–params” : 显示与该节点相关的 RTAB-Map 参数并退出。
-
Topics订阅
-
odom (nav_msgs/Odometry)
- 外部里程计输入,需要将subscribe_depth或subscribe_stereo设置为True,odom_frame_id为False
-
rgb/image (sensor_msgs/Image)
- RGB图像输入
-
rgb/camera_info (sensor_msgs/CameraInfo)
- RGB 相机固有参数
-
depth/image (sensor_msgs/Image)
- 深度图像
-
scan (sensor_msgs/LaserScan)
- 激光雷达数据流(数据格式为扫描角度和距离)
-
scan_cloud (sensor_msgs/PointCloud2)
- 激光雷达的点云流(空点点集)
-
left/image_rect (sensor_msgs/Image)
-
left/camera_info (sensor_msgs/CameraInfo)
-
right/image_rect (sensor_msgs/Image)
-
right/camera_info (sensor_msgs/CameraInfo)
-
goal (geometry_msgs/PoseStamped)
- 使用当前的地图规划路径到达设置点
-
rgbd_image (rtabmap_ros/RGBDImage)
- RGBD图像输入
-
-
Topics发布
-
info (rtabmap_ros/Info)
- RTAB-地图的信息,包括工作内存等信息
-
mapData (rtabmap_ros/MapData)
- RTAB-Map 的图和最新的节点数据
-
mapGraph (rtabmap_ros/MapGraph)
- 最新的姿势优化图
-
grid_map (nav_msgs/OccupancyGrid)
- 使用激光扫描生成的映射占用网格
-
cloud_map (sensor_msgs/PointCloud2)
- 从的本地网格生成的 3D 点云
-
cloud_obstacles (sensor_msgs/PointCloud2)
- 从局部网格生成的障碍物的 3D 点云
-
cloud_ground (sensor_msgs/PointCloud2)
- 从局部网格生成的地面 3D 点云
-
scan_map (sensor_msgs/PointCloud2)
- 使用 2D 扫描或 3D 扫描生成的 3D 点云
-
labels (visualization_msgs/MarkerArray)
- 在 RVIZ 中显示图形标签的便捷方式
-
路径规划
-
global_path (nav_msgs/Path)
- 全局路径的规划姿势,每条规划路径仅发布一次
-
local_path (nav_msgs/Path)
- 与全局路径对应的即将到来的局部姿势
-
goal_reached (std_msgs/Bool)
- 是否成功达到目标的规划状态消息
-
goal_out (geometry_msgs/PoseStamped)
- 从 rtabmap 的拓扑规划器发送的当前度量目标
-
-
Oct地图
- octomap_full (octomap_msgs/Octomap)
- octomap_binary (octomap_msgs/Octomap)
- octomap_occupied_space (sensor_msgs/PointCloud2)
- octomap_obstacles (sensor_msgs/PointCloud2)
- octomap_ground (sensor_msgs/PointCloud2)
- octomap_empty_space (sensor_msgs/PointCloud2)
- octomap_grid (nav_msgs/OccupancyGrid)
-
-
Server
-
get_map (nav_msgs/GetMap)
- 调用此服务获取标准的二维占用网格
-
get_map_data (rtabmap_ros/GetMap)
- 调用此服务获取地图数据
-
publish_map (rtabmap_ros/PublishMap)
- 调用此服务发布地图数据
-
list_labels (rtabmap_ros/ListLabels)
- 获取图形的当前标签
-
update_parameters (std_srvs/Empty)
- 该节点将使用 rosparam 服务器的当前参数进行更新
-
reset (std_srvs/Empty)
- 删除地图
-
pause (std_srvs/Empty)
- 停止建图
-
resume (std_srvs/Empty)
- 恢复建图
-
trigger_new_map (std_srvs/Empty)
- 该节点将开始一个新地图
-
backup (std_srvs/Empty)
- 将数据库备份到“ database_path .back”
-
set_mode_localization (std_srvs/Empty)
- 开启定位模式
-
set_mode_mapping (std_srvs/Empty)
- 开启建图模式
-
set_label (rtabmap_ros/SetLabel)
- 将标签设置为最新节点或指定节点
-
set_goal (rtabmap_ros/SetGoal)
- 规划设置拓扑目标
-
octomap_full (octomap_msgs/GetOctomap)
-
octomap_binary (octomap_msgs/GetOctomap)
-
rtabmapviz
-
启动RTAB-Map的可视化界面。它是 RTAB-Map GUI 库的包装器。它与rviz具有相同的目的,但具有 RTAB-Map 的特定选项
-
参数
- -d “config.ini” : 为 GUI 界面参数设置 RTAB-Map ini 文件。默认为"/.ros/rtabmapGUI.ini"
-
Topics订阅
-
odom (nav_msgs/Odometry)
- 里程计流
-
odom_info (rtabmap_ros/OdomInfo)
- 里程计信息
-
rgb/image (sensor_msgs/Image)
- RGB图像
-
rgb/camera_info (sensor_msgs/CameraInfo)
- RGB 相机固有参数
-
depth/image (sensor_msgs/Image)
- 深度图
-
scan (sensor_msgs/LaserScan)
- 激光雷达输入
-
scan_cloud (sensor_msgs/PointCloud2)
- 激光雷达点云输入
-
left/image_rect (sensor_msgs/Image)
-
left/camera_info (sensor_msgs/CameraInfo)
-
right/image_rect (sensor_msgs/Image)
-
right/camera_info (sensor_msgs/CameraInfo)
-
info (rtabmap_ros/Info)
- RTAB-Map 的统计信息
-
mapData (rtabmap_ros/MapData)
- RTAB-Map 的图和最新的节点数据
-
rgbd_image (rtabmap_ros/RGBDImage)
- RGB-D 同步图像
-
Visual and Lidar Odometry
-
rgbd_odometry、stereo_odometry和icp_odometry节点的常用里程计内容
-
Topics发布
-
odom (nav_msgs/Odometry)
- 里程计流
-
odom_info (rtabmap_ros/OdomInfo)
- 里程计信息流
-
odom_last_frame (sensor_msgs/PointCloud2)
- 用于估计变换的最后一帧的 3D 特征
-
odom_local_map (sensor_msgs/PointCloud2)
- 3D 特征的局部地图用作估计变换的参考
-
-
Server
-
reset_odom (std_srvs/Empty)
- 重新启动里程计
-
reset_odom_to_pose (rtabmap_ros/ResetPose)
- 重新启动里程计到指定的转换
-
pause_odom (std_srvs/Empty)
- 暂停里程计
-
resume_odom (std_srvs/Empty)
- 恢复里程计
-
rgbd_odometry
-
使用 RGBD 图像,使用从 RGB 图像中提取的视觉特征及其来自深度图像的深度信息来计算里程计。使用图像之间的特征对应关系,RANSAC 方法计算连续图像之间的变换
-
Topics订阅
- rgb/image (sensor_msgs/Image)
- rgb/camera_info (sensor_msgs/CameraInfo)
- depth/image (sensor_msgs/Image)
- rgbd_image (rtabmap_ros/RGBDImage)
stereo_odometry
icp_odometry
camera
map_assembler
map_optimizer
小节点
rtabmap_ros/rgbd_sync
-
将 RGB、depth 和 camera_info 消息同步到单个消息中,以避免在网络滞后时出现同步问题
-
Topics订阅
- rgb/image (sensor_msgs/Image)
- depth/image (sensor_msgs/Image)
- rgb/camera_info (sensor_msgs/CameraInfo)
-
Topics发布
-
rgbd_image (rtabmap_ros/RGBDImage)
-
rgbd_image/compressed (rtabmap_ros/RGBDImage)
- 压缩后的RGB-D图像主题(rgb=jpeg,depth=png)
-
rtabmap_ros/point_cloud_xyzrgb
-
从 RGB 和深度图像或立体图像构建点云。可以应用可选的抽取、深度、体素和噪声过滤
-
Topics订阅
- rgb/image (sensor_msgs/Image)
- depth/image (sensor_msgs/Image)
- rgb/camera_info (sensor_msgs/CameraInfo)
- left/image (sensor_msgs/Image)
- left/camera_info (sensor_msgs/CameraInfo)
- right/image (sensor_msgs/Image)
- right/camera_info (sensor_msgs/CameraInfo)
-
Topics发布
-
cloud (sensor_msgs/PointCloud2)
- 点云输出
-
-
参数
-
~queue_size (int, default: 10)
- 每个同步主题的消息队列大小。
-
~approx_sync (bool, default: “true”)
- 使用输入主题的近似时间同步
-
~decimation (int, default: 1)
- 在创建点云之前对图像进行抽取。设置为 1 以不抽取图像
-
~voxel_size (double, default: 0.0)
- 生成的云的体素大小 (m)。设置0.0以停用体素过滤
-
~min_depth (double, default: 0.0)
- 生成的云的最小深度 (m)
-
~max_depth (double, default: 0.0)
- 生成的云的最大深度 (m)。设置0.0以停用深度过滤
-
~noise_filter_radius (double, default: 0.0)
- 用于搜索点邻居的最大半径 (m)。设置0.0以停用噪声过滤
-
~noise_filter_min_neighbors (int, default: 5)
- 点的最小邻点数量滤波
-
rtabmap_ros/point_cloud_xyz
- 从深度或视差图像构建点云。可以应用可选的抽取、深度、体素和噪声过滤。
评论区