Coordinate systems

From The Player Project

Revision as of 11:05, 17 August 2011 by Jeraldinesewell (Talk | contribs)
Jump to: navigation, search

Coordinate System:

Player uses the same coordinate system like gazebo. Its a right handed coordinate system with X and Y in a plane and Z pointing upwards. If you consider your robot (and you are in the origin of your robot) X is the heading direction of your robot. Y points to the left and Z points upwards.

Right handed.gif

The following image shows the 2d version of this coordinate system with the robots orientation (yaw) values (in rad).

Coordinate system 2d.gif

Rotation:

Player uses roll pitch and yaw to determine rotation in three dimensions. If you want to transform between coordinate systems in player (for example local laser scanner coordinate system -> local robot coordinate system) the easiest way is to create a rotation matrix for this transformation.

A rotation around the X-axis (roll) in a right handed coordinate system gives the following matrix RX. A positive roll value results in a counter clockwise rotation:

Rotation x.gif

A rotation around the Y-axis (pitch) in a right handed coordinate system gives the following matrix RY. A positive pitch value results in a counter clockwise rotation:

Rotation y.gif

A rotation around the Z-axis (yaw) in a right handed coordinate system gives the following matrix RZ. A positive yaw value results in a counter clockwise rotation:

Rotation z.gif

Player uses roll pitch yaw order (XYZ convention)in a fixed world coordinate system. This is equivalent to euler angles (in a rotating coordinate system) in yaw pitch roll order (ZYX convention).

Multipilication of RX RY RZ results in the following rotation matrix:

Rotation xyz.gif

Using this matrix you can convert a 3d point from one coordinate system to the other. For example you get the ranger geom message. Now you create the rotation matrix using geom.pose.proll, geom.pose.ppitch, geom.pose.pyaw. (The order is important). Now you can convert the range point from the local (right handed two dimensional) ranger coordinate system into the local robot coordinate system by multiply all ranger points with the rotation matrix.

If you also consider the translation between the two coordinate systems you can enlarge the rotation matrix to a 4x4 matrix:

Rotation translation xyz.gif

Ensure, that you rotate first and translate afterwards.

Robot Reference Point:

The reference point for the local coordinate system is the center of gravity of the robot, laserscanner, ...

article writing services

Personal tools