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
pypilot no GPS?
#1
Just out of curiosity, how would pypilot do in the absence of GPS?
I know it's not designed for that right now, but it seems that it would be nice to have a ded reckoning function in the event GPS/GLONAS were not available (or maybe I've been watching too much doomsday TV...)
It seems with the sensitivity of IMUs currently, it should be possible to record even small changes in acceleration or direction, to create a very accurate estimate of distance and position traveled from last known fix. Just like we did before GPS.
Not sure if this would be a pypilot function or something for OpenCPN or SignalK plug-in, but it seems that pypilot is the closest tool today to ded reckoning.
Reply
#2
pypilot does not need GPS to steer a course.


Do you mean dead reckoning for plotting position? In that case you would need water speed, but regardless it would be more of a function for an opencpn plugin than pypilot.
Reply
#3
(2024-07-16, 03:03 PM)seandepagnier Wrote: pypilot does not need GPS to steer a course.


Do you mean dead reckoning for plotting position?  In that case you would need water speed, but regardless it would be more of a function for an opencpn plugin than pypilot.

Yes, I meant position plotting. And what I'm asking is if an IMU is sensitive enough to calculate ded reckoning position (or bearing and speed) without relying on speed through water, since STW (and heading) will not accurately indicate position because of current, leeway, etc.
Reply
#4
Not really, because the IMU has accelerometers. So first you would have to integrate those to get speed, and integrate again to get position. Integrating twice like this will not produce a reliable speed estimation let alone position. There is support in pypilot to combine the IMU and gps to produce a higher speed position and speed output than gps alone, but without the gps, integration will drift and diverge in a short period of time.
Reply
#5
(2024-07-17, 03:47 PM)seandepagnier Wrote: Not really, because the IMU has accelerometers.  So first you would have to integrate those to get speed, and integrate again to get position.  Integrating twice like this will not produce a reliable speed estimation let alone position.    There is support in pypilot to combine the IMU and gps to produce a higher speed position and speed output than gps alone, but without the gps, integration will drift and diverge in a short period of time.

Yes, that's what I was wondering...if you relied on the accelerometers and gyros, would you end up 1 meter off course after 10nm, or 10nm off course? Sounds like the latter.
Reply
#6
With a water speed sensor the dead reckoning would be much more accurate despite currents of 1-2 knots.
Reply
#7
(2024-07-17, 03:47 PM)seandepagnier Wrote: Not really, because the IMU has accelerometers.  So first you would have to integrate those to get speed, and integrate again to get position.  Integrating twice like this will not produce a reliable speed estimation let alone position.    There is support in pypilot to combine the IMU and gps to produce a higher speed position and speed output than gps alone, but without the gps, integration will drift and diverge in a short period of time.

My requirements for a tiller pilot are little more than having the Tiller Pilot hold a course while I use Navionics to make sure I’m heading where I want and manually correcting the course. I bought an old Nautech Autohelm 2000 with ‘analogue’ control box which has a compass in it. Last time the compass controller broke I got as far as putting Openplotter on a Raspberry pi, but then I found someone to fix the existing kit. It’s broken again now so I’ve returned to the question of a replacement controller, Tinypilot is the obvious replacement. But I recently came across someone using Ardupilot from the world of RC models using the IMU alone on the flight controller board to maintain the heading. Although a GPS module was attached it was not configured to use a compass or follow waypoints. On the hardware side he uses the flight controller board and a wifi tx/rx board to talk to a RC hand controller. A 1060 ESC is used to drive the motor. The ESC is driving a motor taken from an old Nautech Autohelm 3000. For the low cost it could be worth some experiments. Im sure that for those with a nautical background this is not the obvious approach. The kit is shown working here.
https://youtu.be/DOJ7TluxzD0?si=pgHgubDAY6Q-Okzz
Reply
#8
Be aware ardupilot is not optimized for nautical use. It has a lot of features that are not used or useful on boats which complicates the software somewhat, and it does not have a lot of features pypilot has for interfacing with other systems on the boat. The software is really intended for unmanned operation of drones.

With this said, it is an interesting project and could certainly work. It would be really interesting to do direct comparisons to pypilot in different sea states as the open-source nature of ardupilot. For example they use a very complex kalman filter that integrates lots of sensors in a single matrix, and pypilot uses a simpler one that integrates the intertial sensors, and a separate filter to merge that output with the gps. If it could be demonstrated to use some of these algorithms in pypilot that could be a benefit.

Conversely ardupilot uses control algorithms optimized for power. This means powered propellers not sail, and specifically vector thrust. It may not have some of the tweaks and extensions added to pypilot to improve steering at sea, but it may be little effort to implement them.
Reply
#9
I was amazed to see that Ardupilot will control model sailing vessels not just powered ones. It can control the main sheet and rudder and sail a course. Here is a link to the relevant page on the Ardupilot website
https://ardupilot.org/rover/docs/sailboat-home.html
Here is an interesting video of “sea trials” of a boat with a wing sail.
https://youtu.be/tEhTNxBCPdQ?si=vP-rypNC-1yaq8Iu

However this is taking us well beyond using a tiller pilot as an aid to sailing a boat. In practise I set a magnetic course for the tiller pilot and use Navionics to view the true course over ground then i will adjust the course steered until I arrive at the destination. In local waters the tide strength and direction can be significant compared to the speed of the boat. I think it’s a very interesting question as to whether the IMU on the flight controller board is sufficient to hold a course without a compass at all. It might be that the deviation of the course is considerable over say an hour but if I’m using Navionics to make manual corrections every ten minutes does it matter? It’s quite a different use case to autonomous navigation over long distances.

I’m not sure what thought has been given in Ardupilot to rudder control in swell. My tiller pilot has a dial allowing you to change the responsiveness as the sea gets more rough. I would expect to need something similar. Is the rudder control theory well understood?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)