ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The ROS navigation stack has two different functions: 1) estimate where the robot is, and 2) given a goal, move the robot to that goal. These two are mostly independent of each other. Odometry is in (1), so that Twist does not directly have anything to do with moving the robot - it's merely an estimate of what the robot is doing right now (position and velocity).

The Local Planner is in (2). It sends Twist messages to a "controller", which after another calculation, results in the robot wheels turning. This Twist message is not taken directly from the Odom message. Instead, part of the job of the Local Planner is examine the difference between its next-internal-short-term goal and the current odometry, and decide on a new Twist msg to generate. For a wheeled robot, typically Local Planners to do this about 5 times per second.

The ROS navigation stack has two different functions: 1) estimate where the robot is, and 2) given a goal, move the robot to that goal. These two are mostly independent of each other. Odometry is in (1), so that Twist does not directly have anything to do with moving the robot - it's merely an estimate of what the robot is doing right now (position and velocity).

The Local Planner is in (2). It sends Twist messages to a "controller", which after another calculation, results in the robot wheels turning. This Twist message is not taken directly from the Odom message. Instead, part of the job of the Local Planner is examine the difference between its next-internal-short-term goal and the current odometry, and decide on a new Twist msg to generate. publish. For a wheeled robot, robot with wheels, typically Local Planners to do this about 5 times per second.