Skip to content

nasa-jpl/ROSCO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROck Shadow COunter (ROSCO)

ROSCO is a codebase originally developed at NASA/JPL to detect rocks in aerial imagery by by looking for their shadows.

This repository brings several existing sources into a linear history and is the currently active branch of the shadow-based rock detection code from 2006 to present. The sources included:

  • code recovered from the original authors, Andres Huertas and Yang Cheng, used for the Mars Phoenix Lander mission
  • code handed off by Andres at his retirement (used for the MSL and InSight missions)
  • code used for the Mars 2020 mission
  • the RockCollect user interface.

Contributors and Stakeholders

RockDetector Command Line Tool and Library

The core rock detection algorithms are implemented in a C++ codebase in the RockDetector subdirectory. This code builds on Linux, Mac OS X, and Windows. It creates both a command-line executable and a library.

There are two dependencies:

  • OpenMP enables parallelization for a big performance improvement
  • SWIG enables a Python interface to the library.

Both are optional, and will be used only if you install them on your system before building RockDetector.

Test instructions are here.

Building RockDetector on Linux and Mac OS X

Install cmake.

  cd RockDetector
  mkdir build
  cd build
  cmake .. 
  make

The command line executable will be generated at RockDetector/build/bin/RockDetector and the shared library will be at RockDetector/build/lib/libRockDetectorShared.*.

Building RockDetector on Windows

Install the latest version of cmake from here. These instructions were tested with cmake-3.28.3 on windows x86_64.

Install Microsoft Visual Studio Community Edition. These instructions were tested with

Then run the following commands to generate the Visual Studio solution file:

  cd RockDetector
  mkdir build
  cd build
  cmake .. -G "Visual Studio 16 2019"

Then open the newly created RockDetector/build/Rockdetector.sln in Visual Studio. In the "Solution Configurations" pulldown in the toolbar make sure "Release" is chosen. In the adjacent "Solution Platforms" pulldown make sure "x64" is chosen. Then in the Solution Explorer pane right click on "Solution 'RockDetector'" and chose "Build Solution". The command line executable will be generated at RockDetector/build/bin/Release/RockDetector.exe and the shared library will be at RockDetector/build/Release/RockDetectorShared.dll.

RockCollect User Interface

RockCollect is a graphical user interface for the RockDetector library. It is also a testbed designed to measure users' speed and quality in tuning rock detection against proposed user interfaces and software assists. RockCollect was originally developed by Bob Crocco.

RockCollect is built using Windows Forms and only compiles and runs on Windows platforms.

Typical Settings

  • ground sampling distance = 0.3
  • sun incidence angle = 45
  • sub-solar azimuth angle = 133

Building RockCollect (Windows Only)

Install Microsoft Visual Studio Community Edition 16 2019.

First build RockDetector, following the instructions above, using Visual Studio 16 2019.

Then open RockCollect/Source/RockCollect.sln in Visual Studio 16 2019. In the "Solution Configurations" pulldown in the toolbar make sure "Release" is chosen. In the adjacent "Solution Platforms" pulldown make sure "x64" is chosen. In the Solution Explorer pane right click on "Solution 'RockCollect'" and chose "Build Solution".

Open a command prompt and then run the following commands to copy the RockDetector shared library and then launch the RockCollect UI:

cd RockCollect
cp ../RockDetector/build/Release/RockDetectorShared.dll bin/Release/
./bin/Release/RockCollect.exe

References

  • Otero, Richard; Huertas, A.; Almeida, E.; Golombek, M.; Trautman, M.; Rothrock, B., 2017, "Mars 2020 robust rock detection and analysis method", 14th International Planetary Probe Workshop, The Hague, Netherlands, June 12-16, 2017, JPL Open Repository; CL17-2518.pdf.
  • L. Matthies, A. Huertas, Y. Cheng and A. Johnson, "Stereo vision and shadow analysis for landing hazard detection," 2008 IEEE International Conference on Robotics and Automation, Pasadena, CA, USA, 2008, pp. 2735-2742, doi: 10.1109/ROBOT.2008.4543625.
  • A. Huertas, Yang Cheng and R. Madison, "Passive imaging based multi-cue hazard detection for spacecraft safe landing," 2006 IEEE Aerospace Conference, Big Sky, MT, USA, 2006, pp. 14 pp.-, doi: 10.1109/AERO.2006.1655794.
  • Golombek, M. P., et al. (2008), Size-frequency distributions of rocks on the northern plains of Mars with special reference to Phoenix landing surfaces, J. Geophys. Res., 113, E00A09, doi: 10.1029/2007JE003065.

License

This codebase is released under the Apache 2.0 license.

About

ROck Shadow COunter: shadow-based rock detection

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published