建图导航ROS2包输入和输出节点

🕒 2025-08-05 📁 ROS系统 👤 laumy 🔥 72 热度

SLAM

2D 激光:slam_toolbox

(1)安装启动

sudo apt update
sudo apt install ros-jazzy-slam-toolbox
ros2 launch slam_toolbox online_async_launch.py

(2)输入输出

ros2 node info /slam_toolbox
/slam_toolbox
  Subscribers:
    /clock: rosgraph_msgs/msg/Clock
    /map: nav_msgs/msg/OccupancyGrid
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /scan: sensor_msgs/msg/LaserScan
    /slam_toolbox/feedback: visualization_msgs/msg/InteractiveMarkerFeedback
  Publishers:
    /map: nav_msgs/msg/OccupancyGrid
    /map_metadata: nav_msgs/msg/MapMetaData
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /pose: geometry_msgs/msg/PoseWithCovarianceStamped
    /rosout: rcl_interfaces/msg/Log
    /slam_toolbox/graph_visualization: visualization_msgs/msg/MarkerArray
    /slam_toolbox/scan_visualization: sensor_msgs/msg/LaserScan
    /slam_toolbox/transition_event: lifecycle_msgs/msg/TransitionEvent
    /slam_toolbox/update: visualization_msgs/msg/InteractiveMarkerUpdate
    /tf: tf2_msgs/msg/TFMessage
  Service Servers:
    /slam_toolbox/change_state: lifecycle_msgs/srv/ChangeState
    /slam_toolbox/clear_changes: slam_toolbox/srv/Clear
    /slam_toolbox/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /slam_toolbox/deserialize_map: slam_toolbox/srv/DeserializePoseGraph
    /slam_toolbox/dynamic_map: nav_msgs/srv/GetMap
    /slam_toolbox/get_available_states: lifecycle_msgs/srv/GetAvailableStates
    /slam_toolbox/get_available_transitions: lifecycle_msgs/srv/GetAvailableTransitions
    /slam_toolbox/get_interactive_markers: visualization_msgs/srv/GetInteractiveMarkers
    /slam_toolbox/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /slam_toolbox/get_parameters: rcl_interfaces/srv/GetParameters
    /slam_toolbox/get_state: lifecycle_msgs/srv/GetState
    /slam_toolbox/get_transition_graph: lifecycle_msgs/srv/GetAvailableTransitions
    /slam_toolbox/get_type_description: type_description_interfaces/srv/GetTypeDescription
    /slam_toolbox/list_parameters: rcl_interfaces/srv/ListParameters
    /slam_toolbox/manual_loop_closure: slam_toolbox/srv/LoopClosure
    /slam_toolbox/pause_new_measurements: slam_toolbox/srv/Pause
    /slam_toolbox/reset: slam_toolbox/srv/Reset
    /slam_toolbox/save_map: slam_toolbox/srv/SaveMap
    /slam_toolbox/serialize_map: slam_toolbox/srv/SerializePoseGraph
    /slam_toolbox/set_parameters: rcl_interfaces/srv/SetParameters
    /slam_toolbox/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
    /slam_toolbox/toggle_interactive_mode: slam_toolbox/srv/ToggleInteractive
  Service Clients:

  Action Servers:

  Action Clients:

2D/3D 激光 SLAM:Cartographer

(1)安装启动

sudo apt install ros-jazzy-cartographer-ros


sudo apt install ros-jazzy-turtlebot3-cartographer


# 这里的 cartographer.launch.py 是真实存在的!
ros2 launch turtlebot3_cartographer cartographer.launch.py \
    use_sim_time:=false \
    is_turtlebot3:=false

(2)查看输入输出

2D

