CMPS14 Compass

Finally it’s physics: For the IMU, the location should be as solid as possible with low vibrations from the motor. So somewhere fixed on the frame. For the compass, it’s different unfortunately: Keep it way from iron and wires with higher currents. It’s a little bit a “mission impossible” - you’ll have to try youself a little bit.

The answer for the connection is clearer: we’re talking about a digital transmission, so as long as it works, it’s perfect. I²C cables should be less than 1m, USB less than 5. Connecting to the motor controller is the best option, at least for the new sketch, which has a very low jitter. Every additional controller will increase the jitter, especially when using Wifi.

When @MTZ8302 's RTK sensor fusion software is finished, I’ll likely have to revise the last two sentences… :wink:

Not sure, if someone has experience whether a native BNO085 or the CMPS14 is superior. Must likely there is no big difference.

Also I think he means mount it level and pointing forward. Whereas @GoRoNb’s patch allows you to mount it not quite pointing forward, and in code compensates for it not being exactly pointing forward (or pointing some degrees sideways for example).

I hope @MTZ8302 plans to have a calibration routine that can learn the IMU position (at least learn it’s offset if it’s not perfectly mounted level) like commercial units do. It’s usually a simple matter of driving one way, then stop and take a good reading on the IMU, then turn the machine 180 in the same tracks and take another reading. Then a roll offset can be calculated

If the heading and roll from the CMPS14 appear to be stable does that mean it’s location is good or can the effects of near by interference be more subtle while still significant affecting the performance?

Hello,

Other solution for IMU board with non conventionnal installation: instead of using a CMPS14, use BNO08x.
As described in datasheet (p41): https://www.ceva-dsp.com/wp-content/uploads/2019/10/BNO080_085-Datasheet.pdf, you can configure it to tell him how he is oriented (if not oriented with the conventionnal axis orientation). Like this, all angles provided by BNO08x will always be compliant to your installation, you do not need to make some caculation tricks.
This can be configured with report ID 0x2D3E.
Other advantage, you can run it in game rotation vector mode (no use of magnetometer) so you will not be subject to all disturbance that magnetometer is sensitive.

Or just place the board to the conventionnal orientation.

What is it ?

Math

1 Like

@MTZ8302 is adding the CMPS14/BNO085 to his single and dual-RTK software. Work in progress…

Coming back to your hint: There also is a tare function (p. 43). So my idea: put you tractor onto a horizontal area with heading to north. Tare. After that, the roll (and heading) angle would be correct for any mounting situation, am I right? Systematic error for roll would be (1 - cos (north heading error)) which seems acceptable to me for at least +/-10° north heading error.

1 Like

The best place is as close to the middle of the pivot and as low as possible. So center of the axleleft to right, front to back.

In my 2wd, it sits under the seat - works really well and is super stable.

WIth i2c extender you can go a few meters with i2c.

On the 4WD it is mounted right at the articulation joint.

you want the imu to not exhibit any non symmetric motion - different going left vs right - by having an offset. Move the thing around the cab, or even on top of the cab away from blower motors, high power etc. The ability to mount the thing away from the confines of the autosteer board is key as you can easily mount it pointing forward using a single axis.

I assume this effect is as a result of how the IMU derives it’s angle? Inertial effects? Obviously the actual angle is the same wherever it is mounted.

ITs how it derives that angle that is critical. think of it mounted 3 meters to the right, and then think of what happens when you make a left or right turn. making a right it stands still, making a left it swings in a huge arc.

Extreme example yes, but you can visualize the effect

Might have a play with a BNO085 to see how and what affects it.

centripetal force has a huge effect on imu’s. watch the roll as you turn, you will see it increase much more then it should be. Now this isn’t a bad thing as it helps overcome wheelslip when turning vs static steering

To confirm: does the cmps need to be in the centre of the tractor, or can it be slightly offset, I.e. beside the seat?
And how long can the cable be without i2c extender - 30cm?

I have mine slightly off center below the seat, its really hard to get it dead center.

i think you should be ok with 30 cm without extender, keep the wires away from any noise sources, heavy current wires etc to minimize the noise. We slowed the I2C down to 50 khz as well so that helps with noise immunity too

Whoops, wrong thread!

1 Like

What INO for Cmps14 do we use with agopen 5.0 if we have it connected to separate Nano and are using USB? Is the pins on the cmps still the forward direction ?

IMU_USB_v5_0

CMPS14toNano

1 Like

If it is with the steer module, you already have the right ino

I was planning on using a separate nano than the steer module. Seperate nano, separate box, then usb to tablet .

Yes then use the one called IMU_USB in the Arduino folder. I use it - works great. Was written about a year ago and is rock solid tested as it did all the testing for v5.

This method using a separate nano is the best method to get the imu data into AOG fast and without waiting for the autosteer module to reply.

I just downloaded V5.3 for the first time. Can’t find the arduino folder or the IMU_USB

Sin título-2

Download this source code, inside in support folder.