Welcome to the GRAIL RTLS project wiki. The goal of the GRAIL project is to create a real-time middleware for sensor networks to simplify the task of sensor specialists, data analysts, and application developers. Currently the software is being developed as a research project at Rutgers University and Stevens Insitute of Technology. Currently, most of the active development takes place at the WINLAB research facility in North Brunswick, NJ. WINLAB is also the site of a live, stable deployment of the GRAIL system. The current version of the GRAIL system is named Octopus. The name was chosen to contrast with the brainless jellyfish, which is how we view non-centralized sensing platforms. Octopus was designed to make it simple to develop high-level applications by providing a centralized world model for data storage and dissemination.
With this version, the system supports arbitrary sensor data and offers general-purpose support for user interfaces through a TCP data distribution layer. While previous versions of GRAIL are no longer being actively developed, we will maintain the code repository (CVS) and related documentation for archival purposes (see below). You can also read a brief history of the GRAIL project to understand how it came into being and our future goals.
The GRAIL sourceforge project page is located here.
The Octopus system simplifies three tasks:
- Collecting and managing sensor data
- Analyzing sensor data and world state information
- Creating end-user applications that use raw and processed sensor data
Octopus separates these three tasks through two abstraction layers, known as the aggregator and the world model. The system is explained in detail on the page: What is Octopus?. In summary, sensor designers should not need to worry about high-level issues such as privacy and context so an aggregation layer limits direct sensor interaction with the rest of the system. A world model holds processed information and will support various high-level concepts such as security, privacy, and provenance. A data analyst can process data from the aggregation layer, the world model, or from an external source and modify the current state of the world model. If another data analyst or application developer wants that information they can access it through the world model. This means that a develop who wants to analyze data does not need to also worry about data interactions or high-level concerns. It easy to reuse analysis software written by other developers since each piece of software stands alone.
If you have a new radio device and want to take advantage of our existing analysis software and GUI applications then read Adding New Sensors.
If you already have raw data but need to analyze it then read Adding a Solver.
If you have useful data in the world model but need to write end-user applications then read Writing an Application.
Links for Developers
The following links are primarily for application developers who want to write software for the GRAIL RTLS system.
- Overview and Design Ideas
- Network Protocols - Documentation for the GRAIL v3 network protocols.
- Developer Setup Guide - Installation and set-up guide for developers.
- Developer Tutorials - Step-by-step tutorials for new developers.
- Technical Papers and Research Publications
- MongoDB World Model - Information about the MongoDB implementation of the World Model.
The following documents are a collection of documents that document/reference previous versions of GRAIL and no longer under active development.
- About GRAIL v2
- GRAIL v2 Developer Manual
- GRAIL v2 Install Guide
- Grail v2 Landmark Setup Guide
- Grail v2 Config File Format
Current implementations of the GRAIL system make extensive use of PIPSqueak active RFID tags developed at the WINLAB research facility in collaboration with InPoint Systems. In addition, some of the localization techniques are patented by Kordinate LLC.