Quote:
Originally Posted by DonRotolo
The current Jaguar CAN has us daisy-chaining network nodes, so if one drops the network, everything beyond it becomes unreachable.
|
I'm pretty sure this isn't true.
I can't find the schematics or pictures of the PCB to support this, but if I remember correctly, the CAN traces are bridged ON THE PCB of each jaguar. That means a jag without power will passively relay CAN communications through itself. This is true for
CAN communications on all the jaguars. It doesn't apply to a black jag which is being used as a serial bridge. If that one loses power/communications... then you lose your conduit through which to communicate to the CAN bus. There's no way around that besides using something like the 2CAN.
I believe the softrware side of the house (for Java at least) doesn't handle a controller going off line gracefully. There's a timeout period of something like 3 seconds which the CAN communication code will block on. So this will effectively take down all CAN communications for that period unless YOU set your program up to detect the missing CAN devices and stop trying to communicate to them. 3 seconds of no communications to motor controllers doesn't make for a very happy robot. This is what happened to us in 2012 @ NYC during eliminations (with your team BTW). We had a snap action breaker which would randomly failing
open for no apparent reason. This would take one of our drive train motor controllers off line, and cause the remaining CAN controllers to not get any communications for long periods of time(we had all our drivetrain motor comm.s in a single try/catch block). We were trying to fix this between Semi finals matches but by the time I realized what was causing our problem there was just not enough time to make the changes and deploy the code. Of course we didn't have that issue UNTIL semi-finals.