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.

  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Project low cost autopilot
#1
The reason for opening this thread is to let you know that Tehani and I are developing a very low-cost autopilot.
The idea came about because our pilots are years old. On the other hand Ray's mine also has a tendency to sulphate the tracks of the electronic circuit.  So before we come up with a cost of a few thousand euros to replace the one we have, we've decided to develop our own pilot whose final cost does not embezzle our coffers.

There is enough work already advanced, as I will comment later. We want to share this project with you, because we believe that there will be more people interested in this project that can take advantage of it. On the other hand, we see a contribution of ideas, as happened and happens with the OpenPlotter project. After all, one of the ideas is to be fully compatible with OpenPlotter and OpenCPN. But also that it can be used with other commercial plotters.
The compatibility with OpenPlotter we want it to be Plug and Play, so that it does not suppose an added effort to the installation of openplotter and its peripherals.
It will be equipped with its proper Gyrocompas / GPS. It is already developed and is separated from the pilot, to be able to place it in the optimal point of our boat, out of magnetic influences and in centre line. The compass will automatically adjust to the declination of the area where we are sailing, in such a way that between the different courses we will also have the real course. This gyrocompass includes the famous Kalman filter, which guarantees more reliable data and more speed.

Compatibility with all standards such as SeaTalk, NMEA183 and NMEA2000 or N2K, is obtained with a converter that can even function as a multiplexer / gateway if you have different systems coexisting. This step is already done. We are studying the possibility of including SignalK in it. But we have to analyze if it is going to suppose a reduction of the speed of calculation that reduces the response of the system. This is a point to discuss and negotiate.

Regarding the central one, it will probably have a more powerful processor than the ones used by commercials, with inputs for different sensors, such as for example, the rudder angle or motor navigation. N2K sensors, e.g. wind, can be connected without problems.

It could be discussed whether to use another type of cheaper analogue wind sensors.
Or if there is interest in making a pulse output for the existing speed displays on the boat.

In the programming of the central we will introduce "artificial intelligence", so that it has learning capacity and can better handle any direction with respect to the wind and the direction of the waves as well as sea state and meteorological conditions. And also for rescue operations (MOB).

As you can see it is an ambitious project. We have given ourselves time until the end of this year to complete the first operational version. That's why we count on you and your ideas for its development. Updating the software will be very easy using any mobile phone and without special programs.

Regarding the compatibility with commercial systems, we could start with a small survey and tell us which autopilot you have on the boat now and change which one you would put.

In next post we will be expanding our ideas and integrations that we are doing with yours.

We need to complete the specifications of this autopilot as soon as possible, because that depends on the design and manufacture of the circuit of the pilot.
This project has a considerable magnitude, a lot of effort and many hours of engineering work. That's why we need to know if you find it interesting or not and also if the fixed costs could be covered.

So from now on, it moves from being our private project to being everyone's project.
  Reply
#2
That sounds promising.
If I have understood, it will be an standalone device. How do you plan to connect/communicate with openplotter and what data do you need to exchange?
  Reply
#3
Thank you Sailoog for your question. The reason I'm independent is that you need IMUS of good quality.  The one we are going to use has 6 axles and compasses with Kalman filter included.

In principle we think that the cable connection with the Raspi, offers more security.  Although it could be done by WiFi or RF we leave it to discussion.
Regarding the necessary sentences, there are two questions. One that multiplexes OpenPlotter and the other output OpenCPN  
From OpenCPN we need the autopilot sentences in case it is used as Plotter as RMB, WPL, APB, XTE, or repeater as RMC, GGA, GLL, ZDA, VTG...
As OpenCPN generates them in NMEA183, to avoid delays with conversions, we could read them directly in NMEA183.
Those of OpenPlotter, especially the ones of wind and speed on the bottom we could read them with NMEA183 or N2K. If OpenPlotter is connected to a GPS, we could also read these sentences and choose which of the two has better quality to use one or another. In discussion it is left if there would be to read other data. We are open to suggestions.
As soon as we prove what happens with signalK, if the processing speed is not compromised, also signal K

If you want the autopilot settings to be made from OpenPlotter and/or from OpenCPN, you will have to develop a plugin either for OpenPlotter or for OpenCPN or both.

I think I told you that we had this project in mind and that we were counting on you, especially regarding OpenPlotter.

(03-17-2019, 09:57 AM)Sailoog Wrote: That sounds promising.
If I have understood, it will be an standalone device. How do you plan to connect/communicate with openplotter and what data do you need to exchange?

I have checked again the characteristics of the IMU that we are going to use and I have to correct myself.
The IMU is the BNO055 of 9 axes, magnetometer, Gyro and accelerometer.
  Reply
#4
Our experience with pypilot:
We use MPU-9255 and MPU-9250 IMUs. 9axis and Kalman filter too, good enough.
We do not recommend Wifi or RF connection due to latency. Actually you should not have intermediaries as possible or format conversion from data sources.