ros2 node info /cartographer_node
/cartographer_node
  Subscribers:
    /odom: nav_msgs/msg/Odometry
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /scan: sensor_msgs/msg/LaserScan
  Publishers:
    /constraint_list: visualization_msgs/msg/MarkerArray
    /landmark_poses_list: visualization_msgs/msg/MarkerArray
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
    /scan_matched_points2: sensor_msgs/msg/PointCloud2
    /submap_list: cartographer_ros_msgs/msg/SubmapList
    /tf: tf2_msgs/msg/TFMessage
    /trajectory_node_list: visualization_msgs/msg/MarkerArray
  Service Servers:
    /cartographer_node/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /cartographer_node/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /cartographer_node/get_parameters: rcl_interfaces/srv/GetParameters
    /cartographer_node/get_type_description: type_description_interfaces/srv/GetTypeDescription
    /cartographer_node/list_parameters: rcl_interfaces/srv/ListParameters
    /cartographer_node/set_parameters: rcl_interfaces/srv/SetParameters
    /cartographer_node/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
    /finish_trajectory: cartographer_ros_msgs/srv/FinishTrajectory
    /get_trajectory_states: cartographer_ros_msgs/srv/GetTrajectoryStates
    /read_metrics: cartographer_ros_msgs/srv/ReadMetrics
    /start_trajectory: cartographer_ros_msgs/srv/StartTrajectory
    /submap_query: cartographer_ros_msgs/srv/SubmapQuery
    /tf2_frames: tf2_msgs/srv/FrameGraph
    /trajectory_query: cartographer_ros_msgs/srv/TrajectoryQuery
    /write_state: cartographer_ros_msgs/srv/WriteState
  Service Clients:

  Action Servers:

  Action Clients:

3D

ros2 node info /cartographer_node
/cartographer_node
  Subscribers:
    /imu/data: sensor_msgs/msg/Imu
    /odometry: nav_msgs/msg/Odometry
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /velodyne_points: sensor_msgs/msg/PointCloud2
  Publishers:
    /constraint_list: visualization_msgs/msg/MarkerArray
    /landmark_poses_list: visualization_msgs/msg/MarkerArray
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
    /scan_matched_points2: sensor_msgs/msg/PointCloud2
    /submap_list: cartographer_ros_msgs/msg/SubmapList
    /tf: tf2_msgs/msg/TFMessage
    /trajectory_node_list: visualization_msgs/msg/MarkerArray
  Service Servers:
    /cartographer_node/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /cartographer_node/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /cartographer_node/get_parameters: rcl_interfaces/srv/GetParameters
    /cartographer_node/get_type_description: type_description_interfaces/srv/GetTypeDescription
    /cartographer_node/list_parameters: rcl_interfaces/srv/ListParameters
    /cartographer_node/set_parameters: rcl_interfaces/srv/SetParameters
    /cartographer_node/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
    /finish_trajectory: cartographer_ros_msgs/srv/FinishTrajectory
    /get_trajectory_states: cartographer_ros_msgs/srv/GetTrajectoryStates
    /read_metrics: cartographer_ros_msgs/srv/ReadMetrics
    /start_trajectory: cartographer_ros_msgs/srv/StartTrajectory
    /submap_query: cartographer_ros_msgs/srv/SubmapQuery
    /tf2_frames: tf2_msgs/srv/FrameGraph
    /trajectory_query: cartographer_ros_msgs/srv/TrajectoryQuery
    /write_state: cartographer_ros_msgs/srv/WriteState
  Service Clients:

  Action Servers:

  Action Clients:

视觉/激光 SLAM: RTAB-Map

(1)安装启动

sudo apt update
sudo apt install ros-jazzy-rtabmap-ros

# 启动 RTAB-Map (无界面模式 + 订阅激光雷达)
ros2 launch rtabmap_launch rtabmap.launch.py \
    rtabmap_viz:=false \
    use_sim_time:=false \
    subscribe_scan:=true \
    frame_id:=base_link \
    approx_sync:=true

(2)查看输入输出

