View Single Post
  #1   Spotlight this post!  
Unread 11-01-2015, 16:13
abrightwell abrightwell is offline
Lead Software Engineer
FRC #0342 (Burning Magnetos)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2010
Location: Charleston, SC
Posts: 20
abrightwell is an unknown quantity at this point
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

Code:
protected boolean m_isCANInitialized = false;//TODO: fix can
RobotDrive.java#mecanumDrive_Cartesian():499

Code:
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:

Code:
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.
Reply With Quote