Go to Post "Everything is possible. Just depends on how much it costs and how much physics you have to apply..." - Kimmeh [more]
Home
Go Back   Chief Delphi > Technical > Electrical
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #29   Spotlight this post!  
Unread 21-04-2010, 01:40
vamfun vamfun is offline
Mentor :Contol System Engineer
AKA: Chris
FRC #0599 (Robodox)
Team Role: Engineer
 
Join Date: Jan 2009
Rookie Year: 2003
Location: Van Nuys, California
Posts: 182
vamfun is a glorious beacon of lightvamfun is a glorious beacon of lightvamfun is a glorious beacon of lightvamfun is a glorious beacon of lightvamfun is a glorious beacon of lightvamfun is a glorious beacon of light
Send a message via AIM to vamfun
Re: Picking a gyro for field-centric swerve control

Quote:
Originally Posted by Tom Line View Post
Just so I'm clear - the higher rate gyro is going to drift more, so you're suggesting using the lower rate gyro to correct the higher rate one. Essentially, saying that when the lower rate gyro isn't turning at a rate that's above it's maximum, you would constantly update a correction factor to minimize the high dps gyro's error from zero. Is that right?
Yes... you are estimating the bias of the coarse relative to the reference rate which is the fine gyro. During start up, the reference rate is zero for both gyros. Once you are going, use the best gyro to be your reference. The averaging time should be enough to give a large number of samples... I would use an averaging time constant at least 100 times the sample period. This would give a mean estimate that is roughly a factor 10 better than the combined noise error rms.
The pseudo code might look like this:

if(abs(fine)> sat_value) // check for saturation
{rate = coarse + bias;} //use corrected coarse if saturated
else
{
bias = bias + .01*(fine - coarse -bias); // compute the bias with an exponential filter tau = 100*dt
rate = fine;// use fine gyro
}

angle = angle + rate*dt; //Integrate rate

Quote:
Regarding the compass: what are the rate sensors used for in the compass? Wouldn't they be knocked off-kilter just as much because of a collision?
Typically, accelerometer sensors rather than rates sensors are used to calculate compass tilt which is needed to determine the horizontal component of the earths magnetic field. Horizontal plane rotations from a robot bump will not cause any compass tilt errors of significance. Low, steady state accelerations however can cause tilt errors.

Having done our simple analysis, the compass solution seems more cost effective since only one cheap sensor (http://www.chiefdelphi.com/forums/sh...d=1#post956268) can be used with no added regulators. Its accuracy is adequate for the field-centric task provided a location can be found on the robot that is free from strong magnetic disturbances. Maybe someone can chime in with some real life FRC testing experience.

But it would be fun to fool with the dual gyro project.

Last edited by vamfun : 21-04-2010 at 02:40.
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
pic: DS Swerve on the field Racer26 Extra Discussion 15 09-04-2010 21:34
Steering control without a gyro nathanww C/C++ 4 27-01-2009 12:14
Crab / Swerve drive joystick control scheme Tom Line Programming 12 16-04-2007 18:47
Swerve drive control system dpick1055 Programming 8 22-01-2007 19:06
Omni-wheels and driver-centric drive efoote868 Programming 10 01-11-2006 22:22


All times are GMT -5. The time now is 07:20.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi