VMX-pi measures a total of 9 sensor axes (3 gyroscope axes, 3 accelerometer axes and 3 magnetometer axes) and fuses them into a 3-D coordinate system. In order to effectively use the values reported by VMX-pi, a few key concepts must be understood in order to correctly install VMX-pi on a robot.

3-D Coordinate System

When controlling a robot in 3 dimensions a set of 3 axes are combined into a 3-D coordinate system, as depicted below:


In the diagram above, the green rounded arrows represent Rotational motion, and the remaining arrows represent Linear motion.

Axis Orientation  Linear motion Rotational Motion
X (Pitch) Left/Right – Left / + Right + Tilt Backwards
Y (Roll) Forward/Backward + Forward / – Backward + Roll Left
Z (Yaw) Up/Down + Up / – Down + Clockwise/ – Counter-wise

More discussion on the 3-D Coordinate system is on the Terminology page.

Reference Frames

Note that the 3-axis coordinate system describes relative motion and orientation; it doesn’t specify the orientation with respect to any other reference.  For instance, what does “left” mean once a robot has rotated 180 degrees?

To address this, the concept of a reference frame was invented.  There are three separate three-axis “reference frames” that should be understood:

Coordinate System Technical Term X Axis Y Axis
Field World Frame Side of Field Front (Head) of Field
Robot Body Frame Side of Robot Front (Head) of Robot
navX- Micro Board Frame See diagram Below See diagram below

Joysticks and Reference Frames


Since a three-axis joystick is typically used to control a robot, the robot designer must select upon which Reference Frame the driver joystick is based.  This selection of Reference Frame typically depends upon the drive mode used:

Drive mode Reference Frame Coordinate Orientation
Standard Drive Body Frame Forward always points to the front (head) of the robot
Field-oriented Drive World Frame Forward always points to the front (head) of the field

VMX-pi Board Orientation (Board Frame)

Aligning Board Frame and Body Frame

In order for the VMX-pi orientation sensor readings to be easily usable by a robot control application, the VMX-pi Coordinate System (Board Frame) must be aligned with the Robot Coordinate system (Body Frame).

Aligning the Yaw (Z) axis and Gravity

The VMX-pi motion processor takes advantage of the fact that gravity can be measured with its onboard accelerometers, fusing this information with the onboard gyroscopes to yield a very accurate yaw reading with a low rate of drift.  In order to accomplish this, the yaw (Z) axis must be aligned with the “gravity axis” (the axis that points directly up and down with respect to the earth).

When installing VMX-pi on a robot, the VMX-pi yaw (Z) axis and the gravity axis must be aligned.

Default VMX-pi Board Orientation

The default VMX-pi circuit board orientation is with the VMX-pi logo on the Front Right,  with the top of the circuit board pointing up (with respect to the earth).

Since Body Frame and Board Frame coordinates should be aligned, and because the Yaw axis must be aligned with gravity, by default you must orient the navX-Micro with the top of the board facing up, and with the Y axis (on the circuit board) pointing to the front of the robot.

If you need to mount the VMX-pi circuit board in a different orientation (vertically, horizontally, or upside down), you can use the OmniMount feature to transform the orientation.