Performance: Nav2 in ROS 2 overview
Nav2 affects the responsiveness and real-time path planning performance of robots using ROS 2.
Filtering sensor data to reduce noise and distributing Nav2 nodes across multiple CPU cores.Using high-frequency sensor data without filtering and running all Nav2 nodes on a single CPU core.| Pattern | CPU Usage | Latency | Responsiveness | Verdict |
|---|---|---|---|---|
| Single-core Nav2 with unfiltered data | High | High | Low | [X] Bad |
| Multi-core Nav2 with filtered data | Moderate | Low | High | [OK] Good |
ros2 action send_goal with the NavigateToPose action and a pose message.ros2 topic pub /cmd_vel geometry_msgs/Twist '{linear: {x: 1.0}}' publishes velocity commands, not goals. ros2 service call /start_navigation std_srvs/Empty '{}' calls a service unrelated to sending goals. ros2 param set /nav2_controller speed 1.0 sets parameters, not goals.client.send_goal(goal_msg) result = client.get_result() print(result.status)
get_result() method returns a result object with a status code as an integer.result.status outputs an integer code representing success or failure, not a string or boolean.frame_id can cause issues, the most common cause when the robot never moves after sending a goal is that the Nav2 stack is not running. Hardware issues like blocked wheels or low battery are less likely in software debugging context.planner_server creates global paths, and the controller_server handles local obstacle avoidance and path following.Pass the test and this pattern moves unknown