CMPS14 Compass

It doesn’t matter what the actual reading is as long as it doesn’t drift or jump around. the fusion takes the rough gps heading, and the nice smooth heading plus an offset to match and “drift” towards gps heading.

There are some tricks i want to try like fusion based on WAS position. More use of the imu when you are going straight, less around corners.

4 Likes

"* By Brian

1/24/2021

Works very well

Just search AgOpenGPS for details. We have been searching for a good imu to help correct heading in tractor for autosteer (precision ag). The CMPS14 works really well. Tried a lot of different chips, but this one with simple i2c connection and data format is excellent.

highly recommended."

I went to go get a CMPS14 but it looks like someone already bought them all :rofl:

So I guess I am stuck for a bit with only playing with the bno085.

2 Likes

Hello,

@baraki, interesting, swipe you experienced is like I’ve experienced with BNO085 on this video : BNO08x jump in AgOpenGPS - YouTube ?
In my case I was running BNO08x in Rotation Vector mode, but without magnetometer calibrated and background calibration enable. I was assuming that the cause could be du to this parameters. BNO085 inside the steering box, box on the right side of the chair on on the upright near the glass.
CMPS14 is delivred with magnetometer calibrated and background calibration disable: so if you experienced same behavior, it’s not du to this parameter. It’s inherent to the use of magnetometer by BNO08x in Rotation Vector mode.

I definitely must try to replace my BNO085 by a CMPS and see if I had same behavior with CMPS.

Swithing BNO08x in Game Rotation Vector (without the magnetometer) solve the problem, so it’s seems really the good way to use it.

Very hard to do. In Rotation Vector mode (use magnetometer), you shall have both of your unit perfectly calibrated to expect that when both of your board looking at the same direction, they output the same heading at +/-2°.
In Game Rotation Vector Mode, at startup, both board will give you 0°, so if at start-up both board look in the same direction, it’s ok. But according BNO08x datasheet, in this mode, heading is subject to long terms drift. And not sure both unit will drift in the same way. So which value to choose with our selection logic ?

I don’t know if you speak about aircraft engine, but on comercial turbofan, sensors are only 2 channels (for most critical sensors) and somes are one channel. Selection logic are a little bit more complicated than the one closest to last valid setup. And dual channels is only for safety reason, not for accuracy.
I don’t see any benefits for AOG purpose.

Don’t worry in terms of accuracy, they are the same :slightly_smiling_face:

Math

2 Likes

Natural gas power generation uses aero derivative engines, usually beefed up a bit since weight is not a concern. Everything is triple redundant to prevent failure and limit downtime. They couple the turbine to a gearbox that runs the generator. An impressive amount of noise that never gets to fly.

Ok, if the are that imprecise open the window up to 10degrees is valid, every time you get back on the straight away the you can re zero their live value to their average. Commercial gps units had something figured out even in 2010, and I do not think their hardware was as good as AOG is now. So they must have figured it out with some post processing of data of some sort.

If you only have one sensor how do you know its truly drifting? Just like RTK having a base comparison to the rover, the extra receiver and some math allows you to reduce error greatly.

Looky what i found;

Hands Free On Rough and Rolling Terrain:
Trimble’s exclusive T2 terrain compensation technology gives the EZ-Steer user +/- 6"-8" pass-to-pass accuracy and smooth hands-free driving on rolling, sloping or even rough terrains such as ditches, waterways, and terraces. This optional feature uses two accelerometers and two gyroscopes to compensate for roll and yaw. Information from these sensors, located in the steering controller, is used at ten times per second to compensate the GPS position for sloping and rough terrain.

I have a feeling its something we may be missing.

The CMPS14 (and the BNO08x) is a 9DOF sensor. That means it has 3 accelerometers, 3 gyroscopes, and 3 magnetometers. Or maybe it’s just 3 axis inclinometer, 3 axis accelerometer, and 3 axis magentometer. Whatever the case, the CMPS14 is more than what the EZ-Steer controller is using.

Drift is normally accounted for by zeroing out the drift perodically, when you’re in a fairly steady state (steady heading, no accelerations).

1 Like

So its already in hardware, its just the math needs tweaking.

Sure. The problem previously was the BNO055 would drift for heading, although it worked okay as an inclinometer. So most people used a simpler sensor for terrain compensation (MMA something). Basically two axis inclinometer. The heading was determined from GPS. It worked pretty well for a lot of people, but not as well for others. Having a more accurate heading from the sensor is the goal here, as that will improve both the steering algorithms and the terrain compensation that’s already in AOG.

Wait a minute 9DOF means a chip with 3 axis accelerometer, 3 axis gyroscope, 3 axis magnetometer.

So i am back to the experimenting with 2 of them.

If we did have a chip with three of each three axis units that would really be one real accurate chip!

Guess what T3 tech is, its three separate gyros

AgGPS AUTOPILOT SYSTEM WITH T3 TECHNOLOGY  Connecting to the vehicle’s hydraulic steering system, the Autopilot system is ideal for applications that require one inch year-to-year2 repeatable automated steering. The Trimble AgGPS Autopilot™ automated steering system comes standard with T3 technology.The Autopilot system uses three gyroscopes and three accelerometers to compensate for roll, pitch, and yaw (which are located in the AgGPS NavController II). Information from these sensors is used at 50 times a second to compensate the GPS position for sloping and rough terrain. This fast update rate ensures an optimal amount of information is provided, allowing the Autopilot system to maintain one inch steering accuracy at any speed and any pattern

AOG should be the first with T4 technology!

