• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
IMU Compass "Boat is Level" and offsets lost after rebooting or restarting signalk
#1
I have two different Pis with 9255 imus and either a BMP180 or a BME280 weather sensor. 

If I tell it the "boat is level" and enter an offset so the heading matches my old school compass, it reflects those values for the session but if I shut down or restart signalk these settings are lost. 

I have tried running in debug mode and I get a message about humidity sensor not found, but nothing else that seems like an error. 

Maybe there is something wrong with my openplotter.conf file or something?
  Reply
#2
sorry for the issue. I think the setting is written only once every 10-20 minutes. So after leveling, do not restart for another 20 minutes or so. Check ~/.pypilot/pypilot.conf

It is supposed to be written also on a clean shutdown, so not sure what is going on.

This is to avoid excessive writes since this format file the entire file is re-written if only one field changes. I think it could be reduced to 1-2 minute delay.
  Reply
#3
In the manual and your video you only show use of The Boat Is Level button and not the directional offset. I have been trying to orient the thing using the heading from the ship's compass and using offset until it is correct. Is that not necessary?

I suppose the imu might sense which way it is accelerating and report that as heading? If that is the case it might read differently than the ship's compass if drifting sideways...



Sent from my Moto G (5) Plus using Tapatalk
  Reply
#4
(05-14-2018, 11:14 PM)Saqqara Wrote: In the manual and your video you only show use of The Boat Is Level button and not the directional offset. I have been trying to orient the thing using the heading from the ship's compass and using offset until it is correct. Is that not necessary?
If you want to have correct compass heading you need to do it. Otherwise you will have a relative heading and the values for pitch and roll won't be right (swapped if 90 degrees off)
Quote:I suppose the imu might sense which way it is accelerating and report that as heading? If that is the case it might read differently than the ship's compass if drifting sideways...
It cannot sense heading from acceleration. It may be possible for it to use gps to know the direction it goes, and also gps location to subtract the magnetic deviation, but as you say, it won't work if the ship is not moving in the direction it is facing, such as drifting, beating or in currents.

There are all kinds of ways to make it smarter. It could probably "auto level" with the right logic, but for now, you need to level, then dial in the compass offset to align the sensors. Let us know if you have ideas to improve things.
  Reply
#5
(05-15-2018, 10:03 PM)seandepagnier Wrote:
(05-14-2018, 11:14 PM)Saqqara Wrote: In the manual and your video you only show use of The Boat Is Level button and not the directional offset. I have been trying to orient the thing using the heading from the ship's compass and using offset until it is correct. Is that not necessary?
If you want to have correct compass heading you need to do it. Otherwise you will have a relative heading and the values for pitch and roll won't be right (swapped if 90 degrees off)
Quote:I suppose the imu might sense which way it is accelerating and report that as heading? If that is the case it might read differently than the ship's compass if drifting sideways...
It cannot sense heading from acceleration. It may be possible for it to use gps to know the direction it goes, and also gps location to subtract the magnetic deviation, but as you say, it won't work if the ship is not moving in the direction it is facing, such as drifting, beating or in currents.

There are all kinds of ways to make it smarter. It could probably "auto level" with the right logic, but for now, you need to level, then dial in the compass offset to align the sensors. Let us know if you have ideas to improve things.
Thank you. I am just the fool to help make documentation foolproof. The only suggestion I have is an Apply button to save these inputs immediately, but I expect there is a good reason you don't do that.

So calibration runs continuously whether the window is open or not, and the calibration button only opens the window, it doesn't initiate anything (although without the inputs it won't point correctly)?





Sent from my Moto G (5) Plus using Tapatalk
  Reply
#6
The calibration is automatic and continuous unless you "lock" it.

The calibration window, is only a client and just a visual display. There can be any number of these. You can connect to the pypilot server to see the calibration on a remote host by typing "pypilot_calibration host" on the command line.

The calibration only determines the 3 compass bias, the overall magnetic field strength and the inclination. These values need to be continuously updated to ensure correct operation.

It doesn't find the alignment to level (2 angles) or the alignment to the compass (1 angle) which need to be manually set whenever the sensors are remounted in the boat.
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)