Skip to content

Commit

Permalink
added simple logo. fixed links. fixed toc
Browse files Browse the repository at this point in the history
  • Loading branch information
amock committed Nov 21, 2024
1 parent 7af4929 commit c0df0b3
Show file tree
Hide file tree
Showing 15 changed files with 48 additions and 36 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# rmagine
# Rmagine

These docs are built with [MkDocs](https://mkdocs.org) and published to [uos.github.io/rmagine_docs](https://uos.github.io/rmagine_docs)

Expand Down
10 changes: 5 additions & 5 deletions docs/extra/data.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ For development and testing we include some meshes inside our repository in the

## sphere.ply

![sphere.ply](../resources/img/rmagine_dat_sphere.png)
![sphere.ply](/resources/img/rmagine_dat_sphere.png)

```bash
user@pc:~/rmagine/build$ ./bin/rmagine_map_info ../dat/sphere.ply
Expand Down Expand Up @@ -41,7 +41,7 @@ Scene Graph:
## triangle.ply
![triangle.ply](../resources/img/rmagine_dat_triangle.png)
![triangle.ply](/resources/img/rmagine_dat_triangle.png)
```bash
user@pc:~/rmagine/build$ ./bin/rmagine_map_info ../dat/triangle.ply
Expand Down Expand Up @@ -77,7 +77,7 @@ Scene Graph:
## box_rot_trans_scaled.dae
![box_rot_trans_scaled.dae](../resources/img/rmagine_dat_box_rot_trans_scaled.png)
![box_rot_trans_scaled.dae](/resources/img/rmagine_dat_box_rot_trans_scaled.png)
```bash
user@pc:~/rmagine/build$ ./bin/rmagine_map_info ../dat/box_rot_trans_scaled.dae
Expand Down Expand Up @@ -146,7 +146,7 @@ Scene Graph:
## two_cubes.dae
![two_cubes.dae](../resources/img/rmagine_dat_two_cubes.png)
![two_cubes.dae](/resources/img/rmagine_dat_two_cubes.png)
```bash
user@pc:~/rmagine/build$ ./bin/rmagine_map_info ../dat/two_cubes.dae
Expand Down Expand Up @@ -239,7 +239,7 @@ Scene Graph:
## many_objects.dae
![many_objects.dae](../resources/img/rmagine_dat_many_objects.png)
![many_objects.dae](/resources/img/rmagine_dat_many_objects.png)
```bash
user@pc:~/rmagine/build$ ./bin/rmagine_map_info ../dat/many_objects.dae
Expand Down
4 changes: 2 additions & 2 deletions docs/extra/tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ Usage: ./bin/rmagine_synthetic mesh_type mesh_file

| | |
|:----:|:----:|
| ![plane](../resources/img/rmagine_synthetic_plane.png) | ![cube](../resources/img/rmagine_synthetic_cube.png) |
| ![plane](/resources/img/rmagine_synthetic_plane.png) | ![cube](/resources/img/rmagine_synthetic_cube.png) |
| `rmagine_synthetic plane plane.ply` | `rmagine_synthetic cube cube.ply` |
| ![sphere](../resources/img/rmagine_synthetic_sphere.png) | ![cylinder](../resources/img/rmagine_synthetic_cylinder.png) |
| ![sphere](/resources/img/rmagine_synthetic_sphere.png) | ![cylinder](/resources/img/rmagine_synthetic_cylinder.png) |
| `rmagine_synthetic sphere sphere.ply` | `rmagine_synthetic cylinder cylinder.ply` |
5 changes: 2 additions & 3 deletions docs/getting_started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ user@pc:~$ sudo apt install libassimp-dev

## Backbones

![rmagine_backends](../resources/img/rmagine_backends.png)
![rmagine_backends](/resources/img/rmagine_backends.png)

Rmagine provides an interface to integrate ray tracing libraries, we call backbones. All of these backbones are optional. So far we integrated Intel Embree and NVIDIA OptiX.

Expand All @@ -30,8 +30,7 @@ user@pc:~/embree/build$ make -j`nproc`
user@pc:~/embree/build$ sudo make install
```


<!-- For older Embree versions we refer to [this](Supplementary-Embree). -->
For older Embree versions we refer to [this](/extra/embree3).

### OptiX Backbone (optional)

Expand Down
6 changes: 3 additions & 3 deletions docs/getting_started/maps.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Maps

Triangle Meshes can be stored in various file formats. Rmagine utilizes the [Open Asset Import Library (assimp)](https://github.com/assimp/assimp) in order to support a wide range of well known file formats. After loading the raw scene graph buffers with Assimp it is converted into Rmagines internal scene graph structure. Dependend on the computation backend `Embree` or `OptiX` the scene graph is prepared for fast ray traversals by building the required acceleration structures.
Triangle Meshes can be stored in various file formats. Rmagine utilizes the [Open Asset Import Library (assimp)](https://github.com/assimp/assimp) in order to support a wide range of well known file formats. After loading the raw scene graph buffers with Assimp it is converted into Rmagines internal scene graph structure. Dependent on the computation backend `Embree` or `OptiX` the scene graph is prepared for fast ray traversals by building the required acceleration structures.

## Embree Map

Expand Down Expand Up @@ -34,5 +34,5 @@ int main(int argc, char** argv)

## Properties

After loading, the map consists of a complete scene graph. It then usually passed to a simulator (see next gettingstarted-sections).
The advanced [Map](library/Map)-section describes how to modify or create the internal maps from scratch.
After loading, the map consists of a complete scene graph. It then usually passed to a simulator (see next "Getting Started"-sections).
The advanced [Map](library/map)-section describes how to modify or create the internal maps from scratch.
10 changes: 5 additions & 5 deletions docs/getting_started/noise.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Currently noise models are implemented as postprocessing steps that modify the simulated ranges. Any of the following noise models can be chained to generate complex combined noise models.
The Noise models are implented equally both on GPU and CPU.
Thus the developer can manage to apply noise to the data without downloading or uploading the data from GPU to CPU or vice versa.
The Noise models are implemented equally both for GPU and CPU.
Thus the developer can apply noise to the data without downloading or uploading the data from GPU to CPU or vice versa.


1. Gaussian Noise
Expand All @@ -13,7 +13,7 @@ Apply gaussian noise $N(\mu, \sigma)$ to simulated ranges.
| `stddev` | standard deviation $\sigma$ of normal distributed noise |


![rmagine_noise_gaussian](../resources/img/rmagine_noise_gaussian.png)
![rmagine_noise_gaussian](/resources/img/rmagine_noise_gaussian.png)


Example CPU:
Expand Down Expand Up @@ -74,7 +74,7 @@ Apply gaussian noise $N(\mu, \sigma_r)$ to simulated ranges. Here, the standard
| `stddev` | standard deviation $\sigma$ of normal distributed noise |
| `range_exp` | range exponent $c$ to compute range based stddev: $ \sigma_r = \sigma \cdot r^{c} $ |

![rmagine_noise_rel_gaussian](../resources/img/rmagine_noise_rel_gaussian.png)
![rmagine_noise_rel_gaussian](/resources/img/rmagine_noise_rel_gaussian.png)

Example CPU:

Expand Down Expand Up @@ -137,7 +137,7 @@ Parameters:
| `return_prob` | Probability of a ray hitting dust returns to sender depending on particle distance |


![rmagine_noise_dust](../resources/img/rmagine_noise_dust.png)
![rmagine_noise_dust](/resources/img/rmagine_noise_dust.png)


Example CPU:
Expand Down
2 changes: 1 addition & 1 deletion docs/getting_started/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ In addition to the wiki, the following papers wrap up the library conceptually.

```latex
@inproceedings{mock2023rmagine,
title={Rmagine: 3D Range Sensor Simulation in Polygonal Maps via Ray Tracing for Embedded Hardware on Mobile Robots},
title={{Rmagine: 3D Range Sensor Simulation in Polygonal Maps via Ray Tracing for Embedded Hardware on Mobile Robots}},
author={Mock, Alexander and Wiemann, Thomas and Hertzberg, Joachim},
booktitle={IEEE International Conference on Robotics and Automation (ICRA)},
year={2023}
Expand Down
10 changes: 5 additions & 5 deletions docs/getting_started/problem_modelling.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

The general computing flow is as follows.

![rmagine_example](../resources/img/rmagine.drawio.png)
![rmagine_example](/resources/img/rmagine.drawio.png)

Tsb is the transform from sensor to base frame. Or spoken: The sensor pose relative to the robot base. The map can be either a pointer to an `EmbreeMap` or `OptixMap`. The Prefix of the `Simulator` is either `Embree` for CPU computation or `Optix` for GPU computation. The suffix of the Simulator is dependend on which sensor model you want to simulate. A few examples:
Tsb is the transform from sensor to base frame. Or spoken: The sensor pose relative to the robot base. The map can be either a pointer to an `EmbreeMap` or `OptixMap`. The Prefix of the `Simulator` is either `Embree` for CPU computation or `Optix` for GPU computation. The suffix of the Simulator is dependent on which sensor model you want to simulate. A few examples:

- `SphereSimulatorEmbree` - Simulate a velodyne on CPU
- `PinholeSimulatorOptix`- Simulate a depth camera on GPU
Expand All @@ -14,7 +14,7 @@ Tsb is the transform from sensor to base frame. Or spoken: The sensor pose relat

Now we want to construct the following pipeline.

![rmagine_example_1](../resources/img/rmagine_example_1.drawio.png)
![rmagine_example_1](/resources/img/rmagine_example_1.drawio.png)

```cpp

Expand Down Expand Up @@ -75,7 +75,7 @@ int main(int argc, char** argv)
Now we want to construct the following pipeline.
![rmagine_example_1](../resources/img/rmagine_example_2.drawio.png)
![rmagine_example_1](/resources/img/rmagine_example_2.drawio.png)
The green cells are memory objects on GPU as you see in the following code snippet.
Expand Down Expand Up @@ -146,7 +146,7 @@ int main(int argc, char** argv)

Now we want to construct the following pipeline.

![rmagine_example_1](../resources/img/rmagine_example_3.drawio.png)
![rmagine_example_1](/resources/img/rmagine_example_3.drawio.png)


```cpp
Expand Down
4 changes: 2 additions & 2 deletions docs/getting_started/sensors.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
Rmagine supports several configurations of commonly used range sensors as Spherical, Pinhole or even fully customizable O1Dn and OnDn models.
The following image shows how the results could look like using these different models.

![sensor_models_3d](../resources/img/sensor_models_3d.png)
![sensor_models_ortho](../resources/img/sensor_models_ortho.png)
![sensor_models_3d](/resources/img/sensor_models_3d.png)
![sensor_models_ortho](/resources/img/sensor_models_ortho.png)

The next instructions show how to initialize each model individually.

Expand Down
2 changes: 1 addition & 1 deletion docs/getting_started/simulation.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Simulation

![simulation_attributes](../resources/img/simulation_attributes.png)
![simulation_attributes](/resources/img/simulation_attributes.png)

## Requirements

Expand Down
19 changes: 16 additions & 3 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@

![rmagine_teaser_image](resources/img/sensor_models_3d.png)
# Rmagine
# Rmagine

This library called Rmagine allows a robot to simulate sensor data for arbitrary range sensors directly on board via raytracing. Since robots typically only have limited computational resources, the Rmagine aims at being flexible and lightweight, while scaling well even to large environment maps. It runs on several platforms like Laptops or embedded computing boards like Nvidia Jetson by putting an unified API over the specific proprietary libraries provided by the hardware manufacturers. This work is designed to support the future development of robotic applications depending on simulation of range data that could previously not be computed in reasonable time on mobile systems.
Rmagine allows a robot to simulate sensor data for arbitrary range sensors directly on board via raytracing. Since robots typically only have limited computational resources, Rmagine aims at being flexible and lightweight, while scaling well even to large environment maps. It runs on several platforms like Laptops or embedded computing boards like Nvidia Jetson by putting an unified API over specific proprietary libraries provided by the hardware manufacturers. This work is designed to support the future development of robotic applications depending on simulation of range data that could previously not be computed in reasonable time on mobile systems.

## Table of Contents

**Getting Started**

- [Overview](getting_started/overview)
- [Installation](getting_started/installation)
- [Integration](getting_started/integration)
Expand All @@ -15,6 +16,18 @@ This library called Rmagine allows a robot to simulate sensor data for arbitrary
- [Simulation](getting_started/simulation)
- [Problem Modelling](getting_started/problem_modelling)
- [Noise](getting_started/noise)
- [Tools](getting_started/tools)

**Library**

- [Concepts](library/concepts)
- [Math](library/math)
- [Memory](library/memory)
- [Maps](library/maps)

**Extra**

- [Tools](extra/tools)
- [Data](extra/data)
- [News](extra/news)
- [Embree 3](extra/embree3)

6 changes: 3 additions & 3 deletions docs/library/concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ Rmagine has the following top-level structure of directories:
Contains all math related types and functions.
All math datatypes are completely CUDA compatible.
See `rmagine/math/types.h` for all types.
See [Math](Library-Math) section for more details.
See [Math](/library/math) section for more details.

## Types

Fundamental types required for simulations, e.g. [sensor models](GettingStarted-Sensors). Depends on math types.
Fundamental types required for simulations, e.g. [sensor models](/getting_started/sensors). Depends on math types.

## Util

Expand Down Expand Up @@ -73,7 +73,7 @@ int main(int argc, char* argv)
# Map
All classes and functions that relate to map construction and map modifications. See [Getting Started - Maps](GettingStarted-Maps) for a introduction to map loading. Go to [Library - Maps](Library-Maps) for a more detailed descriptions of how to build Rmagine maps.
All classes and functions that relate to map construction and map modifications. See [Getting Started - Maps](/getting_started/maps) for a introduction to map loading. Go to [Library - Maps](/library/maps) for a more detailed descriptions of how to build Rmagine maps.
# Simulation
Expand Down
Binary file added docs/resources/img/rmagine_icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/resources/img/rmagine_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ theme:
- navigation.instant
- navigation.tabs
- navigation.sections
# logo: img/mbf_icon.png
# favicon: img/mbf_icon.png
logo: resources/img/rmagine_logo.png
favicon: resources/img/rmagine_icon.png
palette:
primary: cyan

Expand Down

0 comments on commit c0df0b3

Please sign in to comment.