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
presets for pypilot
Hello ,
I regretted the fact that pypilot lacked a 'presets' function. I looked into the question a bit, and the solution would be to be able to save a preset under a name that we could reinstate later depending on the weather conditions. For this, As soon as a configuration is suitable for a given sea state, I copy pypilot.conf and name it after the situation. A small bash script allows me to send it to pypilot.conf and find its data in the driver. I coded a small Python program with Tkinter to have a rudimentary graphical interface which takes care of sending the preset in .pypilot/pypilot.conf, but this solution is a bit heavy and lacks flexibility! Would it be possible and interesting to code this in pypilot? (I unfortunately do not yet have sufficient c ++ skills to do it myself!) I think this would be a plus that would be greatly appreciated by its users.
which values do you set, and how many different cases?
Hi Sean

I'm Kinefou's son actually testing pypilot onboard. As we still wait the correct belt to be able to test in every conditions, we only make tests in easy/moderate sea.
For now, for our boat we use P to 0.00070 and D to 0.01700 as the first preset, very economic and already well working in multiple sea state. To make simple, I imagine to multiply by 2 for 2nd preset, and by 3 or 4 for 3rd preset but it still need some more advanced tests. I imagine 4 presets would be enought for many cases but maybe more would be better depending of sea and sailing allure. We still need to test other gains parameters following available guides.
Hello Sean,
I think that 6 cases should be more than enough to cover the needs of a navigation, but I stumble on the fact that, for lack of anything better, I save all the pypilot.conf, so also values that deserve not to be reset each time restoration.
The ideal would be to save only the settings P, I D, DD, PR, FF and R and to be able to reinsert them in pypilot.conf without touching the other values, but that, I do not know how to do it !!
Maybe a 'Save' button to save a setting by asking for a save name (mer_calme, vent_de_travers, swell for example) and a 'restore' button which will present a drop-down menu showing the previous saves which would be chosen by a click!
At home, it works, but the process is a bit heavy and complicated for a non-IT boater !!
Thanks for your interest.

a small screenshot of the python program I am using
Thanks for the feedback. I want the presets to be accessed from all the different interfaces. Currently pypilot supports multiple pilots, but only the "basic" autopilot is both useful and well tested.

So there are two possible options. One is to support multiple profiles for each pilot. Each profile would store different gains.

The other option would be to support multiple 'basic' pilots each with different names. Currently, you might for example be able to use the 'simple' pilot which just has PID gains for some sea states and get two profiles. In the near future I plan to develop a self-tuning autopilot which is similar to the basic pilot but automatically adjusts the gains. This as well as fully developing the learning pilot which uses neural networks rather than the traditional filters. It remains to be seen if these pilots would benefit from multiple profiles or instances or if they can automatically adapt to conditions based on the sensor inputs.
I made something a while ago that was supposed to automatically select gain presets based on wind angle and boat speed - see This was before I even built my pypilot, and after the recent pypilot upgrades it no longer connects. Recently I adopted to the integral use of signalk which makes it opportune to revive the initiative. I'll keep the forum posted on positive outcomes, but you might want to clone and have a go at it yourself.
I think this would be very useful. When conditions are adverse there are other things to to than tweaking gains.
The trouble with using presets like this, is although it would give the best control, it is a fairly advanced feature and makes the autopilot more difficult to use. I am not against it, but I would just implement a new pilot which takes care of this.

I am more trying to focus on pilots that can automatically tune the gains. For example with faster boat speed you can use higher gains, and there are many more I describe in the tuning gain page. The difficulty is an automatic tuning algorithm is hard to make fast as well as good.

Finally the machine learning offers the most promising future pilot, but this will no longer use or need gains to tune anymore.
I wanted to ask in which state is the machine learning autopilot you mention.

You can check the source code in git.. it remains incomplete.

Forum Jump:

Users browsing this thread: 1 Guest(s)