Hint: Use ros2 action send_goal for Nav2 goals [OK]
Common Mistakes:
Using topic publish instead of action send_goal
Calling unrelated services
Setting parameters instead of sending goals
3. Given the following Nav2 action client code snippet in ROS 2, what will be the output if the robot successfully reaches the goal?
client.send_goal(goal_msg)
result = client.get_result()
print(result.status)
medium
A. An integer status code indicating success
B. A string message describing the error
C. A boolean True if goal reached, False otherwise
D. No output, the code will raise an exception
Solution
Step 1: Understand Nav2 action client result
The get_result() method returns a result object with a status code as an integer.
Step 2: Interpret the printed status
Printing result.status outputs an integer code representing success or failure, not a string or boolean.
Final Answer:
An integer status code indicating success -> Option A
Quick Check:
result.status = integer code [OK]
Hint: Nav2 action results use integer status codes [OK]
Common Mistakes:
Expecting a string message instead of code
Thinking result.status is boolean
Assuming code raises exception on success
4. You wrote a Nav2 client node but it never moves the robot after sending a goal. Which of the following is the most likely cause?
medium
A. The robot's wheels are physically blocked
B. The Nav2 stack is not running or not properly launched
C. The robot's battery is low
D. The goal message has an incorrect frame_id
Solution
Step 1: Check common Nav2 goal issues
If the Nav2 stack is not running or not properly launched, the robot will not move because the navigation system is inactive.
Step 2: Evaluate other options
While an incorrect 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.
Final Answer:
The Nav2 stack is not running or not properly launched -> Option B
Quick Check:
Nav2 stack running = robot moves [OK]
Hint: Ensure Nav2 stack is running if robot doesn't move [OK]
Common Mistakes:
Assuming Nav2 stack is always running
Ignoring coordinate frame mismatches
Blaming hardware before software checks
5. You want your robot to navigate through a dynamic environment using Nav2 in ROS 2. Which combination of Nav2 components should you configure to ensure the robot replans paths when obstacles move?
hard
A. Use the planner_server with a global planner and enable the controller_server with obstacle avoidance
B. Use only the behavior_tree without planners or controllers
C. Disable the controller_server and rely on manual velocity commands
D. Use the map_server alone to update the robot's position
Solution
Step 1: Identify components for path planning and obstacle avoidance
The planner_server creates global paths, and the controller_server handles local obstacle avoidance and path following.
Step 2: Understand dynamic replanning needs
Enabling both planner and controller servers allows Nav2 to replan paths when obstacles move, ensuring safe navigation.
Final Answer:
Use the planner_server with a global planner and enable the controller_server with obstacle avoidance -> Option A
Quick Check:
Planner + Controller = dynamic replanning [OK]
Hint: Planner and controller servers enable dynamic path replanning [OK]
Common Mistakes:
Ignoring controller_server role in obstacle avoidance
Thinking behavior_tree alone handles planning
Relying only on map_server for navigation
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.