Code for autonomous rover for Sparkfun AVC. DataBus won 3rd in 2012 and the same code was used on Troubled Child, a 1986 Jeep Grand Wagoneer to win 1st in 2014.

Dependencies:   mbed Watchdog SDFileSystem DigoleSerialDisp

Auto generated API documentation and code listings for DataBus

Classes

Beep Generates a tone with a buzzer, based on a PwmOut The class use a timeout to switch off the sound - it is not blocking while making noise
CartPosition Geographical position and calculation based on cartesian coordinates
Config Text-based configuration; reads config file and stores in fields
DebounceIn DebounceIn adds mechanical switch debouncing to DigitialIn
GeoPosition Geographical position and calculation
GPS GPS "interface" class
HMC5843 Interface library for the Honeywell HMC5843 digital compass
IncrementalEncoder An interface for a simple, 1-track, incremental encoder
L3G4200D Interface library for the ST L3G4200D 3-axis gyro
LSM303DLM Tilt-compensated compass interface Library for the STMicro LSM303DLm 3-axis magnetometer, 3-axis acceleromter
Mapping Maps GeoPosition latitude/longitude to CartPosition cartesian x,y
Menu Simple menu interface model
PinDetect PinDetect adds mechanical switch debouncing to DigitialIn and interrupt callbacks
Schedule Simple library for scheduling events by polling time, that is, avoiding interrupts
SerialGraphicLCD Interface to the Sparkfun Serial Graphic LCD, LCD-09351; and Graphic LCD Serial Backpack, LCD-09352
Servo Servo control class, based on a PwmOut
SimpleFilter SimpleFilter implements a simple low pass integer "leaky integrator" described here:
Steering A class for managing steering angle calculations based on current and desired heading and specified intercept distance along the new path
SystemState System State is the main mechanism for communicating current realtime system state to the rest of the system for logging, data display, etc
TinyGPS TinyGPS - a small GPS library for Arduino providing basic NMEA parsing Copyright (C) 2008-9 Mikal Hart All rights reserved
Updater Updater is the main real time sensor update, estimation, and control routine that is called at 100Hz by a timer interrupt

Code

