|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#16
|
||||
|
||||
|
Re: Large amounts of gyro drift
@lark95: where do you get *shielded* PWMs? or do you make your own?
|
|
#17
|
|||
|
|||
|
Re: Large amounts of gyro drift
We improved out gyro performance doing two things:
1. We re-run the calibration code from the gyro constructor at the beginning of autonomous: Code:
m_analog->InitAccumulator(); Wait(kCalibrationSampleTime); INT64 value; UINT32 count; m_analog->GetAccumulatorOutput(&value, &count); UINT32 center = (UINT32)((float)value / (float)count + .5); m_offset = ((float)value / (float)count) - (float)center; m_analog->SetAccumulatorCenter(center); m_analog->SetAccumulatorDeadband(0); ///< TODO: compute / parameterize this m_analog->ResetAccumulator(); I think the culprit is lack of temperature compensation. The gyro specifically has a temperature output to allow compensation and that has not been implemented. By delaying the calibration until the start of autonomous, we are allowing the gyro temperature to stabilize in the operating environment. Note: we are actually programming in LabVIEW but the calibration code is basically the same and it's easier to post the C++ version. Brad |
|
#18
|
||||
|
||||
|
Re: Large amounts of gyro drift
Quote:
*Well, unless you get down to crazy low voltages, which you never should be able to. Quote:
|
|
#19
|
||||
|
||||
|
Re: Large amounts of gyro drift
Sorry it took awhile to respond. We were at a regional. I don't know were you can get in from. But it will be 3 wires inside of a metal mesh which is then all in insulation. To make it shielded solder the wire mesh to any other grount cable, preferably not the ground in in the actual shielded cable. (We did it antway and it turned out just fine
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|