how the other guys do it.

And they go on… sound familiar…
SOME PRODUCTS:Only have one accelerometer for tilt correction and, as a result, do not compensate for rough terrain and can only adjust for gradually changing slopes.Have only one gyroscope, limiting their ability to compensate for rough ground and changing slopes.Use only two vertical GPS positions to correct the roll of the vehicle. By using two GPS positions that are only accurate to +/-1.5 inches, it is difficult to accurately obtain the angle measurement required to calculate the compensation for sloping terrain.

The hard part about 9 DOF has always been the combining of all the different sensors into something easily usable. This is what the CMPS14 does. Well and also the BNO08x. Theoretically we can get three rotation vectors out. pitch, roll, and yaw, which can be directly used in terrain compensation and also to help the steering algorithms react faster.

Exactly but that is xyz computed from only one device if you loose that there is no way to recover, or decide it is in error.

You are just left with a bad heading.

I also am tempted to pop open the T2 and see if they are rigid, or decoupled by silicone or rubber from the board. To get rid of high frequency vibration.

Re: Trimble’s exclusive T2 terrain compensation technology gives the EZ-Steer user +/- 6"-8" pass-to-pass accuracy and smooth hands-free driving on rolling, sloping or even rough terrains such as ditches, waterways, and terraces. This optional feature uses two accelerometers and two gyroscopes to compensate for roll and yaw . Information from these sensors, located in the steering controller, is used at ten times per second to compensate the GPS position for sloping and rough terrain.

I have a feeling its something we may be missing.

They are most likely using vibrating ring style Accel and gyro which usually just come with a single sensor per package. I have one of these which has been a favourite of many ag vendors to install.

Exactly but that is xyz computed from only one device if you loose that there is no way to recover, or decide it is in error.

You are just left with a bad heading.

But the gps / IMU fusion will just swallow upthat error and make it disappear. You’ll get a wiggle for sure, but it shouldn’t happen very often, very rare.

Much like gps heading fusion that happens in AOG, the accel and gyrometer work much the same, and you actually get very good performance even from a very simple complementary filter. The complementary filter gives us a “best of both worlds” kind of deal. On the short term, we use the data from the gyroscope, because it is very precise and not susceptible to external forces. On the long term, we use the data from the accelerometer, as it does not drift. So the math is this…

angle = 0.9* (angle+gyro * dT) + 0.1*(accelerometer)

Combining the mag is a lot more complex as it provides a reference for stability. Using EKF, more complicated, and of course tilt compensated heading like the BNO080 provides - level 11 math.

1 Like

9 DOF means
Acclerometer x 3 axis x y z
Same for gyroscope
Same for magnetomer

So
Accelerometer susceptible to noise
Gyroscope to drift
Magnetometer to magnetic fields and magnetic materials?

1 Like

Question on the use of the IMU. I am currently using the MMA8452Q and using fix to fix for heading. Seems to be working well. For heading it seems that as long as you do not need heading standing still or in reverse the fix to fix works well, what would be the benefit in using the CMPS14 for heading under my circumstances, as we are always moving forward and when standing still no need to know heading? Also our ground here is very flat only one field has a very small gully so roll is very minimal. Would there be a benefit for me upgrading to the CMPS14? If I do upgrade to the CMPS14 I see that chip has the pins on the top side of the board and the MMA8452Q was on the bottom side so if I wanted to connect to the existing header on my board, would I need to unsolder the pins on the CMPS14 and resolder them on the bottom to get the correct orientation? Also if I needed to put chip outside of box, what type of connectors would be the best to use for connecting to existing header on pcb board and then wired to CMPS14 pins?

smallt2

T2 tech is actually more of a T0.66666. So it completely disregards an axis. Also the accelerometers are single Axis as well. I wish I had a T3 box to open up cause I am pretty sure now T3 is equivalent too one single 3 axis sensor if the pattern continues.

The single axis accelerometers AD22037 ADXL203CE are still worth a pile of money $23US each on Ali, the gyros are $135US on Brian’s link. So there is $316 worth of gyros an accelerometers in this box.

So if a guy were to run two BNO, it would be T6 level marketing. But it would be better, adding more reference gyroscopes does increase accuracy.

NASA produced a nice paper on the validity of running more gyroscopes;
NASA Combining Multiple Gyroscopes

But this study I find the most interesting, these guys ran an array of 72 inexpensive gyroscopes. The neat part is in their testing you can see after 22 separate gyroscopes the accuracy gain went pretty much flat. But in the 2 to 10 gyroscope range the accuracy and stability gains were exponential. They also had a few that went right out to lunch. But how do you know how far out to lunch they are with only one available for data?
Redundant array of inexpensive gyroscopes

5 Likes

Hi all
Fixed up my CMPS14 today with wires into the MMA slot on PCB and I have the cmps in another small box 4/500mm away. I added the cmps usb .ino to the arduino.
Do I treat the MMA in the settings as though it reads CMPS?
Also as I’m removing the brick I presume I tell the settings that heading is now from Autosteer?
Anyway did this and then all seemed well steering within a couple of cm, until the tractor started turning sharp left or right intermittently. It would move say 20/30 cm and then find its way back to the line and then do it again perhaps 100 metres later. I looked at the steer chart and found that it was the green set line that was moving sharply first.
Any help please ?

2 Likes

Hi, can someone provide a little bit more info on how to upload this?
Ive already uploaded the autosteer_usb ino to the nano. Do I need to update it with this code? Do I insert this code into autosteer_usb ?

Bit lost.

Upload this to nano