Follow this link to skip to the main content

OSU Multiview Rover Localizer

Algorithm Name: Multiview Rover Localizer Date: August 15, 2007
Tech Provider: Ron Li (PI)
Kaichang Di (Co-I)
Jue Wang
Shaojun He
Institution: OSU
Tech Integration: Kaichang Di
Jue Wang
Shaojun He
Integration Level: 1

Algorithm Summary

Purpose of algorithm:

To perform autonomous long-range rover localization based on bundle adjustment (BA) technology.

Inputs:

  1. Panoramic rover stereo images (linearized) taken at different positions along a rover traverse
  2. Rover positions and image orientation parameters provided from wheel odometry and IMU

Outputs:

  1. Bundle-adjusted rover positions and image orientation parameters
  2. Intermediate outputs include automatically selected intra- and inter- stereo tie points, and cross-site tie points, extracted and modeled rocks

Assumptions:

The length of a rover traverse segment should not exceed 30m.

Computational Requirements

Floating point processing.

Algorithm Description

Processing steps of the algorithm include interest point extraction and matching, intra- and inter- stereo tie point selection, automatic cross-site tie point selection by rock extraction, modeling and matching, and bundle adjustment.

Please refer to the following published article for a detailed technical description of the algorithm.

Li, R., K. Di, A.B. Howard, L.H. Matthies, J. Wang, and S. Agarwal, 2007. Rock Modeling and Matching for Autonomous Long-Range Mars Rover Localization, Journal of Field Robotics, 24(3): 187-203.

Implementation Details

The software was implemented in C++. It has been tested using Spirit rover data and Silver Lake test data. Along the Spirit rover traverse, 20 pairs of test sites (total traverse length 318m) were processed from Sols 574 to Sol 648 at the Husband Hill summit area. A stretch of 14 consecutive sites (13 pairs, total traverse length 205m) acquired in Silver Lake was also tested. For complete details, see the FDD (functional design document).

Download/Run

In the delivered CD-ROM, there are 2 programs:

  • MTP BA program run in Linux C++ environment. The source code is put under folder <MTP_Program_Linux>. It can be compiled with g++(GCC) version 3.4.6 under linux Redhat enterprise 4.
    • “make –f – Makefile” is the command to compile the codes
    • “MTP” is executable program generated in the same folder
  • MATLAB monitor program, run in Linux MATLAB 7.3 (R2006b). It shows the telemetry and bundle adjusted rover traverse segments for monitoring the progress. The source code is put under folder
    • TestData->MERA-> Plot for MERA data
    • TestData->Silver_Lake -> Plot for Silver Lake test data

To run this algorithm on a desktop machine:

  • Copy <TestData> to hard drive. After copying, you may need to change the properties of the MTP executable file in each subfolder to allow Write and Execute.
  • There are two modes to test the data. One is to test pair by pair manually. Go to each working folder, for example, for testing pair at sites 11304 and 11308, go to the folder named <11304_11308>, and run MTP under <EXE> subfolder. Repeat this operation for each working folder. The second is to use batch command to run it automatically.
    • (Optional step). Update the MTP executable file in the working folders using the newly compiled one. Go to the folder where you save <TestData> folder. Find two files named “MERAEXE_Update.bat” and “SLEXE_Update.bat”. Type “sh MERAEXE_Update.bat” and “sh SLEXE_Update.bat” to update the “MTP” execute file under each working folder automatically. If this step is skipped, the demonstration will be done using the provided executable file.
    • Then go to ../TestData/MERA/ and ../TestData/Silver_Lake/ folder respectively. Find “MERA_Batch.bat” or “SilverLake_Batch.bat”. Type “sh MERA_Batch.bat “, or “sh SilverLake_Batch.bat“. MTP BA program will automatically run for each data set.
  • In the beginning, run MATLAB program “ProcessMonitor” to visualize the BA process (optional). It shows the telemetry and bundle adjusted rover traverse segments pair by pair.
    • Set the directory to where you put the MATLAB program including ProcessMonitor.m, such as ../Plot
    • Type ProcessMonitor in the command window
    • Leave the MATLAB program running until the MTP BA program is finished for the last pair of sites.

Known Bugs/Issues

This delivery does not include JPL visual odometry (VO) software. The integration with JPL software is done by file exchanges, which passes necessary information needed for BA for each traverse segment. The result of BA/VO integration will be included in the February 2008 delivery.

Related Links

  • Li, R., K. Di, A.B. Howard, L.H. Matthies, J. Wang, and S. Agarwal, 2007. Rock Modeling and Matching for Autonomous Long-Range Mars Rover Localization, Journal of Field Robotics, 24(3): 187-203.
  • Li, R., et al., 2005. Initial Results of Rover Localization and Topographic Mapping for the 2003 Mars Exploration Rover Mission, Photogrammetric Engineering and Remote Sensing, Special issue on Mapping Mars, 71(10): 1129-1142.
  • Di, K. and R. Li, 2004. CAHVOR Camera Model and Its Photogrammetric Conversion for Planetary Applications, Journal of Geophysical Research – Planets, 109(E4), E04004, doi:10.1029/2003JE002199.
  • Li, R., K. Di, L. H. Matthies, R. Arvidson, W. M. Folkner, and B. A. Archinal, 2003. Rover Localization and Landing Site Mapping Technology for the 2003 Mars Exploration Rover Mission, Photogrammetric Engineering and Remote Sensing, 70(1): 77-90.
  • Li, R., F. Ma, F. Xu, L.H. Matthies, C.F. Olson and R.E. Arvidson 2002. Localization of Mars Rovers Using Descent and Surface-based Image Data. Journal of Geophysical Research-Planets, 107(E11): 4.1-4.8, doi: 10.1029/2000JE001443.

Change Log

  • August 15, 2007: initial version