[Dprglist] Compass heading using gyroscopes?

David Anderson davida at smu.edu
Thu May 14 23:16:48 PDT 2020


Murray,

The gyros need calibration of a sort, basically to know what the rate is 
when the robot is stationary.   Requires sitting still for a few seconds 
and measuring the rate.  That's the value that seems to drift around 
with temperature on the CH6 that I'm using.


On 05/14/2020 05:04 PM, Murray Altheim via DPRGlist wrote:
> Hi Doug,
>
> I believe the NDOF mode is the default for the device. By IMU mode I'm 
> assuming
> you mean "IMUPLUS":
>
>    OPERATION_MODE_IMUPLUS     0x08     Inertial Measurement Unit 
> (Accelerometer and Gyroscope Sensor Fusion Mode)
>    OPERATION_MODE_NDOF      0x0C     9 Degrees of Freedom Sensor Fusion
>
> The difference seems to be that the NDOF mode additionally "fuses" the 
> other
> sensors into an improved measurement using some kind of Bosch secret 
> sauce.
> The IMU mode uses only the accelerometer and gyroscope. I tried to 
> locate any
> mention of the Kalman filters in the docs but couldn't. I dug around a 
> bit on
> Kalman filters, which to my understanding reads a series of 
> measurements over
> time and applies a filter to remove outliers and noise. That would 
> seem to be
> particularly helpful for a small robot.
>
> One of the things I don't like about the BNO055 (though I understand 
> the why)
> is that in order to get its calibration pin to set 'true' one has to 
> wave the
> robot in the air for awhile. A guy wanted to mount one on his 
> motorcycle, so
> this wasn't an option for him. My take is to have the sensor available 
> on my
> I2C bus and have it send an event when it finally (due to the robot's 
> motion)
> manages to get calibrated. But in practice this is difficult because 
> my robot
> operates largely in 2D (the floor) so it never gets that Z axis motion 
> that
> seems necessary for calibration. As has been noted, the BNO055 has a 
> habit of
> falling in and out of calibration as well, which I've noted.
>
> I'm guessing that an accelerometer doesn't need calibration, maybe a 
> gyroscope
> doesn't either (?), so David A's usage, though he gets drift, probably 
> doesn't
> require him to pick up his robot and dance around with it. Though I 
> guess that
> could be entertaining to the cat...
>
> I've collected some of my notes (including the complete table of 
> modes) onto a
> wiki page at:
>
>   BNO055 Absolute Orientation Sensor
> https://service.robots.org.nz/wiki/Wiki.jsp?page=BNO055AbsoluteOrientationSensor
>
> Cheers,
>
> Murray
>
> On 15/05/20 1:00 am, Doug Paradis wrote:
>> Murray,
>>      Make sure you have the BNO055 in the right operation mode. I 
>> like the "imu" mode for indoor robots which outputs the results of an 
>> internal Kalman filter using the gyroscope and .accelerometer. It 
>> sounds like you want to run in "ndof" mode.  As I have stated before, 
>> accurate magnetometer readings indoors on a mobile robot that will be 
>> operating in different locations is going to problematic due to 
>> non-constant hard iron distortions. You might find this link 
>> informative, https://www.vectornav.com/support/library/magnetometer.
>>
>> Regards,
>> Doug P.
>>
>> On Thu, May 14, 2020 at 5:55 AM Murray Altheim via DPRGlist 
>> <dprglist at lists.dprg.org <mailto:dprglist at lists.dprg.org>> wrote:
>>
>>     Hi,
>>
>>     I think we've discussed this subject a bit recently. Here's a few 
>> papers I've
>>     managed to find:
>>
>>          Minimal-Drift Heading Measurement using a MEMS Gyro for 
>> Indoor Mobile Robots
>>          Sung Kyung Hong * and Sungsu Park
>>          Dept. of Aerospace Engineering, Sejong University, Seoul, 
>> 143-747, Korea
>>          Sensors 2008, 8, 7287-7299; DOI: 10.3390/s8117287 
>> www.mdpi.com/journal/sensors <http://www.mdpi.com/journal/sensors>
>> https://www.researchgate.net/publication/26551593_Minimal-Drift_Heading_Measurement_using_a_MEMS_Gyro_for_Indoor_Mobile_Robots
>>     https://www.mdpi.com/1424-8220/8/11/7287/pdf
>>
>>         Indoor Mobile Robot Heading Detection Using MEMS Gyro North 
>> Finding Approach
>>         November 2011, DOI: 10.7746/jkros.2011.6.4.334
>>         Yuan-Long Wei, Min Cheol Lee, Chi yen Kim
>> https://www.researchgate.net/publication/271336529_Indoor_Mobile_Robot_Heading_Detection_Using_MEMS_Gyro_North_Finding_Approach
>>
>>         Using Inertial Sensors for Position and Orientation Estimation
>>         Manon Kok, Jeroen D. Hol and Thomas B. Schön (2017),
>>         Foundations and Trends in Signal Processing: Vol. 11: No. 
>> 1-2, pp 1-153.
>>     http://dx.doi.org/10.1561/2000000094
>>
>>         Pose Estimation of a Mobile Robot Based on Fusion of IMU Data 
>> and Vision
>>         Data Using an Extended Kalman Filter
>>         Mary B. Alatise and Gerhard P. Hancke
>>     https://www.mdpi.com/1424-8220/17/10/2164
>>
>>     though the latter is a bit beyond what I'm looking for. There's a 
>> *lot* of
>>     articles on MDPI's website. I'm also happy to have found the 
>> Sensors journal.
>>
>>     What would be nicer than digging around for an algorithm would be 
>> a Python
>>     library that could give me a compass heading from a gyroscope 
>> (and possibly
>>     an accelerometer) measurement. I tried writing my own using just a
>>     magnetometer and had limited success (but then again I gave up 
>> too early).
>>
>>     At this point I've got six (!) different boards (BNO055, LSM9DS1,
>>     LSM6DSOX, LISMDL, ICM20948, LSM303D) that all do similar things 
>> but all
>>     seem to have issues and while the BNO055 does most everything, it 
>> seems
>>     to have the most issues, like not being particularly compatible 
>> with a
>>     Raspberry Pi (as one). All I *really* want is an accurate compass 
>> heading
>>     for an indoor robot (therefore no GPS). Pie in the sky?
>>
>>     On a lighter note, my cat scanner now works pretty well. I'll 
>> hopefully
>>     post a video to my YouTube channel sometime soon.
>>
>>     Cheers,
>>
>>     Murray
>>
>> ...........................................................................
>>     Murray Altheim <murray18 at altheim dot com>              = =  ===
>>     http://www.altheim.com/murray/        ===  ===
>>         = =  ===
>>           In the evening
>>           The rice leaves in the garden
>>           Rustle in the autumn wind
>>           That blows through my reed hut.
>>                  -- Minamoto no Tsunenobu
>>
>>     _______________________________________________
>>     DPRGlist mailing list
>>     DPRGlist at lists.dprg.org <mailto:DPRGlist at lists.dprg.org>
>>     http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org
>>
>



More information about the DPRGlist mailing list