[Dprglist] Compass heading using gyroscopes?

Murray Altheim murray18 at altheim.com
Thu May 14 15:04:09 PDT 2020


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
> 

-- 

...........................................................................
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



More information about the DPRGlist mailing list