ROS1 vs ROS2 Comprehensive Comparison (2)

Introspection Commands Comparison

Task ROS1 Command ROS2 Command Notes
Node Introspection
List all nodes rosnode list ros2 node list The functionality is similar, but in ROS2 all command line tools use the ros2 prefix
Get node information rosnode info /node_name ros2 node info /node_name Shows publishers, subscribers, services, and actions associated with the node
Ping a node rosnode ping /node_name ros2 node ping /node_name Test connectivity to a specific node
Kill a node rosnode kill /node_name Not directly available In ROS2, you typically use Ctrl+C or task/process management
Run a node rosrun package_name node_name ros2 run package_name node_name The core functionality is the same
Topic Introspection
List all topics rostopic list ros2 topic list Lists all active topics
List topics with types rostopic list -v ros2 topic list -t In ROS2, the -t flag is used for showing types
Show topic information rostopic info /topic_name ros2 topic info /topic_name Shows publishers and subscribers of a topic
Echo (display) topic messages rostopic echo /topic_name ros2 topic echo /topic_name Displays message content in real-time
Show message type rostopic type /topic_name ros2 topic type /topic_name Shows the message type used by a topic
Publish to topic rostopic pub /topic_name msg_type "data" ros2 topic pub /topic_name msg_type "data" In ROS2, message types include the msg/ namespace (e.g., std_msgs/msg/String)
Show topic publishing rate rostopic hz /topic_name ros2 topic hz /topic_name Shows how frequently messages are published
Show topic bandwidth rostopic bw /topic_name ros2 topic bw /topic_name Shows bandwidth used by the topic
Find topics by type rostopic find msg_type ros2 topic find msg_type Find all topics of a specific message type
Service Introspection
List all services rosservice list ros2 service list Lists all available services
Show service type rosservice type /service_name ros2 service type /service_name Shows the service type
Call a service rosservice call /service_name [args] ros2 service call /service_name srv_type [args] In ROS2, you must specify the service type explicitly
Show service arguments rosservice args /service_name Use ros2 interface show srv_type In ROS2, you check the service interface definition instead
Find services by type rosservice find srv_type ros2 service find srv_type Find all services of a specific type
Monitor service calls Not directly available ros2 service echo /service_name ROS2 introduced service call monitoring
Interface Introspection
Show message definition rosmsg show msg_type ros2 interface show msg_type ROS2 unified msg, srv, and action introspection under "interface"
Show service definition rossrv show srv_type ros2 interface show srv_type Same command for all interface types in ROS2
List message types rosmsg list ros2 interface list Use with --only-msgs flag in ROS2 to filter
List service types rossrv list ros2 interface list Use with --only-srvs flag in ROS2 to filter
Parameter Introspection
List parameters rosparam list ros2 param list In ROS2, parameters are node-specific
Get parameter value rosparam get parameter_name ros2 param get /node_name parameter_name ROS2 requires specifying the node name
Set parameter value rosparam set parameter_name value ros2 param set /node_name parameter_name value Node name is required in ROS2
Load parameters from file rosparam load file.yaml ros2 param load /node_name file.yaml Node-specific in ROS2
Dump parameters to file rosparam dump file.yaml ros2 param dump /node_name file.yaml Node-specific in ROS2
Action Introspection (ROS2 Only)
List actions Not available (used actionlib) ros2 action list Actions are a first-class citizen in ROS2
Show action info Not available ros2 action info /action_name Shows action servers and clients
Send action goal Not available (required code) ros2 action send_goal /action_name action_type goal Command line interface for actions
Launch
Launch multiple nodes roslaunch package_name file.launch ros2 launch package_name file.launch.py ROS2 supports Python, XML, and YAML launch files

Key Differences in Introspection Commands

Feature ROS1 ROS2
Command Structure Individual tools (rostopic, rosnode, etc.) Unified ros2 prefix with subcommands
Message/Service Inspection Separate rosmsg and rossrv commands Unified ros2 interface command
Parameter Handling Global parameter server Node-specific parameters
Action Support Through actionlib package, no CLI tools First-class citizen with CLI tools
Service Call Monitoring Not available Available with ros2 service echo
Service Type in Call Not required Must specify service type
Command Arguments Simple More structured with --ros-args approach

留言

這個網誌中的熱門文章

Useful PX4 Parameters

Tuing PID parameters in QGroundcontrol (2)

Matlab Pixhawk Support Package installation (Windows)