This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Question about the estimated heading in GPS mode
#1
Hi everybody. I am a French sailor who sails a 47-foot sailboat with my family on board.

I have been using pypilot almost every day for about 4 months now following a makeshift installation to replace my old non-functioning pilot. Pypilot has kept me sailing all this time in Scotland and Ireland, many thanks to Sean for his fine work which saved our trip.

To learn how to use Pypilot, I used the forums, wiki and the workbook, which I have started to translate into French here. In most cases I manage to set the PID gains correctly, even if I still find this system « abstract ». In general, everything works very well, however the adjustments are particularly difficult when the conditions are unstable, with little wind, a lot of swell and currents, and when I often have to change sails positions.

But among the questions I ask myself and for which I don’t find an answer on the internet, there is one that comes up a lot and that confuses me a lot: why, sometimes, the calculation of the course from the GPS (coordinates provided by the AIS transponder via SignalK/OpenPlotter) is wrong? Let me explain...

My last sail took 3 hours and I had to steer all the time. There was 20kt of wind, the swell that goes with it, and I was on a broad reach, port tack. I was sailing at about 5kt. I noted in my logbook: "I've been on a 130° course for 30 minutes, pypilot keeps showing me a 110° course. When I activate it to follow its 110° heading, it systematically turns left: 90, 80, 70, 60, 50, 40.... I ask for 130°, it displays 110° and turns again in the wrong direction: 100, 90, 80... port helm when it should be turning starboard. In the meantime, the compass is not working well... and you might say that this is the cause of my problem... Despite the swell, I run a calibration, so that it is less wrong, but after many tries, even if the roll and pitch seem to be good, the GPS heading estimation is still not good (even though the map software detects it well from the same GPS source) and the pilot persists in going the wrong way.

What I don't understand is why, sometimes, pypilot doesn't calculate a correct real heading from the GPS points, when it seems so simple, we're going fast enough to get an accurate value, and we've been sailing straight for 30 minutes? Why does it work so well, yet, most of the time? If the problem is the compass (which has an influence even with GPS navigation mode, if I understand correctly) and it is impossible to calibrate because of the swell, what solution is there to have a functional pilot for the rest of the trip? This is an important question, as I sometimes sail for several days in difficult conditions and it would be unthinkable to wait until the sea is flat to have a functional pilot. Thank you for your clarification and I apologise in advance if this topic overlaps with another.
Reply
#2
(2022-09-28, 09:44 AM)gponcon Wrote: Hi everybody. I am a French sailor who sails a 47-foot sailboat with my family on board.

I have been using pypilot almost every day for about 4 months now following a makeshift installation to replace my old non-functioning pilot. Pypilot has kept me sailing all this time in Scotland and Ireland, many thanks to Sean for his fine work which saved our trip.

To learn how to use Pypilot, I used the forums, wiki and the workbook, which I have started to translate into French here. In most cases I manage to set the PID gains correctly, even if I still find this system « abstract ». In general, everything works very well, however the adjustments are particularly difficult when the conditions are unstable, with little wind, a lot of swell and currents, and when I often have to change sails positions.

But among the questions I ask myself and for which I don’t find an answer on the internet, there is one that comes up a lot and that confuses me a lot: why, sometimes, the calculation of the course from the GPS (coordinates provided by the AIS transponder via SignalK/OpenPlotter) is wrong? Let me explain...

My last sail took 3 hours and I had to steer all the time. There was 20kt of wind, the swell that goes with it, and I was on a broad reach, port tack. I was sailing at about 5kt. I noted in my logbook: "I've been on a 130° course for 30 minutes, pypilot keeps showing me a 110° course. When I activate it to follow its 110° heading, it systematically turns left: 90, 80, 70, 60, 50, 40.... I ask for 130°, it displays 110° and turns again in the wrong direction: 100, 90, 80... port helm when it should be turning starboard. In the meantime, the compass is not working well... and you might say that this is the cause of my problem... Despite the swell, I run a calibration, so that it is less wrong, but after many tries, even if the roll and pitch seem to be good, the GPS heading estimation is still not good (even though the map software detects it well from the same GPS source) and the pilot persists in going the wrong way.

What I don't understand is why, sometimes, pypilot doesn't calculate a correct real heading from the GPS points, when it seems so simple, we're going fast enough to get an accurate value, and we've been sailing straight for 30 minutes? Why does it work so well, yet, most of the time? If the problem is the compass (which has an influence even with GPS navigation mode, if I understand correctly) and it is impossible to calibrate because of the swell, what solution is there to have a functional pilot for the rest of the trip? This is an important question, as I sometimes sail for several days in difficult conditions and it would be unthinkable to wait until the sea is flat to have a functional pilot. Thank you for your clarification and I apologise in advance if this topic overlaps with another.

