View Full Version : Compatibility with the Analog Devices Gyros
Snapperbot
25-01-2016, 17:21
So the ADXL362/ADXRS450 and the ADIS16448 gyros came today from FIRST Choice. I was really exited until I saw that the website only talks about LabVIEW code. Can a team that uses another programming language like Java still get some kind of use out of the gyro or is it as useful as a brick(to teams that don't use LabVIEW)?
Thad House
25-01-2016, 17:28
There is an ADXRS450 class in Java and C++ that will work out of the box with the ADXRS gyro. I do not know for the ADIS16448 gyro however.
Peter Johnson
25-01-2016, 18:10
So the ADXL362/ADXRS450 and the ADIS16448 gyros came today from FIRST Choice. I was really exited until I saw that the website only talks about LabVIEW code. Can a team that uses another programming language like Java still get some kind of use out of the gyro or is it as useful as a brick(to teams that don't use LabVIEW)?
As Thad stated, ADXL362/ADXRS450 support is included in both C++ and Java WPILib. C++ and Java code for the ADIS16448 is available at the same location as the LabView code: https://github.com/juchong/ADIS16448-RoboRIO-Driver . The ADIS16448 driver has a Kalman filter implementation but it does not currently do magnetic disturbance rejection (patches to fix this would be welcome).
Snapperbot
28-01-2016, 18:33
Yea the ADXRS450 worked fine after updating the plugins, I'm having trouble figuring out where to put the java code for the ADIS16448 so I'll just stick to the ADXRS450 for now. Thanks for your help :]
> it does not currently do magnetic disturbance rejection
Can you elaborate on the ramifications of not doing "magnetic disturbance rejection"?
Thanks,
...Duane
Peter Johnson
31-01-2016, 00:31
Can you elaborate on the ramifications of not doing "magnetic disturbance rejection"?
The magnetometers in the device sense magnetic fields and are used in the Kalman filter to stabilize the gyro and derive a magnetic heading. Not doing disturbance rejection means that strong magnetic fields (such as those caused by motors) will result in incorrect heading readings.
billbo911
31-01-2016, 01:10
The magnetometers in the device sense magnetic fields and are used in the Kalman filter to stabilize the gyro and derive a magnetic heading. Not doing disturbance rejection means that strong magnetic fields (such as those caused by motors) will result in incorrect heading readings.....
..... The ADIS16448 driver has a Kalman filter implementation but it does not currently do magnetic disturbance rejection (patches to fix this would be welcome).
Do you know if these patches are currently under development? It would certainly be nice to have them.
So, what does that mean for us using these devices with C++? Can you elaborate on what interfaces will be useful and which will not? Or is using this device in C++ just not going to be useful?
In short, should we bother using the ADIS16448 IMU with C++? If so what can we use reliably?
I'm certainly not qualified to add the compensation needed for these devices.
Thanks
RufflesRidge
31-01-2016, 16:06
In short, should we bother using the ADIS16448 IMU with C++? If so what can we use reliably?
Using the gyro readings alone should be fine. If you want to try using the Kalman derived heading, you should mount the device as far away from motors and moving steel as possible then test heavily to see how it performs, especially driving around steel like most of the field this year.
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.