RiverRat  - An MIT iCampus project http://web.mit.edu/riverrat/

Main Page | Software Documentation | Hardware Documentation | People | Contact | Wiki

Main Page | Class Hierarchy | Class List | File List | Class Members

RiverRat Software Documentation

Introduction

For general information, see the RiverRat main page.

Here is a screenshot of the current state of the RiverRat GUI. This data was gathered on the Charles River with the Laipac TF30 GPS unit and the Maxstream radio.

rivertrack2.jpg

Here is some previous data from an early test run of the RiverRat module.

rivertrack.jpg

RiverRat operates on two major platforms--the JStamp embedded Java microcontroller and a host computer with a Java 1.4.2 Runtime.

riverrat_overview.jpg

The data pathways within the module are fairly simple. The JStamp listens directly relays DGPS Realtime Correction Message (RTCM) data to the GPS unit, which then processes it to increase position sensing accuracy. The JStamp also listens for NMEA 0183 messages coming from the GPS reciever and parses them. Data from other sensors (possibly including tilt, heading, wind) is gathered from digital I/O. Finally, some data reduction is performed to minimize radio network usage, and an information packet is sent out to the host computer. This happens at a frequency of approximately 1 Hz.

riverrat_module.jpg

The server is considerably more complex. Because the project aims to provide playback capability, an XML database is used to capture TCP streams and index them by time, sailor, boat, etc. Basically, there is a main server instance which gathers data from the RF modem, parses it, and outputs an XML stream with information updates about each boat. It also keeps track of state information about what module is attached to what boat, where marks are located, etc.

There are two (possibly three) types of clients for this stream. One type of client is a normal client, and it accepts the stream pushed by the server, parses it, and displays the boats in an elegant and exciting fashion. This type of client may or may not have administration privileges attached to it, for the purpose of modifying state data about the race configuration (this is where the "possibly three" comes from).

The other type of client is a logging client. It accepts the XML stream and stores it to a native XML database (probably Xindice) for later playback. Normal clients may choose to connect to this stream instead of the live stream, but then they must provide control information to the playback server.

riverrat_server_overview.jpg

Dependencies

The RiverRat software uses the Apache Xerces XML libraries. It is being developed mostly with JDK 1.4.2 on Mac OS X, but should be compatible with other platforms.

Contact

For software questions, email the RiverRat software developers. For more general questions about the project, email the RiverRat team  

Brought to you by the RiverRat team.