What if your robot could think on its feet and dodge obstacles all by itself?
Why Local planner (DWA, TEB) in ROS? - Purpose & Use Cases
Imagine manually controlling a robot to navigate through a busy room full of obstacles, constantly adjusting its path by hand to avoid collisions.
Manually planning every movement is slow, error-prone, and impossible to react quickly to sudden changes or dynamic obstacles in the environment.
Local planners like DWA and TEB automatically calculate safe, efficient paths in real-time, allowing robots to smoothly navigate complex spaces without constant human input.
robot.move_forward(); if (obstacle_detected) { robot.stop(); robot.turn(angle); }local_planner.compute_velocity_commands(); robot.execute_commands();
Robots can safely and efficiently navigate dynamic environments on their own, adapting instantly to changes around them.
A delivery robot weaving through crowded hallways, avoiding people and furniture without needing a person to guide every step.
Manual path control is slow and risky in dynamic spaces.
DWA and TEB planners automate safe, real-time local navigation.
This enables robots to move smoothly and react quickly to obstacles.
Practice
Solution
Step 1: Understand the role of local planners
Local planners focus on immediate surroundings to avoid obstacles and plan short paths.Step 2: Compare options
Mapping the environment is done by global planners or mapping nodes, not local planners.Final Answer:
To help the robot navigate safely around obstacles nearby -> Option CQuick Check:
Local planner = safe nearby navigation [OK]
- Confusing local planner with global planner
- Thinking local planner maps environment
- Assuming local planner manages robot hardware
Solution
Step 1: Identify the correct parameter name for local planner
The parameter to specify the local planner plugin is usually 'base_local_planner'.Step 2: Match the correct plugin name for DWA
DWA local planner plugin is 'dwa_local_planner/DWAPlannerROS'. base_local_planner: "dwa_local_planner/DWAPlannerROS" matches this exactly.Final Answer:
base_local_planner: "dwa_local_planner/DWAPlannerROS" -> Option AQuick Check:
Correct plugin name and parameter = base_local_planner: "dwa_local_planner/DWAPlannerROS" [OK]
- Using 'planner' instead of 'base_local_planner'
- Confusing DWA and TEB plugin names
- Using global planner plugin name for local planner
teb_local_planner: max_vel_x: 0.5 max_vel_theta: 1.0 min_turning_radius: 0.2What will happen if the robot tries to turn with an angular velocity of 1.5 rad/s?
Solution
Step 1: Understand max_vel_theta parameter
This parameter sets the maximum allowed angular velocity for the robot.Step 2: Compare requested angular velocity with max_vel_theta
The requested 1.5 rad/s exceeds the max of 1.0 rad/s, so the planner limits it to 1.0 rad/s.Final Answer:
The planner will limit the angular velocity to 1.0 rad/s -> Option BQuick Check:
Angular velocity capped by max_vel_theta = The planner will limit the angular velocity to 1.0 rad/s [OK]
- Assuming planner allows velocities above max
- Thinking planner stops robot on limit breach
- Ignoring max_vel_theta parameter
Solution
Step 1: Identify parameters affecting obstacle avoidance
DWA uses parameters like obstacle distance to decide when to start avoiding obstacles.Step 2: Analyze effect of low obstacle distance
If set too low, the planner reacts too late, causing collisions.Final Answer:
The obstacle distance parameter is set too low, causing late avoidance -> Option AQuick Check:
Late avoidance due to low obstacle distance = The obstacle distance parameter is set too low, causing late avoidance [OK]
- Blaming global planner for local planner issues
- Ignoring parameter tuning for obstacle avoidance
- Assuming hardware issues cause collisions without evidence
Solution
Step 1: Understand min_turning_radius effect
Decreasing min_turning_radius allows tighter turns, useful in narrow corridors.Step 2: Understand obstacle_avoidance_force effect
Increasing obstacle_avoidance_force makes the planner keep safer distance from obstacles, improving clearance.Step 3: Combine effects for smooth navigation
Tight turns plus stronger obstacle avoidance helps smooth, safe navigation in tight spaces.Final Answer:
Decrease min_turning_radius and increase obstacle_avoidance_force -> Option DQuick Check:
Tight turns + strong avoidance = Decrease min_turning_radius and increase obstacle_avoidance_force [OK]
- Increasing turning radius makes turns wider, not tighter
- Disabling obstacle avoidance causes collisions
- Confusing velocity limits with turning parameters
Ready to prove it?
Pass the test and this pattern moves unknown