Did you set your heading offset to non zero value manually? And calibrate heading offset so that heading reported by pypilot matches your regular magnetic compass?

Pypilot only uses GPS headings if heading offset is zero. It uses fuzzy logic to fugure out how IMU is installed and directed in your boat if you
didn't set heading offset. This logic involves true COG from GPS, converting it into magnetic using magnetic model (must be compiled in during pypilot installation) and GPS position, disregarding currents and leeway. COG should be substantial for that to work.

Heading offset is in -180, 180 range, non-zero value. And check if it's actually got stored in pypilot.conf.
Also compass calibration after power offs needs to be performed again. By doing a 360 circle on your boat.

Sean might correct me if my understanding is wrong.
Download BBN Marine OS for raspberry pi 

https://bareboat-necessities.github.io/m...at-os.html

Video of actual installation:

https://www.youtube.com/watch?v=3zMjUs2X3qU


Reply
#3
(2022-09-28, 09:44 AM)gponcon Wrote: My last sail took 3 hours and I had to steer all the time. There was 20kt of wind, the swell that goes with it, and I was on a broad reach, port tack. I was sailing at about 5kt. I noted in my logbook: "I've been on a 130° course for 30 minutes, pypilot keeps showing me a 110° course. When I activate it to follow its 110° heading, it systematically turns left: 90, 80, 70, 60, 50, 40.... I ask for 130°, it displays 110° and turns again in the wrong direction: 100, 90, 80... port helm when it should be turning starboard. In the meantime, the compass is not working well... and you might say that this is the cause of my problem... Despite the swell, I run a calibration, so that it is less wrong, but after many tries, even if the roll and pitch seem to be good, the GPS heading estimation is still not good (even though the map software detects it well from the same GPS source) and the pilot persists in going the wrong way.

What I don't understand is why, sometimes, pypilot doesn't calculate a correct real heading from the GPS points, when it seems so simple, we're going fast enough to get an accurate value, and we've been sailing straight for 30 minutes? Why does it work so well, yet, most of the time? If the problem is the compass (which has an influence even with GPS navigation mode, if I understand correctly) and it is impossible to calibrate because of the swell, what solution is there to have a functional pilot for the rest of the trip? This is an important question, as I sometimes sail for several days in difficult conditions and it would be unthinkable to wait until the sea is flat to have a functional pilot. Thank you for your clarification and I apologise in advance if this topic overlaps with another.

Thanks for the detailed report.   Can you be more specific about the hardware you are using and how you installed the software?

Did you try switching to compass mode?   This would help narrow down the cause of your issue as it would no longer be using GPS.   I really am sorry about you having to steer manually, this is not acceptable but I need more information to narrow the cause.   I wish I could have been there to help debug it.    Can you verify it was turning the wrong angle from what was displayed?    Did the pilot start working again at some point?   Was it only in a particular sea state?    How long does it take the motor to move the rudder the full range?
Reply
#4
Hello mgrouch and Sean, thank you very much for your answers. I will try to be a bit more precise. However, you should know that, despite this problem, Pypilot works wonderfully most of the time.

I didn't know that the "GPS" mode only works if the heading offset is zero, thanks for the info. My heading offset is always set to 0. I guess it's the `imu.heading_offset` key in `pypilot.conf`.

Regarding the IMU, I think it is the model that Sean considers to be less good (orange MPU-9250). I set it up as best I could and checked that no magnetic elements were interfering with it. At the beginning of the navigation it constantly "rotates" and then eventually stabilizes with a different course shift each time, which I don't bother to correct anymore. However I think I can still improve this setting.

Some details on hardware and software: I have an RPI3 with the latest version of openplotter, and pypilot installed manually from github sources, in May 2022 (then updated yesterday). There is nothing else on the RPI, the network and other software are managed by another computer. An Elegoo nano for the motor, an IMU MPU-9250 and a IBT-2. For information, I made this assembly with the components that I had on board, or that I could have quickly at the beginning of my trip. The GPS data are those of the AIS transponder via SignalK, used for pypilot, opencpn and all other software. It should also be noted that my boat is a fairly heavy cruising yacht (20T loaded for 47 feet), with a hydraulic system for steering.