ros2 node info /rtabmap/rtabmap
/rtabmap/rtabmap
  Subscribers:
    /camera/depth_registered/image_raw: sensor_msgs/msg/Image
    /camera/rgb/camera_info: sensor_msgs/msg/CameraInfo
    /camera/rgb/image_rect_color: sensor_msgs/msg/Image
    /detections: apriltag_msgs/msg/AprilTagDetectionArray
    /gps/fix: sensor_msgs/msg/NavSatFix
    /imu/data: sensor_msgs/msg/Imu
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rtabmap/apriltag/detections: apriltag_msgs/msg/AprilTagDetectionArray
    /rtabmap/aruco/detections: aruco_msgs/msg/MarkerArray
    /rtabmap/aruco_opencv/detections: aruco_opencv_msgs/msg/ArucoDetection
    /rtabmap/global_pose: geometry_msgs/msg/PoseWithCovarianceStamped
    /rtabmap/goal: geometry_msgs/msg/PoseStamped
    /rtabmap/goal_node: rtabmap_msgs/msg/Goal
    /rtabmap/initialpose: geometry_msgs/msg/PoseWithCovarianceStamped
    /rtabmap/landmark_detection: rtabmap_msgs/msg/LandmarkDetection
    /rtabmap/landmark_detections: rtabmap_msgs/msg/LandmarkDetections
    /rtabmap/odom: nav_msgs/msg/Odometry
    /rtabmap/odom_info: rtabmap_msgs/msg/OdomInfo
    /rtabmap/rtabmap/republish_node_data: std_msgs/msg/Int32MultiArray
    /scan: sensor_msgs/msg/LaserScan
    /user_data_async: rtabmap_msgs/msg/UserData
  Publishers:
    /diagnostics: diagnostic_msgs/msg/DiagnosticArray
    /goal_pose: geometry_msgs/msg/PoseStamped
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
    /rtabmap/cloud_ground: sensor_msgs/msg/PointCloud2
    /rtabmap/cloud_map: sensor_msgs/msg/PointCloud2
    /rtabmap/cloud_obstacles: sensor_msgs/msg/PointCloud2
    /rtabmap/global_path: nav_msgs/msg/Path
    /rtabmap/global_path_nodes: rtabmap_msgs/msg/Path
    /rtabmap/goal_reached: std_msgs/msg/Bool
    /rtabmap/grid_prob_map: nav_msgs/msg/OccupancyGrid
    /rtabmap/info: rtabmap_msgs/msg/Info
    /rtabmap/labels: visualization_msgs/msg/MarkerArray
    /rtabmap/landmarks: geometry_msgs/msg/PoseArray
    /rtabmap/local_grid_empty: sensor_msgs/msg/PointCloud2
    /rtabmap/local_grid_ground: sensor_msgs/msg/PointCloud2
    /rtabmap/local_grid_obstacle: sensor_msgs/msg/PointCloud2
    /rtabmap/local_path: nav_msgs/msg/Path
    /rtabmap/local_path_nodes: rtabmap_msgs/msg/Path
    /rtabmap/localization_pose: geometry_msgs/msg/PoseWithCovarianceStamped
    /rtabmap/map: nav_msgs/msg/OccupancyGrid
    /rtabmap/mapData: rtabmap_msgs/msg/MapData
    /rtabmap/mapGraph: rtabmap_msgs/msg/MapGraph
    /rtabmap/mapOdomCache: rtabmap_msgs/msg/MapGraph
    /rtabmap/mapPath: nav_msgs/msg/Path
    /rtabmap/octomap_binary: octomap_msgs/msg/Octomap
    /rtabmap/octomap_empty_space: sensor_msgs/msg/PointCloud2
    /rtabmap/octomap_full: octomap_msgs/msg/Octomap
    /rtabmap/octomap_global_frontier_space: sensor_msgs/msg/PointCloud2
    /rtabmap/octomap_grid: nav_msgs/msg/OccupancyGrid
    /rtabmap/octomap_ground: sensor_msgs/msg/PointCloud2
    /rtabmap/octomap_obstacles: sensor_msgs/msg/PointCloud2
    /rtabmap/octomap_occupied_space: sensor_msgs/msg/PointCloud2
    /tf: tf2_msgs/msg/TFMessage
  Service Servers:
    /rtabmap/rtabmap/add_link: rtabmap_msgs/srv/AddLink
    /rtabmap/rtabmap/backup: std_srvs/srv/Empty
    /rtabmap/rtabmap/cancel_goal: std_srvs/srv/Empty
    /rtabmap/rtabmap/cleanup_local_grids: rtabmap_msgs/srv/CleanupLocalGrids
    /rtabmap/rtabmap/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /rtabmap/rtabmap/detect_more_loop_closures: rtabmap_msgs/srv/DetectMoreLoopClosures
    /rtabmap/rtabmap/get_map: nav_msgs/srv/GetMap
    /rtabmap/rtabmap/get_map_data: rtabmap_msgs/srv/GetMap
    /rtabmap/rtabmap/get_map_data2: rtabmap_msgs/srv/GetMap2
    /rtabmap/rtabmap/get_node_data: rtabmap_msgs/srv/GetNodeData
    /rtabmap/rtabmap/get_nodes_in_radius: rtabmap_msgs/srv/GetNodesInRadius
    /rtabmap/rtabmap/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /rtabmap/rtabmap/get_parameters: rcl_interfaces/srv/GetParameters
    /rtabmap/rtabmap/get_plan: nav_msgs/srv/GetPlan
    /rtabmap/rtabmap/get_plan_nodes: rtabmap_msgs/srv/GetPlan
    /rtabmap/rtabmap/get_prob_map: nav_msgs/srv/GetMap
    /rtabmap/rtabmap/get_type_description: type_description_interfaces/srv/GetTypeDescription
    /rtabmap/rtabmap/global_bundle_adjustment: rtabmap_msgs/srv/GlobalBundleAdjustment
    /rtabmap/rtabmap/list_labels: rtabmap_msgs/srv/ListLabels
    /rtabmap/rtabmap/list_parameters: rcl_interfaces/srv/ListParameters
    /rtabmap/rtabmap/load_database: rtabmap_msgs/srv/LoadDatabase
    /rtabmap/rtabmap/log_debug: std_srvs/srv/Empty
    /rtabmap/rtabmap/log_error: std_srvs/srv/Empty
    /rtabmap/rtabmap/log_info: std_srvs/srv/Empty
    /rtabmap/rtabmap/log_warning: std_srvs/srv/Empty
    /rtabmap/rtabmap/octomap_binary: octomap_msgs/srv/GetOctomap
    /rtabmap/rtabmap/octomap_full: octomap_msgs/srv/GetOctomap
    /rtabmap/rtabmap/pause: std_srvs/srv/Empty
    /rtabmap/rtabmap/publish_map: rtabmap_msgs/srv/PublishMap
    /rtabmap/rtabmap/remove_label: rtabmap_msgs/srv/RemoveLabel
    /rtabmap/rtabmap/reset: std_srvs/srv/Empty
    /rtabmap/rtabmap/resume: std_srvs/srv/Empty
    /rtabmap/rtabmap/set_goal: rtabmap_msgs/srv/SetGoal
    /rtabmap/rtabmap/set_label: rtabmap_msgs/srv/SetLabel
    /rtabmap/rtabmap/set_mode_localization: std_srvs/srv/Empty
    /rtabmap/rtabmap/set_mode_mapping: std_srvs/srv/Empty
    /rtabmap/rtabmap/set_parameters: rcl_interfaces/srv/SetParameters
    /rtabmap/rtabmap/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
    /rtabmap/rtabmap/trigger_new_map: std_srvs/srv/Empty
    /rtabmap/rtabmap/update_parameters: std_srvs/srv/Empty
  Service Clients:
    /rtabmap/rtabmap/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /rtabmap/rtabmap/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /rtabmap/rtabmap/get_parameters: rcl_interfaces/srv/GetParameters
    /rtabmap/rtabmap/list_parameters: rcl_interfaces/srv/ListParameters
    /rtabmap/rtabmap/set_parameters: rcl_interfaces/srv/SetParameters
    /rtabmap/rtabmap/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
  Action Servers:

  Action Clients:


导航

NAV2

(1)安装启动

# 安装 Nav2 的核心带起动包
sudo apt install ros-jazzy-nav2-bringup


# 这是一个“模拟启动”,虽然没有地图,但会把所有节点拉起来
ros2 launch nav2_bringup bringup_launch.py \
    use_sim_time:=false \
    map:=/dev/null \
    autostart:=true

(2)查看输入输出

查看输入

ros2 node list | grep nav2
# 随便挑一个核心节点查,比如 bt_navigator
ros2 node info /bt_navigator

 ros2 node info /bt_navigator
/bt_navigator
  Subscribers:
    /goal_pose: geometry_msgs/msg/PoseStamped
    /odom: nav_msgs/msg/Odometry
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /tf: tf2_msgs/msg/TFMessage
    /tf_static: tf2_msgs/msg/TFMessage
  Publishers:
    /bt_navigator/transition_event: lifecycle_msgs/msg/TransitionEvent
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
  Service Servers:
    /bt_navigator/change_state: lifecycle_msgs/srv/ChangeState
    /bt_navigator/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /bt_navigator/get_available_states: lifecycle_msgs/srv/GetAvailableStates
    /bt_navigator/get_available_transitions: lifecycle_msgs/srv/GetAvailableTransitions
    /bt_navigator/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /bt_navigator/get_parameters: rcl_interfaces/srv/GetParameters
    /bt_navigator/get_state: lifecycle_msgs/srv/GetState
    /bt_navigator/get_transition_graph: lifecycle_msgs/srv/GetAvailableTransitions
    /bt_navigator/get_type_description: type_description_interfaces/srv/GetTypeDescription
    /bt_navigator/list_parameters: rcl_interfaces/srv/ListParameters
    /bt_navigator/set_parameters: rcl_interfaces/srv/SetParameters
    /bt_navigator/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
  Service Clients:

  Action Servers:
    /navigate_through_poses: nav2_msgs/action/NavigateThroughPoses
    /navigate_to_pose: nav2_msgs/action/NavigateToPose
  Action Clients:
    /navigate_to_pose: nav2_msgs/action/NavigateToPose