ardupilotmega.h [code] MAVLink comm protocol
Bargraph.cpp [code]
Bargraph.h [code]
Beep.cpp [code]
Beep.h [code]
boards.h [code]
Buttons.cpp [code]
Buttons.h [code]
Camera.cpp [code]
Camera.h [code]
CartPosition.cpp [code]
CartPosition.h [code]
checksum.h [code]
common.h [code] MAVLink comm protocol
Config.cpp [code]
Config.h [code]
DebounceIn.h [code]
debug.h [code]
devices.h [code]
Display.cpp [code]
Display.h [code]
GeoPosition.cpp [code]
GeoPosition.h [code]
globals.h [code]
GPS.h [code]
GPSStatus.cpp [code]
GPSStatus.h [code]
HMC5843.cpp [code]
HMC5843.h [code]
IncrementalEncoder.cpp [code]
IncrementalEncoder.h [code]
kalman.cpp [code]
kalman.h [code]
L3G4200D.cpp [code]
L3G4200D.h [code]
lcd.cpp [code]
lcd.h [code]
logging.cpp [code]
logging.h [code]
LSM303DLM.cpp [code]
LSM303DLM.h [code]
main.cpp [code]
Mapping.cpp [code]
Mapping.h [code]
Matrix.cpp [code]
Matrix.h [code]
ardupilotmega/mavlink.h [code] MAVLink comm protocol
common/mavlink.h [code] MAVLink comm protocol
minimal/mavlink.h [code] MAVLink comm protocol
pixhawk/mavlink.h [code] MAVLink comm protocol
slugs/mavlink.h [code] MAVLink comm protocol
ualberta/mavlink.h [code] MAVLink comm protocol
mavlink_bridge.h [code]
mavlink_msg_action.h [code]
mavlink_msg_action_ack.h [code]
mavlink_msg_air_data.h [code]
mavlink_msg_attitude.h [code]
mavlink_msg_attitude_control.h [code]
mavlink_msg_auth_key.h [code]
mavlink_msg_aux_status.h [code]
mavlink_msg_boot.h [code]
mavlink_msg_brief_feature.h [code]
mavlink_msg_change_operator_control.h [code]
mavlink_msg_change_operator_control_ack.h [code]
mavlink_msg_command.h [code]
mavlink_msg_command_ack.h [code]
mavlink_msg_control_status.h [code]
mavlink_msg_cpu_load.h [code]
mavlink_msg_ctrl_srfc_pt.h [code]
mavlink_msg_data_log.h [code]
mavlink_msg_data_transmission_handshake.h [code]
mavlink_msg_debug.h [code]
mavlink_msg_debug_vect.h [code]
mavlink_msg_diagnostic.h [code]
mavlink_msg_encapsulated_data.h [code]
mavlink_msg_full_state.h [code]
mavlink_msg_global_position.h [code]
mavlink_msg_global_position_int.h [code]
mavlink_msg_global_vision_position_estimate.h [code]
mavlink_msg_gps_date_time.h [code]
mavlink_msg_gps_local_origin_set.h [code]
mavlink_msg_gps_raw.h [code]
mavlink_msg_gps_raw_int.h [code]
mavlink_msg_gps_raw_ugv.h [code]
mavlink_msg_gps_set_global_origin.h [code]
mavlink_msg_gps_status.h [code]
common/mavlink_msg_heartbeat.h [code]
minimal/mavlink_msg_heartbeat.h [code]
mavlink_msg_hil_controls.h [code]
mavlink_msg_hil_state.h [code]
mavlink_msg_image_available.h [code]
mavlink_msg_image_trigger_control.h [code]
mavlink_msg_image_triggered.h [code]
mavlink_msg_local_position.h [code]
mavlink_msg_local_position_setpoint.h [code]
mavlink_msg_local_position_setpoint_set.h [code]
mavlink_msg_manual_control.h [code]
mavlink_msg_marker.h [code]
mavlink_msg_mid_lvl_cmds.h [code]
mavlink_msg_named_value_float.h [code]
mavlink_msg_named_value_int.h [code]
mavlink_msg_nav_controller_output.h [code]
mavlink_msg_nav_filter_bias.h [code]
mavlink_msg_object_detection_event.h [code]
mavlink_msg_optical_flow.h [code]
mavlink_msg_param_request_list.h [code]
mavlink_msg_param_request_read.h [code]
mavlink_msg_param_set.h [code]
mavlink_msg_param_value.h [code]
mavlink_msg_pattern_detected.h [code]
mavlink_msg_ping.h [code]
mavlink_msg_point_of_interest.h [code]
mavlink_msg_point_of_interest_connection.h [code]
mavlink_msg_position_control_offset_set.h [code]
mavlink_msg_position_control_setpoint.h [code]
mavlink_msg_position_control_setpoint_set.h [code]
mavlink_msg_position_target.h [code]
mavlink_msg_radio_calibration.h [code]
mavlink_msg_raw_aux.h [code]
mavlink_msg_raw_imu.h [code]
mavlink_msg_raw_pressure.h [code]
mavlink_msg_rc_channels_override.h [code]
mavlink_msg_rc_channels_raw.h [code]
mavlink_msg_rc_channels_scaled.h [code]
mavlink_msg_request_data_stream.h [code]
mavlink_msg_request_rc_channels.h [code]
mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h [code]
mavlink_msg_roll_pitch_yaw_thrust_setpoint.h [code]
mavlink_msg_safety_allowed_area.h [code]
mavlink_msg_safety_set_allowed_area.h [code]
mavlink_msg_scaled_imu.h [code]
mavlink_msg_scaled_pressure.h [code]
mavlink_msg_sensor_bias.h [code]
mavlink_msg_sensor_offsets.h [code]
mavlink_msg_servo_output_raw.h [code]
mavlink_msg_set_altitude.h [code]
mavlink_msg_set_cam_shutter.h [code]
mavlink_msg_set_mag_offsets.h [code]
mavlink_msg_set_mode.h [code]
mavlink_msg_set_nav_mode.h [code]
mavlink_msg_set_roll_pitch_yaw.h [code]
mavlink_msg_set_roll_pitch_yaw_speed.h [code]
mavlink_msg_set_roll_pitch_yaw_speed_thrust.h [code]
mavlink_msg_set_roll_pitch_yaw_thrust.h [code]
mavlink_msg_slugs_action.h [code]
mavlink_msg_slugs_navigation.h [code]
mavlink_msg_state_correction.h [code]
mavlink_msg_statustext.h [code]
mavlink_msg_sys_status.h [code]
mavlink_msg_system_time.h [code]
mavlink_msg_system_time_utc.h [code]
mavlink_msg_ualberta_sys_status.h [code]
mavlink_msg_vfr_hud.h [code]
mavlink_msg_vicon_position_estimate.h [code]
mavlink_msg_vision_position_estimate.h [code]
mavlink_msg_vision_speed_estimate.h [code]
mavlink_msg_visual_odometry.h [code]
mavlink_msg_watchdog_command.h [code]
mavlink_msg_watchdog_heartbeat.h [code]
mavlink_msg_watchdog_process_info.h [code]
mavlink_msg_watchdog_process_status.h [code]
mavlink_msg_waypoint.h [code]
mavlink_msg_waypoint_ack.h [code]
mavlink_msg_waypoint_clear_all.h [code]
mavlink_msg_waypoint_count.h [code]
mavlink_msg_waypoint_current.h [code]
mavlink_msg_waypoint_reached.h [code]
mavlink_msg_waypoint_request.h [code]
mavlink_msg_waypoint_request_list.h [code]
mavlink_msg_waypoint_set_current.h [code]
mavlink_types.h [code]
Menu.cpp [code]
Menu.h [code]
minimal.h [code] MAVLink comm protocol
PinDetect.cpp [code]
PinDetect.h [code]
pixhawk.h [code] MAVLink comm protocol
print.c [code]
print.h [code]
protocol.h [code]
Schedule.cpp [code]
Schedule.h [code]
Sensors.cpp [code]
Sensors.h [code]
SerialGraphicLCD.cpp [code]
SerialGraphicLCD.h [code]
Servo.cpp [code]
Servo.h [code]
shell.cpp [code]
shell.h [code]
SimpleFilter.cpp [code]
SimpleFilter.h [code]
Sirf3.cpp [code]
Sirf3.h [code]
slugs.h [code] MAVLink comm protocol
Steering.cpp [code]
Steering.h [code]
SystemState.cpp [code]
SystemState.h [code]
Telemetry.cpp [code]
Telemetry.h [code]
TinyGPS.cpp [code]
TinyGPS.h [code]
types.h [code]
ualberta.h [code] MAVLink comm protocol
Ublox6.cpp [code]
Ublox6.h [code]
Updater.cpp [code]
Updater.h [code]
util.cpp [code]
util.h [code]
Venus638flpx.cpp [code]
Venus638flpx.h [code]