I did not try to switch to compass mode because during this navigation, I did not achieve to have a good compass course calibration to have a stable heading, and thus be able to run the pilot without GPS mode. When I try the compass mode in these conditions, the pilot is at the mercy of a "crazy" compass and only the GPS mode allows to follow the route.

I confirm that, curiously and only in this particular situation, the pilot was turning the rudder in the wrong direction. There was a lot of swell, a cross-current and 20 kts of steady wind with occasional squalls. I had just the Genoa, broad reach, port tack. The COG provided by the GPS varied around 130°, which opencpn and the other instruments displayed well. But Pypilot displayed a heading value around 110°, whereas it usually displays the same value as the other software. I tried several gain values, especially quite high ones compared to usual, in order to maintain the heading... but even when I asked for 140°, it turned the rudder left. I restarted the system in the meantime, without success. Before and after this navigation, the pilot worked perfectly, with less swell and less wind.

It takes about 8 seconds for the pilot to move the rudder through its full range, a little longer when more effort is required. I don't have a rudder sensor (I removed it because it wasn't accurate enough).

I'm sorry I can't give more precision. Next time I will note more information and then share it with you. (is there a "record" option to send everything that happens to a file?)

In retrospect, it's possible that due to the swell and strong wind, the pilot is trying right and left movements and only the left movements are working... I put LEDs to visualize the signals sent to the rudder, which unfortunately I didn't have the reflex to look at... I just noticed that even with a lot of intensity, the rudder was making steps to the left and not to the right, for some unknown reason.
Reply
#5
(2022-09-30, 09:58 AM)gponcon Wrote: Hello mgrouch and Sean, thank you very much for your answers. I will try to be a bit more precise. However, you should know that, despite this problem, Pypilot works wonderfully most of the time.

I didn't know that the "GPS" mode only works if the heading offset is zero, thanks for the info. My heading offset is always set to 0. I guess it's the `imu.heading_offset` key in `pypilot.conf`.
This wont affect gps heading at all. It is only the compass offset since pypilot doesn't know which way the imu is facing.
Quote:Regarding the IMU, I think it is the model that Sean considers to be less good (orange MPU-9250). I set it up as best I could and checked that no magnetic elements were interfering with it. At the beginning of the navigation it constantly "rotates" and then eventually stabilizes with a different course shift each time, which I don't bother to correct anymore. However I think I can still improve this setting.
That is a really bad sign. I threw away more than 100 of the mpu9250/mpu925x because so many failed my basic tests. Since using the much more expensive icm20948 (which has no better sensors assuming they work) I do not have so many bad chips. It really depends on where you get the sensors.

It basically means
1) the accelerometer bias is high. You can calibrate this out to some degree, but if its too far out of range, the +- 2g will saturate, and the software would have to use +-4 g instead which is not implemented and would degrade performance somewhat. I simply dont use sensors more then 0.3g bias.

2) the gyro bias is very high. Some sensors have really high gyro bias.

Also... some sensors have a failed axis. So only read zero for one or more of the sensors. pypilot doesn't do a great job of detecting every sort of possible screwed up sensor. It is on my todo list, to make it work if the compass sensors failed, or make it warn you if one axis failed or what.. but its not implemented.

You should really verify your intertial sensors. You can use the pypilot_scope to plot the accelerometer, and gyros, and (check gyro bias too) to ensure they are sane. If you can check the boat plot by running pypilot_calibration it should not randomly spin at startup as you suggest it might.

Finally, check the calibration plots. These are available from the web, opencpn plugin, or pypilot_calibration now. Please verify the accelerometer and compass properly calibrate.

Quote:Some details on hardware and software: I have an RPI3 with the latest version of openplotter, and pypilot installed manually from github sources, in May 2022 (then updated yesterday). There is nothing else on the RPI, the network and other software are managed by another computer. An Elegoo nano for the motor, an IMU MPU-9250 and a IBT-2. For information, I made this assembly with the components that I had on board, or that I could have quickly at the beginning of my trip. The GPS data are those of the AIS transponder via SignalK, used for pypilot, opencpn and all other software. It should also be noted that my boat is a fairly heavy cruising yacht (20T loaded for 47 feet), with a hydraulic system for steering.

I did not try to switch to compass mode because during this navigation, I did not achieve to have a good compass course calibration to have a stable heading, and thus be able to run the pilot without GPS mode. When I try the compass mode in these conditions, the pilot is at the mercy of a "crazy" compass and only the GPS mode allows to follow the route.
The problem is... pypilot's gps mode really is a compass mode. It is steering to compass course, and very slowly updating this internal compass course to steer to make the gps course desired. gps can be very noisy and especially at lower speeds it would give very bad performance to not use the compass.