We have limited resources and we have already pypilot implemented, so I do not know if we will have time to develop and maintain complex openplotter or opencpn plugins but hopefully you get volunteers here. If we are talking about just editing and sending a settings page no problem. Let's see what you need finally. Feel free to use openmarine as you need (dedicated subforum, moderators...)
  Reply
#5
Hi gypsylyon,

another autopilot thread in the segeln-forum:

https://www.segeln-forum.de/board1-rund-...ndex6.html

They have tested the MPU9250 and the BNO055 as well. According to their tests
the drift is the biggest problem.

It seems you can not rely on the BNOs integrated fusion algorythm. It is not 
able to compensate the drift over time completely.

They have found out that you have to compensate by yourself before calculating
the fusion. This means if you plan to use the BNO055 to avoid calculating the
fusion algorithms you maybe find out what they found out - it doesn´t work this way.

Chris
  Reply
#6
(03-18-2019, 08:57 AM)Sailoog Wrote: Our experience with pypilot:
We use MPU-9255 and MPU-9250 IMUs. 9axis and Kalman filter too, good enough.
We do not recommend Wifi or RF connection due to latency. Actually you should not have intermediaries as possible or format conversion from data sources.

We have limited resources and we have already pypilot implemented, so I do not know if we will have time to develop and maintain complex openplotter or opencpn plugins but hopefully you get volunteers here. If we are talking about just editing and sending a settings page no problem. Let's see what you need finally. Feel free to use openmarine as you need (dedicated subforum, moderators...)

Thank you very much Sailoog for your sincere answer.
As you can imagine, I've analyzed Sean's pilot project with a loupe, and he did not convince me for many reasons. Is a system complicated to install, that if used with openplotter depends on the MPU-9255 or MPU9250, on the one hand and on the other hand, of the peripherals that OpenPlotter has. The MPU-9255 is a cheap IMU and for some applications it is sufficient, but it has a high noise that causes inaccuracies and, on the other hand, its sensitivity to interference, especially magnetic. It has a power driver for drones, so it is very limited (we have foreseen that our pilot works with nominal currents of 50A and peaks of up to 290A). It also lacks SeaTalk and depends on Raspi for the NMEA183 and N2K sentences. That dependence for everything is a source of problems when working in real time. Probably for a small boat, with low speed, with calm sea and little wind is enough, but in worse conditions, with greater speed of the boat, I have my doubts about if it will know how to make it work well. Do not see this as a criticism, it's just my thoughts that motivated me to discard that autopilot.

Sean's work, I think it's a breakthrough in the world of open sailing, and I take this opportunity to congratulate Sean for his excellent work, which I believe has opened a door in the field of open autopilots. You will always be welcome in the development of the new pilot.
On the other hand, that opinion of complexity is not only mine, that opinion is also held by many more people. If you observe other forums, they almost always give up due to the complexity of the pilot.
For these reasons, I decided and convinced Tehani to build our pilot, which in the worst case will always be cheaper than the commercial. He has already developed as engineer other industrial projects controlling motors with maximum precision and with remote control (cable and radio). I can give you details of that.
One of the first concepts that we consider is that it must be simple and in only one PCB (except Gyro and GPS), in such a way that any person without knowledge can also install it. When I go to the ship I want to sail and enjoy and not worry about technical problems. On the other hand, complex installations need more time and, at times, involve big problems when passing the cables and a greater potential risk that something will fail.
We have the ability to build the pilot in such a way that you do not need OpenPlotter. After all, it has its own GPS and its own IMU of better quality and reliability than the MPU-9255, and also its own sensor management software. The advantage is that it would not overload the Raspi computer where OpenPlotter is running.
And it will be usable from Windows or with any commercial Plotter.
Plugins for OpenPlotter or OpenCPN can be left for later when we have more time. As I said in the first publication, which may not have been clear, we have offered to do the plugins with your support. The idea
was to control and configure the pilot through OpenPlotter, for example, the adjustment of the rudder stops, the response sensitivity, etc., but it can also be done with a simple smartphone, and from the remote control.
The autopilot is already very advanced. I remember how his OpenPlotter project emerged from the proposals of the people, which made OpenPlotter very powerful, modular, effective and very popular. So I thought that by sharing the project, they could come up new ideas that we can implement on autopilot.

Finally, thanks for the support of Openmarine.
  Reply
#7
Well I have to disagree about MPU-9255 or MPU9250 limitations because we have used it enough in the field to know that it is quite capable of doing what it is needed. pypilot can manage rough sea not only in small boats, ask users. Maybe is a litle bit complex now but it is the most versatile in the wild right now.
Anyway, it is always a good new that somebody starts another open-source project, fight! Smile
  Reply
#8
Forgot, please notify when you have any public code to evaluate.
  Reply
#9
(03-18-2019, 03:30 PM)BellaX Wrote: Hi gypsylyon,

