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
On the compass calibration
#1
I noticed a discrepancy between the compass heading given by the mechanism and the actual heading, more than 70 degrees. It was stable allright, so good enough for test purposes, but it does rise the general question how the compass heading is zeroed. For the IMU, there's a button 'boat is level', but there is no button 'boat is pointing north', so to speak. I can imagine the linearisation happens on-the-go, with the aid of the IMU, but how does PyPilot zero in? Is this also supposed to happen on-the-go, with the aid of GPS COG or so?

Must say my boat is steel. But 70 degrees is a bit much.

Cheers,

-
Reply
#2
did you calibrate the compass?

https://docs.sailoog.com/openplotter-v1-...alibration

also if you look under the imu tab in the calibration window there is a spot for heading offset.
Granted this seems to be somewhat of moving target for me atm, I have it zeroed in one way then go the other way and have to adjust it again... not sure what may cause this... and my boat is aluminum!
Reply
#3
Thanks for your answer. I guess I should have mentioned that I don't have the openplotter-integrated pypilot, but the TinyPilot connected to the OpenCPN plugin. So the IMU does not sit on the Raspberry that runs OpenPlotter, it sits on the Raspberry that runs Tinypilot. The openplotter does not show the presence of the TinyPilot IMU, and the openplotter calibration facilities don't apply to the remote TinyPilot. I guess that's how this is designed. At the risk of stating something obvious to others, allow me to summarize what I understand now so it can be validated and may be informative to others.

The TinyPilot web client has three user interfaces. At first, the LCD+keyboard, but I don't have that installed. Second there is a web client, that you get when you point your browser to the TinyPilot's ip address. This web client has only one calibration facility, but only for the inertial sensors. It shows a progress bar, apparently the equivalent of the 3d sailboat picture. Third, there is an OpenCPN plugin that is already available in the OpenCPN of openplotter. It only needs to be enabled, and then you have this extra button in OpenCPN that reveals another PyPilot interface, but quite a comprehensive one.

But when I got it all hooked up, I still could not find a button to start the compass calibration facility in this plugin, only a tab that shows some calibration parameters and a checkbox to lock it. I had already suspected that there was some automatic, ongoing compass calibration: just start sailing and it calibrates itself, I had heard in one of the videos. Too bad because I really liked the orbital dots interface (just as a brain stimulator I guess :-) ). However it was consistent with the need to lock the calibration, so that tab made sense. Also, running the system on my workbench I had already noted that the compass reading was originally somewhat changeable, and I had attributed that to some automated calibration going on. I had not gotten to walking my pypilot in full circles though the workshop to finish this calibration; there are limits to my enthousiasm and on the boat that's far easier.

But there I found the heading difference and hence came my question.

Your heading offset put me on the track to check the various sources of information again and I think I found it now. Sean mentions in the TinyPilot video 'Once [the inertial sensors are] leveled, automatic compass calibration can work better. It can be aligned to magnetic North by entering a degree offset. This ensures accurate headings and heel angles are reported". So there is automatic compass calibration and it does require a degree offset. And I just found that by changing imu.heading_offset this has a direct effect on the actual heading reported in the plugin.

So this answers my question on how to fix the offset. It leaves the question open whether or not there is some automatic process that sets the offset based on GPS COG. And it may be a pointer to you to the facility to lock your calibration.

Thx,

-

[Image: attachment.php?aid=498]


Attached Files Image(s)
   
Reply
#4
(2019-07-30, 11:56 PM)ironman Wrote: Thanks for your answer. I guess I should have mentioned that I don't have the openplotter-integrated pypilot, but the TinyPilot connected to the OpenCPN plugin. So the IMU does not sit on the Raspberry that runs OpenPlotter, it sits on the Raspberry that runs Tinypilot. The openplotter does not show the presence of the TinyPilot IMU, and the openplotter calibration facilities don't apply to the remote TinyPilot. I guess that's how this is designed. At the risk of stating something obvious to others, allow me to summarize what I understand now so it can be validated and may be informative to others.
You can use the openplotter interface remote. Pass the tinypilot ip on the terminal of openplotter:
pypilot_calibration 192.168.14.1