I have a work-in-progress but not enabled "gps pilot" which does more what you might have expected and purposefully does not use the compass instead relying on the gps and gyros. The idea was for this to work around magnetic distortions like sunken boats or metal bridges, but it would also enable better use with a faulty compass. It is just not completed let alone tested, so its not possible to use, and I would expect poor performance at low speeds.

Quote:I confirm that, curiously and only in this particular situation, the pilot was turning the rudder in the wrong direction. There was a lot of swell, a cross-current and 20 kts of steady wind with occasional squalls. I had just the Genoa, broad reach, port tack. The COG provided by the GPS varied around 130°, which opencpn and the other instruments displayed well. But Pypilot displayed a heading value around 110°, whereas it usually displays the same value as the other software. I tried several gain values, especially quite high ones compared to usual, in order to maintain the heading... but even when I asked for 140°, it turned the rudder left. I restarted the system in the meantime, without success. Before and after this navigation, the pilot worked perfectly, with less swell and less wind.
Hmm.. I can only assume that the IMU is not really working properly, so giving extremely erroneous errors that break the gps filter.

Quote:It takes about 8 seconds for the pilot to move the rudder through its full range, a little longer when more effort is required. I don't have a rudder sensor (I removed it because it wasn't accurate enough).

I'm sorry I can't give more precision. Next time I will note more information and then share it with you. (is there a "record" option to send everything that happens to a file?)

In retrospect, it's possible that due to the swell and strong wind, the pilot is trying right and left movements and only the left movements are working... I put LEDs to visualize the signals sent to the rudder, which unfortunately I didn't have the reflex to look at... I just noticed that even with a lot of intensity, the rudder was making steps to the left and not to the right, for some unknown reason.

If the course it reports is all over the place and wrong, that would explain the issue. You will need to get pypilot working in compass mode to really fix this.
Reply
#6
(2022-10-01, 08:40 PM)seandepagnier Wrote: This wont affect gps heading at all.   It is only the compass offset since pypilot doesn't know which way the imu is facing.

Indeed.

Quote:That is a really bad sign.   I threw away more than 100 of the mpu9250/mpu925x because so many failed my basic tests.  Since using the much more expensive icm20948 (which has no better sensors assuming they work)  I do not have so many bad chips.   It really depends on where you get the sensors.

This is interesting. As soon as I can I will try the ICM-20948. At the time I based it on this information: https://pypilot.org/wiki/doku.php?id=inertial_sensors.

Quote:It basically means
1)  the accelerometer bias is high.  You can calibrate this out to some degree, but if its too far out of range, the +- 2g will saturate, and the software would have to use +-4 g instead which is not implemented and would degrade performance somewhat.   I simply dont use sensors more then 0.3g bias.

2)   the gyro bias is very high.   Some sensors have really high gyro bias.

Also...   some sensors have a failed axis.  So only read zero for one or more of the sensors.   pypilot doesn't do a great job of detecting every sort of possible screwed up sensor.   It is on my todo list, to make it work if the compass sensors failed, or make it warn you if one axis failed or what.. but its not implemented.

You should really verify your intertial sensors.   You can use the pypilot_scope to plot the accelerometer, and gyros, and (check gyro bias too) to ensure they are sane.   If you can check the boat plot by running pypilot_calibration it should not randomly spin at startup as you suggest it might.

Finally,  check the calibration plots.   These are available from the web, opencpn plugin, or pypilot_calibration now.   Please verify the accelerometer and compass properly calibrate.

I'm currently at anchor with a slight swell and after a calm sail during which everything went very well. I was also able to use the compass mode to optimise my course through a cross-current. The values found with pypilot_scope and pypilot_calibration seem consistent.

I am not yet very comfortable interpreting calibration plots but the messages "need more range" and "0d fit, insufficient data" are very common... I guess this is not a good sign.

A sensor failure detection system would be interesting, especially to check that the GPS heading variation matches the accelerometer variation. But it is also the responsibility of the users to use qualitative components Wink.

Quote:The problem is...  pypilot's gps mode really is a compass mode. It is steering to compass course, and very slowly updating this internal compass course to steer to make the gps course desired.    gps can be very noisy and especially at lower speeds it would give very bad performance to not use the compass.

