This weekend we found that there is potentially a bug in RobotDrive.java with CANJaguar and Mecanum.
Specifically we found the following:
RobotDrive.java:72
protected boolean m_isCANInitialized = false;//TODO: fix can
RobotDrive.java#mecanumDrive_Cartesian():499
if (m_isCANInitialized) {
try {
CANJaguar.updateSyncGroup(syncGroup);
} catch (CANNotInitializedException e) {
m_isCANInitialized = false;
}
}
Essentially, m_isCANInitialized is never set to ‘true’. Therefore, ‘CANJaguar.updateSyncGroup’ is never called. Given the “TODO: fix can” note, I’m certain that this was just an oversight prior to releasing the wpilibj for this year. So, assuming the worst being that it will not be fixed/updated, the effective work around for us in our drive system is the following:
private static final SYNC_GROUP = (byte) 0x80;
...
robotDrive.mecanumDrive_Cartesian(...);
CANJaguar.updateSyncGroup(SYNC_GROUP);
I’m willing to accept that this may not be the correct solution and would be eager to learn if anyone else has experienced this issue or has suggestions/feedback.