View Single Post
  #15   Spotlight this post!  
Unread 02-04-2014, 13:05
Jefferson Jefferson is offline
Registered User
AKA: Jeff Clements
FRC #0016 (Bomb Squad)
Team Role: Mentor
 
Join Date: Jan 2011
Rookie Year: 2010
Location: Mountain Home, AR
Posts: 258
Jefferson has a reputation beyond reputeJefferson has a reputation beyond reputeJefferson has a reputation beyond reputeJefferson has a reputation beyond reputeJefferson has a reputation beyond reputeJefferson has a reputation beyond reputeJefferson has a reputation beyond reputeJefferson has a reputation beyond reputeJefferson has a reputation beyond reputeJefferson has a reputation beyond reputeJefferson has a reputation beyond repute
Re: Swerve Drive Control

Quote:
Originally Posted by cjl2625 View Post
Why not spend the time on field centric?
I would think that a robot centric swerve drive would be much harder to control.

In our (LabVIEW) code, it only took a few blocks to make it field centric. I stole the rotate vector block from the default holonomic drive code, used it to rotate the translational vector by the gyro reading, and that's about it.
Well, I don't know about C++, though
It's not difficult, it's just completely unreliable outside of the first few seconds of a match unless you reset the gyro at some point.

What we've settled on is "steering" as the default control and then switching to "crab" when we pull the trigger. Steering purely a robot-centric drive system.
We reset the gyro when the trigger is pulled, so any rotational input is based on the robot's orientation at that point. What takes practice is that the crab x/y is based on the robot's orientation at that point also.
(Hope that made sense).