This explains the problem, which is seen when the sensor heading is constantly "turning". As the compass heading is constantly turning right, it is logical that pypilot wants to restore the course by turning left, even if the GPS heading is getting worse and worse...

Quote:I have a work-in-progress but not enabled "gps pilot"  which does more what you might have expected and purposefully does not use the compass instead relying on the gps and gyros.    The idea was for this to work around magnetic distortions like sunken boats or metal bridges, but it would also enable better use with a faulty compass.   It is just not completed let alone tested, so its not possible to use, and I would expect poor performance at low speeds.

Even though poor performance is to be expected at low speeds, this option would be useful to compensate for possible accelerometer failures. There is also the added benefit of being able to travel with the pilot in high latitudes where the compass no longer works.

Quote:(...) I can only assume that the IMU is not really working properly, so giving extremely erroneous errors that break the gps filter. (...)If the course it reports is all over the place and wrong, that would explain the issue. You will need to get pypilot working in compass mode to really fix this.

Today I'm going to be sailing in stronger conditions, testing and trying to see what happens if the pilot changes the course. I'll keep you informed. Thank you very much for all these precisions.
Reply
#7
Quote:I'm currently at anchor with a slight swell and after a calm sail during which everything went very well. I was also able to use the compass mode to optimise my course through a cross-current. The values found with pypilot_scope and pypilot_calibration seem consistent.

I am not yet very comfortable interpreting calibration plots but the messages "need more range" and "0d fit, insufficient data" are very common... I guess this is not a good sign.
It just means you have not calibrated.   You need to turn in a circle to calibrate the compass.   To calibrate the accelerometers you have to hold the imu without much movement in different orientations for it to "feel" enough range of the accelerometers.  It is not possible to calibrate the acclerometers when fixed to the boat (without flipping the boat completely over)

The plots will show calibration points, and they are fit to a sphere.   If you can see the points falling on the sphere (drag to rotate) the calibration should be good.   The pitch and roll rely on the accelerometers, and yaw requires on accelerometers and compass.
Quote:This explains the problem, which is seen when the sensor heading is constantly "turning". As the compass heading is constantly turning right, it is logical that pypilot wants to restore the course by turning left, even if the GPS heading is getting worse and worse...
Yes,  compass mode must work for gps mode in the basic pilot.     If the compass heading is constantly turning it could be that the gyro has failed or is giving bad data.    It can also be because the accelerometer is bad, or just not sufficiently compensated (not calibrated)   It is also possible that the gyros have bias that are too high.   In more recent versions of pypilot, the sensors are automatically reset above a certain threshold to usually correct this issue, but its possible you are just below the threshold.

The compass heading should remain stable if the boat is not rotating.   The gyros are required regardless of pilot.   So even if the gps pilot were developed to ignore the compass completely, it would still rely on the gyros, and if they are giving poor data you would face similar issues.
Quote:Even though poor performance is to be expected at low speeds, this option would be useful to compensate for possible accelerometer failures. There is also the added benefit of being able to travel with the pilot in high latitudes where the compass no longer works.
It could not really compensate accelerometer failures...   At least not by default since the accelerometer is used to determine orientation of the sensors, which are then used to rotate the gyro readings to determine rate of change of heading.   This is one of the features of pypilot.  It does not use a particular gyro fixed to the boat, but uses the actual "vertical gyro" which is the rate of change around whatever axis is vertical and this requires all the gyros, and accelerometers to compute.    Consider yawing while heeled or pitching.   Without this compensation, the yaw rate would be some fraction of the total.

It would have to ignore not only the compass, but also accelerometers and assume the boat is level.. so this would further degrade performance as you would be back to using a single gyro.    It is an interesting proposal, to make a pilot work on only gps and one of the gyros assuming the alignment is known.   It should be possible and even give reasonable usefulness, but the initial "level" calibration could not work either.  It would also need a way to detect that the accelerometers were not valid which is not always obvious.

I would suggest having another imu,   the icm20948 has better quality control so...   Thanks for the feedback, and it would be great to support broken sensors as much as possible..  sometimes one axis fails and so forth, but the degraded performance is never optimal and sometimes I purposefully do not support certain things (at least not by default) to guide users not to operate that way.   In other words: get a new IMU and compare the results.
Quote:Today I'm going to be sailing in stronger conditions, testing and trying to see what happens if the pilot changes the course. I'll keep you informed. Thank you very much for all these precisions.

Yes, feedback is great.
Reply
#8
Quote:
Quote:(...) I am not yet very comfortable interpreting calibration plots but the messages "need more range" and "0d fit, insufficient data" are very common... I guess this is not a good sign.

