The RMP communicates via one of two serial communications bus protocols, USB or CAN. The choice of protocol is left to the user. In general, most users find that CAN bus provides the most deterministic control of the RMP. With USB, the choice of operating system and the setup of the device driver will affect system latencies and may introduce undesirable delays. Both serial bus protocols can be made to work in a reliable deterministic way and the choice is typically driven by customer familiarity with one of the protocols.
The RMP is controlled by sending speed and turn rate commands to the RMP at regular intervals (no shorter than every 10 msecs and no longer than 300 msecs). Commands are saved for approximately 400 msecs before the speed and turn rate are slowed to zero. This prevents persistent machine movement if communication with the controlling computer is interrupted. Other configuration commands are provided for changing controller mode and adjusting performance limits. The RMP also reports back inertial angles and rates, wheel velocities and other status information. See “Interface Guide for the Segway RMP” for detailed information.
Segway provides a demonstration application with C++ source code (rmi_demo.exe) that runs on Windows 2000 and Windows XP platforms. The source code illustrates how commands may be constructed and sent to the RMP and how data may be received back and parsed. This application may also be used to check/test the RMP’s functionality. The application is not warranted or validated and as such is not suitable for control of the RMP in the user application.