I confirmed that the gyroscope was initialized and the gyroscope data was stable before moving the robot, but after the robot moved for one minute, the gyroscope’s heading deviated by more than 20 degrees.
Almost every time, why?
You have one of the old gyroscopes? If so, I think drift is a known issue. I think there are ways to minimize drift and perhaps someone will be able to give you tips.
No, they are new, V5 version. I tested four, only one has no offset
Oh, that’s weird. The V5 versions are very accurate.
How are you testing this? Can you graph the expected angle vs sensor reading? How is the sensor connected to the robot?
If the robot jerks around wildly for a minute, no sensor will give you accurate readings
It is officially claimed that the maximum rotation rate for the Inertial Sensor is up to 1000 degrees/second, but after the machine rotates at 300 degrees/second, there is a drift of 20 degrees.
A video of said behavior and sensor readings would be the most helpful thing you could do. Is it possible for you to take/upload one to youtube?
Where is the inertial sensor located? All IMU sensors are affected by vibrations. If the sensor is too close to sources of vibration, that could be the cause of your error.
As others have said, you have not given us enough info. In any case, 300 deg / sec is an extremely fast turn. Where are you seeing 1000 deg / sec.? That seems unrealistic, and even if the sensor could measure at that rate your robot most definitely will not be traveling that fast. Please show some graphs, videos, and/or code to support your observations.
Care to show this? Maybe @jpearmancould verify or debunk this claim?
https://kb.vex.com/hc/en-us/articles/360037382272-Inertial-Sensor-Sensors-for-VEX-V5
Always put at least a modicum of effort towards researching something yourself before asking others to do it for you. People typically do this with whole forum topics where the answer can be searched easily.
so the KB article is a little optimistic. We do say this
The maximum rotation rate for the Inertial Sensor is up to 1000 degrees/second.
The 1000 dps comes from the range we set for the gyro inside the IMU (which uses a 6 axis combination gyro/accelerometer). That doesn’t mean the gyro will perform well at that continuous speed, and honestly we never tested it at that speed, but it’s unlikely a robot would ever be spinning that fast.
You said you had one sensor that was working well, it may be worth comparing that sensor with the others and then perhaps performing a factory calibration on the ones that are not so good.
original forum post that kb article was written from
Maybe it’s because of our multiple calibration that caused damage.
We will test again when we get the new sensor
We always start a calibration when the program starts, as the KB article says.
We have some programs that need to recognize the direction during the driver control period,maybe it’s a bit fierce, the heading drifted,and our program could not work properly.