Commit graph

50 commits

Author SHA1 Message Date
Michael Hope
e9322bdbbe Bound in the rate of turn controller. 2014-02-22 19:20:29 +01:00
Michael Hope
22bb0ba309 Bound in the IMU to the rover. 2014-02-22 19:20:00 +01:00
Michael Hope
8a5089b262 Added a utility to bump and restore control variables. 2014-02-22 19:18:33 +01:00
Michael Hope
6b79ef6b1e Pull the logs out of the rover while pushing. 2014-02-22 19:16:03 +01:00
Michael Hope
3cab0d0e71 Change stub ports so they try to open, but stub out on failure. Allows some ports to be used. 2014-02-21 22:47:52 +01:00
Michael Hope
c8e216bd08 Switch to the GPS tick using status so other things like the switch position can be checked. 2014-02-16 17:04:53 +01:00
Michael Hope
9d96112bd4 Switch the heading controller to derrive off the GPS tick.
Add in differential control.
2014-02-16 17:04:11 +01:00
Michael Hope
2fec29e7ac Add the differential term to the PID controller. 2014-02-16 17:01:24 +01:00
Michael Hope
631fff6621 Ping the controller with new GPS readings when they arrive. 2014-02-16 17:00:21 +01:00
Michael Hope
7f49aa400f Switch to a dynamic libgo.
Use rsync to push the binary faster.
2014-02-16 16:59:02 +01:00
Michael Hope
ed3858a54a Updated the config to the latest test results.
Configure glog at startup.
2014-02-16 16:58:14 +01:00
Michael Hope
44c3873135 Changed the end of stream test so the stub ports work again.
Minor tidy up to the tests so they build.
2014-02-09 20:35:51 +01:00
Michael Hope
dbb2fddbb4 Switched to the new config parser. 2014-02-09 20:34:58 +01:00
Michael Hope
daf18a13da Created a simple command line to struct parser. 2014-02-09 20:16:20 +01:00
Michael Hope
ed899fe947 Add logging to all of the inputs and outputs.
Changed to a struct style for all logging.  Gives easier post processing.
Changed the heading controller to dump state all the time for checking.
Added watchdogs to everything.
2014-02-02 15:13:39 +01:00
Michael Hope
2a18ac1655 Bump the serial rate to 57600 baud.
Update the default settings of all the things.
2014-02-02 15:13:08 +01:00
Michael Hope
da89290188 Fixed the decoding of pongs.
Switched the error handling to match link (fatal on error).
2014-02-02 15:12:03 +01:00
Michael Hope
231d1bae7a Pull the GPS stats out into a class for easy dumping.
Log a fatal error if the serial read fails.
2014-02-02 15:09:46 +01:00
Michael Hope
39f87bc63d Switch to using gccgo to see if that solves the runtime lockup. 2014-02-02 15:06:53 +01:00
Michael Hope
dc7be912cb Add GPS and Event hooks into all controllers.
Fix a bug in converting 0-360 headings into -Pi to Pi radians.
Bind in the rest of the waypoint controller.
2014-01-26 16:06:52 +01:00
Michael Hope
a9ac957323 Switched to go-flags.
Create a PID for each controller dimension.
Support the waypoint controller.
2014-01-26 16:05:12 +01:00
Michael Hope
c1af8d554f Added in go-flags. 2014-01-26 16:04:38 +01:00
Michael Hope
d21216390b Added the position/waypoint controller. 2014-01-23 21:44:25 +01:00
Michael Hope
575f428586 Added the position recorder state machine. 2014-01-21 22:09:21 +01:00
Michael Hope
5d2f714c8d Add hooks for the heading controller.
Pull umin out into a parameter.
Bind in the switch thread.
2014-01-21 22:07:28 +01:00
Michael Hope
430221bf86 Also pull in golang/glog. 2014-01-21 22:07:04 +01:00
Michael Hope
abcd0a2b88 Switch the PID controller to error based to push the heading wrap
around up into the heading controller.
Let the deadband apply in positive and negative directions.
Apply the drive limit after all calculations.
2014-01-21 22:04:44 +01:00
Michael Hope
1d731aacaa Change the heading controller to allow jogging by 90 degrees or 180
degrees based on the steering input.  Should allow doing squares as a
test.
2014-01-21 22:03:32 +01:00
Michael Hope
f80ee7387f Add a button press/hold handler. 2014-01-21 22:01:53 +01:00
Michael Hope
35ea1cd73e Switch to glog to allow verbosity levels.
Add button bindings and handling.
Add a slow heartbeat to show in the log.
2014-01-21 22:00:59 +01:00
Michael Hope
ae71751509 Pulled the other PID parameters out so they can be used in heading
mode.
Added a heading controller.
Changed the PID controller to work on error so the heading controller
can handle the wrap around.
Support deadbands in both directions.
2014-01-19 11:28:33 -08:00
Michael Hope
c4ccc24c4e Updated the default gains based on the good speed run. 2014-01-19 11:07:24 -08:00
Michael Hope
da2790c647 Add a system identification controller that sets the speed based on
the dial.
Pull the PID parameters out into command line flags.
Change the speed setpoint to 17.5 km/h as 10 is too slow to control.
2014-01-19 10:18:44 -08:00
Michael Hope
118373e53f Made link a bit more gothonic. 2014-01-14 21:17:34 +01:00
Michael Hope
afa24fb872 Added mathex and testex packages.
Added a test target.
Switched the PID and anything else possible float32.
Changed TiLimit to be the total contribution.
Added a deadband.
2014-01-14 20:56:42 +01:00
Michael Hope
dce5d5632b Re-worked the messages to match the interface board.
Turned the logging back on.
2014-01-14 19:59:29 +01:00
Michael Hope
48544126cf Related tidy up to the top level bindings.
Added a 'push' target to the Makefile for copying the binary.
2014-01-12 15:58:57 +01:00
Michael Hope
6e461a552e Renamed supervisor to driver. 2014-01-12 15:58:10 +01:00
Michael Hope
9c97294431 Implemented the speed controller. 2014-01-12 15:57:55 +01:00
Michael Hope
e1289d4655 Renamed supervisor to driver.
Split the GPS and Input status into their own structs.
Added demand output.
2014-01-12 15:57:34 +01:00
Michael Hope
c05bcd5556 Pull the statistics out into a separate stuct so they'll work via
expvar.
Make link own the port so the caller doesn't need the port when
calling Write().
Switch back to reading up to 128 bytes at a time.  The previous one
was due to the port waiting for all 128 bytes.
2014-01-12 15:55:22 +01:00
Michael Hope
1b68507f13 Hooked in a basic PID controller. 2014-01-11 19:12:06 +01:00
Michael Hope
ef7b65b0cd Started recording the incoming data.
Convert all GPS data to basic units.
2014-01-11 19:11:22 +01:00
Michael Hope
014a5bf85c gofmt and de-logging. 2014-01-11 19:09:28 +01:00
Michael Hope
2203989c64 Ran gofmt and de-logged link. 2014-01-11 19:08:52 +01:00
Michael Hope
fc6de03937 Added routines to convert latitude and longitude to UTM eastings and
northings.
2014-01-11 19:03:56 +01:00
Michael Hope
7c8a54c018 Added a PID controller. Still missing the D... 2014-01-11 19:02:06 +01:00
Michael Hope
3149d8fb9e Add routines that calculate the width in metres of a degree of
latitude or longitude.
2014-01-11 19:00:45 +01:00
Michael Hope
247eac6bad Started the supervisor.
Switched the Link and GPS to send messages via channels.
2014-01-05 21:21:44 +01:00
Michael Hope
eef6a6e072 Started the rover side code.
Pulled in the Link and GPS experiments.
Added build rules.
Added expvar to export statistics.
2014-01-05 19:29:21 +01:00