So we have 3 motors (and therefore 3 CANJaguars) hooked up to drive our elevator. Since only one encoder is needed on the output shaft, only one of the jags has the encoder hooked up to it. My question is, is it possible to use the internal position PID that the CANJaguars use and sync it up with the other 2 Jaguars, or should we just go with one external PIDController?
Also, we feel that getting the speed of the pid-enabled jag and setting it to the same as the other two will have some downsides to it, so we want to avoid that option.
You should run the PID in the roboRIO or use Talon-SRXs. Trying to use the Jaguar PID with three Jags will cause you nothing but headaches.
Agreed.
But I’m curious: Has anyone ever tried reading the voltage on the leads of the motor attached to the master Jag (the one with the encoder) and using that voltage to send commands to the other two Jags (set to voltage mode)? Did it work?
*
Yeah, we may test it, just for kicks.
You might want to post your custom circuit here for comment before doing so.
Our experience with using CAN Jags and java programming (from 3 years ago) was that there was an extraordinary delay associated with CAN traffic. see http://www.nordicstorm.org/Resources/CANBus/tabid/242/Default.aspx for details.
We coded the same test in C++ and saw nearly no delay associated with CAN.
So I think the latencey of the CAN/read + slave Jag reaction would make or break this thought of reading the output voltage on one Jag and transferring it. Things may be very easily done with our faster RIO.