|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
Quote:
Please stay tuned. -Joe |
|
#2
|
||||
|
||||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
Quote:
We get CAN issues even when the system manages to come fully online. |
|
#3
|
|||
|
|||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
Quote:
Thanks, -Joe |
|
#4
|
||||
|
||||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
Quote:
Joe: Was that issue with starving the Ack worked out? I haven't retested it. Last edited by kamocat : 08-03-2011 at 21:10. |
|
#5
|
|||
|
|||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
Quote:
-Joe |
|
#6
|
|||||
|
|||||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
Quote:
We ran into this problem at the Week Zero Scrimmage, so we were ready for the problem during the GSR finals. During the finals, the same teams are on the field in consecutive matches, so the field access point is still configured to communicate with the teams that were just on the field. Accordingly, as soon as the Driver Station is connected to the DLink, the DS enters the "FMS Connected" mode, forcing the robot into a disabled state and prohibiting "tethered" control. If you find yourself in the final matches and need to tether the robot in between matches to add air to the tanks or perform any system checks, you'll want to connect the DS directly to the cRIO without going through the DLink, in order to avoid the FMS control. |
|
#7
|
|||||
|
|||||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
Quote:
The field staff must leave the previous match teams up in FMS until the scores and penalties have been debated and submitted. I sometimes borrow one of the unoccupied player stations to test laptop link-ups in those moments (setting the laptop to one of the absent team #s). |
|
#8
|
||||||
|
||||||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
Thanks for the detailed write-up!
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Please let me know if you come up with any more details that might lead to the issue. Thanks, -Joe |
|
#9
|
||||
|
||||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
I will give you a preliminary answer until Omar has a chance to provide a more detailed one. In short the problem is caused by a lack of sychronicity between the cRIO CAN transactions and the 2CAN dashboard transactions. This is a simple explanation of the problem, it is actually a bit more involved as Omar has explained it. Omar has written some management code that is intended to deal with this problem, however the web dashes ability to interact with the CAN bus is second chair to the user code. If the user code is sending can throttle requests to frequently, for example, the time the web dash has to interact with the bus is limited. This is not an issue with the Cross-link Control System because the 2CAN performs all synchronization and has more of a 'master' role. But again this is Omars area of expertise.
|
|
#10
|
|||
|
|||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
It sounds like the experts are convergent on the problem and we remain hopeful for a robust CAN solution. For anybody following this CAN problem thread, there was an interesting statement in the March 8 (yesterday) Team Update #17:
Quote:
Thanks again, john |
|
#11
|
|||
|
|||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
our team wrote some code so that the robot would reboot itself automatically when/if it did not have communication with the can bus on boot, not the prettiest workaround but it works for what we needed.
|
|
#12
|
||||
|
||||
|
Re: Unexplained intermittent CAN / 2CAN Jaguar problems at GSR
Quote:
So if WD wants to request say bus voltage on Jag1 it first checks if cRIO has performed any requests (resync tokenization, throttle set, etc..). If cRIO has then WD will hold off on transactions to Jag1 until Jag1 sends an ACK (intended to go to cRIO). cRIO Set Throttle <--------------------------User opens Web Dash, WD holds off... cRIO ACK WB Get Voltage <--------------- Jag sends an ACK, it is now available WB ACK Similarly if the WD is waiting on Jag1 for a response/ACK and cRIO request comes in, it will delay transmission until Jag1 responds, OR a one millisecond timeout occurs (to ensure cRIO gets minimal latency to bus ). Without this management code there would be problems where... cRIO Sets Throttle WB Gets Voltage <--------------------------User opens Web Dash, ACK ACK ...which confuses the Jag and sometimes causes Jag to not respond at all. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|