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

Revision history [back]

You have to think in the local frame of the robot. I'll dispense a couple of samples in the 2D-plane for ground robots:

Using the local base frame, the robot is always looking to the infinity of the x-axis (no matter where it located on the plane). So if you command a Twist {linear.x=1,linear.y=0} the robot will go through a straight line. You can see that if we are working with a non-holonomic robot (like the erratic robot) the linear.y has no meaning. In the other hand if you work with holonomic robot (like the PR2 base) the linear.y would mean lateral move.

The angular.z is the yaw rotation, that it's, the only possible rotation in the 2D plane where the robot stands (if we are talking about a ground robot in the plane).

You have to think in the local frame of the robot. I'll dispense a couple of samples in the 2D-plane for ground robots:

Using the local robot base frame, the robot is always looking to the infinity of the x-axis (no matter where it located on the plane). map). So if you command a Twist {linear.x=1,linear.y=0} the robot will go through a straight line. You can see that if we are working with a non-holonomic robot (like the erratic robot) the linear.y has no meaning. In the other hand if you work with holonomic robot (like the PR2 base) the linear.y would mean lateral move.

The angular.z is the yaw rotation, that it's, the only possible rotation in the 2D plane where the robot stands (if we are talking about a ground robot in the plane).plane). The angular.z veolocity is in radians and anti-clockwise. So a Twist message with angular.z > 0 means turn left in the local frame.

You have to think in the local frame of the robot. I'll dispense a couple of samples in the 2D-plane for ground robots:

Using the local robot base frame, the robot is always looking to the infinity of the x-axis (no matter where it located on the map). So if you command a Twist {linear.x=1,linear.y=0} the robot will go through a straight line. forward. You can see that if we are working with a non-holonomic robot (like the erratic robot) the linear.y has no meaning. In the other hand if you work with holonomic robot (like the PR2 base) the linear.y would mean lateral move.

The angular.z is the yaw rotation, that it's, the only possible rotation in the 2D plane where the robot stands (if we are talking about a ground robot in the plane). The angular.z veolocity is in radians and anti-clockwise. So a Twist message with angular.z > 0 means turn left in the local frame.

You have to think in the local frame of the robot. I'll dispense a couple of samples in the 2D-plane for ground robots:

Using the local robot base frame, the robot is always looking to the infinity of the x-axis (no matter where it located on the map). So if you command a Twist {linear.x=1,linear.y=0} the robot will go forward. You can see that if we are working with a non-holonomic robot (like the erratic robot) the linear.y has no meaning. In the other hand if you work with holonomic robot (like the PR2 base) the linear.y would mean lateral move.

The angular.z is the yaw rotation, that it's, the only possible rotation in the 2D plane where the robot stands (if we are talking about a ground robot in the plane). The angular.z veolocity is in radians and anti-clockwise. So a Twist message with angular.z > 0 means turn left in the local frame.

See details in: Standard Units of Measure and Coordinate Conventions