It just means you have not calibrated. You need to turn in a circle to calibrate the compass. To calibrate the accelerometers you have to hold the imu without much movement in different orientations for it to "feel" enough range of the accelerometers.  It is not possible to calibrate the acclerometers when fixed to the boat (without flipping the boat completely over)

The plots will show calibration points, and they are fit to a sphere. If you can see the points falling on the sphere (drag to rotate) the calibration should be good. The pitch and roll rely on the accelerometers, and yaw requires on accelerometers and compass.

Yes... I did not calibrate the compass properly before attaching it. As a result, my tests were carried out with a badly calibrated compass... I give you anyway (below) the results following my last navigations even if it is not very useful.

Quote:
Quote:This explains the problem, which is seen when the sensor heading is constantly "turning". As the compass heading is constantly turning right, it is logical that pypilot wants to restore the course by turning left, even if the GPS heading is getting worse and worse...

Yes,  compass mode must work for gps mode in the basic pilot. If the compass heading is constantly turning it could be that the gyro has failed or is giving bad data. It can also be because the accelerometer is bad, or just not sufficiently compensated (not calibrated) It is also possible that the gyros have bias that are too high. In more recent versions of pypilot, the sensors are automatically reset above a certain threshold to usually correct this issue, but its possible you are just below the threshold.

The compass heading should remain stable if the boat is not rotating. The gyros are required regardless of pilot. So even if the gps pilot were developed to ignore the compass completely, it would still rely on the gyros, and if they are giving poor data you would face similar issues.

Noted. Hence the importance of having a good compass, well calibrated. For my last navigation, I used the latest version of pypilot on github.

Quote:
Quote:Even though poor performance is to be expected at low speeds, this option would be useful to compensate for possible accelerometer failures. There is also the added benefit of being able to travel with the pilot in high latitudes where the compass no longer works.

It could not really compensate accelerometer failures...   At least not by default since the accelerometer is used to determine orientation of the sensors, which are then used to rotate the gyro readings to determine rate of change of heading.   This is one of the features of pypilot.  It does not use a particular gyro fixed to the boat, but uses the actual "vertical gyro" which is the rate of change around whatever axis is vertical and this requires all the gyros, and accelerometers to compute. Consider yawing while heeled or pitching. Without this compensation, the yaw rate would be some fraction of the total.

It would have to ignore not only the compass, but also accelerometers and assume the boat is level.. so this would further degrade performance as you would be back to using a single gyro. It is an interesting proposal, to make a pilot work on only gps and one of the gyros assuming the alignment is known. It should be possible and even give reasonable usefulness, but the initial "level" calibration could not work either. It would also need a way to detect that the accelerometers were not valid which is not always obvious.

I would suggest having another imu,   the icm20948 has better quality control so...   Thanks for the feedback, and it would be great to support broken sensors as much as possible..  sometimes one axis fails and so forth, but the degraded performance is never optimal and sometimes I purposefully do not support certain things (at least not by default) to guide users not to operate that way. In other words: get a new IMU and compare the results.

Thank you for these very interesting details. I will take advantage of the winter to invest in a more efficient IMU and if possible, when you have the possibility to reopen your store, order your hardware. (I'm not the only one waiting... I took the liberty of doing a little publicity).

Here is my latest feedback, with my defective IMU.

At first everything went well, compass heading and GPS heading seemed stable:

[Image: 2022-10-05-112344_1824x984_scrot.png]

Then when the conditions started to get more difficult (cross swell, stronger wind), the compass heading offset started to change gradually. To maintain a heading of about 108°, I had to ask pypilot for a heading of 100°:

[Image: 2022-10-05-133547_1824x984_scrot.png]

[Image: Capture-decran_2022-10-05_13-57-33.png]

On this recording (towards the end), you can see that at one point the compass started to "bug". From that moment on it became very difficult, if not impossible, to use pypilot to maintain a heading:

[Image: 2022-10-05-134552_1824x984_scrot.png]
Reply
#9
Can you plot the raw compass and gyro readings during this to determine which one caused it?

It is obvious something is off with this sensor.
Reply
#10
Could pypilot support 3 IMUs connected to it? I see benefits in it.
It could detect faulty one. It also can capture waves movement better and possibly steer for better comfort.

Thanks
Download BBN Marine OS for raspberry pi 

https://bareboat-necessities.github.io/m...at-os.html

Video of actual installation:

https://www.youtube.com/watch?v=3zMjUs2X3qU


Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)