another autopilot thread in the segeln-forum:

https://www.segeln-forum.de/board1-rund-...ndex6.html

They have tested the MPU9250 and the BNO055 as well. According to their tests
the drift is the biggest problem.

It seems you can not rely on the BNOs integrated fusion algorythm. It is not 
able to compensate the drift over time completely.

They have found out that you have to compensate by yourself before calculating
the fusion. This means if you plan to use the BNO055 to avoid calculating the
fusion algorithms you maybe find out what they found out - it doesn´t work this way.

Chris

Thank you Chris for your comment.
I know that thread. If I remember well at the end they realized that the drift was due to a lack of calibration.
Anyway we will check again if this drift occurs.

Jesus
  Reply
#10
(03-18-2019, 04:10 PM)gypsylyon Wrote: Thank you very much Sailoog for your sincere answer.
As you can imagine, I've analyzed Sean's pilot project with a loupe, and he did not convince me for many reasons. Is a system complicated to install, that if used with openplotter depends on the MPU-9255 or MPU9250, on the one hand and on the other hand, of the peripherals that OpenPlotter has. The MPU-9255 is a cheap IMU and for some applications it is sufficient, but it has a high noise that causes inaccuracies and, on the other hand, its sensitivity to interference, especially magnetic.

It has a power driver for drones, so it is very limited (we have foreseen that our pilot works with nominal currents of 50A and peaks of up to 290A).
I also make a hydraulic controller which is capable of 4x more power used on some large boats.   It has no problem with 20 amp continuous current.

The h bridge version can be easily changed for many voltage or currents by changing a few components.

I have no idea what kind of system needs peaks of 290A. How did you get that number?  The mosfets i use are rated for 190 amp peak but they cannot handle this for any useful period in the perspective of an autopilot.

Quote:It also lacks SeaTalk and depends on Raspi for the NMEA183 and N2K sentences. That dependence for
Seatalk and n2k are proprietary and do not really have a purpose in a free software autopilot.   They should not be supported on purpose.

What do you use them for?   Better design alternatives. I have 3d printed wind sensors as well as rudder feedback.
Quote: everything is a source of problems when working in real time. Probably for a small boat, with low speed, with calm sea and little wind is enough, but in worse conditions, with greater speed of the boat, I have my doubts about if it will know how to make it work well. Do not see this as a criticism, it's just my thoughts that motivated me to discard that autopilot.
What are your doubts based on?   Already it's working on large boats, speeds and in rough sea with plenty of wind.

larger boats are easier because everything is slower.  The smaller boats need the fastest reaction time.


I received some criticism of using multiple processes to make the program too complicated.

I did this on purpose to better separate the processing loads.   This means it has much better reaction time because it can process things in parallel.   The critical process has much less to do.  The control loop is scheduled at realtime priority so it's not getting slowed by other processes.   and is guarenteed to execute at the specified rate, either 10hz or 25hz.   Either case has easily enough cpu for rpi, and only 25hz is really needed maybe for very small boats in rough seas.  
Quote:Sean's work, I think it's a breakthrough in the world of open sailing, and I take this opportunity to congratulate Sean for his excellent work, which I believe has opened a door in the field of open autopilots. You will always be welcome in the development of the new pilot.
On the other hand, that opinion of complexity is not only mine, that opinion is also held by many more people. If you observe other forums, they almost always give up due to the complexity of the pilot.

For these reasons, I decided and convinced Tehani to build our pilot, which in the worst case will always be cheaper than the commercial. He has already developed as engineer other industrial projects controlling motors with maximum precision and with remote control (cable and radio). I can give you details of that.
One of the first concepts that we consider is that it must be simple and in only one PCB (except Gyro and GPS), in such a way that any person without knowledge can also install it. When I go to the ship I want to sail and enjoy and not worry about technical problems. On the other hand, complex installations need more time and, at times, involve big problems when passing the cables and a greater potential risk that something will fail.
We have the ability to build the pilot in such a way that you do not need OpenPlotter. After all, it has its own GPS and its own IMU of better quality and reliability than the MPU-9255, and also its own sensor management software. The advantage is that it would not overload the Raspi computer where OpenPlotter is running.

And it will be usable from Windows or with any commercial Plotter.
Plugins for OpenPlotter or OpenCPN can be left for later when we have more time. As I said in the first publication, which may not have been clear, we have offered to do the plugins with your support. The idea
was to control and configure the pilot through OpenPlotter, for example, the adjustment of the rudder stops, the response sensitivity, etc., but it can also be done with a simple smartphone, and from the remote control.
The autopilot is already very advanced. I remember how his OpenPlotter project emerged from the proposals of the people, which made OpenPlotter very powerful, modular, effective and very popular. So I thought that by sharing the project, they could come up new ideas that we can implement on autopilot.

Finally, thanks for the support of Openmarine.

It will be fun to have competition of free autopilots!
[/quote]
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)