Coder Social home page Coder Social logo

jamesroscoe / pypilot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pypilot/pypilot

0.0 2.0 0.0 774 KB

free autopilot for sailboats using signalk written in python

C++ 15.38% Makefile 1.19% Python 67.63% C 5.96% Shell 0.91% CSS 5.81% JavaScript 2.37% HTML 0.76%

pypilot's Introduction

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
lcdclient dependencies: python-pillow
webapp dependencies: python-flask

client dependencies (viewers control applications)
python-opengl python-pip
sudo pip install pyglet
sudo pip install pywavefront

# correct a bug in pywavefront
typically in /usr/local/lib/python2.7/dist-packages/pywavefront
+++ material.py 2017-10-30 19:43:53.288141444 +0000
@@ -100,6 +100,7 @@
         glMaterialfv(face, GL_AMBIENT, self.gl_light(self.ambient))
         glMaterialfv(face, GL_SPECULAR, self.gl_light(self.specular))
         glMaterialfv(face, GL_EMISSION, self.gl_light(self.emissive))
+        self.shininess = min(128, self.shininess)
         glMaterialf(face, GL_SHININESS, self.shininess)

         if self.gl_floats is None:


sudo pip install ujson

wxwidgets client dependencies: python-opengl python-pip
# for the calibration program also:
    pip install pyglet
    pip install pywavefront

# my version of rtimulib is required!
git clone https://github.com/seandepagnier/RTIMULib2
cd RTIMULib2/Linux/python
python setup.py build
sudo python setup.py install



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


install:

sudo pip install PyOpenGL
sudo apt-get install python-numpy python-scipy


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)

pypilot/simple_autopilot.py -- classic PID based autopilot implementation
pypilot/basic_autopilot.py -- basic PID based autopilot with additional gains and filters

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

signalk/server.py -- implements poll based server allowing external manipulation,
                     * basic 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
pypilot/boatimu.py -- specialized 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/nmea.py -- signalk <-> nmea0183 translator
                   reads nmea0183 from serial ports or from tcp connections, and multiplexes
                   the output to both nmea0183.
                   * convert and multiplex nmea0183 data

pypilot/servo.py -- controls servo via RC pwm signal, and gpio feedback for fault
                    * use to test or verify a working servo is detected,
                      can be used to control or calibrate the servo



clients (run as many of these):

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

pypilot's People

Contributors

seandepagnier avatar sailoog avatar

Watchers

James Roscoe avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.