PID Controls, CAN Bus, and Everything Motors

Centaur is powered using four DC motors with the following specifications

  • HP: 1/4
  • Volts: 24
  • Gear Ratio: 11:1
  • 86.9 in-lbs torque at 168 rpm

In addition the internal gearing of the DC motors, a belt mechanism is used to further gear down the output shaft to increase torque.

The main purpose of the mobile platform is to position the robot arm so that it can reach the pipes for inspection. Speed control of DC motors can be achieved using simple armature voltage control in an open-loop configuration. However, open loop speed control would make it difficult to position the robot. The robot would also not be able to reject disturbances in open loop control such as changes in floor condition. A feedforward PID controller was implemented using optical encoders as feedback.

The motor controllers used is the Talon SRX by Cross the Road Electronics. The Talons can be driven using PWM or CAN Bus. With PWM, the motor controllers work in open-loop. However, using CAN Bus, it is possible to connect encoders directly to the motor controller and implement a PID controller directly by programming the TALONs. The benefit of this is motor controls is offloaded from the main controller.

Wiring up the CAN bus was straight forward using a 120 ohm terminating resistor. The only trick was to flash the firmware on all of the Talon’s since the default firmware is for First Robotics Competition and has a token that has to be asserted every 10 seconds.

Further tuning of the PID parameters will be done later this week.