RobotDrive Mecanum with CANJaguar

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.

I wouldn’t assume that even though there is a todo that it’s on someone’s radar to fix. The Screensteps support page gives the location to report bugs. http://wpilib.screenstepslive.com/s/4485/m/24193/l/144990-support-resources

Agreed and thanks for the link. However, without a TeamForge account (which seems harder to get than one might think) it isn’t possible to report bugs. <sigh/> :-/

At any rate, thanks for the feedback.

We see it, we’ll have a fix for this in the next release.

Awesome! Thanks Fred!