The robot is controlled by a program (called an opmode) that runs in an Android smart phone. USB is used to connect the smart phone to various control modules from Modern Robotics Company that connect to the motors, servos, and sensors on the robot. This diagram from Modern Robotics shows how it all connects:
Our robot’s configuration is like this diagram, except we have no Core Legacy Module and three Core Motor Controllers to handle our six motors. We also have replaced the Tamiya connector to the battery with an Anderson Powerpole one.
Core Device Discovery Utility
Modern Robotics provides a very convenient Windows application called the Core Device Discovery Utility. It and a user manual can be downloaded from the Modern Robotics website here: http://modernroboticsinc.com/coredevicediscovery
This utility is good for troubleshooting as well as initial configuration. For example, if you want to set the range of motion for a servo, this utility allows easy keyboard control of the set parameter. Also, the PID control parameters for a particular motor can be programmed.
Device Naming
A critical step in connecting physical devices to the software is the creation of names for each device. This is done using a utility that is a part of the Robot Controller App. This utility identifies each connected physical device and allows you to type in a name string for that device. The names are saved in an xml configuration file in the robot controller smart phone. These same name strings are used in the software when you want to control a specific device.
The set of names we have used in our robot are these:
- Left Front Motor: leftFront
- Right Front Motor: rightFront
- Left Rear Motor: leftRear
- Right Rear Motor: rightRear
- Scissor Lift Motor: scissorLift
- Scissor Lift Low Limit Switch: scissorLowLimit
- Scissor Lift High Limit Switch: scissorHighLimit
- Cap Ball Arm Servo: armServo
- Floor Sensor (Modern Robotics ODS): mrOds
- Beacon Color Sensor: redEye