The browser you are currently using does not appear to be properly CSS enabled. While you can still view the contents of this site without difficulty, there will be no graphical formatting. Upgrading to a newer browser is recommended (such as Mozilla Firefox).


Robo-Magellan

Motor Controller

Concept

Due to the mechanical implications of employing a "Rocker-Bogie" suspension scheme, this robot will require no less than 10 individual motors. 6 higher power ones will be deployed at each of the robot's six wheels, for providing primary locomotion. Additionally, 4 motors will be necessary for steering the outer wheels of the robot, so that it can perform complex maneuvers and skidless steering (as opposed to standard tank-like skid steering).

Each of these motors will have feedback mechanisms (optical quadrature encoders as a minimum) so that their position and velocity may be closely monitor and regulated. The 6 main drive wheels will require constant velocity drive capability so that the robot's performance is not altered by load variations imparted by diverse terrain. Additionally, their position will need to be tracked for dead-reckoning purposes. The 4 steering motors will also have encoder feedback, along with some absolute feedback (optical limit switches), so that the robot can properly zero the steering systems at power-on.

In order to arbitrate all of these motors and their associated feedback system, a network of modular motor controllers, each with their own dedicated microcontroller will be employed. The microcontrollers will be responsible for monitoring position and velocity of their respective motors, and then actively correcting towards specific target parameters via PID (Proportional, Integral, Derivative) closed-loop control algorithms.


Current Status

The motor controller board has been fully designed and assembled by Dan. At this point, it is only awaiting appropriate programming, which is expected to be completed in the near future.

The final design calls for 6 high power motor driver channels, with encoder based feedback. Additionally, 6 lower power channels are provided for steering motor control, with feedback provided by analog potentiometers. All channels reside on the same board, and are connected together via an I2C bus. This bus then connects to a central coordinating processor, which is responsible for receiving commands from the main computer and translating them to individual commands for each motor.

The following are images of the board at various stages of assembly.


 
 

Prototype #1

During Thanksgiving break, Dan Strother developed and constructed two prototype motor controller boards. The boards were milled on his CNC milling machine. Both boards are now fully functional at the hardware level. One of these can be seen in the following pictures (the jumpers on the bottom were intentionally designed into the layout, due to time constraints and this being a prototype):


Top Side  Bottom Side

Recently, development of the PID control software was begun. At the moment, algorithms have been created and tested for operating the controllers in position control, constant velocity, and active braking (where the controller resists all motion of the motor shaft, so long as it does not exceed the motor's capabilities) modes. All of these systems function extremely well, and should perform quite well on the robot. Next, the code must be extended to support a configurable I2C interface, and a few additional refinements, including active current limiting.

Also, an alternative feedback scheme was tested. By carefully monitoring the back-EMF produced by the motor when freely running, it is possible to derive a good idea of its current velocity. Initial testing has shown this to be very successful at higher speeds, but it suffers from some amount of drift and over-compensation when in active brake mode. With some refinement, this may prove to be a viable alternative to requiring optical encoders on all of the wheel drive motors.