Performance: Why the navigation stack enables autonomous movement
This concept impacts the robot's real-time responsiveness and smoothness in autonomous navigation by managing sensor data processing and motion commands efficiently.
Using asynchronous callbacks and prioritized message handling in the navigation stack to process sensor data and update movement commands concurrently.
Using blocking calls for sensor data processing and sequentially handling navigation tasks without concurrency or prioritization.
| Pattern | Sensor Data Handling | Command Latency | Responsiveness | Verdict |
|---|---|---|---|---|
| Blocking sequential processing | Single-threaded, waits for each sensor input | High latency due to blocking | Poor responsiveness, jerky movement | [X] Bad |
| Asynchronous prioritized processing | Concurrent handling of sensor inputs | Low latency with timely updates | Smooth and responsive autonomous movement | [OK] Good |
send_goal() is called?
def send_goal():
goal = PoseStamped()
goal.header.frame_id = "map"
goal.pose.position.x = 2.0
goal.pose.position.y = 3.0
goal.pose.orientation.w = 1.0
nav_client.send_goal(goal)
nav_client.send_goal(goal) sends this goal to the navigation stack, which will plan and move the robot there autonomously.goal = PoseStamped() goal.pose.position.x = 1.0 goal.pose.position.y = 1.0 nav_client.send_goal(goal)What is the likely cause of the problem?
Pass the test and this pattern moves unknown