forked from pypilot/pypilot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
100 lines (68 loc) · 3.59 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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-pil
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
Clone the data repository and copy data
git clone https://github.com/pypilot/pypilot_data
cp -rv pypilot_data/* pypilot
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