Description of the hosted SVN repository organization.
The SVN repository hosted here is intended to contain all of the documentation and code necessary to build and use one of our vehicles. Here, we describe the overall layout of the repository, and where difference pieces of code are organized.
The client library contains all of the interface and utility code necessary to create an application that consumes data from and issues commands to a vehicle. This library is also linked from the vehicle server, to ensure compatibility between clients and servers. Most importantly, the client library contains the vehicle interfaces, which allow interaction with a vehicle in a generic manner. Interfaces can be implemented as Android native code, proxy objects over XML-RPC, or other ways.
The server application is an Android application that implements and services the interfaces provided by the client library. It contains filtering code to handle pose estimation from the on-phone and vehicle sensors, connects to external add-on sensors, and provides a set of low-level navigation controllers that can be selected to perform different vehicle behaviors.
The vehicle interfaces with all low-level devices (serial, analog, and general purpose digital IO) through an Arduino-compatible microcontroller. The Arduino firmware flashed onto this device provides this functionality through a series of parallel co-routines that implement the necessary functionality. This project is fairly device specific, and may change drastically if the microcontroller is changed between vehicles. For older microcontrollers, it may be necessary to search previous tagged firmware versions
In the current implementation of the vehicles, communication is done via a serial Bluetooth link. This project contains Arduino code that updates the firmware on a connected Bluetooth serial module, configuring it with the necessary settings to connect transparently to applications on the Android phone.
Apps contains sample applications that use the client library to demonstrate operating a fleet of boats in various domains. These include, examples of pollution monitoring and flood response.
Contains schematics and layouts for various electrical systems in the vehicle. PCB designs are tagged here when they are sent out for fabrication.
Contains drawings and models for various mechanical systems in the vehicle. Mechanical components are tagged here when they are sent out for fabrication.
This directory contains compiled libraries of several of the sub-repositories. These binary snapshots are used to link dependent repositories together without requiring compilation dependencies. This allows sub-repositories to be checked out and compiled individually.
This directory is used to branch other repositories when someone wants to submit a patch or do a code review. It is not used for active development.
This directory is used to store the wiki pages on the Google Code site itself, including this page. Pages are stored in plain text with wiki markup. Generally, these files are automatically edited through the Google Code site itself, and are not directly modified.