Quote:But when I got it all hooked up, I still could not find a button to start the compass calibration facility in this plugin, only a tab that shows some calibration parameters and a checkbox to lock it. I had already suspected that there was some automatic, ongoing compass calibration: just start sailing and it calibrates itself, I had heard in one of the videos. Too bad because I really liked the orbital dots interface (just as a brain stimulator I guess :-) ). However it was consistent with the need to lock the calibration, so that tab made sense. Also, running the

It is normally automatically calibrating if it can. You need to have slowly turned in most orientations to update the calibration. So to start calibration you just need to make sure it isn't locked.

Quote: system on my workbench I had already noted that the compass reading was originally somewhat changeable, and I had attributed that to some automated calibration going on. I had not gotten to walking my pypilot in full circles though the workshop to finish this calibration; there are limits to my enthousiasm and on the boat that's far easier.
Indoors and around work bench is notorious for magnetic distortions. This will greatly influence calibration and compass accuracy. It is best to calibrate on the boat by actually rotating the boat once the sensors are mounted.
Reply
#5
(2019-07-31, 01:52 PM)seandepagnier Wrote: You can use the openplotter interface remote.  Pass the tinypilot ip on the terminal of openplotter:
pypilot_calibration 192.168.14.1

It is normally automatically calibrating if it can.  You need to have slowly turned in most orientations to update the calibration.   So to start calibration you just need to make sure it isn't locked.

Indoors and around work bench is notorious for magnetic distortions.   This will greatly influence calibration and compass accuracy.   It is best to calibrate on the boat by actually rotating the boat once the sensors are mounted.

Thx. Indeed I can run the calibration from openplotter remotely now, but I don't get the yellow dots yet, which, I guess, would be equivalent to a successful calibration and a cue to lock it. The green dot cloud is rather messy. I guess this is due the interaction with the power cable. I'll do this on a swing in the garden another day; the neighbours already think I'm weird.

Does this manual remote calibration not interfere with the automatic calibration that also takes place on the Tinypilot image? Can I stop the Tinypilot automatic calibration entirely, and solely rely on the remote, manual one? Or can I visualize remotely the tinypilot automatic calibration process? I want to be able to rely at all times that my compass heading is on the mark. When I see imu.compass_calibration_age set, can I conclude that it's the automtic process that did get a fix?

Running pypilot_calibration, I do get some output that suggest something's wrong. Could you cast an eye on that? See attached. I think it's a mismatch between imu.compass_calibration (in the script) and imu.compass.calibration (in tinypilot's signalk). Underscore vs dot in the parameter name.

Thx again!


Attached Files
.txt   remote pypilot_calibration errors.txt (Size: 6.82 KB / Downloads: 169)
Reply
#6
(2019-07-31, 05:43 PM)ironman Wrote: Thx. Indeed I can run the calibration from openplotter remotely now, but I don't get the yellow dots yet, which, I guess, would be equivalent to a successful calibration and a cue to lock it. The green dot cloud is rather messy. I guess this is due the interaction with the power cable. I'll do this on a swing in the garden another day; the neighbours already think I'm weird.

Avoid magnetic distortions. Normally best to do by rotating the whole boat.

Quote:Does this manual remote calibration not interfere with the automatic calibration that also takes place on the Tinypilot image? Can I stop the Tinypilot automatic calibration entirely, and solely rely on the remote, manual one? Or can I visualize remotely the tinypilot automatic calibration process? I want to be able to rely at all times that my compass heading is on the mark. When I see imu.compass_calibration_age set, can I conclude that it's the automtic process that did get a fix?
There is no manual/automatic difference. It recalibrates whenever it can unless locked.

If you see the age reset and the yellow points, it got a fix.
Quote:Running pypilot_calibration, I do get some output that suggest something's wrong. Could you cast an eye on that? See attached. I think it's a mismatch between imu.compass_calibration (in the script) and imu.compass.calibration (in tinypilot's signalk). Underscore vs dot in the parameter name.

Thx again!

Your pypilot install on openplotter is too old. You should upgrade it to fix this error.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)