Commit graph

159 commits

Author SHA1 Message Date
Michael Hope 3edb5ad123 Pulled in the missing headers. 2014-02-22 19:55:47 +01:00
Michael Hope 1259455092 Imported chunks of i2cdevlib b6836bb46e248574816356a6a0a589718b6949fa. 2014-02-22 19:54:03 +01:00
Michael Hope 7a63e672df Removed i2cdevlib from submodules. I need a fork instead. 2014-02-22 19:50:41 +01:00
Michael Hope 5c03c4f5cb Added a cstdlib stub for i2cdevlib. 2014-02-22 19:33:31 +01:00
Michael Hope 535f0a0c58 Added i2cdevlib as a git external. 2014-02-22 19:21:39 +01:00
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 0a335c01ae Check if the IMU is 'good' and periodically re-initialise if not. 2014-02-22 19:14:47 +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 e1e56169b8 Bound the IMU into the rest of the interface and made it send. 2014-02-21 22:46:56 +01:00
Michael Hope c95e4f4598 Added build rules for i2cdevlib. 2014-02-21 22:45:39 +01:00
Michael Hope db6b03c272 Added a combined MPU 6050 and I2C driver. 2014-02-21 22:44:41 +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 9190feff16 Added a README. 2014-02-09 20:47:54 +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 9ef917dcc8 Added some more golang notes. 2014-02-09 20:35:45 +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 657e04fdd4 Fixed an overflow where the intermediate is greater than UINT16_MAX. 2014-02-02 15:15:12 +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 bd796af05b Added more checks around the tick resolution.
Changed to match the new crystal.
Upped the baud rate to 57600.  12 MHz divides well to most rates...
2014-02-02 15:04:14 +01:00
Michael Hope e3fb665c8d Changed the servos to be biased around 1.5 ms to handle the new 12 MHz
clock.
2014-02-02 15:02:53 +01:00
Michael Hope 6aa37305fc Changed the clock to match the new crystal.
Changed remote flashing to use temporary files instead of needing a tree.
Removed fuse setting as it's done in the bootloader.
2014-02-02 15:00:32 +01:00
Michael Hope e969717881 Add a roverif specific bootloader configuration.
* Set the bootloader status LED
 * Set the crystal to 12 MHz
 * Up the baud rate to 57600 using double rate
2014-01-29 20:49:36 +01:00
Michael Hope aab625d7e6 Imported the Arduino 1.5.4 bootloader. 2014-01-29 20:44:27 +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