Skip to content

free autopilot for sailboats using signalk written in python

Notifications You must be signed in to change notification settings

McNugget6750/pypilot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Installing:

The dependencies can be installed with "apt install" or sometimes 'pip install"

server dependencies (required): python-gps python-serial libpython-dev python-numpy python-scipy swig
                    (recommended): ujson pyudev
lcdclient dependencies: python-pil
webapp dependencies: python-flask python-gevent-websocket

client dependencies (viewers control applications)
apt: python-wxgtk3.0 python-opengl
pip: pyglet pywavefront


You may want to run pypilot as a service, see the scripts/debian directory

Clone the data repository and copy data:

git clone https://github.com/pypilot/pypilot
git clone --depth 1 https://github.com/pypilot/pypilot_data
cp -rv pypilot_data/* pypilot

Build and install pypilot:

cd pypilot
python setup.py build
sudo python setup.py install



most of the scripts can be run individually as standalone
or test programs, some function as clients, other as servers


servers (only one executes at a time)

These server scripts can be run as tests:
* execute this script directly

pypilot/autopilot.py -- autopilot

instead of running the complete autopilot these scripts provide a server with specific functionallity.

pypilot/boatimu.py -- imu specific to boat motions
                      includes automatic 2d/3d calibration and alignment of magnetic sensors
                      * useful for testing the imu (gyros) or even just reading gyros
                      
pypilot/sensors.py -- signalk <-> nmea0183 translator
                       reads nmea0183 from serial ports or from tcp connections, and multiplexes
                       the output to both nmea0183.
                       listed on tcp port 20220 by default
                       * convert and multiplex nmea0183 data

pypilot/servo.py --   use to test or verify a working motor controller is detected,
                      can be used to control and calibrate the servo

signalk/server.py -- implements poll based server allowing external manipulation,
                     * demo server with clock
signalk/pipeserver.py -- implements tcp sockets in a separate unix process
                         relieving the main process from json parsing, and transmission.
                         * basic demo server


clients (run as many of these to connect to a server):

ui/autopilot_control.py -- simple interface to command autopilot
ui/autopilot_calibration.py -- interactive gui for all autopilot calibrations
ui/kivy -- work in progress kivy control app

signalk/client.py -- console client
signalk/client_wx.py -- graphical user version (wx widgets)
signalk/scope.py -- glut plot client -- useful for sensors and control
signalk/scope_wx.py -- plot client with wx widgets (for checked listbox)

lcd/client.py -- autopilot control interface using GPIO pins.

webapp/webapp.py -- python flask application that runs a webserver providing remote autopilot control through a browser

About

free autopilot for sailboats using signalk written in python

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 64.8%
  • C++ 20.8%
  • CSS 4.6%
  • C 3.8%
  • JavaScript 2.4%
  • Makefile 1.8%
  • Other 1.8%