Astronomical Bodies Rendering Application for Mission design
Installation Clone the repository and the linked submodules by running the following git commands:
git clone https://github.com/andrepiz/abram
git submodule init
git submodule update
Then, simply run the script call() to generate your first rendering.
Usage A single configuration file in YAML format is enough to generate a rendering. Provide the filepath of the yml file to the abram.render constructor method in MATLAB:
rend = abram.render('YOUR_FILE.YML')
And a first image will be rendered. To generate new renderings, you can first modify the render properties with the desired parameters (for instance, new pose or new camera properties), then call:
rend = rend.rendering()
In this way most of the pre-processing activities will be skipped to lower computational time. Examples of a multi-rendering call are provided in the script call_multi().
Description ABRAM is a physical-based validated render engine to generate images of celestial quasi-spherical objects with radiometric consistency. The tool integrates radiometry equations on discretized surface sectors of a sphere according to the desired Bidirectional Reflectance Distribution Function (BRDF), resulting in a 3D point cloud of points that is then direct-gridded to the image frame. ABRAM can be used for camera design, radiometry-related analysis and generation of datasets for training or testing of vision-based navigation algorithms.
Several BRDFs are implemented and the user can mix them to find the more realistic model depending on the body considered.
The user can provide also texture maps to increase the fidelity of the model at close range. Examples of renderings using only albedo (left), albedo + displacement (middle) and albedo + displacement + normal (right) are shown in the following:
Normal maps of different planets and moons of the solar system have been generated as byproduct of ABRAM development and are available at the following link.
ABRAM has been validated against real space images acquired by the AMIE camera on-board of the SMART-1 mission. Examples of real images (above) versus their rendering (bottom) at the same exposure time are depicted in the following pictures:
Publications For more details on the implementation and capabilities, check the publications:
A. Pizzetti, P. Panicucci, F.Topputo. "A Radiometric Consistent Render Procedure for Planets and Moons". 4th Space Imaging Workshop.
Credits If you use the tool, please cite it in your work as:
A. Pizzetti. Astronomical Bodies Rendering Application for Mission design (ABRAM)
Version | Changelog |
---|---|
v1.4 | Improved frame rate; added Hapke reflection model; added ellipsoidal shapes |
v1.3 | Added occlusions; improved direct gridding efficiency; added smart-calling of methods |
v1.2 | New object-oriented architecture; new fast mode with constant BRDF and no loops; increased fps at close range by pre-computing fov intersection; capability to merge QE and T spectra defined at different wavelengths |
v1.1 | Added parallelization |
v1.0 | Ready for dissemination |