查看输出

ros2 node info /controller_server

ros2 node info /controller_server
/controller_server
  Subscribers:
    /odom: nav_msgs/msg/Odometry
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /speed_limit: nav2_msgs/msg/SpeedLimit
  Publishers:
    /cmd_vel_nav: geometry_msgs/msg/Twist
    /controller_server/transition_event: lifecycle_msgs/msg/TransitionEvent
    /optimal_trajectory: nav_msgs/msg/Path
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
    /trajectories: visualization_msgs/msg/MarkerArray
    /transformed_global_plan: nav_msgs/msg/Path
  Service Servers:
    /controller_server/change_state: lifecycle_msgs/srv/ChangeState
    /controller_server/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /controller_server/get_available_states: lifecycle_msgs/srv/GetAvailableStates
    /controller_server/get_available_transitions: lifecycle_msgs/srv/GetAvailableTransitions
    /controller_server/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /controller_server/get_parameters: rcl_interfaces/srv/GetParameters
    /controller_server/get_state: lifecycle_msgs/srv/GetState
    /controller_server/get_transition_graph: lifecycle_msgs/srv/GetAvailableTransitions
    /controller_server/get_type_description: type_description_interfaces/srv/GetTypeDescription
    /controller_server/list_parameters: rcl_interfaces/srv/ListParameters
    /controller_server/set_parameters: rcl_interfaces/srv/SetParameters
    /controller_server/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
  Service Clients:

  Action Servers:
    /follow_path: nav2_msgs/action/FollowPath
  Action Clients:

传感器融合:EKF

(1)安装启动

sudo apt install ros-jazzy-robot-localization

ros2 launch robot_localization ekf.launch.py

(2)查看输入输出

ros2 node info /ekf_filter_node
ros2 node info /ekf_filter_node
/ekf_filter_node
  Subscribers:
    /cmd_vel: geometry_msgs/msg/Twist
    /example/imu: sensor_msgs/msg/Imu
    /example/odom: nav_msgs/msg/Odometry
    /example/odom2: nav_msgs/msg/Odometry
    /example/pose: geometry_msgs/msg/PoseWithCovarianceStamped
    /example/twist: geometry_msgs/msg/TwistWithCovarianceStamped
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /set_pose: geometry_msgs/msg/PoseWithCovarianceStamped
  Publishers:
    /diagnostics: diagnostic_msgs/msg/DiagnosticArray
    /odometry/filtered: nav_msgs/msg/Odometry
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
    /tf: tf2_msgs/msg/TFMessage
  Service Servers:
    /ekf_filter_node/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /ekf_filter_node/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /ekf_filter_node/get_parameters: rcl_interfaces/srv/GetParameters
    /ekf_filter_node/get_type_description: type_description_interfaces/srv/GetTypeDescription
    /ekf_filter_node/list_parameters: rcl_interfaces/srv/ListParameters
    /ekf_filter_node/set_parameters: rcl_interfaces/srv/SetParameters
    /ekf_filter_node/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
    /enable: std_srvs/srv/Empty
    /reset: std_srvs/srv/Empty
    /set_pose: robot_localization/srv/SetPose
    /toggle: robot_localization/srv/ToggleFilterProcessing
  Service Clients:

  Action Servers:

  Action Clients:

发表你的看法

\t