Dimension Engineering - Kangaroo

The Kangaroo motion control board allows you to interface RoboRealm to the Sabertooth Motor Controller using closed loop commands. Closed loop commands will utilize the connected wheel encoders to better regulate and control speed commands aswell as provide basic position information. You connect to the Kangaroo using a USB to TTL connection which then attaches directly to the Sabertooth. The Kangaroo provides for Pin connections for encoder A&B signals along with power. The Kangaroo is fully documented at Dimension Engineering Kangaroo and is available from retailers like SuperDroids.

Setup of the encoders requires the use of the DEScribe software which can be downloaded from Dimension Engineering. Once tuned, the board retains its values and can then be used with this module. Please note that you cannot connect both this module and the DEScribe application to the Kangaroo board at the same time.



1. COM port - Select the appropriate COM port that the USB or Serial cable is attached to.

2. Baud Rate - Select the highest possible baud rate (typically 115200). This ensures minimal delay from motor command to actual motor actuation.

3. Address - If your board is using a different address than the default 128 change that accordingly.

4. Motors (Speed) - You should now be able to move the sliders to see the motors move if everything is working correctly. If the Motors (Position) is not selected the Speed will indicate how quickly the motors continiously rotate. If the Motors (Position) is enabled, the Speed selections indicate how quickly the motors will move to the specified position.

5. Variables - Once ready for autonomous control you can select or type in a variable that will contain the speed value that should be sent to the motor controller. These variables can be populated from other parts of the pipeline or even externally via the API.

6. Motors (Position) - As the Kangaroo can be used for other devices other than rovers, one can command the controller to move the motors to a specific position (such as used in an Arm). By enabling the Motors (Position) area you can move the sliders to indicate to the controller at what position to move the motors and then hold that position.

7. Open Loop - If you are having issues controlling the motors via the Kangaroo, you can also select the Open Loop checkbox which will issue commands that the Kangaroo will ignore and direct to the connected Sabertooth. This can be helpful to ensure that a connection to the Sabertooth is working and that everything is wired correctly.

8. Position Variables - The module also populates DE_MOTOR_1_POSITION and DE_MOTOR_2_POSITION variables with the current position information as reported by the Kangaroo board. These variables are then available to be used in your own calculations or dead reckoning positioning systems.


To connect the Kangaroo to a PC you will need a level converter circuit to reduce the serial COM/USB power levels that ranges from +12V to -12V to the 5V TTL levels that the Kangaroo requires. You can construct your own circuit using a MAX232 chip or use prebuilt solutions such as USB to TTL Cable.

To setup the USB connection you need to connect the black wire (ground or Blk-) from the USB cable to the 0V connector on the Kangaroo and the green wire (ttl in or TX) to the S1 connector. Note: do NOT connect the red wire to the 5V connector as that is used to power external circuits as apposed to receiving power from the USB cable. Also note that the serial cable may use different colors so check the cable documentation before attaching.

For more instructions please see Controlling a Kangaroo with RoboRealm.

See Also

Phidgets Motor Controller
BasicMicro RoboClaw

For more information

Kangaroo Motion Controller

 New Post 

DE_Kangaroo Related Forum PostsLast postPostsViews