Frequently Asked Questions

Which Raspberry Pi board versions are compatible with VMX-pi?

  • Raspberry Pi 3 Model B+
  • Raspberry Pi 3 Model B
  • Raspberry Pi 2 Model B
  • Raspberry Pi Zero/W
  • Raspberry Pi Zero

Can VMX-pi be used  with the National Instruments RoboRIO™?

Yes, in several ways.

  1. Ethernet.  In this configuration, by using the WPI NetworkTables library, vision processing detection events performed on the Raspberry Pi can be exchanged with the RoboRIO.  Additionally, VMX-pi’s battery-backed real-time clock and Network Time Protocol Daemon (NTPD) can be used to synchronize timestamps between RoboRIO and VMX-pi, ensuring log file timestamps on both systems are the same.
  2. USB.  The VMX-pi USB port is compatible with navX-MXP and navX-Micro; therefore, by connecting a USB cable from VMX-pi to RoboRIO, VMX-pi’s IMU data can be accessed via existing navX-FRC Libraries.
  3. CAN.  The VMX-pi can connect to the same CAN bus as the RoboRIO; although there is currently no direct CAN communication with RoboRIO, this connection does allow a FRC CAN bus to be monitored.

Please see the instructions for installing VMX-pi on a FRC Robot for more details.

Can VMX-pi be used to control devices (e.g., motors, servos and relays) on a FRC competition robot?

VMX-pi is not legal for competition FRC actuator control.

However VMX-pi is definitely legal for vision and motion processing, and can also be used to monitor the CAN bus.

And VMX-pi can be used by FRC teams to build off-season robots and other devices such as “T-shirt launchers”.

Aren’t the magnetometer (compass heading) readings unreliable when the VMX-pi is used on a Robot with powerful motors?

Yes, this is correct. If the VMX-pi is mounted nearby any energized motors, the magnetometer’s ability to measure the (weak) earth’s magnetic field is severely diminished.

Magnetometer readings can be taken before motors are enabled to establish “initial orientation”, which can then be updated during operation.

Why do the Yaw angles provided by the VMX-pi drift over time?

The short answer is that the yaw angle is calculated by integrating reading from a gyroscope which measures changes in rotation, rather than absolute angles. Over time, small errors in the rotation measurements build up over time. VMX-pi features sophisticated digital motion processing and calibration algorithms that limit this error in the yaw angle of ~1 degree per minute.  For further details, please see the Yaw Drift page.

Can the VMX-pi “Displacement” estimates be used for tracking a robot’s change in position (dead-reckoning)?

Accelerometer data from the VMX-pi onboard MPU-9250 sensor are double-integrated by the VMX-pi firmware to estimate displacement, and are accurate to approximately 1 meter of error during a 15 second period.

While the accuracy of the VMX-pi displacement estimates might be good enough to track the position of an automobile on a road, this accuracy is too low for use in tracking a robot’s position with high accuracy.

The root cause of the displacement estimate error rate is accelerometer noise.  Estimating displacement requires first that each acceleration sample be multiple by itself twice (cubed), and then integrated over time.  Practically, if a noisy signal is cubed, the result is very noisy, and when this very noisy value is integrated over time, the total amount of error grows very quickly.

The current noise levels (approximately 150 micro-g per square-root-hertz) would need to be reduced by a factor of 100 (two orders of magnitude) before displacement estimates with 1 cm of error per 15 seconds can be achieved by double-integration of accelerometers.

MEMS accelerometers which feature these low noise levels are beginning to emerge, but are currently very expensive.  KauaiLabs is actively researching these technology developments and projects that MEMS technology that is both (a) low noise (1 micro-g per square root hertz) and (b) available at low cost will be available in approximately 3 years (~2020).  KauaiLabs plans to develop a product which can be used for accelerometer-based dead-reckoning at that time.

What’s the difference between VMX-pi, navX-MXP and navX-Micro?

  • navX-MXP was designed from the ground-up to interface easily with the RoboRIO, making it simple to connect to the robot controller.  navX-MXP provides FRC-legal digital inputs and outputs.
  • The navX-Micro is a smaller version of the navX-MXP which is designed for use in robots such as those found in FIRST FTC robotics as well as FRC.
  • VMX-pi contains navX-technology, in addition to much other functionality needed by a robot controller.  The VMX-pi IMU data can be accessed on a RoboRIO by using the existing navX-FRC libraries and connecting to VMX-pi’s USB port.

What’s the difference between the VMX-pi and the VMX-pi Aero?

VMX-pi and VMX-pi Aero share a single design. VMX-pi Aero adds a pressure sensor (MS5611) providing additional altitude measurements with a resolution of 10 cm.

Since the pressure sensor is an expensive component, this sensor was left off of VMX-pi, decreasing the cost for those not desiring an altitude measurement.