James Diebel - Research Webpage
Stanford University
353 Serra Mall
Gates Building Room 116
Stanford, CA 94305-9010
E-mail: diebel(at)stanford.edu
Phone: (650) 725-8790
Fax: (650) 725-1449
Research
Resumé
Personal

 

Trajectory Smoother Software Homepage

Please see the research page for details on other projects.

We have developed a piece of software for performing vehicle localization based on GPS, accelerometer, rate gyro, and wheel encoder measurements.  This software performs a joint optimization over a large sliding window, leading to substantially better results than are possible with a Kalman-filter-based approach.  A technical report on this project will be released here soon.  The code, which is open source is available now and a link is provided below to a tar file that contains all the source.  The project depends on several openly-available libraries that are not included.  These libraries are indicated in the distribution.  The README.txt file included with the software reads:

Note from the Author
--------------------

Code Version: 0.2

***********
* LICENSE *
***********

Copyright (c) 2006 Stanford University

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

***************
* END LICENSE *
***************

This is a collection of software tools for processing data collected by a land vehicle outfitted with the following sensors:

(1) GPS receiver
(2) Three-axis accelerometers
(3) Three-axis rate gyros
(4) Wheel encoders on both rear wheels
(5) Laser range scanners

The software uses a global optimization to localize the vehicle to a high degree of precision. This estimate is further refined by using the laser range finder data when the vehicle has passed the same location more than once. This part of the software is currently under development and is not fully functional. Further work will focus on fully developing this aspect of the technology.

The code depends on several libraries. This may be gleaned from the makefile that is included. The makefile will need to be modified to respect the locations of and versions of the libraries on whatever machine you are trying to compile this on. Because it depends on LAPACK and BLAS, and because those libraries have inconsitent naming conventions between a few of their versions, you may also need to modify the wrapper routines to that the correct function name is called, depending on whether you end up with the same naming convention used in the version of the libraries that I am using.

This software presently has no substantive documentation. A technical report on the mathematics is forthcoming, and software documentation may follow. The code is generally well-commented and should be fairly easy to read. High level understanding must come from reading the technical report, or by tracing the code paths from the main executables. It is extremely unlikely that I will answer any questions about this code at present. This may change if a new version is released.

James Diebel
Stanford University
16th July, 2006


Source distribution, version 0.2, tested on Linux Fedora Core 4 (TAR.GZ)
Release data: 7/16/2006