feat(slam): add rtabmap_ros

This commit is contained in:
X-lanni
2025-07-14 11:34:38 +08:00
parent 3b6641c1fb
commit 943ce5b06f
1635 changed files with 603092 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
#request
Link link
---
#response
@@ -0,0 +1,24 @@
# Cleanup local grids service
#
# Clear empty space from local occupancy grids
# (and laser scans) based on the current optimized global 2d grid map.
# If the map needs to be regenerated in the future (e.g., when
# we re-use the map in SLAM mode), removed obstacles won't reappear.
# Use this with care and only when you know that the map doesn't have errors,
# otherwise some real obstacles/walls may be cleared if there is too much
# drift in the map.
#
# Radius in cells around empty cell without obstacles to clear underlying obstacles, default 1 cell if not set.
int32 radius
# Filter also the scans, default false if not set.
# The filtered laser scans will be used for localization,
# so if dynamic obstacles have been removed, localization won't try to
# match them anymore. Filtering the laser scans cannot be reverted,
# but grids can (see DatabaseViewer->Edit menu).
bool filter_scans
---
# return the number of grids or scans modified, -1 if there is an error
int32 modified
@@ -0,0 +1,27 @@
# Detect more loop closures service
#
# Based on the current optimized graph,
# this process will try to find more nodes corresponding with each
# other, and thus finding more loop closures to add to graph.
#
# Cluster radius (m), default 1 m if not set
float32 cluster_radius_max
# Cluster radius min (m), default 0 m if not set
float32 cluster_radius_min
# Cluster angle (deg), default 0 deg if not set
float32 cluster_angle
# Iterations, default 1 if not set
int32 iterations
# Add only intra session loop closures
bool intra_only
# Add only inter session loop closures
bool inter_only
---
# return the number of loop closures detected, or -1 if it failed.
int32 detected
+7
View File
@@ -0,0 +1,7 @@
#request
bool global_map
bool optimized
bool graph_only
---
#response
MapData data
+12
View File
@@ -0,0 +1,12 @@
#request
bool global_map
bool optimized
bool with_images
bool with_scans
bool with_user_data
bool with_grids
bool with_words
bool with_global_descriptors
---
#response
MapData data
@@ -0,0 +1,9 @@
#request
int32[] ids
bool images
bool scan
bool grid
bool user_data
---
#response
Node[] data
@@ -0,0 +1,31 @@
#request
# In mapping mode (Mem/IncrementalMemory=true), if target pose
# and node_id are all zeros, poses around the latest node
# in the graph are returned.
# In localization mode (Mem/IncrementalMemory=false), if target pose
# and node_id are all zeros, poses around the latest localization
# pose are returned.
# If node_id is not zero, target pose is ignored.
# Node id
int32 node_id
# Target pose:
float32 x
float32 y
float32 z
# Radius, <=0 means that RGBD/LocalRadius will be used
# if k is also 0. If k>0 and a radius of 0 means all nearest
# poses up to k.
float32 radius
# Maximum number of nearest poses
int32 k
---
#response
int32[] ids
geometry_msgs/Pose[] poses
float32[] dists_sqr
+11
View File
@@ -0,0 +1,11 @@
# Get a plan from the current position to the goal node or pose
# The final node of the goal (set 0 to use pose instead)
int32 goal_node
# The final pose of the goal position (used only if goalNodeId=0)
geometry_msgs/PoseStamped goal
# How many meters from the map's graph we can plan (0=infinite)
float32 tolerance
---
Path plan
@@ -0,0 +1,22 @@
# Global Bundle Adjustment service
#
# Perform global bundle adjustment. Note that as soon as the map
# is modified again, the graph is re-optimized the standard way (without SBA).
# It then makes only sense to use this after a mapping run (and after a call
# to /rtabmap/pause) when you know that the robot will restart in localization
# mode the next time, or at the beginning of the localization session.
#
# Optimizer type (0=g2o, 1=CVSBA), default 0
int32 type
# Iterations, default 0 (use Optimizer/Iterations already loaded in the node)
int32 iterations
# Pixel variance, default 0 (use g2o/PixelVariance already loaded in the node)
float32 pixel_variance
# Use vocabulary matches, default false (rematch all features between frames)
bool voc_matches
---
# return false if failure
@@ -0,0 +1,5 @@
#request
---
#response
int32[] ids
string[] labels
@@ -0,0 +1,11 @@
#request
# Local database path on which rtabmap is running.
# If the path doesn't exist, a new database will be created.
string database_path
# If the database already exists, data will be cleared if true.
bool clear
---
#response, return false on rtabmap initialization failure.
@@ -0,0 +1,6 @@
#request
bool global_map
bool optimized
bool graph_only
---
#response
@@ -0,0 +1,4 @@
#request
string label
---
#response
@@ -0,0 +1,9 @@
#request
float32 x
float32 y
float32 z
float32 roll
float32 pitch
float32 yaw
---
#response
+15
View File
@@ -0,0 +1,15 @@
#request
# Set either node_id or node_label
int32 node_id
string node_label
# optional: if not set, the base frame of the robot is used
string frame_id
---
#response
int32[] path_ids
geometry_msgs/Pose[] path_poses
float32 planning_time
@@ -0,0 +1,6 @@
#request
# Set node_id = 0 to set label to last node
int32 node_id
string node_label
---
#response