Skip to content

free autopilot for sailboats written in python supporting signalk

Notifications You must be signed in to change notification settings

openplotter/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
web dependencies: python-flask python-gevent-websocket

client dependencies (viewers control applications)
apt: python-wxgtk3.0 python-opengl
  or python3-wxgtk4.0 python3-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    -- 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    -- test sensor inputs only
                       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   --   use to test or verify a working motor controller is detected,
                      can be used to control and calibrate the servo


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

pypilot_control -- simple interface to command autopilot
pypilot_calibration -- interactive gui for all autopilot calibrations
pypilot_kivy -- work in progress kivy control app
pypilot_client_wx -- graphical client (wx widgets)
pypilot_scope -- plot client with wx widgets (for checked listbox)

pypilot_client -- console client

pypilot_hat -- autopilot control interface using GPIO pins, with web configuration on port 33333
pypilot_web -- python flask application for browser autopilot control

About

free autopilot for sailboats written in python supporting signalk

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 61.1%
  • C++ 20.8%
  • CSS 8.9%
  • JavaScript 2.9%
  • C 2.7%
  • Makefile 1.6%
  • Other 2.0%