View Single Post
  #9   Spotlight this post!  
Unread 05-10-2012, 14:39
techhelpbb's Avatar
techhelpbb techhelpbb is offline
Registered User
FRC #0011 (MORT - Team 11)
Team Role: Mentor
 
Join Date: Nov 2010
Rookie Year: 1997
Location: New Jersey
Posts: 1,620
techhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond repute
Re: CAN on the entire 2012 robot

Quote:
Originally Posted by mikets View Post
That's a fair scenario. I will modify the code to also restore the position count. That should take care of that scenario.
A modification like that is a great idea but there's something to consider with it:

The problem with quadrature and even single channel encoders is that if you fail to track their outputs momentarily you loose your accurate fix on their direction of rotation during the missing interval and the amount of rotation during that interval as well.

Absolute encoders can help because they produce directional information that is absolute to the encoder rotation/position. To a point that helps till the encoder has enough time to fully revolve and then that information will be wrong. So it gives you a little more buffer but I can see how a fast moving input to the encoder could quickly entirely revolve before a Jaguar resets to full operation.

So if the Jaguar browns out or looses power it'll cease to service the encoder interrupt and that information will be lost. Restoring the last known good value is a good starting point, but if the mechanism was influenced by gravity or momentum while the Jaguar was 'out to lunch' the old data might not be any more valid than the most current reading.

Here's a scenario:

An arm with shoulder. The shoulder has a limited range of rotation. The arm is exposed to additional load as the end effector holds an object. During the course of driving the arm tries to move the shoulder back to one limit. As it approaches that limit the forces increase and the Jaguar browns out. The routine sees the brownout and resets the encoder position to a value approaching that limit. However due to momentum the encoder is now at or past that limit. So the arm tries to move back to that limit. It's choices are: move a complete rotation which it can't so that's an overload or hit the hard stop trying to move to a fictional target and that's an overload. Either case there could be mechanical issues induced and more brown outs causing more and more attempts to reach a fictional target.

Last edited by techhelpbb : 05-10-2012 at 14:53.
Reply With Quote