Unlike most sourceforge projects, this is not code that is designed for a general purpose personal computer. It is a prototype for an energy efficient autonomous robotic vehicle. This site contains both the vehicle hardware design and software. The code is designed to run on a stack of six Arduino micro-controllers, which are open source electronics (http://www.arduino.cc/). The base vehicle is a Catrike Dash recumbent tricycle (http://www.catrike.com/catrike_dash.html). The code is agnostic about the vehicle; only a single micro-controller (the motor, brake and steering control) knows anything about how it handles, so changing to another vehicle is straight-forward. When that one micro-controller is removed, the control software is compatible with the USARSIM simulator from sourceforge.
The vehicle does not have an Operating System.
The project consists of design documents and source code. The source text for the design is kept under version control and displayed on the web site.
ElcanoManual.html: Top level of the manual, linking to other files.
1. ElcanoIntroduction.html: Motivation for the project.
2. ElcanoDesign.html: Description of system components.
2.1. Architecture.pdf: Block diagram of micro-controllers, sensors and actuators.
2.1.a Architceture.odg: Open Office drawing format used to produce pdf.
2.2. ElcanoControl.html: RC control signals from user.
3. ElcanoHardware.html: Top level for vehicle chassis information.
3.1. ElcanoBuild.html: Description of Elcano vehicle #1.
3.1.1 ElcanoChassis.html: Photos and descriptions of how it is put together.
3.1.2. ElcanoMotor.html: Photos and descriptions of the motor control unit for the hub motor.
3.2. Stam.html: A scale model RC car used to test parts of the firmware.
5. ElcanoElectronics.html: Wiring between the components.
5.1. Wiring.xls: Wiring for the box containing C1 and C3.
5.2. Systems.pdf: Block diagram of electronic systems connections.
6.0. Simulator: Obsolete project code is for simulation.
Code is provided for each of the micro-controllers in the vehicle. These are .pde files for the Arduino environment, but they are really just text files of C code. Thus they should run on almost any other machine, as long as the Arduino library routines are provided. The micro-controllers are
C1: Traction, brake and steering motor control, or more properly, throttle control. This unit should not be confused with the purchased e-bike motor control unit used to send battery power to the hub motor.
C3: Pilot. Presents C1 with a segment of the path.
C4: Path Planner. Reads a map and produces a route to the destination.
C5: Obstacle Detection. Reports if there is anything in the way.
C6: Navigator. Reads all the sensors and figures out vehicle location.
C7: Visual Data Management. Filters smart camera output for lane following, visual odometry and obstacle detection.