CIM and Jaguar Test Bench

Hi all. As each of our subteams are building the various components of our robot (shooting, disk collection and feeding, climbing, driving, image processing, etc) we are finding that we are in constant competition for the cRIO. This is resulting in a lot of downtime which I think can be avoided. For example, we have decided to build each component as physically separate blocks and as such we have a separate shooting component. This includes the flywheels, CIM motors and Jaguar motor controllers. The Jaguar motor controllers are PWM controlled. When I want to test the shooting mechanism, I need to coordinate with the software team who are likely looking into their own issues or helping out another subteam.

What I would like to to is build a test bench (as simple as possible) which allows me to provide both power and PWM control to the jaguar so that I have full range of control of the motors. With the key requirement being that the unit under test (in this example, the shooting component) is being tested WITH OUT the cRIO.

I was wondering if any other teams were doing anything like this, and if so, could they provide some guidance/suggestions and point me in the right direction. Thanks and good luck!

I recommend using Victor888 instead of Jag for shooter wheel if you are planning to use bang-bang-controller.

Thanks for the tip. Unfortunately we have no 888’s and only 1 884 - which I assume is the same. Why do you suggest the 888 over the jaguar?

The Jag has built-in overcurrent protection which may kick in when banging at low rpm (like when starting up from zero rpm).

You can make the Jag work, but you have to fuss with it a bit. Add an extra line to the bang-bang:

if (measured_RPM >= target_RPM) motor_command = 0.0;
else if (measured_RPM >= spinup_RPM) motor_command = 1.0;
else motor_command = low_command;
… and then tune the two parameters:

spinup_RPM” should be tuned to the lowest speed above which full power can be commanded without causing the Jag to shut down.

low_command” should be tuned to the highest value (0.0 to 1.0) that can be commanded at zero rpm without causing the motor controller to shut down.