diff --git a/.gitignore b/.gitignore
index 9ff307aa99..4afe45317a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@ platforms/ios/build_framework.pyc
modules/java/\.idea/
.scannerwork
build
+*.blend1
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3d96273291..f187a62160 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -520,7 +520,7 @@ VP_OPTION(USE_PYLON Pylon "" "Include Pylon SDK support for Basle
VP_OPTION(USE_UEYE Ueye "" "Include uEye SDK support for IDS cameras" "" ON IF NOT WINRT AND NOT IOS)
VP_OPTION(USE_COMEDI Comedi "" "Include comedi (linux control and measurement device interface) support" "" ON IF NOT WINRT AND NOT IOS)
VP_OPTION(USE_FTIITSDK FTIITSDK "" "Include IIT force-torque SDK support" "" ON IF NOT WINRT AND NOT IOS)
-VP_OPTION(USE_BICLOPS BICLOPS "" "Include biclops support" "" ON IF NOT WINRT AND NOT IOS)
+VP_OPTION(USE_BICLOPS BICLOPS "" "Include Biclops support" "" ON IF NOT WINRT AND NOT IOS)
VP_OPTION(USE_PTU46 PTU46 "" "Include ptu-46 support" "" ON IF UNIX AND NOT WINRT AND NOT IOS)
VP_OPTION(USE_FLIRPTUSDK FlirPtuSDK "" "Include Flir PTU SDK support" "" ON IF NOT WINRT AND NOT IOS)
VP_OPTION(USE_CMU1394 CMU1394 "" "Include cmu1494 support" "" ON IF WIN32 AND NOT WINRT AND NOT IOS)
diff --git a/ChangeLog.txt b/ChangeLog.txt
index 33d52135de..df7a95a3df 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -957,7 +957,7 @@ ViSP 2.6.2 (released July 15, 2012)
To be able to consider other user defined features the compiler should
be compatible with C++ 11 standard.
- Improvements
- - Introduce a new Denavit Hartenberg representation of the Biclops head
+ - Introduce a new Denavit-Hartenberg representation of the Biclops head
in vpBiclops.
- Compatibility with g++ 4.7 and OpenCV 2.3.1, 2.4.0, 2.4.1
- Remove warning detected with Visual C++ /Wall flag
diff --git a/doc/config-doxygen.in b/doc/config-doxygen.in
index 7b531402fe..144e0aac01 100644
--- a/doc/config-doxygen.in
+++ b/doc/config-doxygen.in
@@ -444,7 +444,7 @@ TYPEDEF_HIDES_STRUCT = NO
# the optimal cache size from a speed point of view.
# Minimum value: 0, maximum value: 9, default value: 0.
-LOOKUP_CACHE_SIZE = 0
+LOOKUP_CACHE_SIZE = 1
#---------------------------------------------------------------------------
# Build related configuration options
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-color-location.jpg b/doc/image/tutorial/tracking/img-Blender-camera-color-location.jpg
new file mode 100644
index 0000000000..bc941d8381
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-color-location.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-color-render.jpg b/doc/image/tutorial/tracking/img-Blender-camera-color-render.jpg
new file mode 100644
index 0000000000..77526410b6
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-color-render.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-color-settings.jpg b/doc/image/tutorial/tracking/img-Blender-camera-color-settings.jpg
new file mode 100644
index 0000000000..9a536b989f
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-color-settings.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-depth-add.jpg b/doc/image/tutorial/tracking/img-Blender-camera-depth-add.jpg
new file mode 100644
index 0000000000..dc276995a9
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-depth-add.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-depth-location.jpg b/doc/image/tutorial/tracking/img-Blender-camera-depth-location.jpg
new file mode 100644
index 0000000000..a2b06fc873
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-depth-location.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-depth-parenting-done.jpg b/doc/image/tutorial/tracking/img-Blender-camera-depth-parenting-done.jpg
new file mode 100644
index 0000000000..5f86397a4d
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-depth-parenting-done.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-depth-parenting.jpg b/doc/image/tutorial/tracking/img-Blender-camera-depth-parenting.jpg
new file mode 100644
index 0000000000..d16b648214
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-depth-parenting.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-depth-settings.jpg b/doc/image/tutorial/tracking/img-Blender-camera-depth-settings.jpg
new file mode 100644
index 0000000000..339981fab6
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-depth-settings.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-final-position-rendered.jpg b/doc/image/tutorial/tracking/img-Blender-camera-final-position-rendered.jpg
new file mode 100644
index 0000000000..5f561f7579
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-final-position-rendered.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-final-position.jpg b/doc/image/tutorial/tracking/img-Blender-camera-final-position.jpg
new file mode 100644
index 0000000000..d0b131edfc
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-final-position.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-image-resolution.jpg b/doc/image/tutorial/tracking/img-Blender-camera-image-resolution.jpg
new file mode 100644
index 0000000000..8f2b428781
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-image-resolution.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-initial-position-rendered.jpg b/doc/image/tutorial/tracking/img-Blender-camera-initial-position-rendered.jpg
new file mode 100644
index 0000000000..39b47f9f11
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-initial-position-rendered.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-initial-position.jpg b/doc/image/tutorial/tracking/img-Blender-camera-initial-position.jpg
new file mode 100644
index 0000000000..3e6a861fbe
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-initial-position.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-settings1.png b/doc/image/tutorial/tracking/img-Blender-camera-settings1.png
deleted file mode 100644
index 8136c68138..0000000000
Binary files a/doc/image/tutorial/tracking/img-Blender-camera-settings1.png and /dev/null differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-settings2.png b/doc/image/tutorial/tracking/img-Blender-camera-settings2.png
deleted file mode 100644
index d3ed1045dd..0000000000
Binary files a/doc/image/tutorial/tracking/img-Blender-camera-settings2.png and /dev/null differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-stereo-depth-exr.jpg b/doc/image/tutorial/tracking/img-Blender-camera-stereo-depth-exr.jpg
new file mode 100644
index 0000000000..e302c0cd7d
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-stereo-depth-exr.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-stereo-enable-Z.jpg b/doc/image/tutorial/tracking/img-Blender-camera-stereo-enable-Z.jpg
new file mode 100644
index 0000000000..d972b53bad
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-stereo-enable-Z.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-stereo-enabled.jpg b/doc/image/tutorial/tracking/img-Blender-camera-stereo-enabled.jpg
new file mode 100644
index 0000000000..0c7e884b63
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-stereo-enabled.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-camera-stereo-rendered.jpg b/doc/image/tutorial/tracking/img-Blender-camera-stereo-rendered.jpg
new file mode 100644
index 0000000000..2e20dfa013
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-camera-stereo-rendered.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-cube-coords-pt-3.jpg b/doc/image/tutorial/tracking/img-Blender-cube-coords-pt-3.jpg
new file mode 100644
index 0000000000..a8afff85f7
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-cube-coords-pt-3.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-cube-cursor-to-selected.jpg b/doc/image/tutorial/tracking/img-Blender-cube-cursor-to-selected.jpg
new file mode 100644
index 0000000000..3ec62698e1
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-cube-cursor-to-selected.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-cube-select.jpg b/doc/image/tutorial/tracking/img-Blender-cube-select.jpg
new file mode 100644
index 0000000000..491d525540
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-cube-select.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-cube-set-origin.jpg b/doc/image/tutorial/tracking/img-Blender-cube-set-origin.jpg
new file mode 100644
index 0000000000..84c6ee16c9
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-cube-set-origin.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-cube-texture-add.jpg b/doc/image/tutorial/tracking/img-Blender-cube-texture-add.jpg
new file mode 100644
index 0000000000..400a019b53
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-cube-texture-add.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-cube-texture-select.jpg b/doc/image/tutorial/tracking/img-Blender-cube-texture-select.jpg
new file mode 100644
index 0000000000..eac3830c03
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-cube-texture-select.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-cube-textured.jpg b/doc/image/tutorial/tracking/img-Blender-cube-textured.jpg
new file mode 100644
index 0000000000..7b56b33497
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-cube-textured.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-cube-transform.jpg b/doc/image/tutorial/tracking/img-Blender-cube-transform.jpg
new file mode 100644
index 0000000000..12b39ff3ca
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-cube-transform.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-cube-zoom.jpg b/doc/image/tutorial/tracking/img-Blender-cube-zoom.jpg
new file mode 100644
index 0000000000..473144b4c6
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-cube-zoom.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-depth.png b/doc/image/tutorial/tracking/img-Blender-depth.png
deleted file mode 100644
index ec677fffd4..0000000000
Binary files a/doc/image/tutorial/tracking/img-Blender-depth.png and /dev/null differ
diff --git a/doc/image/tutorial/tracking/img-Blender-python-get-pose.jpg b/doc/image/tutorial/tracking/img-Blender-python-get-pose.jpg
new file mode 100644
index 0000000000..4cecb5a3f3
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-python-get-pose.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-stereocameras-settings1.png b/doc/image/tutorial/tracking/img-Blender-stereocameras-settings1.png
deleted file mode 100644
index d0956ee163..0000000000
Binary files a/doc/image/tutorial/tracking/img-Blender-stereocameras-settings1.png and /dev/null differ
diff --git a/doc/image/tutorial/tracking/img-Blender-stereocameras-settings2.png b/doc/image/tutorial/tracking/img-Blender-stereocameras-settings2.png
deleted file mode 100644
index 6f8e01e722..0000000000
Binary files a/doc/image/tutorial/tracking/img-Blender-stereocameras-settings2.png and /dev/null differ
diff --git a/doc/image/tutorial/tracking/img-Blender-stereocameras-settings3.jpg b/doc/image/tutorial/tracking/img-Blender-stereocameras-settings3.jpg
new file mode 100644
index 0000000000..047d12f726
Binary files /dev/null and b/doc/image/tutorial/tracking/img-Blender-stereocameras-settings3.jpg differ
diff --git a/doc/image/tutorial/tracking/img-Blender-stereocameras-settings3.png b/doc/image/tutorial/tracking/img-Blender-stereocameras-settings3.png
deleted file mode 100644
index 86192e3ff1..0000000000
Binary files a/doc/image/tutorial/tracking/img-Blender-stereocameras-settings3.png and /dev/null differ
diff --git a/doc/image/tutorial/tracking/img-Blender-texture.png b/doc/image/tutorial/tracking/img-Blender-texture.png
deleted file mode 100644
index 91530f0f6a..0000000000
Binary files a/doc/image/tutorial/tracking/img-Blender-texture.png and /dev/null differ
diff --git a/doc/mainpage.dox.in b/doc/mainpage.dox.in
index ec2579e4b0..ec8bcf849f 100644
--- a/doc/mainpage.dox.in
+++ b/doc/mainpage.dox.in
@@ -173,7 +173,7 @@ in different ways. This will motivate us to continue the efforts.
*/
/*!
\ingroup group_core_math
- \defgroup group_core_transformations Tranformations
+ \defgroup group_core_transformations Transformations
Transformations.
*/
/*!
diff --git a/doc/tutorial/tracking/tutorial-tracking-mb-generic-rgbd-Blender.dox b/doc/tutorial/tracking/tutorial-tracking-mb-generic-rgbd-Blender.dox
index e2a639d6e5..4277529b83 100644
--- a/doc/tutorial/tracking/tutorial-tracking-mb-generic-rgbd-Blender.dox
+++ b/doc/tutorial/tracking/tutorial-tracking-mb-generic-rgbd-Blender.dox
@@ -1,169 +1,487 @@
/**
\page tutorial-tracking-mb-generic-rgbd-Blender Tutorial: How to use Blender to generate simulated data for model-based tracking experiments
+
\tableofcontents
\section mb_Blender_intro Introduction
-This tutorial will show how to use Blender, a free and open source 3D creation suite, to generate color and depth images from a virtual camera and get ground truth camera poses.
+This tutorial will show how to use [Blender](https://www.blender.org/), a free and open source 3D creation
+suite, to create a simple textured object like a tee box, generate color and depth images from a virtual RGB-D
+camera, retrieve color and depth camera intrinsics and get ground truth color camera poses while the RGB-D
+camera is animated.
+
+Once generated by Blender, data could be used by the model-based tracker and results could be compared
+with ground truth.
-The configuration used for this tutorial is:
-- Ubuntu 16.04
-- Blender 2.79b
+This tutorial was tested Ubuntu and macOS with the following versions:
-\warning You are advised to know how to use the basic tools of Blender before reading this tutorial. Some non-exhaustive links:
-- Blender Reference Manual
-- Blender 3D: Noob to Pro
+OS | Blender
+------------------- | -------------
+Ubuntu 22.04 | Blender 3.6.4
+macOS Ventura 13.6 | Blender 3.4.1
-Note that all the material (source code, input video, CAD model or XML settings files) described and used in this tutorial is part of ViSP source code and could be downloaded using the following command:
+\warning You are advised to know how to use the basic tools of Blender before reading this tutorial.
+Some non-exhaustive links:
+- [Blender Reference Manual](https://docs.blender.org/manual/en/latest/index.html)
+- [Blender 3D: Noob to Pro](https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Parenting)
+
+Note that all the material (source code, input video, CAD model or XML settings files) described and used in this
+tutorial is part of ViSP source code and could be downloaded using the following command:
\code
$ svn export https://github.com/lagadic/visp.git/trunk/tutorial/tracking/model-based/generic-rgbd-blender
\endcode
-\section mb_Blender_camera_settings Camera settings
+\section mb_Blender_setup Considered setup
+Remember that for each object considered by the model-based tracker, you need a \ref mb_generic_model
+(`object_name.cao` or `object_name.wrl`) and a file for \ref mb_generic_init by mouse click (`object_name.init`).
-In ViSP and in the computer vision community, camera intrinsic parameters are the following:
+\subsection mb_Blender_setup_teabox Tea box objet
-\f[
- \begin{bmatrix}
- p_x & 0 & u_0 \\
- 0 & p_y & v_0 \\
- 0 & 0 & 1
- \end{bmatrix}
-\f]
+In this tutorial we will consider a tea box. The CAD model file (`teabox.cao`) and the init file (`teabox.init`)
+are provided in `model/teabox` folder:
+\code{.sh}
+$ cd $VISP_WS/visp-build/tutorial/tracking/model-based/generic-rgbd-blender
+$ ls model/teabox/teabox
+teabox.cao teabox.png teabox_color.xml
+teabox.init teabox.wrl teabox_depth.xml
+\endcode
-- focal length \f$ \left( p_x, p_y \right) \f$
-- principal point \f$ \left( u_0, v_0 \right) \f$
-- (plus the distortion coefficients)
+Instead of creating an object with any dimensions, to simplify this tutorial, in Blender we'll create a tea box
+whose dimensions, object frame, and 3D point coordinates correspond to those in the `teabox.cao` and `teabox.init`.
-In Blender, you will have to set the camera resolution, generally `640x480` to have a VGA camera resolution:
+\note If you are not familiar with these files and their content, you may follow \ref tutorial-tracking-mb-generic.
-\image html img-Blender-camera-settings1.png
+The content of the `teabox.cao` file is the following:
+\includelineno tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.cao
-Focal length can be set with the camera panel by changing the focal length and/or the sensor size:
+The corresponding CAD model is the following:
+\image html img-teabox-cao.jpg
-\image html img-Blender-camera-settings2.png
+Analysing `teabox.cao` we can see that the box dimensions are the following (see \ref mb_generic_teabox_cao):
+- Height (from point 0 to point 1): 0.08 meters
+- Length (from point 0 to point 3): 0.165 meters
+- Width (from point 0 to point 7): 0.068 meters
-The relation is the following:
+\subsection mb_Blender_setup_rgbd RGB-D camera
-\f[
- p_x = \frac{f_{x\text{ in mm}} \times \text{image width in px}}{\text{sensor width in mm}}
-\f]
+We will also consider a RGB-D camera where the left camera is a classical color camera and the right camera
+a depth camera. The distance between left and right cameras is 10 cm.
+Both cameras are grabbing 640 x 480 images.
-The Python script to get the camera intrinsic parameters is:
+| Camera | Setting | Values |
+|--------|------------------| :-----------: |
+| Color | Image resolution | 640 x 480 |
+| ^ | Focal lenght | 35 mm |
+| ^ | Sensor size | 32 mm x 24 mm |
+| Depth | Image resolution | 640 x 480 |
+| ^ | Focal lenght | 30 mm |
+| ^ | Sensor size | 32 mm x 24 mm |
-\include get_camera_intrinsics.py
+\note In ViSP (see vpCameraParameters class) and in the computer vision community, camera intrinsic parameters are the
+following:
+\f[
+ {\bf K} = \begin{bmatrix}
+ p_x & 0 & u_0 \\
+ 0 & p_y & v_0 \\
+ 0 & 0 & 1
+ \end{bmatrix}
+\f]
+where:
+- \f$ \left( p_x, p_y \right) \f$ corresponds to the pixel size
+- and \f$ \left( u_0, v_0 \right) \f$ to the principal point location.
+.
+The relations that links the pixel size with the focal lenght \f$ f \f$, the camera sensor size and the image
+resolution are the following:
+\f[
+ p_x = \frac{f \times \text{image width}}{\text{sensor width}}
+\f]
+\f[
+ p_y = \frac{f \times \text{image height}}{\text{sensor height}}
+\f]
-On Ubuntu, to run the Python script:
-- launch Blender from a terminal
-- split or switch from `3D View` to `Text Editor`
-- open the Python script file
-- click on `Run Script`
+\section mb_Blender_scene Create your scene with Blender
+
+In this section, we will create the corresponding tea box, RGB-D camera and define an initial and final RGB-D camera
+pose used to animate the scene.
+
+\subsection mb_Blender_scene_create_teabox Create tea box object
+
+Here we will show how to create with Blender a box with the following dimensions:
+- Height: 0.08 meters
+- Length: 0.165 meters
+- Width: 0.068 meters
+
+Open Blender and do the following to transform the cube in a box with the expected dimensions:
+- In `"Object Mode"` (1) select the `"Cube"` the right pannel (2). Edges should appear in orange
+- Deploy the `"Transform"` panel (3)
+\image html img-Blender-cube-select.jpg
+- Set `"Dimensions"` to X=0.165, Y=0.068 and Z=0.08 meters (4) and change the object name to `"teabox"` (5).
+ As the object's dimensions are drastically reduced, it becomes very small at the centre of the scene.
+\image html img-Blender-cube-transform.jpg
+- With the middle mouse button, zoom in to see the box, select the `"teabox"` object in this is not the case (6),
+ and rescale the object to 1. To rescale, move the mouse pointer in the scene near the box, press shortcut: Ctrl-A
+ and select `"Apply > Scale"`. At this point, you should see that the scale values are set to 1 (7).
+\image html img-Blender-cube-zoom.jpg
+
+The coordinates of the box's vertices are expressed in the object frame which origin is at the box center of gravity
+(cog) and which axis are aligned with the scene reference frame. To conform with the required CAD
+model, we will move the origin of the object frame at point 0 which position is given
+in the next image:
+\image html img-teabox-cao.jpg
+- select the `"teabox"` object in not the case, enter `"Edit Mode"` (8), select vertex corresponding to point 0 (9),
+ press shortcut Shift-S and select `"Cursor to Selected"` (10)
+\image html img-Blender-cube-cursor-to-selected.jpg
+- As given in the next image, at point 0 you can now see the cursor (11). Switch to `"Object Mode"` (12), move the
+ mouse pointer in the scene close to the box and press mouse right click to make appear `"Object Context Menu"`.
+ In this menu, select `"Set Origin > Origin to 3D Cursor"` (13)
+\image html img-Blender-cube-set-origin.jpg
+- Now you can verify that all the 8 vertices have the same 3D coordinates as the one in the required CAD model.
+ For example, to get the 3D coordinates of point 3, switch to `"Edit Mode"` (14), select the corresponding vertex (15)
+ to see its coordinates (16)
+\image html img-Blender-cube-coords-pt-3.jpg
+- These coordinates are exactly the same as the one given in `"teabox.cao"` file
+\code{.sh}
+0.165 0 0 # Point 3
+\endcode
-You should get something similar to:
+Next step consists in adding a texture to be able to test tracking with keypoint features. You can add a realistic
+texture using an image texture, but here again, to simplify this tutorial, we will just add a `"Voronoi Texture"`.
+To this end:
+- Switch to `"Object Mode"` (1)
+- Click on `"Viewport Shading with Material Preview"` icon (2)
+- Click on `"Material Properties"` icon (3)
+- Click on the yellow bullet at the right of `"Base Color"` (4)
+\image html img-Blender-cube-texture-add.jpg
+- Select `"Voronoi Texture"` (5)
+\image html img-Blender-cube-texture-select.jpg
+- You can now see the texture applied to the box faces
+\image html img-Blender-cube-textured.jpg
+
+This ends the creation of a textured box that matches the `"teabox.cao"` cad model.
+
+\subsection mb_Blender_scene_camera_color Color camera settings
+
+Here you will set the color camera image resolution to `640x480` to match a VGA camera resolution, set the focal length
+to f = 35 mm, and the sensor size to 32 mm x 24 mm. Note that the width / height ratio must be the same for the image
+resolution and the sensor resolution. The values we use correspond to a ratio of 4/3.
+
+We consider now that the `"Camera"` that is already in the scene is the left camera. To modify its settings:
+- Select the camera and rename it to `"Camera_L"` (1)
+- Select camera icon to access camera properties (2)
+- Change focal lenght to 35 mm (3)
+- Deploy `"Camera"` menu and change `"Sensor Fit"` to `"Vertical" and set sensor `"Width"` to 32 mm and sensor
+ `"Height"` to 24 mm (4)
+\image html img-Blender-camera-color-settings.jpg
+
+Now to set image resolution to `640x480`
+- Select `"Output Properties"` icon (5)
+- Set `"Resolution X"` to 640 and `"Resolution Y"` to 480 (6)
+\image html img-Blender-camera-image-resolution.jpg
+
+As shown in the previous image, the camera is not visible in the scene. This is simply due to its location that is too
+far from the scene origin. The camera frame origin is exactly at location X = 7.3589, Y = -6.9258, Z = 4.9583
+meters (7). We need to move the camera close to the object and choose a position that will ease introduction of the
+depth camera.
+
+To this end:
+- In the `"Transform"` panel, modify its `"Location"` to X = 0, Y = -0.35, Z = 0.3 meters, its `"Rotation"` to X = 45,
+ Y = 0, Z = 0 deg, and its `"Scale"` to X = 0.050, Y = 0.050, Z = 0.050 (8)
+- Use the mouse middle button to zoom out in order to see the camera and the box
+\image html img-Blender-camera-color-location.jpg
+
+For curiosity you can now render an image of your object (shortcut: F12) and obtain an image like the following:
+\image html img-Blender-camera-color-render.jpg
+
+\subsection mb_Blender_scene_depth_camera Add a depth camera
+
+To simulate an RGB-D camera, we need to add a second camera to retrieve the depth map and set the appropriate
+parameters to match the desired intrinsic parameters following the same instructions as in previous section.
+To this end:
+- If not the case switch to `"3D Viewport"` (shortcut: Shift-F5)
+- Enter menu `"Add > Camera"` (1)
+- In the `"Scene Collection"` the new camera appears with name `"Camera"` (2)
+- Image resolution is already set to 640x480 (3)
+\image html img-Blender-camera-depth-add.jpg
+
+We need now to modify its settings to match the required intrinsics:
+- Rename the camera to `"Camera_R"` (4)
+- Click on camera icon (5)
+- Set its focal lenght to 30 mm (6) and sensor resolution to 32 mm x 24 mm (7)
+\image html img-Blender-camera-depth-settings.jpg
+
+Since this depth camera should be 10 cm on the right of the color camera, we need to modify its location:
+- Be sure that the `"Camera_R" corresponding to the depth camera is selected (8)
+- In the `"Transform"` panel, modify its `"Location"` to X = 0.1, Y = -0.35, Z = 0.3 meters, its `"Rotation"`
+ to X = 45, Y = 0, Z = 0 deg, and its `"Scale"` to X = 0.050, Y = 0.050, Z = 0.050 (9)
+\image html img-Blender-camera-depth-location.jpg
+
+As we want to be able to animate the movement of the stereo pair rather than each camera individually, we need to link
+them together using the Blender parenting concept:
+- In the `"Scene Collection"` select `"Camera_R"` that will be the child object (10)
+- Press Ctrl key and select `"Camera_L"` that will be the parent object (11)
+- Right camera should become orange, while left camera yellow (12)
+- Hit shortcut Ctrl-P to [parent](https://docs.blender.org/manual/en/latest/scene_layout/object/editing/parent.html)
+ them
+- Set parent to `"Object"` (13)
+\image html img-Blender-camera-depth-parenting.jpg
+- Once done, you can see that `"Camera_L"` has for child `"Camera_L"` (14)
+\image html img-Blender-camera-depth-parenting-done.jpg
+
+\subsection mb_Blender_scene_generate_depth Enable depth maps
+
+If you enter menu `"Render > Render Image"` you will see only the box seen by the color left camera.
+To be able to render color and depth, you need to enable `"Stereoscopy"`. To this end:
+- Click on `"Output Properties"` icon (1)
+- And enable `"Stereoscopy"` (2)
+\image html img-Blender-camera-stereo-enabled.jpg
+Now if you enter menu `"Render > Render Image"` you will see the box rendered by the left camera and right camera
+like the following image
+\image html img-Blender-camera-stereo-rendered.jpg
+
+The last thing to do is to modify the project to generate the depth maps. To this end:
+- Select `"View Layer Properties"` icon (3)
+- And enable `"Data > Z"` (4)
+\image html img-Blender-camera-stereo-enable-Z.jpg
+
+Now we need to set the format of the depth map images that will be rendered:
+- Switch to the `"Compositor"` screen layout, next to the menu bar (shortcut: Shift-F3)
+- Tick `"Use Nodes"` (5) and `"Backdrop"` (6)
+- Enter menu `"Add > Output > File Output"` to add file output node (7)
+- Add a link between the `"Depth"` output of the `"Render Layers"` node to the `"File Output"` node (8)
+- Modify `"Base Path"` to `"/tmp/teabox/depth"` the name of the folder that will host rendered depth maps (9)
+- Click on `"Node"` tab (10)
+- Change `"File Format"` to `OpenEXR` (11)
+\image html img-Blender-camera-stereo-depth-exr.jpg
+
+Now if you render an image using menu `"Render > Render Image"` in `"/tmp/teabox/depth"` folder you will get depth
+images for the left and right cameras. There is nos possibility to enable depth only for the right camera. Depth images
+corresponding to the left camera could be removed manually.
+\code{.sh}
+$ ls /tmp/teabox/depth
+Image0001_L.exr Image0001_R.exr
+\endcode
+\subsection mb_Blender_create_trajectory Create a camera trajectory
+
+We are now ready to animate the scene. First we have to define the camera initial position. This can be done easily:
+- Switch to `"3D Vieport"` (shortcut: Shift-F5)
+- Select `"Camera_L"` (1)
+- Using `"Move"` (2) and `"Rotate"` (3) tools move the stereo camera at a desired initial location / orientation.
+ You can also enter the values directly in the `"Transform"` panel. A possible initial `"Location"` is X = 0.15,
+ Y = -0.35, Z = 0.3 meters and `"Rotation"` X = 45, Y = 0, Z = 35 degrees (4)
+- Render the image entering menu `"Render > Render Image"` (5) to check if your object is visible in the image
+- If you are happy with your camera positionning, move the time slider to the `"Start"` frame number which is 1 (6)
+- Insert a keyframe with (shortcut: `I`) and choose `"Location, Rotation & Scale"` to insert a keyframe at the
+ `"Start"` frame with number 1
+- A small yellow diamond should appear at frame 1 in the timeline (7)
+\image html img-Blender-camera-initial-position.jpg
+- If you render the image at the initial position you will get the following image
+\image html img-Blender-camera-initial-position-rendered.jpg
+
+Now we have to perform the same operation for the camera final position.
+- If not already done, select `"Camera_L"` (8)
+- First you to have to define the `"End"` frame number of your animation. By default `"End"` frame is set to 250.
+ Here we set this number to 50 (9)
+- Then move the time slider to the `"End"` frame number (10)
+- Now move the camera to the final position. Let us choose for final `"Location"` X = 0.3, Y = -0.15, Z = 0.15
+ meters and `"Rotation"` X = 60, Y = -10, Z = 65 degrees (11)
+- Render the image using menu `"Render > Render Image"` (12) to check if the box is visible in the image
+- Insert a keyframe with (shortcut: `I`) and choose `"Location, Rotation & Scale"` to insert a keyframe at the
+ `"End"` frame with number 50
+- At this point, a small yellow diamond should appear at frame 50 in the timeline (13)
+- You can now play the animation pressing `"Play Animation"` button (14) and see the stereo pair moving from started
+ position to end position
+\image html img-Blender-camera-final-position.jpg
+- If you render the image at the final position you should see someting simitar to:
+\image html img-Blender-camera-final-position-rendered.jpg
+
+This completes the configuration of the scene in Blender. We strongly recommend that you save your project.
+
+\note The project used to create this tutorial is available in
+`$VISP_WS/visp/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/blender/teabox.blend`.
+
+\section mb_Blender_data Generate full data
+
+Here we want to run `get_camera_pose_teabox.py` Python script inside Blender to:
+- animate the RGB-D camera and retrieve in `"/tmp/teabox"` folder
+- color camera intrinsics in `"Camera_L.xml"`
+- depth camera intrinsics in `"Camera_R.xml"`
+- homogeneous transformation between depth and color camera in `"depth_M_color.txt"`
+- rendered color images in `"color/%04d_L.jpg"` files
+- rendered depth images in `"depth/Images%04d_R.exr"` files
+- ground truth in `"ground-truth/Camera_L_%04d.txt"` files
+
+The Python script is available in `"$VISP_WS/visp/tutorial/tracking/model-based/generic-rgbd-blender/"` folder.
+
+Since the script is displaying information using `print()` function, Blender should be started from a terminal.
+- On Ubuntu, simply open a terminal and launch
```
-
+$ blender
+```
+- On MacOS, open a terminal and launch
+```
+$ /Applications/Blender.app/Contents/MacOS/Blender
```
-\warning In Blender 2.79b, you may need to switch the `Sensor Fit` from `Auto` to `Vertical` to change the `Sensor Height` to be compatible with a 4/3 ratio and have \f$ p_x == p_y \f$
-
-\note The principal point is always in the middle of the image here.
-
-\section mb_Blender_stereo_camera Stereo camera
-
-To generate the depth map, add a second camera and set the appropriate parameters to match the desired intrinsic parameters.
-Then select one camera (the child object) and the other one (the parent object) and hit `Ctrl + P` to parent them.
-This way, the two cameras will be linked when you will move the cameras.
-
-\image html img-Blender-stereocameras-settings1.png
-
-\note The default camera used for rendering should be the one with the black triangle. You can change this with the `Scene` panel.
+Then to run the Python script in Blender:
+- Switch from `"3D Viewport"` to `"Text Editor"` (shortcut: Shift-F11)
+- Open the Python script file `$VISP_WS/visp/tutorial/tracking/model-based/generic-rgbd-blender/get_camera_pose_teabox.py`
+- Click on `"Run Script"` (1) (shortcut: Alt-P)
+\image html img-Blender-python-get-pose.jpg
+- In the terminal from which you launched Blender, you should see something similar to:
+\code{.sh}
+Create /tmp/teabox/
+Create /tmp/teabox/camera_poses/
+Saved: /tmp/teabox/depth_M_color.txt
+Saved: /tmp/teabox/depth_M_color.txt
+Saved: /tmp/teabox/depth/Image0001_L.exr
+Saved: /tmp/teabox/depth/Image0001_R.exr
+Saved: '/tmp/teabox/color/0001_L.jpg'
+Saved: '/tmp/teabox/color/0001_R.jpg'
+ Time: 00:00.29 (Saving: 00:00.00)
+
+Current Frame 1
+Saved: /tmp/teabox/camera_poses/Camera_L_001.txt
+Remove file: /tmp/teabox/color/0001_R.jpg
+Remove file: /tmp/teabox/depth/Image0001_L.exr
+Saved: /tmp/teabox/depth/Image0002_L.exr
+Saved: /tmp/teabox/depth/Image0002_R.exr
+Saved: '/tmp/teabox/color/0002_L.jpg'
+Saved: '/tmp/teabox/color/0002_R.jpg'
+ Time: 00:00.22 (Saving: 00:00.00)
+
+...
+\endcode
-\image html img-Blender-stereocameras-settings2.png
+As explained previously, data are saved in the `/tmp/teabox` directory.
+By default, for each camera (`"Camera_L"` and `"Camera_R"`) we render the color image and the depth image.
+The script will remove useless generated files by removing depth images corresponding to `"Camera_L"` and color
+images from `"Camera_R"`.
-\image html img-Blender-stereocameras-settings3.png
+\subsection mb_Blender_data_color_intrinsics How to get only camera intrinsics
-\section mb_Blender_create_teabox Create a teabox
+If you are only interested to see which are the camera intrinsics of a given camera set in Blender, we provide
+`get_camera_intrinsics.py` Python script in `$VISP_WS/visp/tutorial/tracking/model-based/generic-rgbd-blender/`
+folder.
-To create a teabox with texture, we download directly a 3D model here. Then, the rough instructions should be:
-- select the teabox object
-- switch to the `Texture` panel
-- add a new texture and open the image
-- switch to the edit mode
-- switch to the `UV/Image Editor` and select the image
+As in the previous section, since this script is displaying information using `print()` function, Blender should be
+started from a terminal.
+- On Ubuntu, simply open a terminal and launch
+```
+$ blender
+```
+- On MacOS, open a terminal and launch
+```
+$ /Applications/Blender.app/Contents/MacOS/Blender
+```
-You should get something similar to this:
+Then to run this Python script in Blender:
+- Switch from `"3D Viewport"` to `"Text Editor"` (shortcut: Shift-F11)
+- Open the Python script file `$VISP_WS/visp/tutorial/tracking/model-based/generic-rgbd-blender/get_camera_intrinsics.py`
+- Verify that the camera name is set to `"Camera_L"`
+\code{.py}
+camera_name = "Camera_L"
+\endcode
+- Click on `"Run Script"` (shortcut: Alt-P)
-\image html img-Blender-texture.png
+In the terminal from which you launched Blender, you should get something similar to:
-See here for more information about texture and UV unwrapping.
+```
+Intrinsics for Camera_L are K =
+
+```
-\section mb_Blender_create_trajectory Create a camera trajectory
+\note The principal point is always in the middle of the image here.
-This can be done easily:
-- move the stereo cameras at a desired location / orientation
-- hit `I` then `LocRotScale` to insert a keyframe at the current frame
-- repeat to perform the desired camera or object movement
+You can retrieve the depth camera intrinsics using again `get_camera_intrinsics.py` just by modifying in the script
+the name of the camera
+- Modify the camera name to `"Camera_R"`
+\code{.py}
+camera_name = "Camera_R"
+\endcode
+- Click on `Run Script` (shortcut: Alt-P)
-Do not forget to add some lights to make the object visible.
+In the terminal from which you launched Blender, you should get something similar to:
-\section mb_Blender_generate_data Generate the images and the depth maps
+```
+Intrinsics for Camera_R are K =
+
+```
-Images are generated automatically when rendering the animation (menu `Render` > `Render Animation`) and are saved on Ubuntu by default in the `/tmp` folder.
-To generate the depth maps, switch to the `Compositing` screen layout, next to the menu bar:
-- tick `Use Nodes` and `Backdrop`
-- add a file output node
-- add a link between the `Depth` output of the `Render Layers` node to the `File Output` node
-- select the `OpenEXR` file format
+\section mb_Blender_mbt Run model-based tracker on simulated data
-\image html img-Blender-depth.png
+\subsection mb_Blender_mbt_src Source code
+The following C++ sample file also available in tutorial-mb-generic-tracker-rgbd-blender.cpp reads color and depth
+images, pointcloud is recreated using the depth camera intrinsic parameters. The ground truth data are read and
+printed along with the estimated camera pose by the model-based tracker. Since depth data are stored in `OpenEXR`
+file format, OpenCV is used for the reading.
-The easiest thing is to run the animation first with the camera used to generate color images and a second time with the one for the depth maps.
-To switch the main camera, go to the `Scene` panel and select the desired camera.
+\include tutorial-mb-generic-tracker-rgbd-blender.cpp
-\section mb_Blender_get_camera_poses Retrieve the camera poses
+\note Here the depth values are manually clipped in order to simulate the depth range of a depth sensor.
+This probably can be done directly in Blender.
-The camera poses can be retrieved using the following Python script:
+\subsection mb_Blender_mbt_run Usage on simulated data
-\include get_camera_pose_teabox.py
+Once build, to get tutorial-mb-generic-tracker-rgbd-blender.cpp usage, just run:
+\code{.sh}
+$ cd $VISP_WS/visp-build/tutorial/tracking/model-based/generic-rgbd-blender
+$ ./tutorial-mb-generic-tracker-rgbd-blender -h
+Synopsis
+ ./tutorial-mb-generic-tracker-rgbd-blender [--data-path ] [--model-path ]
+ [--first-frame ] [--disable-depth] [--disable-klt] [--step-by-step]
+ [--display-ground-truth] [--help, -h]
-This script will also automatically generate and save the animation images and write the corresponding camera poses.
+Description
+ --data-path Path to the data generated by Blender get_camera_pose_teabox.py
+ Python script. Default: data/teabox
-\note Data are saved in the `/tmp/` directory by default and the path should be changed accordingly depending on the OS. Camera and object names should also be changed accordingly.
+ --model-path Path to the cad model and tracker settings.
+ Default: model/teabox
-\section mb_Blender_mbt Model-based tracker on simulated data
+ --first-frame First frame number to process.
+ Default: 1
-\subsection mb_Blender_mbt_src Source code
-Since depth data are stored in `OpenEXR` file format, OpenCV is used for the reading.
-The following C++ sample file also available in tutorial-mb-generic-tracker-rgbd-blender.cpp reads color and depth images, pointcloud is recreated using the depth camera intrinsic parameters and the ground truth data are read and printed along with the estimated camera pose from the model-based tracker.
+ --disable-depth Flag to turn off tracker depth features.
-\include tutorial-mb-generic-tracker-rgbd-blender.cpp
+ --disable-klt Flag to turn off tracker keypoints features.
-\note Here the depth values are manually clipped in order to simulate the depth range of a depth sensor. This probably can be done directly in Blender.
+ --step-by-step Flag to enable step by step mode.
-\subsection mb_Blender_mbt_run Usage on simulated data
+ --display-ground-truth Flag to enable displaying ground truth.
+ When this flag is enabled, there is no tracking. This flag is useful
+ to validate the ground truth over the rendered images.
-Once build, to get tutorial-mb-generic-tracker-rgbd-blender.cpp usage, just run:
-\code
-$ ./tutorial-mb-generic-tracker-rgbd-blender -h
-./tutorial-mb-generic-tracker-rgbd-blender [--input_directory (default: .)] [--config_color (default: teabox.xml)] [--config_depth (default: teabox_depth.xml)] [--model_color (default: teabox.cao)] [--model_depth (default: teabox.cao)] [--init_file (default: teabox.init)] [--extrinsics (default: depth_M_color.txt)] [--disable_depth] [--display_ground_truth] [--click] [--first_frame_index (default: 1)]
+ --help, -h Print this helper message.
\endcode
Default parameters allow to run the binary with the data provided in ViSP. Just run:
-\code
+\code{.sh}
$ ./tutorial-mb-generic-tracker-rgbd-blender
\endcode
-The next video shows the results that you should obtain:
+To run the binary on the data generated by Blender in `"/tmp/teabox"` folder, just run:
+\code{.sh}
+$ ./tutorial-mb-generic-tracker-rgbd-blender --data-path /tmp/teabox
+\endcode
+
+You should be able to see similar tracking results as the one given in the next video.
\htmlonly
\endhtmlonly
+\note If you just want to project the cad model in the images using the ground truth, without tracking, you may run:
+\code{.sh}
+$ ./tutorial-mb-generic-tracker-rgbd-blender --data-path /tmp/teabox --display-ground-truth
+\endcode
+
\section mb_Blender_next Next tutorial
You are now ready to see the next \ref tutorial-tracking-tt.
diff --git a/doc/tutorial/tracking/tutorial-tracking-mb-generic.dox b/doc/tutorial/tracking/tutorial-tracking-mb-generic.dox
index 4a77c78178..c10993be69 100644
--- a/doc/tutorial/tracking/tutorial-tracking-mb-generic.dox
+++ b/doc/tutorial/tracking/tutorial-tracking-mb-generic.dox
@@ -249,8 +249,8 @@ tracker.loadModel("teabox.wrl");
\subsection mb_generic_teabox_cao teabox.cao example
-The content of the file `teabox.cao` used in the getting started \ref mb_generic_started_src but also in tutorial-mb-edge-tracker.cpp and
-in tutorial-mb-hybrid-tracker.cpp examples is given here:
+The content of the file `teabox.cao` used in the getting started \ref mb_generic_started_src but also in
+tutorial-mb-edge-tracker.cpp and in tutorial-mb-hybrid-tracker.cpp examples is given here:
\includelineno tutorial/tracking/model-based/generic/model/teabox/teabox.cao
@@ -258,6 +258,11 @@ This file describes the model of the tea box corresponding to the next image:
\image html img-teabox-cao.jpg Index of the vertices used to model the tea box in cao format.
+The tea box dimensions are the following:
+- height (from point 0 to point 1): 0.08 meters
+- length (from point 0 to point 3): 0.165 meters
+- width (from point 0 to point 7): 0.068 meters
+
We make the choice to describe the faces of the box from the 3D points that correspond to the vertices. We provide now a line by line
description of the file. Notice that the characters after the '#' are considered as comments.
- line 1: Header of the \c .cao file
diff --git a/example/servo-biclops/moveBiclops.cpp b/example/servo-biclops/moveBiclops.cpp
index 92b5436466..d1ab30ce44 100644
--- a/example/servo-biclops/moveBiclops.cpp
+++ b/example/servo-biclops/moveBiclops.cpp
@@ -35,7 +35,7 @@
* \file moveBiclops.cpp
* \example moveBiclops.cpp
*
- * Example of a real robot control, the biclops robot (pan-tilt turret) by
+ * Example of a real robot control, the Biclops robot (pan-tilt turret) by
* Traclabs. The robot is controlled first in position, then in velocity.
*
* See http://www.traclabs.com/tracbiclops.htm for more details.
@@ -63,7 +63,7 @@
void usage(const char *name, const char *badparam, std::string conf)
{
fprintf(stdout, "\n\
-Move the biclops robot\n\
+Move the Biclops robot\n\
\n\
SYNOPSIS\n\
%s [-c ] [-h]\n\
@@ -73,7 +73,7 @@ name);
fprintf(stdout, "\n\
OPTIONS: Default\n\
-c %s\n\
- Sets the biclops robot configuration file.\n\n",
+ Sets the Biclops robot configuration file.\n\n",
conf.c_str());
if (badparam) {
@@ -270,7 +270,7 @@ int main(int argc, const char **argv)
#else
int main()
{
- std::cout << "You do not have an biclops PT robot connected to your computer..." << std::endl;
+ std::cout << "You do not have an Biclops PT robot connected to your computer..." << std::endl;
return EXIT_SUCCESS;
}
diff --git a/example/servo-biclops/servoBiclopsPoint2DArtVelocity.cpp b/example/servo-biclops/servoBiclopsPoint2DArtVelocity.cpp
index 2ef49b5a8a..dd63b1dba8 100644
--- a/example/servo-biclops/servoBiclopsPoint2DArtVelocity.cpp
+++ b/example/servo-biclops/servoBiclopsPoint2DArtVelocity.cpp
@@ -38,7 +38,7 @@
* \example servoBiclopsPoint2DArtVelocity.cpp
*
* Example of eye-in-hand control law. We control here a real robot, the
- * biclops robot (pan-tilt head provided by Traclabs). The velocity is computed
+ * Biclops robot (pan-tilt head provided by Traclabs). The velocity is computed
* in articular. The visual feature is the center of gravity of a point.
*/
@@ -90,7 +90,7 @@ SYNOPSIS\n\
fprintf(stdout, "\n\
OPTIONS: Default\n\
-c %s\n\
- Sets the biclops robot configuration file.\n",
+ Sets the Biclops robot configuration file.\n",
conf.c_str());
if (badparam) {
@@ -338,7 +338,7 @@ int main(int argc, const char **argv)
#else
int main()
{
- std::cout << "You do not have an biclops PT robot connected to your computer..." << std::endl;
+ std::cout << "You do not have an Biclops PT robot connected to your computer..." << std::endl;
return EXIT_SUCCESS;
}
#endif
diff --git a/example/servo-pioneer/servoPioneerPanSegment3D.cpp b/example/servo-pioneer/servoPioneerPanSegment3D.cpp
index d00ab51c5a..e85c553c72 100644
--- a/example/servo-pioneer/servoPioneerPanSegment3D.cpp
+++ b/example/servo-pioneer/servoPioneerPanSegment3D.cpp
@@ -103,7 +103,7 @@ int main(int argc, char **argv)
double qm_pan = 0; // Measured pan position (tilt is not handled in that example)
#ifdef USE_REAL_ROBOT
- // Initialize the biclops head
+ // Initialize the Biclops head
vpRobotBiclops biclops("/usr/share/BiclopsDefault.cfg");
biclops.setDenavitHartenbergModel(vpBiclops::DH1);
@@ -158,7 +158,7 @@ int main(int argc, char **argv)
#endif
vpPioneerPan robot_pan; // Generic robot that computes the velocities for
- // the pioneer and the biclops head
+ // the pioneer and the Biclops head
// Camera parameters. In this experiment we don't need a precise
// calibration of the camera
@@ -379,7 +379,7 @@ int main(int argc, char **argv)
std::cout << "Send velocity to the pionner: " << v_pioneer[0] << " m/s " << vpMath::deg(v_pioneer[1])
<< " deg/s" << std::endl;
- std::cout << "Send velocity to the biclops head: " << vpMath::deg(v_biclops[0]) << " deg/s" << std::endl;
+ std::cout << "Send velocity to the Biclops head: " << vpMath::deg(v_biclops[0]) << " deg/s" << std::endl;
pioneer.setVelocity(vpRobot::REFERENCE_FRAME, v_pioneer);
biclops.setVelocity(vpRobot::ARTICULAR_FRAME, v_biclops);
diff --git a/modules/core/include/visp3/core/vpColVector.h b/modules/core/include/visp3/core/vpColVector.h
index 7643bdd007..0fb123573b 100644
--- a/modules/core/include/visp3/core/vpColVector.h
+++ b/modules/core/include/visp3/core/vpColVector.h
@@ -485,40 +485,6 @@ class VISP_EXPORT vpColVector : public vpArray2D
*/
void insert(unsigned int i, const vpColVector &v);
- /*!
- * Insert a column vector.
- * \param i : Index of the first element to introduce. This index starts from 0.
- * \param v : Column vector to insert.
- *
- * The following example shows how to use this function:
- * \code
- * #include
- *
- * int main()
- * {
- * vpColVector v(4);
- * for (unsigned int i=0; i < v.size(); i++)
- * v[i] = i;
- * std::cout << "v: " << v.t() << std::endl;
- *
- * vpColVector w(2);
- * for (unsigned int i=0; i < w.size(); i++)
- * w[i] = i+10;
- * std::cout << "w: " << w.t() << std::endl;
- *
- * v.insert(w, 1);
- * std::cout << "v: " << v.t() << std::endl;
- * }
- * \endcode
- * It produces the following output:
- * \code
- * v: 0 1 2 3
- * w: 10 11
- * v: 0 10 11 3
- * \endcode
- */
- void insert(const vpColVector &v, unsigned int i);
-
/*!
* Print using Maple syntax, to copy/paste in Maple later.
*
@@ -1376,7 +1342,7 @@ class VISP_EXPORT vpColVector : public vpArray2D
* Retrieve a vpColVector object from a JSON representation.
*
* @param j : JSON representation to convert.
- * @param me : Converted object.
+ * @param v : Converted object.
*/
friend void from_json(const nlohmann::json &j, vpColVector &v);
#endif
@@ -1387,11 +1353,48 @@ class VISP_EXPORT vpColVector : public vpArray2D
*/
//@{
/*!
- * \deprecated Provided only for compat with previous releases.
- * This function does nothing.
+ * \deprecated Provided only for compat with previous releases.
+ * This function does nothing.
*/
vp_deprecated void init() { }
+ /*!
+ * \deprecated Provided only for compat with previous releases. Use rather
+ * insert(unsigned int i, const vpColVector &v)
+ *
+ * Insert a column vector.
+ * \param i : Index of the first element to introduce. This index starts from 0.
+ * \param v : Column vector to insert.
+ *
+ * The following example shows how to use this function:
+ * \code
+ * #include
+ *
+ * int main()
+ * {
+ * vpColVector v(4);
+ * for (unsigned int i=0; i < v.size(); i++)
+ * v[i] = i;
+ * std::cout << "v: " << v.t() << std::endl;
+ *
+ * vpColVector w(2);
+ * for (unsigned int i=0; i < w.size(); i++)
+ * w[i] = i+10;
+ * std::cout << "w: " << w.t() << std::endl;
+ *
+ * v.insert(w, 1);
+ * std::cout << "v: " << v.t() << std::endl;
+ * }
+ * \endcode
+ * It produces the following output:
+ * \code
+ * v: 0 1 2 3
+ * w: 10 11
+ * v: 0 10 11 3
+ * \endcode
+ */
+ vp_deprecated void insert(const vpColVector &v, unsigned int i);
+
/*!
* \deprecated You should rather use extract().
*/
@@ -1400,11 +1403,6 @@ class VISP_EXPORT vpColVector : public vpArray2D
return vpColVector(*this, first_row - 1, last_row - first_row + 1);
}
- /*!
- * \deprecated You should rather use eye()
- */
- vp_deprecated void setIdentity(const double &val = 1.0);
-
/*!
* \deprecated You should rather use stack(const vpColVector &)
*/
diff --git a/modules/core/include/visp3/core/vpHomogeneousMatrix.h b/modules/core/include/visp3/core/vpHomogeneousMatrix.h
index 2468493586..78fe4321c3 100644
--- a/modules/core/include/visp3/core/vpHomogeneousMatrix.h
+++ b/modules/core/include/visp3/core/vpHomogeneousMatrix.h
@@ -255,11 +255,88 @@ class VISP_EXPORT vpHomogeneousMatrix : public vpArray2D
void extract(vpTranslationVector &t) const;
void extract(vpQuaternionVector &q) const;
- // Load an homogeneous matrix from a file
+ /*!
+ * Read an homogeneous matrix from an input file stream. The
+ * homogeneous matrix is considered as a 4 by 4 matrix.
+ *
+ * \param f : Input file stream.
+ *
+ * The code below shows how to get an homogeneous matrix from a file.
+ *
+ * \code
+ * vpHomogeneousMatrix M;
+ *
+ * std::ifstream f("homogeneous.dat");
+ * M.load(f);
+ * \endcode
+ *
+ * \sa load(const std::string &), save(std::ifstream &)
+ */
void load(std::ifstream &f);
- // Save an homogeneous matrix in a file
+
+ /*!
+ * Read an homogeneous matrix from an input file. The
+ * homogeneous matrix is considered as a 4 by 4 matrix.
+ *
+ * \param filename : Input file name.
+ *
+ * The code below shows how to get an homogeneous matrix from a file.
+ *
+ * \code
+ * vpHomogeneousMatrix M;
+ *
+ * M.load("homogeneous.dat");
+ * \endcode
+ *
+ * \sa load(std::ifstream &), save(const std::string &)
+ */
+ void load(const std::string &filename);
+
+ /*!
+ * Save an homogeneous matrix in an output file stream.
+ *
+ * \param f : Output file stream. The homogeneous matrix is saved as a 4 by 4 matrix.
+ *
+ * The code below shows how to save an homogeneous matrix in a file.
+ *
+ * \code
+ * // Construct an homogeneous matrix
+ * vpTranslationVector t(1,2,3);
+ * vpRxyzVector r(M_PI, 0, -M_PI/4.);
+ * vpRotationMatrix R(r);
+ * vpHomogeneousMatrix M(t, R);
+ *
+ * // Save the content of the matrix in "homogeneous.dat"
+ * std::ofstream f("homogeneous.dat");
+ * M.save(f);
+ * \endcode
+ *
+ * \sa save(const std::string &), load(std::ifstream &)
+ */
void save(std::ofstream &f) const;
+ /*!
+ * Save an homogeneous matrix in a file.
+ *
+ * \param filename : Output file name. The homogeneous matrix is saved as a 4 by 4 matrix.
+ *
+ * The code below shows how to save an homogeneous matrix in a file.
+ *
+ * \code
+ * // Construct an homogeneous matrix
+ * vpTranslationVector t(1,2,3);
+ * vpRxyzVector r(M_PI, 0, -M_PI/4.);
+ * vpRotationMatrix R(r);
+ * vpHomogeneousMatrix M(t, R);
+ *
+ * // Save the content of the matrix in "homogeneous.dat"
+ * M.save("homogeneous.dat");
+ * \endcode
+ *
+ * \sa save(std::ofstream &), load(const std::string &)
+ */
+ void save(const std::string &filename) const;
+
vpHomogeneousMatrix &operator=(const vpHomogeneousMatrix &M);
vpHomogeneousMatrix operator*(const vpHomogeneousMatrix &M) const;
vpHomogeneousMatrix &operator*=(const vpHomogeneousMatrix &M);
diff --git a/modules/core/src/math/matrix/vpColVector.cpp b/modules/core/src/math/matrix/vpColVector.cpp
index 9c5a3d2bfe..7a485eba4a 100644
--- a/modules/core/src/math/matrix/vpColVector.cpp
+++ b/modules/core/src/math/matrix/vpColVector.cpp
@@ -718,10 +718,6 @@ void vpColVector::insert(unsigned int i, const vpColVector &v)
memcpy(data + i, v.data, sizeof(double) * v.rowNum);
}
}
-void vpColVector::insert(const vpColVector &v, unsigned int i)
-{
- insert(i, v);
-}
int vpColVector::print(std::ostream &s, unsigned int length, char const *intro) const
{
@@ -905,6 +901,11 @@ std::ostream &vpColVector::matlabPrint(std::ostream &os) const
#if defined(VISP_BUILD_DEPRECATED_FUNCTIONS)
+void vpColVector::insert(const vpColVector &v, unsigned int i)
+{
+ insert(i, v);
+}
+
void vpColVector::insert(const vpColVector &v, unsigned int r, unsigned int c)
{
(void)c;
diff --git a/modules/core/src/math/transformation/vpHomogeneousMatrix.cpp b/modules/core/src/math/transformation/vpHomogeneousMatrix.cpp
index 3a52613103..061a36c035 100644
--- a/modules/core/src/math/transformation/vpHomogeneousMatrix.cpp
+++ b/modules/core/src/math/transformation/vpHomogeneousMatrix.cpp
@@ -926,28 +926,6 @@ void vpHomogeneousMatrix::eye()
*/
void vpHomogeneousMatrix::inverse(vpHomogeneousMatrix &M) const { M = inverse(); }
-/*!
- Write an homogeneous matrix in an output file stream.
-
- \param f : Output file stream. The homogeneous matrix is saved as a
- 4 by 4 matrix.
-
- The code below shows how to save an homogeneous matrix in a file.
-
- \code
- // construct an homogeneous matrix
- vpTranslationVector t(1,2,3);
- vpRxyzVector r(M_PI, 0, -M_PI/4.);
- vpRotationMatrix R(r);
- vpHomogeneousMatrix M(t, R);
-
- // Save the content of the matrix in "homogeneous.dat"
- std::ofstream f("homogeneous.dat");
- M.save(f);
- \endcode
-
- \sa load()
-*/
void vpHomogeneousMatrix::save(std::ofstream &f) const
{
if (!f.fail()) {
@@ -958,24 +936,14 @@ void vpHomogeneousMatrix::save(std::ofstream &f) const
}
}
-/*!
-
- Read an homogeneous matrix from an input file stream. The
- homogeneous matrix is considered as a 4 by 4 matrix.
-
- \param f : Input file stream.
-
- The code below shows how to get an homogeneous matrix from a file.
-
- \code
- vpHomogeneousMatrix M;
-
- std::ifstream f("homogeneous.dat");
- M.load(f);
- \endcode
+void vpHomogeneousMatrix::save(const std::string &filename) const
+{
+ std::ofstream f;
+ f.open(filename.c_str());
+ save(f);
+ f.close();
+}
- \sa save()
-*/
void vpHomogeneousMatrix::load(std::ifstream &f)
{
if (!f.fail()) {
@@ -990,6 +958,14 @@ void vpHomogeneousMatrix::load(std::ifstream &f)
}
}
+void vpHomogeneousMatrix::load(const std::string &filename)
+{
+ std::ifstream f;
+ f.open(filename.c_str());
+ load(f);
+ f.close();
+}
+
/*!
Perform orthogonalization of the rotation part of the homogeneous transformation.
*/
diff --git a/modules/core/src/tracking/moments/vpMomentObject.cpp b/modules/core/src/tracking/moments/vpMomentObject.cpp
index 83974dc4d2..d206132df8 100644
--- a/modules/core/src/tracking/moments/vpMomentObject.cpp
+++ b/modules/core/src/tracking/moments/vpMomentObject.cpp
@@ -349,7 +349,7 @@ void vpMomentObject::fromImage(const vpImage &image, unsigned cha
}
#endif
- // Normalisation equivalent to sampling interval/pixel size delX x delY
+ // Normalization equivalent to sampling interval/pixel size delX x delY
double norm_factor = 1. / (cam.get_px() * cam.get_py());
for (std::vector::iterator it = values.begin(); it != values.end(); ++it) {
*it = (*it) * norm_factor;
@@ -441,7 +441,7 @@ void vpMomentObject::fromImage(const vpImage &image, const vpCame
}
if (normalize_with_pix_size) {
- // Normalisation equivalent to sampling interval/pixel size delX x delY
+ // Normalization equivalent to sampling interval/pixel size delX x delY
double norm_factor = 1. / (cam.get_px() * cam.get_py());
for (std::vector::iterator it = values.begin(); it != values.end(); ++it) {
*it = (*it) * norm_factor;
diff --git a/modules/imgproc/doc/module.dox b/modules/imgproc/doc/module.dox
index e5f710d2e0..70fb994995 100644
--- a/modules/imgproc/doc/module.dox
+++ b/modules/imgproc/doc/module.dox
@@ -72,8 +72,3 @@
\defgroup group_hough_transform Hough-transform-based image detection
Detection of image features based on the Hough transform.
*/
-/*!
- \ingroup module_imgproc
- \defgroup group_image_median Image median
- Image median computation and additional functionalities using image median for Canny edges detection threshold computation.
-*/
\ No newline at end of file
diff --git a/modules/robot/include/visp3/robot/vpAfma4.h b/modules/robot/include/visp3/robot/vpAfma4.h
index 12572577fd..b857c146b7 100644
--- a/modules/robot/include/visp3/robot/vpAfma4.h
+++ b/modules/robot/include/visp3/robot/vpAfma4.h
@@ -137,7 +137,7 @@ class VISP_EXPORT vpAfma4
static const unsigned int njoint; ///< Number of joint.
protected:
- // Denavit Hartenberg parameters
+ // Denavit-Hartenberg parameters
double _a1; // distance along x2
double _d3; // distance along z2
double _d4; // distance along z3
diff --git a/modules/robot/include/visp3/robot/vpBiclops.h b/modules/robot/include/visp3/robot/vpBiclops.h
index 7ae339b8d5..e0af4beac1 100644
--- a/modules/robot/include/visp3/robot/vpBiclops.h
+++ b/modules/robot/include/visp3/robot/vpBiclops.h
@@ -34,22 +34,13 @@
#ifndef _vpBiclops_h_
#define _vpBiclops_h_
-/* ----------------------------------------------------------------------- */
-/* --- INCLUDES -------------------------------------------------------- */
-/* --------------------------------------------------------------------- */
+#include
-/* --- ViSP --- */
#include
-#include
#include
#include
-#include
-#include
#include
-/* --- GENERAL --- */
-#include
-
/*!
* \class vpBiclops
*
@@ -58,7 +49,7 @@
* \brief Jacobian, geometric model functionalities... for Biclops, pan, tilt
* head.
*
- * Two different Denavit Hartenberg representations of the robot are
+ * Two different Denavit-Hartenberg representations of the robot are
* implemented. As mentioned in vpBiclops::DenavitHartenbergModel they differ
* in the orientation of the tilt axis. Use setDenavitHartenbergModel() to
* select the representation.
@@ -71,7 +62,7 @@ class VISP_EXPORT vpBiclops
{
public:
/*!
- * Two different Denavit Hartenberg representations of the robot are
+ * Two different Denavit-Hartenberg representations of the robot are
* implemented. As you can see in the next image, they differ in the orientation of the tilt axis.
*
* \image html img-biclops-frames.jpg Biclops PT models
@@ -100,27 +91,26 @@ class VISP_EXPORT vpBiclops
*/
typedef enum
{
- DH1, //!< First Denavit Hartenberg representation.
- DH2 //!< Second Denavit Hartenberg representation.
+ DH1, //!< First Denavit-Hartenberg representation.
+ DH2 //!< Second Denavit-Hartenberg representation.
} DenavitHartenbergModel;
-public: /* Constants */
+public:
static const unsigned int ndof; //!< Number of dof
- /* Geometric model */
- static const float h; //!< Vertical distance between camera and pan/tilt end-effector (see init())
-
- static const float panJointLimit; //!< Pan +/- joint limit
- static const float tiltJointLimit; //!< Tilt +/- joint limit
- static const float speedLimit; //!< Pan/tilt +/- max joint velocity
+ // Geometric model
+ static const float h; //
#include
-#include "Biclops.h" // Contrib for Biclops robot
-#include "PMDUtils.h" // Contrib for Biclops robot
+#include // Contrib for Biclops sdk
+#include // Contrib for Biclops sdk
#if defined(_WIN32)
class VISP_EXPORT Biclops; // needed for dll creation
@@ -59,37 +54,35 @@ class VISP_EXPORT Biclops; // needed for dll creation
/* ------------------------------------------------------------------------ */
/*!
-
- \class vpRobotBiclopsController
-
- \ingroup group_robot_real_ptu
-
- \brief Interface to Biclops, pan, tilt, verge head for computer vision
- applications.
-
- See http://www.traclabs.com/tracbiclops.htm for more details.
-
- This class uses libraries libBiclops.so, libUtils.so and libPMD.so and
- includes Biclops.h and PMDUtils.h provided by Traclabs.
-
-*/
+ * \class vpRobotBiclopsController
+ *
+ * \ingroup group_robot_real_ptu
+ *
+ * \brief Interface to Biclops, pan, tilt, verge head for computer vision
+ * applications.
+ *
+ * See http://www.traclabs.com/tracbiclops.htm for more details.
+ *
+ * This class uses libraries libBiclops.so, libUtils.so and libPMD.so and
+ * includes Biclops.h and PMDUtils.h provided by Traclabs.
+ */
class VISP_EXPORT vpRobotBiclopsController
{
public:
/*!
- * Biclops head controller status.
+ * Biclops controller status
*/
typedef enum
{
- STOP, /*!< Have to stop the robot. */
- SPEED /*!< Can send the desired speed. */
+ STOP, //!< Have to stop the robot.
+ SPEED //!< Can send the desired speed.
} vpControllerStatusType;
public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/*!
- * Biclops head shared memory structure.
- */
+ * Biclops head shared memory structure.
+ */
typedef struct
{
vpControllerStatusType status[2];
@@ -103,19 +96,19 @@ class VISP_EXPORT vpRobotBiclopsController
// private:
//#ifndef DOXYGEN_SHOULD_SKIP_THIS
// vpRobotBiclopsController(const vpRobotBiclopsController &)
- // : biclops(), m_axisMask(0), m_panAxis(NULL), m_tiltAxis(NULL),
- // m_vergeAxis(NULL),
- // m_panProfile(), m_tiltProfile(), m_vergeProfile(), shm(),
- // m_stopControllerThread(false)
- // {
- // throw vpException(vpException::functionNotImplementedError, "Not
- // implemented!");
- // }
- // vpRobotBiclopsController &operator=(const vpRobotBiclopsController &){
- // throw vpException(vpException::functionNotImplementedError, "Not
- // implemented!"); return *this;
- // }
- //#endif
+ // : m_biclops(), m_axisMask(0), m_panAxis(NULL), m_tiltAxis(NULL),
+ // m_vergeAxis(NULL),
+ // m_panProfile(), m_tiltProfile(), m_vergeProfile(), m_shm(),
+ // m_stopControllerThread(false)
+ // {
+ // throw vpException(vpException::functionNotImplementedError, "Not
+ // implemented!");
+ // }
+ // vpRobotBiclopsController &operator=(const vpRobotBiclopsController &){
+ // throw vpException(vpException::functionNotImplementedError, "Not
+ // implemented!"); return *this;
+ // }
+ //#endif
public:
/*!
@@ -228,7 +221,8 @@ class VISP_EXPORT vpRobotBiclopsController
bool isStopRequested() { return m_stopControllerThread; }
/*!
- * Send a control thread stop request.
+ * Request to stop the control thread.
+ * @param stop : When true, request to stop the control thread.
*/
void stopRequest(bool stop) { m_stopControllerThread = stop; }
diff --git a/modules/robot/src/real-robot/biclops/vpBiclops.cpp b/modules/robot/src/real-robot/biclops/vpBiclops.cpp
index 617ed32018..c61b03a148 100644
--- a/modules/robot/src/real-robot/biclops/vpBiclops.cpp
+++ b/modules/robot/src/real-robot/biclops/vpBiclops.cpp
@@ -31,27 +31,17 @@
* Interface for the Biclops robot.
*/
-/* ----------------------------------------------------------------------- */
-/* --- INCLUDE ----------------------------------------------------------- */
-/* ----------------------------------------------------------------------- */
-
#include
#include
#include
#include
#include
-/* ------------------------------------------------------------------------ */
-/* --- COMPUTE ------------------------------------------------------------ */
-/* ------------------------------------------------------------------------ */
-const unsigned int vpBiclops::ndof = 2; /*m_configfile = filename; }
+void vpRobotBiclops::setConfigFile(const std::string &filename) { m_configfile = filename; }
void vpRobotBiclops::init()
{
// test if the config file exists
FILE *fd = fopen(m_configfile.c_str(), "r");
if (fd == NULL) {
- vpCERROR << "Cannot open biclops config file: " << m_configfile << std::endl;
+ vpCERROR << "Cannot open Biclops config file: " << m_configfile << std::endl;
throw vpRobotException(vpRobotException::constructionError, "Cannot open connection with biclops");
}
fclose(fd);
@@ -322,7 +317,7 @@ void *vpRobotBiclops::vpRobotBiclopsSpeedControlLoop(void *arg)
else {
// Axis not in joint limit
- // Update the desired speed
+ // Update the desired speed
q_dot[i] = shm.q_dot[i];
shm.status[i] = vpRobotBiclopsController::SPEED;
enable_limit[i] = true; // Joint limit detection must be active
@@ -451,7 +446,7 @@ void vpRobotBiclops::get_cMe(vpHomogeneousMatrix &cMe) const { cMe = vpBiclops::
void vpRobotBiclops::get_eJe(vpMatrix &eJe)
{
vpColVector q(2);
- getPosition(vpRobot::ARTICULAR_FRAME, q);
+ getPosition(vpRobot::JOINT_STATE, q);
vpBiclops::get_eJe(q, eJe);
}
@@ -459,7 +454,7 @@ void vpRobotBiclops::get_eJe(vpMatrix &eJe)
void vpRobotBiclops::get_fJe(vpMatrix &fJe)
{
vpColVector q(2);
- getPosition(vpRobot::ARTICULAR_FRAME, q);
+ getPosition(vpRobot::JOINT_STATE, q);
vpBiclops::get_fJe(q, fJe);
}
@@ -502,7 +497,7 @@ void vpRobotBiclops::setPosition(const vpRobot::vpControlFrameType frame, const
throw vpRobotException(vpRobotException::wrongStateError, "Cannot move the robot in end-effector frame: "
"not implemented");
break;
- case vpRobot::ARTICULAR_FRAME:
+ case vpRobot::JOINT_STATE:
break;
}
@@ -532,11 +527,11 @@ void vpRobotBiclops::setPosition(const vpRobot::vpControlFrameType frame, const
void vpRobotBiclops::setPosition(const std::string &filename)
{
vpColVector q;
- if (readPositionFile(filename, q) == false) {
- vpERROR_TRACE("Cannot get biclops position from file");
+ if (readPositionFile(filename.c_str(), q) == false) {
+ vpERROR_TRACE("Cannot get Biclops position from file");
throw vpRobotException(vpRobotException::readingParametersError, "Cannot get Biclops position from file");
}
- setPosition(vpRobot::ARTICULAR_FRAME, q);
+ setPosition(vpRobot::JOINT_STATE, q);
}
void vpRobotBiclops::getPosition(const vpRobot::vpControlFrameType frame, vpColVector &q)
@@ -558,7 +553,7 @@ void vpRobotBiclops::getPosition(const vpRobot::vpControlFrameType frame, vpColV
throw vpRobotException(vpRobotException::wrongStateError, "Cannot get position in end-effector frame: "
"not implemented");
break;
- case vpRobot::ARTICULAR_FRAME:
+ case vpRobot::JOINT_STATE:
break;
}
@@ -614,18 +609,14 @@ void vpRobotBiclops::setVelocity(const vpRobot::vpControlFrameType frame, const
switch (frame) {
case vpRobot::CAMERA_FRAME: {
- vpERROR_TRACE("Cannot send a velocity to the robot "
- "in the camera frame: "
- "functionality not implemented");
throw vpRobotException(vpRobotException::wrongStateError, "Cannot send a velocity to the robot "
"in the camera frame:"
"functionality not implemented");
}
- case vpRobot::ARTICULAR_FRAME: {
+ case vpRobot::JOINT_STATE: {
if (q_dot.getRows() != 2) {
- vpERROR_TRACE("Bad dimension fo speed vector in articular frame");
throw vpRobotException(vpRobotException::wrongStateError, "Bad dimension for speed vector "
- "in articular frame");
+ "in joint state");
}
break;
}
@@ -650,9 +641,9 @@ void vpRobotBiclops::setVelocity(const vpRobot::vpControlFrameType frame, const
}
vpDEBUG_TRACE(12, "Velocity limitation.");
- bool norm = false; // Flag to indicate when velocities need to be nomalized
+ bool norm = false; // Flag to indicate when velocities need to be normalized
- // Saturate articular speed
+ // Saturate joint speed
double max = vpBiclops::speedLimit;
vpColVector q_dot_sat(vpBiclops::ndof);
@@ -669,7 +660,7 @@ void vpRobotBiclops::setVelocity(const vpRobot::vpControlFrameType frame, const
i);
}
}
- // Rotations velocities normalisation
+ // Rotations velocities normalization
if (norm == true) {
max = vpBiclops::speedLimit / max;
q_dot_sat = q_dot * max;
@@ -695,10 +686,6 @@ void vpRobotBiclops::setVelocity(const vpRobot::vpControlFrameType frame, const
return;
}
-/* ------------------------------------------------------------------------- */
-/* --- GET ----------------------------------------------------------------- */
-/* ------------------------------------------------------------------------- */
-
void vpRobotBiclops::getVelocity(const vpRobot::vpControlFrameType frame, vpColVector &q_dot)
{
switch (frame) {
@@ -718,7 +705,7 @@ void vpRobotBiclops::getVelocity(const vpRobot::vpControlFrameType frame, vpColV
throw vpRobotException(vpRobotException::wrongStateError, "Cannot get position in end-effector frame: "
"not implemented");
break;
- case vpRobot::ARTICULAR_FRAME:
+ case vpRobot::JOINT_STATE:
break;
}
@@ -832,10 +819,10 @@ void vpRobotBiclops::getDisplacement(vpRobot::vpControlFrameType frame, vpColVec
{
vpColVector q_current; // current position
- getPosition(vpRobot::ARTICULAR_FRAME, q_current);
+ getPosition(vpRobot::JOINT_STATE, q_current);
switch (frame) {
- case vpRobot::ARTICULAR_FRAME:
+ case vpRobot::JOINT_STATE:
d.resize(vpBiclops::ndof);
d = q_current - m_q_previous;
break;
diff --git a/modules/robot/src/real-robot/biclops/vpRobotBiclopsController.cpp b/modules/robot/src/real-robot/biclops/vpRobotBiclopsController.cpp
index b0b2fcf36b..845ddeb8e5 100644
--- a/modules/robot/src/real-robot/biclops/vpRobotBiclopsController.cpp
+++ b/modules/robot/src/real-robot/biclops/vpRobotBiclopsController.cpp
@@ -51,16 +51,11 @@
#include
-/* ----------------------------------------------------------------------- */
-/* --- CONSTRUCTOR ------------------------------------------------------ */
-/* ---------------------------------------------------------------------- */
-
vpRobotBiclopsController::vpRobotBiclopsController()
: m_biclops(), m_axisMask(0), m_panAxis(NULL), m_tiltAxis(NULL), m_vergeAxis(NULL), m_panProfile(), m_tiltProfile(),
m_vergeProfile(), m_shm(), m_stopControllerThread(false)
{
- m_axisMask = Biclops::PanMask + Biclops::TiltMask
- /*+ Biclops::VergeMask*/; // add this if you want verge.
+ m_axisMask = Biclops::PanMask + Biclops::TiltMask; //+ Biclops::VergeMask*/; // add this if you want verge.
// Set Debug level depending on how much info you want to see about
// the inner workings of the API. Level 2 is highest with 0 being
@@ -332,10 +327,9 @@ vpColVector vpRobotBiclopsController::getActualVelocity()
void vpRobotBiclopsController::writeShm(shmType &shm)
{
for (unsigned int i = 0; i < vpBiclops::ndof; i++) {
- vpDEBUG_TRACE(13, "q_dot[%d]=%f", i, shm.q_dot[i]);
+ vpDEBUG_TRACE(13, "q_dot[%d]=%f", i, m_shm.q_dot[i]);
}
memcpy(&this->m_shm, &shm, sizeof(shmType));
- // this->shm = shm_;
for (unsigned int i = 0; i < vpBiclops::ndof; i++) {
vpDEBUG_TRACE(13, "shm.q_dot[%d]=%f", i, m_shm.q_dot[i]);
}
@@ -349,7 +343,6 @@ vpRobotBiclopsController::shmType vpRobotBiclopsController::readShm()
vpDEBUG_TRACE(13, "shm.q_dot[%d]=%f", i, m_shm.q_dot[i]);
}
memcpy(&tmp_shm, &this->m_shm, sizeof(shmType));
- // tmp_shm = shm;
for (unsigned int i = 0; i < vpBiclops::ndof; i++) {
vpDEBUG_TRACE(13, "tmp_shm.q_dot[%d]=%f", i, tmp_shm.q_dot[i]);
}
diff --git a/modules/robot/src/real-robot/ptu46/vpRobotPtu46.cpp b/modules/robot/src/real-robot/ptu46/vpRobotPtu46.cpp
index 586cc70dc0..4bbe8acef2 100644
--- a/modules/robot/src/real-robot/ptu46/vpRobotPtu46.cpp
+++ b/modules/robot/src/real-robot/ptu46/vpRobotPtu46.cpp
@@ -73,14 +73,16 @@ vpRobotPtu46::vpRobotPtu46(const std::string &device) : vpRobot()
vpDEBUG_TRACE(12, "Open communication with Ptu-46.");
try {
init();
- } catch (...) {
+ }
+ catch (...) {
vpERROR_TRACE("Error caught");
throw;
}
try {
setRobotState(vpRobot::STATE_STOP);
- } catch (...) {
+ }
+ catch (...) {
vpERROR_TRACE("Error caught");
throw;
}
@@ -158,7 +160,8 @@ vpRobot::vpRobotStateType vpRobotPtu46::setRobotState(vpRobot::vpRobotStateType
if (vpRobot::STATE_VELOCITY_CONTROL == getRobotState()) {
vpDEBUG_TRACE(12, "Passage vitesse -> position.");
ptu.stop();
- } else {
+ }
+ else {
vpDEBUG_TRACE(1, "Passage arret -> position.");
}
break;
@@ -234,7 +237,8 @@ void vpRobotPtu46::get_eJe(vpMatrix &eJe)
try {
vpPtu46::get_eJe(q, eJe);
- } catch (...) {
+ }
+ catch (...) {
vpERROR_TRACE("catch exception ");
throw;
}
@@ -254,7 +258,8 @@ void vpRobotPtu46::get_fJe(vpMatrix &fJe)
try {
vpPtu46::get_fJe(q, fJe);
- } catch (...) {
+ }
+ catch (...) {
vpERROR_TRACE("Error caught");
throw;
}
@@ -359,7 +364,8 @@ void vpRobotPtu46::setPosition(const vpRobot::vpControlFrameType frame, const do
q[1] = q2;
setPosition(frame, q);
- } catch (...) {
+ }
+ catch (...) {
vpERROR_TRACE("Error caught");
throw;
}
@@ -526,7 +532,7 @@ void vpRobotPtu46::setVelocity(const vpRobot::vpControlFrameType frame, const vp
case vpRobot::ARTICULAR_FRAME:
case vpRobot::CAMERA_FRAME: {
double max = this->maxRotationVelocity;
- bool norm = false; // Flag to indicate when velocities need to be nomalized
+ bool norm = false; // Flag to indicate when velocities need to be normalized
for (unsigned int i = 0; i < 2; ++i) // rx and ry of the camera
{
if (fabs(v[i]) > max) {
@@ -537,7 +543,7 @@ void vpRobotPtu46::setVelocity(const vpRobot::vpControlFrameType frame, const vp
i);
}
}
- // Rotations velocities normalisation
+ // Rotations velocities normalization
if (norm == true) {
max = this->maxRotationVelocity / max;
for (unsigned int i = 0; i < 2; ++i)
@@ -766,5 +772,5 @@ void vpRobotPtu46::getDisplacement(vpRobot::vpControlFrameType frame, vpColVecto
#elif !defined(VISP_BUILD_SHARED_LIBS)
// Work around to avoid warning: libvisp_robot.a(vpRobotPtu46.cpp.o) has no
// symbols
-void dummy_vpRobotPtu46(){};
+void dummy_vpRobotPtu46() { };
#endif
diff --git a/modules/robot/src/real-robot/viper/vpViper.cpp b/modules/robot/src/real-robot/viper/vpViper.cpp
index 84c7f2f6fd..0019e7fc1e 100644
--- a/modules/robot/src/real-robot/viper/vpViper.cpp
+++ b/modules/robot/src/real-robot/viper/vpViper.cpp
@@ -64,7 +64,7 @@ vpViper::vpViper()
{
// Default values are initialized
- // Denavit Hartenberg parameters
+ // Denavit-Hartenberg parameters
a1 = 0.075;
a2 = 0.365;
a3 = 0.090;
diff --git a/modules/robot/src/real-robot/viper/vpViper650.cpp b/modules/robot/src/real-robot/viper/vpViper650.cpp
index 48869f951b..4557434552 100644
--- a/modules/robot/src/real-robot/viper/vpViper650.cpp
+++ b/modules/robot/src/real-robot/viper/vpViper650.cpp
@@ -93,13 +93,13 @@ const vpViper650::vpToolType vpViper650::defaultTool = vpViper650::TOOL_PTGREY_F
/*!
Default constructor.
- Sets the specific parameters like the Denavit Hartenberg parameters.
+ Sets the specific parameters like the Denavit-Hartenberg parameters.
*/
vpViper650::vpViper650()
: tool_current(vpViper650::defaultTool), projModel(vpCameraParameters::perspectiveProjWithoutDistortion)
{
- // Denavit Hartenberg parameters
+ // Denavit-Hartenberg parameters
a1 = 0.075;
a2 = 0.270;
a3 = 0.090;
diff --git a/modules/robot/src/real-robot/viper/vpViper850.cpp b/modules/robot/src/real-robot/viper/vpViper850.cpp
index 6d1b1568d2..b0d612fe16 100644
--- a/modules/robot/src/real-robot/viper/vpViper850.cpp
+++ b/modules/robot/src/real-robot/viper/vpViper850.cpp
@@ -93,14 +93,14 @@ const vpViper850::vpToolType vpViper850::defaultTool = vpViper850::TOOL_PTGREY_F
/*!
Default constructor.
- Sets the specific parameters like the Denavit Hartenberg parameters.
+ Sets the specific parameters like the Denavit-Hartenberg parameters.
*/
vpViper850::vpViper850()
: tool_current(vpViper850::defaultTool), projModel(vpCameraParameters::perspectiveProjWithoutDistortion)
{
- // Denavit Hartenberg parameters
+ // Denavit-Hartenberg parameters
a1 = 0.075;
a2 = 0.365;
a3 = 0.090;
diff --git a/modules/robot/src/wireframe-simulator/vpArit.cpp b/modules/robot/src/wireframe-simulator/vpArit.cpp
index 6fb47be47d..4e1455bb93 100644
--- a/modules/robot/src/wireframe-simulator/vpArit.cpp
+++ b/modules/robot/src/wireframe-simulator/vpArit.cpp
@@ -339,7 +339,7 @@ void cosin_to_lut(Index level, float *coslut, float *sinlut)
/*
* La procedure "norm_vector" normalise le vecteur.
- * Si la norme est nulle la normalisation n'est pas effectuee.
+ * Si la norme est nulle la normalization n'est pas effectuee.
* Entree :
* vp Le vecteur a norme.
* Sortie :
diff --git a/modules/tracker/mbt/src/vpMbGenericTracker.cpp b/modules/tracker/mbt/src/vpMbGenericTracker.cpp
index 47b340b887..89fc308e5a 100644
--- a/modules/tracker/mbt/src/vpMbGenericTracker.cpp
+++ b/modules/tracker/mbt/src/vpMbGenericTracker.cpp
@@ -5438,17 +5438,17 @@ void vpMbGenericTracker::track(std::mapm_trackerType & (EDGE_TRACKER |
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- KLT_TRACKER |
+ KLT_TRACKER |
#endif
- DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
+ DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
throw vpException(vpException::fatalError, "Bad tracker type: %d", tracker->m_trackerType);
}
if (tracker->m_trackerType & (EDGE_TRACKER
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- | KLT_TRACKER
+ | KLT_TRACKER
#endif
- ) &&
+ ) &&
mapOfImages[it->first] == NULL) {
throw vpException(vpException::fatalError, "Image pointer is NULL!");
}
@@ -5515,25 +5515,25 @@ void vpMbGenericTracker::track(std::map *> &m
if ((tracker->m_trackerType & (EDGE_TRACKER |
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- KLT_TRACKER |
+ KLT_TRACKER |
#endif
- DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
+ DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
throw vpException(vpException::fatalError, "Bad tracker type: %d", tracker->m_trackerType);
}
if (tracker->m_trackerType & (EDGE_TRACKER
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- | KLT_TRACKER
+ | KLT_TRACKER
#endif
- ) &&
+ ) &&
mapOfImages[it->first] == NULL) {
throw vpException(vpException::fatalError, "Image pointer is NULL!");
}
else if (tracker->m_trackerType & (EDGE_TRACKER
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- | KLT_TRACKER
+ | KLT_TRACKER
#endif
- ) &&
+ ) &&
mapOfImages[it->first] != NULL) {
vpImageConvert::convert(*mapOfColorImages[it->first], tracker->m_I);
mapOfImages[it->first] = &tracker->m_I; // update grayscale image buffer
@@ -5605,17 +5605,17 @@ void vpMbGenericTracker::track(std::mapm_trackerType & (EDGE_TRACKER |
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- KLT_TRACKER |
+ KLT_TRACKER |
#endif
- DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
+ DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
throw vpException(vpException::fatalError, "Bad tracker type: %d", tracker->m_trackerType);
}
if (tracker->m_trackerType & (EDGE_TRACKER
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- | KLT_TRACKER
+ | KLT_TRACKER
#endif
- ) &&
+ ) &&
mapOfImages[it->first] == NULL) {
throw vpException(vpException::fatalError, "Image pointer is NULL!");
}
@@ -5686,25 +5686,25 @@ void vpMbGenericTracker::track(std::map *> &m
if ((tracker->m_trackerType & (EDGE_TRACKER |
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- KLT_TRACKER |
+ KLT_TRACKER |
#endif
- DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
+ DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
throw vpException(vpException::fatalError, "Bad tracker type: %d", tracker->m_trackerType);
}
if (tracker->m_trackerType & (EDGE_TRACKER
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- | KLT_TRACKER
+ | KLT_TRACKER
#endif
- ) &&
+ ) &&
mapOfColorImages[it->first] == NULL) {
throw vpException(vpException::fatalError, "Image pointer is NULL!");
}
else if (tracker->m_trackerType & (EDGE_TRACKER
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- | KLT_TRACKER
+ | KLT_TRACKER
#endif
- ) &&
+ ) &&
mapOfColorImages[it->first] != NULL) {
vpImageConvert::convert(*mapOfColorImages[it->first], tracker->m_I);
mapOfImages[it->first] = &tracker->m_I; // update grayscale image buffer
@@ -5773,9 +5773,9 @@ vpMbGenericTracker::TrackerWrapper::TrackerWrapper(int trackerType)
{
if ((m_trackerType & (EDGE_TRACKER |
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- KLT_TRACKER |
+ KLT_TRACKER |
#endif
- DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
+ DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
throw vpException(vpTrackingException::badValue, "Bad value for tracker type: %d!", m_trackerType);
}
@@ -7090,9 +7090,9 @@ void vpMbGenericTracker::TrackerWrapper::setTrackerType(int type)
{
if ((type & (EDGE_TRACKER |
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- KLT_TRACKER |
+ KLT_TRACKER |
#endif
- DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
+ DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
throw vpException(vpTrackingException::badValue, "bad value for tracker type: !", type);
}
@@ -7114,9 +7114,9 @@ void vpMbGenericTracker::TrackerWrapper::track(const vpImage &
{
if ((m_trackerType & (EDGE_TRACKER
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- | KLT_TRACKER
+ | KLT_TRACKER
#endif
- )) == 0) {
+ )) == 0) {
std::cerr << "Bad tracker type: " << m_trackerType << std::endl;
return;
}
@@ -7137,18 +7137,18 @@ void vpMbGenericTracker::TrackerWrapper::track(const vpImage *con
{
if ((m_trackerType & (EDGE_TRACKER |
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- KLT_TRACKER |
+ KLT_TRACKER |
#endif
- DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
+ DEPTH_NORMAL_TRACKER | DEPTH_DENSE_TRACKER)) == 0) {
std::cerr << "Bad tracker type: " << m_trackerType << std::endl;
return;
}
if (m_trackerType & (EDGE_TRACKER
#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- | KLT_TRACKER
+ | KLT_TRACKER
#endif
- ) &&
+ ) &&
ptr_I == NULL) {
throw vpException(vpException::fatalError, "Image pointer is NULL!");
}
diff --git a/modules/vision/src/homography-estimation/vpHomographyDLT.cpp b/modules/vision/src/homography-estimation/vpHomographyDLT.cpp
index da41001cfc..ca551c3fbc 100644
--- a/modules/vision/src/homography-estimation/vpHomographyDLT.cpp
+++ b/modules/vision/src/homography-estimation/vpHomographyDLT.cpp
@@ -144,7 +144,7 @@ void vpHomography::HartleyDenormalization(vpHomography &aHbn, vpHomography &aHb,
{
// calcul des transformations a appliquer sur M_norm pour obtenir M
- // en fonction des deux normalisations effectuees au debut sur
+ // en fonction des deux normalizations effectuees au debut sur
// les points: aHb = T2^ aHbn T1
vpMatrix T1(3, 3);
vpMatrix T2(3, 3);
diff --git a/modules/vision/src/homography-estimation/vpHomographyVVS.cpp b/modules/vision/src/homography-estimation/vpHomographyVVS.cpp
index 76a29c76eb..84a8dfc383 100644
--- a/modules/vision/src/homography-estimation/vpHomographyVVS.cpp
+++ b/modules/vision/src/homography-estimation/vpHomographyVVS.cpp
@@ -150,7 +150,7 @@ double vpHomography::computeRotation(unsigned int nbpoint, vpPoint *c1P, vpPoint
Hp2 = c2Rc1.t() * p2; // p2 = Hp1
Hp1 = c2Rc1 * p1; // p1 = Hp2
- Hp2 /= Hp2[2]; // normalisation
+ Hp2 /= Hp2[2]; // normalization
Hp1 /= Hp1[2];
// set up the interaction matrix
@@ -345,7 +345,7 @@ double vpHomography::computeDisplacement(unsigned int nbpoint, vpPoint *c1P, vpP
Hp2 = ((vpMatrix)c1Rc2 + (c1Tc2 * N2.t()) / d2) * p2; // p2 = Hp1
Hp1 = ((vpMatrix)c2Rc1 + (c2Tc1 * N1.t()) / d1) * p1; // p1 = Hp2
- Hp2 /= Hp2[2]; // normalisation
+ Hp2 /= Hp2[2]; // normalization
Hp1 /= Hp1[2];
// set up the interaction matrix
@@ -554,7 +554,7 @@ double vpHomography::computeDisplacement(unsigned int nbpoint, vpPoint *c1P, vpP
Hp2 = ((vpMatrix)c1Rc2 + (c1Tc2 * N2.t()) / d2) * p2; // p2 = Hp1
Hp1 = ((vpMatrix)c2Rc1 + (c2Tc1 * N1.t()) / d1) * p1; // p1 = Hp2
- Hp2 /= Hp2[2]; // normalisation
+ Hp2 /= Hp2[2]; // normalization
Hp1 /= Hp1[2];
// set up the interaction matrix
diff --git a/tutorial/image/tutorial-image-colormap.cpp b/tutorial/image/tutorial-image-colormap.cpp
index 0d430c0cbf..d281bd793d 100644
--- a/tutorial/image/tutorial-image-colormap.cpp
+++ b/tutorial/image/tutorial-image-colormap.cpp
@@ -117,7 +117,7 @@ int main()
}
}
- // Apply a colormap on a 8-bit RGB image, with normalisation to the [0 - 255] range
+ // Apply a colormap on a 8-bit RGB image, with normalization to the [0 - 255] range
{
vpImage I;
vpImageIo::read(I, "monkey.png");
diff --git a/tutorial/imgproc/hough-transform/tutorial-circle-hough.cpp b/tutorial/imgproc/hough-transform/tutorial-circle-hough.cpp
index 0e0940b354..105c71a613 100644
--- a/tutorial/imgproc/hough-transform/tutorial-circle-hough.cpp
+++ b/tutorial/imgproc/hough-transform/tutorial-circle-hough.cpp
@@ -1,3 +1,5 @@
+//! \example tutorial-circle-hough.cpp
+
#include
// ViSP includes
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/CMakeLists.txt b/tutorial/tracking/model-based/generic-rgbd-blender/CMakeLists.txt
index b23d667b08..fa06fcb773 100644
--- a/tutorial/tracking/model-based/generic-rgbd-blender/CMakeLists.txt
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/CMakeLists.txt
@@ -8,16 +8,8 @@ find_package(VISP REQUIRED visp_core visp_mbt visp_io visp_gui)
set(tutorial_cpp
tutorial-mb-generic-tracker-rgbd-blender.cpp)
-list(APPEND tutorial_data_dir "camera_poses")
-list(APPEND tutorial_data_dir "depth")
-list(APPEND tutorial_data_dir "images")
-
-list(APPEND tutorial_data "${CMAKE_CURRENT_SOURCE_DIR}/depth_M_color.txt")
-list(APPEND tutorial_data "${CMAKE_CURRENT_SOURCE_DIR}/teabox.cao")
-list(APPEND tutorial_data "${CMAKE_CURRENT_SOURCE_DIR}/teabox.init")
-list(APPEND tutorial_data "${CMAKE_CURRENT_SOURCE_DIR}/teabox.png")
-list(APPEND tutorial_data "${CMAKE_CURRENT_SOURCE_DIR}/teabox.xml")
-list(APPEND tutorial_data "${CMAKE_CURRENT_SOURCE_DIR}/teabox_depth.xml")
+list(APPEND tutorial_data_dir "data")
+list(APPEND tutorial_data_dir "model")
foreach(cpp ${tutorial_cpp})
visp_add_target(${cpp})
@@ -47,7 +39,3 @@ endforeach()
foreach(data_dir ${tutorial_data_dir})
visp_copy_dir(tutorial-mb-generic-tracker-rgbd-blender.cpp "${CMAKE_CURRENT_SOURCE_DIR}" ${data_dir})
endforeach()
-
-foreach(data ${tutorial_data})
- visp_copy_data(tutorial-mb-generic-tracker-rgbd-blender.cpp ${data})
-endforeach()
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_001.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_001.txt
deleted file mode 100644
index 78c63f2e71..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_001.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4226182997226715 -2.4714811530657244e-08 0.9063078165054321 -0.10589859634637833
-0.5825634002685547 0.7660443782806396 0.2716538608074188 -0.07994276285171509
--0.6942720413208008 0.6427875757217407 -0.32374438643455505 0.7175615429878235
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_002.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_002.txt
deleted file mode 100644
index b3001acc6b..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_002.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4227556884288788 -5.451433082725998e-08 0.9062436819076538 -0.1058686301112175
-0.5825357437133789 0.7660318613052368 0.27174848318099976 -0.07993374764919281
--0.6942116022109985 0.6428025364875793 -0.3238443434238434 0.7175326943397522
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_003.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_003.txt
deleted file mode 100644
index 6133cd6ddb..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_003.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4231698513031006 -3.960472128028414e-08 0.9060503840446472 -0.1057780459523201
-0.5824522376060486 0.7659941911697388 0.2720337510108948 -0.07990667223930359
--0.6940293312072754 0.64284747838974 -0.3241456151008606 0.717445433139801
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_004.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_004.txt
deleted file mode 100644
index 6c74b3ba75..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_004.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.42386355996131897 -3.959053884727837e-08 0.9057259559631348 -0.10562598705291748
-0.5823116898536682 0.7659310698509216 0.27251148223876953 -0.07986100018024445
--0.6937237977981567 0.6429224610328674 -0.32465028762817383 0.7172994017601013
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_005.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_005.txt
deleted file mode 100644
index c635cbc12a..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_005.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.424839586019516 -3.9570551280121435e-08 0.905268669128418 -0.1054118275642395
-0.5821129083633423 0.7658427953720093 0.2731837034225464 -0.07979637384414673
--0.693293571472168 0.6430278420448303 -0.32536032795906067 0.7170941829681396
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_006.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_006.txt
deleted file mode 100644
index a0eee4faec..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_006.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4261001646518707 -3.954464489197562e-08 0.9046760201454163 -0.10513491183519363
-0.5818545818328857 0.7657288908958435 0.27405214309692383 -0.07971277087926865
--0.6927365660667419 0.6431635022163391 -0.3262771964073181 0.7168291807174683
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_007.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_007.txt
deleted file mode 100644
index 26037db8df..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_007.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4276476800441742 -3.951271665414424e-08 0.9039455652236938 -0.1047949492931366
-0.5815348029136658 0.7655894160270691 0.2751183807849884 -0.07960963994264603
--0.692051112651825 0.6433295607566833 -0.3274025022983551 0.7165042161941528
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_008.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_008.txt
deleted file mode 100644
index 3e930789c8..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_008.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.42948395013809204 -3.947463866893486e-08 0.9030745029449463 -0.10439175367355347
-0.5811519622802734 0.7654242515563965 0.2763841450214386 -0.0794868916273117
--0.6912351250648499 0.6435260772705078 -0.32873740792274475 0.7161190509796143
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_009.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_009.txt
deleted file mode 100644
index 40809c6a9c..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_009.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.43161073327064514 -2.4529130726591575e-08 0.9020599126815796 -0.10392533987760544
-0.5807037949562073 0.7652331590652466 0.2778507471084595 -0.07934422045946121
--0.6902862787246704 0.6437529921531677 -0.33028289675712585 0.7156732678413391
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_010.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_010.txt
deleted file mode 100644
index 9e480d05b8..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_010.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.43402963876724243 -5.4280690164887346e-08 0.9008986353874207 -0.10339587926864624
-0.5801882743835449 0.7650166153907776 0.2795197069644928 -0.0791814997792244
--0.6892024874687195 0.644010603427887 -0.33203986287117004 0.715167224407196
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_011.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_011.txt
deleted file mode 100644
index 6cf50efe29..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_011.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.43674159049987793 -5.422336002425254e-08 0.8995870351791382 -0.10280382633209229
-0.5796025991439819 0.7647740840911865 0.28139200806617737 -0.07899844646453857
--0.6879808306694031 0.6442984938621521 -0.3340086340904236 0.7146003246307373
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_012.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_012.txt
deleted file mode 100644
index 7052582f08..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_012.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4397476017475128 -2.435697332714426e-08 0.8981214761734009 -0.10214972496032715
-0.5789443850517273 0.7645057439804077 0.2834688425064087 -0.07879508286714554
--0.6866189241409302 0.6446171402931213 -0.33618950843811035 0.7139732241630554
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_013.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_013.txt
deleted file mode 100644
index f724ce4bd1..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_013.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4430481195449829 -5.408832848274869e-08 0.896497905254364 -0.1014343649148941
-0.5782105922698975 0.7642114162445068 0.28575098514556885 -0.07857121527194977
--0.6851139068603516 0.6449659466743469 -0.3385823965072632 0.7132858633995056
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_014.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_014.txt
deleted file mode 100644
index 8e21ee184c..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_014.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.44664332270622253 -3.910910706395043e-08 0.8947120904922485 -0.10065879672765732
-0.5773979425430298 0.7638912200927734 0.288239061832428 -0.07832679152488708
--0.6834627389907837 0.6453449130058289 -0.34118691086769104 0.7125385403633118
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_015.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_015.txt
deleted file mode 100644
index d2210409dd..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_015.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.45053309202194214 -3.9023767328671966e-08 0.8927597403526306 -0.09982418268918991
-0.5765032768249512 0.7635453939437866 0.29093363881111145 -0.07806172966957092
--0.6816626191139221 0.6457540988922119 -0.34400248527526855 0.7117317318916321
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_016.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_016.txt
deleted file mode 100644
index ff6157edd3..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_016.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4547168016433716 -3.8930942025672266e-08 0.890636146068573 -0.09893196821212769
-0.5755230188369751 0.7631738185882568 0.29383498430252075 -0.07777629792690277
--0.6797101497650146 0.6461933255195618 -0.3470279276371002 0.7108660340309143
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_017.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_017.txt
deleted file mode 100644
index b5b23855ee..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_017.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.45919355750083923 -3.883041443941693e-08 0.8883363008499146 -0.09798367321491241
-0.5744534730911255 0.7627765536308289 0.29694315791130066 -0.07747037708759308
--0.6776019930839539 0.646662175655365 -0.35026201605796814 0.7099419236183167
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_018.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_018.txt
deleted file mode 100644
index 0582215cff..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_018.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4639618694782257 -3.8721960748944184e-08 0.8858551979064941 -0.09698118269443512
-0.5732905864715576 0.762353777885437 0.3002578914165497 -0.07714420557022095
--0.6753349900245667 0.647160530090332 -0.3537030518054962 0.7089602947235107
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_019.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_019.txt
deleted file mode 100644
index 7c1b4523f9..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_019.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.46901994943618774 -2.37041906103741e-08 0.8831875324249268 -0.09592645615339279
-0.5720301270484924 0.7619055509567261 0.3037787079811096 -0.07679790258407593
--0.6729055047035217 0.6476881504058838 -0.35734888911247253 0.707922101020813
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_020.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_020.txt
deleted file mode 100644
index 7b5b36836d..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_020.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4743655025959015 -3.8480362007931035e-08 0.8803280591964722 -0.09482163935899734
-0.5706679224967957 0.7614320516586304 0.30750492215156555 -0.07643184065818787
--0.6703100204467773 0.6482446193695068 -0.3611970841884613 0.706828236579895
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_021.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_021.txt
deleted file mode 100644
index 456e7a13fd..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_021.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.47999563813209534 -2.3445567265412137e-08 0.8772709369659424 -0.09366917610168457
-0.5691993832588196 0.7609336972236633 0.3114354610443115 -0.07604628801345825
--0.6675449013710022 0.6488296985626221 -0.3652448058128357 0.7056800723075867
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_022.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_022.txt
deleted file mode 100644
index 2b26b258a2..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_022.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4859069883823395 -6.800653551408686e-08 0.8740105628967285 -0.0924716666340828
-0.5676199793815613 0.7604103684425354 0.3155688941478729 -0.07564173638820648
--0.6646066904067993 0.6494429111480713 -0.3694886863231659 0.7044788002967834
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_023.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_023.txt
deleted file mode 100644
index 7908bd3c8e..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_023.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.4920959174633026 -8.250235161710862e-09 0.8705410361289978 -0.09123165905475616
-0.5659245848655701 0.7598625421524048 0.31990358233451843 -0.07521858811378479
--0.6614915132522583 0.6500837802886963 -0.37392520904541016 0.7032259702682495
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_024.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_024.txt
deleted file mode 100644
index 28d14d6f02..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_024.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.49855783581733704 -3.789149971566985e-08 0.8668564558029175 -0.08995216339826584
-0.5641084313392639 0.7592905163764954 0.3244374692440033 -0.07477748394012451
--0.6581959128379822 0.6507518291473389 -0.3785502016544342 0.7019232511520386
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_025.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_025.txt
deleted file mode 100644
index 3e6cc359f8..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_025.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5052879452705383 -3.772077761254877e-08 0.8629508018493652 -0.08863609284162521
-0.5621664524078369 0.7586945295333862 0.3291681408882141 -0.07431906461715698
--0.6547160744667053 0.6514465808868408 -0.3833591341972351 0.7005723118782043
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_026.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_026.txt
deleted file mode 100644
index da6d3c33d3..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_026.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5122806429862976 -3.754013633283648e-08 0.8588181734085083 -0.08728668093681335
-0.5600932836532593 0.758074939250946 0.33409279584884644 -0.0738440752029419
--0.651048481464386 0.652167558670044 -0.3883470296859741 0.699175238609314
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_027.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_027.txt
deleted file mode 100644
index d37a303745..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_027.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5195298194885254 -3.7349302317579713e-08 0.8544524312019348 -0.08590710163116455
-0.5578839182853699 0.7574321627616882 0.3392082750797272 -0.07335342466831207
--0.647189736366272 0.6529139876365662 -0.3935084939002991 0.6977340579032898
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_028.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_028.txt
deleted file mode 100644
index bc9d95260a..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_028.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5270286798477173 -2.2246853248475418e-08 0.8498475551605225 -0.0845007672905922
-0.5555327534675598 0.7567666172981262 0.34451088309288025 -0.07284806668758392
--0.6431362628936768 0.6536852121353149 -0.3988376557826996 0.6962510347366333
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_029.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_029.txt
deleted file mode 100644
index c7a698f48d..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_029.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5347700119018555 -3.693602579346589e-08 0.844997763633728 -0.08307115733623505
-0.5530346035957336 0.756078839302063 0.3499965965747833 -0.07232892513275146
--0.6388849020004272 0.6544805765151978 -0.40432825684547424 0.6947286128997803
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_030.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_030.txt
deleted file mode 100644
index f5731ec90e..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_030.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5427457094192505 -6.910744865251672e-09 0.8398970365524292 -0.08162172138690948
-0.5503839254379272 0.755369246006012 0.35566091537475586 -0.07179728150367737
--0.6344324946403503 0.6552992463111877 -0.4099734127521515 0.6931694149971008
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_031.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_031.txt
deleted file mode 100644
index 3fdff31129..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_031.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5509476065635681 -5.1380059318262283e-08 0.8345398902893066 -0.08015598356723785
-0.5475754737854004 0.754638671875 0.3614991009235382 -0.07125431299209595
--0.6297760605812073 0.6561405658721924 -0.41576632857322693 0.6915762424468994
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_032.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_032.txt
deleted file mode 100644
index ce5b12f333..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_032.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5593660473823547 -5.113443890536473e-08 0.8289207816123962 -0.07867757976055145
-0.5446040034294128 0.7538872957229614 0.36750558018684387 -0.070701465010643
--0.6249129176139832 0.65700364112854 -0.4216989576816559 0.6899518370628357
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_033.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_033.txt
deleted file mode 100644
index 0b78b8681c..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_033.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5679914951324463 -3.597597597604363e-08 0.823034405708313 -0.07719000428915024
-0.5414641499519348 0.7531160712242126 0.37367457151412964 -0.07014012336730957
--0.6198405027389526 0.6578875780105591 -0.42776352167129517 0.6882994771003723
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_034.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_034.txt
deleted file mode 100644
index 729e99b67b..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_034.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5768135786056519 -2.080561678496906e-08 0.8168759346008301 -0.07569682598114014
-0.5381508469581604 0.7523256540298462 0.3799998462200165 -0.06957195699214935
--0.6145566701889038 0.6587914228439331 -0.43395161628723145 0.686622142791748
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_035.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_035.txt
deleted file mode 100644
index 961e56709d..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_035.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.585821270942688 -3.5425472333372454e-08 0.8104403614997864 -0.07420149445533752
-0.5346590280532837 0.751516580581665 0.386474609375 -0.06899850070476532
--0.6090593934059143 0.6597142219543457 -0.4402543008327484 0.6849231719970703
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_036.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_036.txt
deleted file mode 100644
index 18756a0f46..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_036.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.5950028300285339 -3.513187607495638e-08 0.8037236332893372 -0.07270756363868713
-0.5309839844703674 0.7506897449493408 0.3930915892124176 -0.06842157989740372
--0.6033470630645752 0.6606549620628357 -0.4466625154018402 0.6832060217857361
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_037.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_037.txt
deleted file mode 100644
index 7f42eb36a5..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_037.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.6043463945388794 -4.9726970985375374e-08 0.7967216968536377 -0.07121821492910385
-0.5271210074424744 0.7498459815979004 0.39984312653541565 -0.06784302741289139
--0.5974186062812805 0.6616125106811523 -0.453166663646698 0.6814742088317871
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_038.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_038.txt
deleted file mode 100644
index a321225b6e..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_038.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.6138390898704529 -4.9408299673814327e-08 0.7894312739372253 -0.0697367861866951
-0.523065984249115 0.748986005783081 0.4067211151123047 -0.06726481020450592
--0.5912729501724243 0.6625857949256897 -0.45975685119628906 0.6797314286231995
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_039.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_039.txt
deleted file mode 100644
index 5afe74249e..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_039.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.6234679222106934 -4.907686701471903e-08 0.7818490266799927 -0.06826620548963547
-0.5188145637512207 0.748110830783844 0.41371703147888184 -0.0666889101266861
--0.5849096775054932 0.6635739207267761 -0.46642303466796875 0.6779813766479492
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_040.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_040.txt
deleted file mode 100644
index 094f293d53..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_040.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.6332191824913025 -1.8930256473481677e-08 0.7739726305007935 -0.06680946052074432
-0.5143631100654602 0.7472212314605713 0.420821875333786 -0.06611737608909607
--0.5783287882804871 0.6645753383636475 -0.47315481305122375 0.6762278079986572
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_041.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_041.txt
deleted file mode 100644
index 88c092804e..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_041.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.643078625202179 -3.3474190530569103e-08 0.7658002376556396 -0.06536930799484253
-0.5097083449363708 0.7463183403015137 0.4280261695384979 -0.06555239856243134
--0.5715307593345642 0.6655892133712769 -0.47994133830070496 0.6744745969772339
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_042.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_042.txt
deleted file mode 100644
index f22213da36..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_042.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.6530320048332214 -4.800512343194896e-08 0.7573303580284119 -0.06394821405410767
-0.50484699010849 0.7454031109809875 0.43532025814056396 -0.06499604135751724
--0.5645164251327515 0.6666139364242554 -0.4867720305919647 0.6727255582809448
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_043.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_043.txt
deleted file mode 100644
index 63e3798572..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_043.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.6630643606185913 -1.7819539621655167e-08 0.7485624551773071 -0.06254848837852478
-0.499776691198349 0.7444765567779541 0.4426940679550171 -0.06445064395666122
--0.5572871565818787 0.6676486730575562 -0.49363577365875244 0.6709845662117004
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_044.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_044.txt
deleted file mode 100644
index bd6ffe525d..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_044.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.6731606125831604 -4.722557278569184e-08 0.7394963502883911 -0.061172183603048325
-0.4944951832294464 0.743539571762085 0.45013704895973206 -0.063918337225914
--0.5498448610305786 0.668691873550415 -0.5005215406417847 0.6692556738853455
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_045.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_045.txt
deleted file mode 100644
index f039029ca9..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_045.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.6833052635192871 -4.6816282406325627e-08 0.7301328182220459 -0.05982115864753723
-0.4890008568763733 0.7425936460494995 0.4576384723186493 -0.06340137869119644
--0.5421920418739319 0.6697423458099365 -0.5074180960655212 0.6675425171852112
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_046.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_046.txt
deleted file mode 100644
index a00459a1dc..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_046.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.6934829354286194 -3.149288119175253e-08 0.7204731106758118 -0.05849682539701462
-0.4832923710346222 0.7416394948959351 0.4651874303817749 -0.06290194392204285
--0.5343313217163086 0.670798659324646 -0.5143142938613892 0.6658489108085632
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_047.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_047.txt
deleted file mode 100644
index e3ff0a8164..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_047.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.7036777138710022 -3.105779100565087e-08 0.7105193734169006 -0.05720064416527748
-0.47736936807632446 0.7406784296035767 0.4727727174758911 -0.062422335147857666
--0.5262663960456848 0.6718597412109375 -0.5211988091468811 0.6641786098480225
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_048.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_048.txt
deleted file mode 100644
index 34665e2bf0..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_048.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.7138738036155701 -3.060996789372439e-08 0.7002743482589722 -0.055933400988578796
-0.4712314009666443 0.7397116422653198 0.4803828299045563 -0.0619644857943058
--0.518001139163971 0.6729239821434021 -0.5280607342720032 0.6625352501869202
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_049.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_049.txt
deleted file mode 100644
index 5b965492b0..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_049.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.7240554094314575 -3.014957528080231e-08 0.6897417902946472 -0.05469593033194542
-0.46487921476364136 0.7387403249740601 0.4880062937736511 -0.06153068691492081
--0.5095400810241699 0.6739902496337891 -0.5348888635635376 0.6609224081039429
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_050.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_050.txt
deleted file mode 100644
index bbfe2975b2..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_050.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.7342067956924438 -4.457795199641623e-08 0.6789258122444153 -0.05348855257034302
-0.45831361413002014 0.7377655506134033 0.49563148617744446 -0.06112280860543251
--0.5008881688117981 0.6750569343566895 -0.5416725277900696 0.6593433618545532
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_051.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_051.txt
deleted file mode 100644
index 54b955df53..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_051.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.7443124055862427 -4.4093006579259963e-08 0.667831540107727 -0.052311383187770844
-0.45153629779815674 0.7367887496948242 0.5032467842102051 -0.060742802917957306
--0.49205076694488525 0.6761230230331421 -0.5484009981155396 0.6578012704849243
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_052.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_052.txt
deleted file mode 100644
index c8fa6aa875..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_052.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.7543565034866333 -2.86949912720047e-08 0.6564648747444153 -0.051164302974939346
-0.4445495009422302 0.7358109354972839 0.5108405351638794 -0.060392506420612335
--0.48303404450416565 0.6771870255470276 -0.555063784122467 0.6562994718551636
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_053.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_053.txt
deleted file mode 100644
index 25784379d5..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_053.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.7643239498138428 -2.8186519784867414e-08 0.6448323726654053 -0.050046954303979874
-0.4373560845851898 0.7348333597183228 0.5184009671211243 -0.06007353216409683
--0.473844438791275 0.6782476305961609 -0.5616507530212402 0.6548405885696411
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_054.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_054.txt
deleted file mode 100644
index fb17100274..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_054.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.7741997241973877 -1.276558059259969e-08 0.6329412460327148 -0.048958394676446915
-0.4299592077732086 0.7338575124740601 0.5259166359901428 -0.05978737026453018
--0.4644886553287506 0.6793034672737122 -0.5681523084640503 0.653427243232727
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_055.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_055.txt
deleted file mode 100644
index 86750fb309..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_055.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.7839694023132324 -1.2234842472480523e-08 0.6207993626594543 -0.047897819429636
-0.42236292362213135 0.7328842878341675 0.5333762764930725 -0.05953553691506386
--0.45497408509254456 0.6803533434867859 -0.5745587944984436 0.652062177658081
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_056.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_056.txt
deleted file mode 100644
index db980f4a8a..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_056.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.7936185598373413 -2.6594690893944062e-08 0.6084156036376953 -0.04686403647065163
-0.4145719110965729 0.7319149971008301 0.5407685041427612 -0.059319041669368744
--0.4453085660934448 0.681395947933197 -0.5808613896369934 0.6507472991943359
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_057.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_057.txt
deleted file mode 100644
index a0624e845c..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_057.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8031336069107056 -1.1142040179379364e-08 0.5957989692687988 -0.045855432748794556
-0.4065910577774048 0.7309510707855225 0.5480824708938599 -0.05913903936743736
--0.435499906539917 0.6824299097061157 -0.5870513916015625 0.6494846940040588
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_058.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_058.txt
deleted file mode 100644
index d74d8e76c3..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_058.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8125011920928955 -2.548196853524587e-08 0.5829594731330872 -0.04487058147788048
-0.3984260559082031 0.729993462562561 0.5553073287010193 -0.058996256440877914
--0.42555662989616394 0.6834540963172913 -0.5931205749511719 0.6482759714126587
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_059.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_059.txt
deleted file mode 100644
index 434d1878fa..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_059.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8217088580131531 -1.0010284157146998e-08 0.5699074268341064 -0.043907530605793
-0.39008304476737976 0.7290434837341309 0.5624329447746277 -0.0588914155960083
--0.4154873192310333 0.6844673752784729 -0.5990614891052246 0.6471227407455444
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_060.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_060.txt
deleted file mode 100644
index c174b7110a..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_060.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8307445049285889 -9.430955572042876e-09 0.5566539168357849 -0.04296434670686722
-0.38156870007514954 0.7281023263931274 0.5694491267204285 -0.058824796229600906
--0.405301034450531 0.6854684352874756 -0.6048669815063477 0.646026074886322
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_061.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_061.txt
deleted file mode 100644
index bdecbdcd34..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_061.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8395966291427612 -2.3744478383491696e-08 0.5432103276252747 -0.042038846760988235
-0.3728901743888855 0.7271710634231567 0.5763464570045471 -0.058796774595975876
--0.39500683546066284 0.6864563226699829 -0.6105303764343262 0.6449869275093079
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_062.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_062.txt
deleted file mode 100644
index 4acb3e27cc..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_062.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8482546806335449 -3.8050213646556585e-08 0.529588520526886 -0.041128817945718765
-0.3640548586845398 0.7262508869171143 0.5831155180931091 -0.058807116001844406
--0.38461416959762573 0.6874297261238098 -0.6160457730293274 0.6440058350563049
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_063.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_063.txt
deleted file mode 100644
index 04ccc0cafe..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_063.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8567087650299072 -3.7447513534516474e-08 0.515800416469574 -0.040231846272945404
-0.35507065057754517 0.7253430485725403 0.5897477865219116 -0.05885568633675575
--0.3741322159767151 0.6883876323699951 -0.621407687664032 0.6430832743644714
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_064.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_064.txt
deleted file mode 100644
index 6616033b40..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_064.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8649494647979736 -3.6838113004478146e-08 0.5018589496612549 -0.03934559226036072
-0.3459460139274597 0.7244482040405273 0.5962349772453308 -0.058942101895809174
--0.36357080936431885 0.689329206943512 -0.6266111135482788 0.6422192454338074
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_065.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_065.txt
deleted file mode 100644
index 6ea63e3aa9..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_065.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8729684352874756 -2.13213944277868e-08 0.48777666687965393 -0.03846754878759384
-0.33668944239616394 0.7235678434371948 0.6025694012641907 -0.059065546840429306
--0.35293951630592346 0.6902533173561096 -0.6316518783569336 0.641413688659668
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_066.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_066.txt
deleted file mode 100644
index 682ee852b1..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_066.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8807579278945923 -2.0700253955396875e-08 0.47356662154197693 -0.03759521618485451
-0.3273097574710846 0.7227028608322144 0.6087437868118286 -0.05922510102391243
--0.3422479033470154 0.6911588907241821 -0.6365262866020203 0.6406662464141846
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_067.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_067.txt
deleted file mode 100644
index 0ba69f053f..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_067.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8883110880851746 -5.172950068299542e-09 0.45924219489097595 -0.0367262028157711
-0.3178164064884186 0.7218540906906128 0.6147516369819641 -0.05941978842020035
--0.33150583505630493 0.6920453906059265 -0.6412310004234314 0.6399760246276855
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_068.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_068.txt
deleted file mode 100644
index 4d29f710b2..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_068.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.8956218361854553 -4.5423753647355625e-09 0.4448162913322449 -0.03585787117481232
-0.3082183599472046 0.7210225462913513 0.6205868124961853 -0.059648219496011734
--0.3207225799560547 0.6929116249084473 -0.6457635164260864 0.6393423080444336
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_069.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_069.txt
deleted file mode 100644
index 2bc5ffa087..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_069.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9026848077774048 -1.8809117818818777e-08 0.4303024709224701 -0.03498796373605728
-0.298525333404541 0.7202092409133911 0.6262439489364624 -0.059908900409936905
--0.30990779399871826 0.6937569379806519 -0.6501218676567078 0.6387639045715332
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_070.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_070.txt
deleted file mode 100644
index 39fe2ceed7..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_070.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9094952940940857 -3.307260598717221e-08 0.41571417450904846 -0.034114062786102295
-0.28874698281288147 0.7194148898124695 0.6317178606987 -0.060200098901987076
--0.29907095432281494 0.694580614566803 -0.6543044447898865 0.6382396221160889
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_071.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_071.txt
deleted file mode 100644
index 6653b81cf6..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_071.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9160496592521667 -1.7531096574430194e-08 0.40106475353240967 -0.03323395550251007
-0.2788931429386139 0.7186404466629028 0.6370043754577637 -0.060519978404045105
--0.2882213592529297 0.6953818798065186 -0.6583103537559509 0.6377677917480469
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_072.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_072.txt
deleted file mode 100644
index 32deca54b8..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_072.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9223450422286987 -1.987480402476649e-09 0.3863671123981476 -0.032345399260520935
-0.26897332072257996 0.7178866267204285 0.6420997977256775 -0.06086650490760803
--0.2773677706718445 0.6961600184440613 -0.6621391773223877 0.637346625328064
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_073.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_073.txt
deleted file mode 100644
index 07502f968b..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_073.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9283790588378906 -1.624466783312073e-08 0.37163469195365906 -0.03144638240337372
-0.2589975595474243 0.7171542644500732 0.6470009088516235 -0.06123754754662514
--0.26651936769485474 0.6969144940376282 -0.6657909750938416 0.6369745135307312
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_074.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_074.txt
deleted file mode 100644
index 27402fff4b..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_074.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9341500997543335 -6.985718670193819e-10 0.3568803071975708 -0.030535057187080383
-0.24897563457489014 0.7164439558982849 0.6517049074172974 -0.06163068115711212
--0.2556847333908081 0.6976445913314819 -0.6692661643028259 0.6366491913795471
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_075.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_075.txt
deleted file mode 100644
index 07db249d06..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_075.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.93965744972229 -2.985555624945846e-08 0.34211668372154236 -0.02960960939526558
-0.23891718685626984 0.7157564163208008 0.6562098264694214 -0.062043480575084686
--0.24487219750881195 0.6983500123023987 -0.6725658774375916 0.6363686323165894
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_076.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_076.txt
deleted file mode 100644
index c033d13aa4..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_076.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9449010491371155 -1.4309189388939103e-08 0.32735610008239746 -0.028668256476521492
-0.22883175313472748 0.7150923013687134 0.6605144143104553 -0.06247347593307495
--0.23408979177474976 0.6990301012992859 -0.6756914854049683 0.6361304521560669
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_077.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_077.txt
deleted file mode 100644
index 8a87cb732c..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_077.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9498811960220337 -1.3664663178758474e-08 0.31261107325553894 -0.027709761634469032
-0.21872906386852264 0.7144521474838257 0.6646170616149902 -0.06291784346103668
--0.22334562242031097 0.6996843218803406 -0.678644597530365 0.635932207107544
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_078.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_078.txt
deleted file mode 100644
index c1a4aecf4d..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_078.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9545992016792297 -1.3021326239481823e-08 0.297893226146698 -0.026732631027698517
-0.20861835777759552 0.7138363122940063 0.6685178875923157 -0.06337416172027588
--0.21264700591564178 0.7003125548362732 -0.6814276576042175 0.6357715725898743
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_079.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_079.txt
deleted file mode 100644
index 28611da300..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_079.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9590566158294678 -1.2379677727381022e-08 0.2832140326499939 -0.025735795497894287
-0.19850870966911316 0.713245689868927 0.6722163558006287 -0.06383933126926422
--0.2020011991262436 0.7009140849113464 -0.6840430498123169 0.6356457471847534
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_080.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_080.txt
deleted file mode 100644
index 1e58b88b91..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_080.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9632560014724731 -1.174022656869056e-08 0.26858508586883545 -0.024718495085835457
-0.18840943276882172 0.7126805186271667 0.6757133603096008 -0.06431056559085846
--0.19141533970832825 0.7014889121055603 -0.6864937543869019 0.6355524063110352
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_081.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_081.txt
deleted file mode 100644
index 7feab08ec0..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_081.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9671998023986816 -1.8553997449544113e-08 0.25401660799980164 -0.023679591715335846
-0.17832891643047333 0.7121410369873047 0.6790095567703247 -0.06478521227836609
--0.18089565634727478 0.702036440372467 -0.6887826919555664 0.635488748550415
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_082.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_082.txt
deleted file mode 100644
index d3e08c8e4d..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_082.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9708915948867798 -1.0469730860052096e-08 0.23951952159404755 -0.022618750110268593
-0.16827599704265594 0.7116279602050781 0.6821062564849854 -0.06526004523038864
--0.17044878005981445 0.7025565505027771 -0.6909136176109314 0.6354520320892334
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_083.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_083.txt
deleted file mode 100644
index a60f166f98..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_083.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9743348956108093 5.061576047182825e-09 0.22510351240634918 -0.021535467356443405
-0.1582588106393814 0.7111414670944214 0.685005247592926 -0.06573230028152466
--0.1600804328918457 0.7030491232872009 -0.692889928817749 0.635439395904541
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_084.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_084.txt
deleted file mode 100644
index 7ccf2710d0..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_084.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9775338768959045 -1.6663983970488516e-08 0.2107781171798706 -0.020429443567991257
-0.14828526973724365 0.7106817364692688 0.6877084374427795 -0.06619906425476074
--0.14979618787765503 0.7035136222839355 -0.6947155594825745 0.6354482173919678
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_085.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_085.txt
deleted file mode 100644
index 7080d9f2c8..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_085.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9804933071136475 -8.591579891970014e-09 0.19655242562294006 -0.01930057816207409
-0.13836312294006348 0.7102492451667786 0.6902186274528503 -0.06665752083063126
--0.1396012157201767 0.7039503455162048 -0.6963947415351868 0.6354759931564331
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_086.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_086.txt
deleted file mode 100644
index 7a02ae4a0d..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_086.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9832178354263306 -1.5425086985487724e-08 0.18243543803691864 -0.018149007111787796
-0.12849998474121094 0.709844172000885 0.6925380825996399 -0.06710462272167206
--0.12950074672698975 0.7043587565422058 -0.6979315280914307 0.6355197429656982
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_087.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_087.txt
deleted file mode 100644
index e069b55f0e..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_087.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9857127666473389 8.804523082828197e-11 0.16843517124652863 -0.01697492226958275
-0.11870281398296356 0.7094667553901672 0.6946701407432556 -0.0675375685095787
--0.11949914693832397 0.7047389149665833 -0.6993303894996643 0.6355767846107483
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_088.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_088.txt
deleted file mode 100644
index a4c14cbc55..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_088.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9879834055900574 -6.756003756436257e-09 0.15455934405326843 -0.01577875018119812
-0.10897837579250336 0.7091169357299805 0.6966181397438049 -0.06795375049114227
--0.10960066318511963 0.7050908207893372 -0.7005959153175354 0.6356445550918579
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_089.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_089.txt
deleted file mode 100644
index e1fe911a16..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_089.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9900357723236084 -6.155235876548204e-09 0.1408153772354126 -0.01456085778772831
-0.09933319687843323 0.7087950706481934 0.6983855366706848 -0.06835021078586578
--0.09980925917625427 0.7054144144058228 -0.7017325758934021 0.6357203722000122
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_090.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_090.txt
deleted file mode 100644
index 581694e5a5..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_090.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9918757677078247 -1.3011106858584753e-08 0.12721002101898193 -0.013322001323103905
-0.08977332711219788 0.7085012197494507 0.6999762654304504 -0.06872442364692688
--0.09012846648693085 0.7057096362113953 -0.7027453184127808 0.6358017921447754
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_091.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_091.txt
deleted file mode 100644
index 5efc620304..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_091.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9935094118118286 -8.697462305917725e-09 0.11375003308057785 -0.012062928639352322
-0.0803048238158226 0.7082354426383972 0.7013940811157227 -0.06907370686531067
--0.0805618166923523 0.7059763073921204 -0.7036386132240295 0.6358861327171326
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_092.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_092.txt
deleted file mode 100644
index 87ac09570c..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_092.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9949430227279663 -6.651300621385303e-10 0.100441113114357 -0.010784503072500229
-0.07093298435211182 0.7079978585243225 0.7026433348655701 -0.06939563900232315
--0.07111209630966187 0.7062146663665771 -0.7044175267219543 0.635970950126648
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_093.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_093.txt
deleted file mode 100644
index 392bd3c631..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_093.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9961830377578735 -3.815523452743719e-09 0.087288998067379 -0.009487725794315338
-0.06166309118270874 0.707788348197937 0.703728199005127 -0.0696876049041748
--0.06178213655948639 0.7064246535301208 -0.7050867676734924 0.6360538601875305
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_094.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_094.txt
deleted file mode 100644
index 1bb313e49f..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_094.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9972360134124756 -3.2477081024495646e-09 0.0742989033460617 -0.008173726499080658
-0.05250007286667824 0.7076069116592407 0.704653263092041 -0.0699474960565567
--0.05257442221045494 0.7066063284873962 -0.7056511640548706 0.6361325979232788
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_095.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_095.txt
deleted file mode 100644
index deca5cd43d..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_095.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9981086254119873 -8.24539658772494e-10 0.06147562712430954 -0.006843853276222944
-0.043448496609926224 0.7074536681175232 0.7054229974746704 -0.07017282396554947
--0.04349116235971451 0.7067597508430481 -0.7061156630516052 0.6362050771713257
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_096.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_096.txt
deleted file mode 100644
index 66f6dbc7d5..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_096.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.998807430267334 -3.996789121885058e-09 0.0488235205411911 -0.005499068647623062
-0.03451261669397354 0.7073284983634949 0.7060420513153076 -0.07036157697439194
--0.0345342718064785 0.706885039806366 -0.7064850330352783 0.636268675327301
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_097.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_097.txt
deleted file mode 100644
index 18438cb913..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_097.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9993392825126648 2.7389171486369435e-10 0.036346446722745895 -0.004140874836593866
-0.025696292519569397 0.707231342792511 0.7065151333808899 -0.0705116018652916
--0.025705348700284958 0.7069823145866394 -0.7067641019821167 0.6363216042518616
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_098.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_098.txt
deleted file mode 100644
index 6dd35d0b73..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_098.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9997108578681946 -1.0511692627446223e-09 0.02404795028269291 -0.0027705964166671038
-0.017003139480948448 0.7071620225906372 0.7068471312522888 -0.07062110304832458
--0.0170057974755764 0.7070515751838684 -0.7069575190544128 0.6363617777824402
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_099.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_099.txt
deleted file mode 100644
index 4bfa988b01..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_099.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--0.9999288320541382 -5.215384235590648e-10 0.011931407265365124 -0.0013898024335503578
-0.008436613716185093 0.7071205377578735 0.7070427536964417 -0.07068800926208496
--0.008436943404376507 0.7070930600166321 -0.7070702314376831 0.636387288570404
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_100.txt b/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_100.txt
deleted file mode 100644
index 45429708e4..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/camera_poses/Camera_100.txt
+++ /dev/null
@@ -1,4 +0,0 @@
--1.0 3.821371353845884e-15 -8.742277657347586e-08 2.1855697696082643e-08
--6.181724643283815e-08 0.7071067690849304 0.70710688829422 -0.0707106813788414
-6.181724643283815e-08 0.70710688829422 -0.7071067690849304 0.6363961696624756
-0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/Camera_L.xml b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/Camera_L.xml
new file mode 100644
index 0000000000..80d768eb0d
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/Camera_L.xml
@@ -0,0 +1,16 @@
+
+
+
+ Camera_L
+ 640
+ 480
+
+ perspectiveProjWithoutDistortion
+ 700.0
+ 700.0
+ 320.0
+ 240.0
+
+
+
+
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/Camera_R.xml b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/Camera_R.xml
new file mode 100644
index 0000000000..2dc681629b
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/Camera_R.xml
@@ -0,0 +1,16 @@
+
+
+
+ Camera_R
+ 640
+ 480
+
+ perspectiveProjWithoutDistortion
+ 600.0
+ 600.0
+ 320.0
+ 240.0
+
+
+
+
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/blender/teabox.blend b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/blender/teabox.blend
new file mode 100644
index 0000000000..24e10cbc18
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/blender/teabox.blend differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0001_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0001_L.jpg
new file mode 100644
index 0000000000..f7982ca631
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0001_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0002_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0002_L.jpg
new file mode 100644
index 0000000000..0fd4f66884
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0002_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0003_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0003_L.jpg
new file mode 100644
index 0000000000..e7643f7e16
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0003_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0004_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0004_L.jpg
new file mode 100644
index 0000000000..3e5885ac01
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0004_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0005_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0005_L.jpg
new file mode 100644
index 0000000000..3195e318e4
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0005_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0006_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0006_L.jpg
new file mode 100644
index 0000000000..f059cdfc6d
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0006_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0007_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0007_L.jpg
new file mode 100644
index 0000000000..bce5130544
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0007_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0008_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0008_L.jpg
new file mode 100644
index 0000000000..ab39f3b2b0
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0008_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0009_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0009_L.jpg
new file mode 100644
index 0000000000..980b1f4d42
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0009_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0010_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0010_L.jpg
new file mode 100644
index 0000000000..abdad51595
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0010_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0011_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0011_L.jpg
new file mode 100644
index 0000000000..69412d33e5
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0011_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0012_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0012_L.jpg
new file mode 100644
index 0000000000..5dac6aee9f
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0012_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0013_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0013_L.jpg
new file mode 100644
index 0000000000..d4a18bd422
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0013_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0014_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0014_L.jpg
new file mode 100644
index 0000000000..ad9e9ef053
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0014_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0015_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0015_L.jpg
new file mode 100644
index 0000000000..073c40cac5
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0015_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0016_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0016_L.jpg
new file mode 100644
index 0000000000..6c65b627de
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0016_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0017_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0017_L.jpg
new file mode 100644
index 0000000000..d1e34e5139
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0017_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0018_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0018_L.jpg
new file mode 100644
index 0000000000..f51220e34f
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0018_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0019_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0019_L.jpg
new file mode 100644
index 0000000000..0564dc0e81
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0019_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0020_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0020_L.jpg
new file mode 100644
index 0000000000..a3e30c279d
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0020_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0021_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0021_L.jpg
new file mode 100644
index 0000000000..8a36ad0874
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0021_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0022_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0022_L.jpg
new file mode 100644
index 0000000000..e736c820a8
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0022_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0023_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0023_L.jpg
new file mode 100644
index 0000000000..1c2e33fc52
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0023_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0024_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0024_L.jpg
new file mode 100644
index 0000000000..467f0dc362
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0024_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0025_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0025_L.jpg
new file mode 100644
index 0000000000..e7b4fa2211
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0025_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0026_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0026_L.jpg
new file mode 100644
index 0000000000..c0ba8f2258
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0026_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0027_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0027_L.jpg
new file mode 100644
index 0000000000..e0a5201a4c
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0027_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0028_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0028_L.jpg
new file mode 100644
index 0000000000..f2d9029c40
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0028_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0029_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0029_L.jpg
new file mode 100644
index 0000000000..672d11f3eb
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0029_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0030_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0030_L.jpg
new file mode 100644
index 0000000000..973ed11f09
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0030_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0031_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0031_L.jpg
new file mode 100644
index 0000000000..b40b133036
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0031_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0032_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0032_L.jpg
new file mode 100644
index 0000000000..7be5cb4e06
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0032_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0033_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0033_L.jpg
new file mode 100644
index 0000000000..785ca169c5
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0033_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0034_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0034_L.jpg
new file mode 100644
index 0000000000..4fb88d90f7
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0034_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0035_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0035_L.jpg
new file mode 100644
index 0000000000..6ecfb4b155
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0035_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0036_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0036_L.jpg
new file mode 100644
index 0000000000..b952006781
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0036_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0037_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0037_L.jpg
new file mode 100644
index 0000000000..ea0c3ab8b9
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0037_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0038_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0038_L.jpg
new file mode 100644
index 0000000000..f8f178f9c8
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0038_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0039_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0039_L.jpg
new file mode 100644
index 0000000000..b549c56d6c
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0039_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0040_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0040_L.jpg
new file mode 100644
index 0000000000..7703939cfb
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0040_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0041_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0041_L.jpg
new file mode 100644
index 0000000000..ad0e791900
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0041_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0042_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0042_L.jpg
new file mode 100644
index 0000000000..578cfe09e1
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0042_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0043_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0043_L.jpg
new file mode 100644
index 0000000000..8cb691bc36
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0043_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0044_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0044_L.jpg
new file mode 100644
index 0000000000..64043f58df
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0044_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0045_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0045_L.jpg
new file mode 100644
index 0000000000..db5a4c8980
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0045_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0046_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0046_L.jpg
new file mode 100644
index 0000000000..cedc2faeda
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0046_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0047_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0047_L.jpg
new file mode 100644
index 0000000000..ac1cb10eef
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0047_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0048_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0048_L.jpg
new file mode 100644
index 0000000000..c568c779e5
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0048_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0049_L.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0049_L.jpg
new file mode 100644
index 0000000000..68ffbd09e7
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/color/0049_L.jpg differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0001_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0001_R.exr
new file mode 100644
index 0000000000..5c90cdd861
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0001_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0002_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0002_R.exr
new file mode 100644
index 0000000000..6f5e9c2965
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0002_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0003_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0003_R.exr
new file mode 100644
index 0000000000..cb09ff4d2b
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0003_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0004_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0004_R.exr
new file mode 100644
index 0000000000..fd41fe35a4
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0004_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0005_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0005_R.exr
new file mode 100644
index 0000000000..905ab81eed
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0005_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0006_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0006_R.exr
new file mode 100644
index 0000000000..49c57bb96e
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0006_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0007_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0007_R.exr
new file mode 100644
index 0000000000..fbf78bdf27
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0007_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0008_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0008_R.exr
new file mode 100644
index 0000000000..02abe1ff04
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0008_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0009_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0009_R.exr
new file mode 100644
index 0000000000..9432abb398
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0009_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0010_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0010_R.exr
new file mode 100644
index 0000000000..9898d7af08
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0010_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0011_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0011_R.exr
new file mode 100644
index 0000000000..0ef190cbd7
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0011_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0012_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0012_R.exr
new file mode 100644
index 0000000000..7a6342e685
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0012_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0013_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0013_R.exr
new file mode 100644
index 0000000000..db38feab8d
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0013_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0014_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0014_R.exr
new file mode 100644
index 0000000000..42cb623dea
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0014_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0015_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0015_R.exr
new file mode 100644
index 0000000000..cc70b3ddba
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0015_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0016_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0016_R.exr
new file mode 100644
index 0000000000..a54cc9d45e
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0016_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0017_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0017_R.exr
new file mode 100644
index 0000000000..82daa8216a
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0017_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0018_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0018_R.exr
new file mode 100644
index 0000000000..d7c8b37488
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0018_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0019_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0019_R.exr
new file mode 100644
index 0000000000..960d1a7a99
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0019_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0020_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0020_R.exr
new file mode 100644
index 0000000000..573b9d61f6
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0020_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0021_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0021_R.exr
new file mode 100644
index 0000000000..c3917ef1e8
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0021_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0022_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0022_R.exr
new file mode 100644
index 0000000000..72c58fa1fa
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0022_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0023_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0023_R.exr
new file mode 100644
index 0000000000..dfd0eb6e33
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0023_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0024_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0024_R.exr
new file mode 100644
index 0000000000..3283508f5a
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0024_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0025_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0025_R.exr
new file mode 100644
index 0000000000..4b80f19fbe
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0025_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0026_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0026_R.exr
new file mode 100644
index 0000000000..50e24368e7
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0026_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0027_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0027_R.exr
new file mode 100644
index 0000000000..2399a3d5f7
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0027_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0028_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0028_R.exr
new file mode 100644
index 0000000000..4b7ce7fe72
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0028_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0029_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0029_R.exr
new file mode 100644
index 0000000000..9e925848b4
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0029_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0030_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0030_R.exr
new file mode 100644
index 0000000000..5ba0abe1f3
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0030_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0031_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0031_R.exr
new file mode 100644
index 0000000000..63dcc9e5ca
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0031_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0032_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0032_R.exr
new file mode 100644
index 0000000000..af6ca34b33
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0032_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0033_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0033_R.exr
new file mode 100644
index 0000000000..3f871f0e19
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0033_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0034_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0034_R.exr
new file mode 100644
index 0000000000..17469c3ced
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0034_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0035_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0035_R.exr
new file mode 100644
index 0000000000..dfea865a84
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0035_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0036_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0036_R.exr
new file mode 100644
index 0000000000..3bd7ece766
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0036_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0037_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0037_R.exr
new file mode 100644
index 0000000000..87063a34c8
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0037_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0038_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0038_R.exr
new file mode 100644
index 0000000000..b305bf3b3b
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0038_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0039_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0039_R.exr
new file mode 100644
index 0000000000..757de83cfc
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0039_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0040_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0040_R.exr
new file mode 100644
index 0000000000..1fccc19685
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0040_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0041_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0041_R.exr
new file mode 100644
index 0000000000..cb246aa9f7
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0041_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0042_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0042_R.exr
new file mode 100644
index 0000000000..4152b9b941
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0042_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0043_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0043_R.exr
new file mode 100644
index 0000000000..1e3159361e
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0043_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0044_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0044_R.exr
new file mode 100644
index 0000000000..9aa096817e
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0044_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0045_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0045_R.exr
new file mode 100644
index 0000000000..cade6c3dbe
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0045_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0046_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0046_R.exr
new file mode 100644
index 0000000000..4f39f34cfb
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0046_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0047_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0047_R.exr
new file mode 100644
index 0000000000..47473782f3
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0047_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0048_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0048_R.exr
new file mode 100644
index 0000000000..e4d1cd9296
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0048_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0049_R.exr b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0049_R.exr
new file mode 100644
index 0000000000..bc57e8c91e
Binary files /dev/null and b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth/Image0049_R.exr differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth_M_color.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth_M_color.txt
new file mode 100644
index 0000000000..b94945bdf9
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/depth_M_color.txt
@@ -0,0 +1,4 @@
+1.0 -1.0860759513953155e-10 8.729522660289035e-11 -0.09999999403953552
+0.0 1.0000001192092896 -1.0286612450727262e-08 -1.6338162822648883e-08
+-1.1641532182693481e-10 -1.0286612450727262e-08 1.0000001192092896 2.640081220306456e-08
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0001.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0001.txt
new file mode 100644
index 0000000000..d4b132fa49
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0001.txt
@@ -0,0 +1,4 @@
+0.8191519975662231 0.5735763907432556 0.0 -0.00920269824564457
+0.4055797755718231 -0.5792279243469238 -0.7071067690849304 -0.09348556399345398
+-0.4055797755718231 0.5792279243469238 -0.7071067094802856 0.46118107438087463
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0002.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0002.txt
new file mode 100644
index 0000000000..2853322245
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0002.txt
@@ -0,0 +1,4 @@
+0.8184728622436523 0.57454514503479 0.0 -0.009102441370487213
+0.4061336815357208 -0.5785609483718872 -0.7073348760604858 -0.09333616495132446
+-0.406395822763443 0.578934371471405 -0.7068785429000854 0.4609491229057312
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0003.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0003.txt
new file mode 100644
index 0000000000..d469119057
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0003.txt
@@ -0,0 +1,4 @@
+0.816466212272644 0.5773932337760925 -1.4901162970204496e-08 -0.008809738792479038
+0.4077586829662323 -0.5765935182571411 -0.7080062627792358 -0.09289850294589996
+-0.40879806876182556 0.5780632495880127 -0.706206202507019 0.4602670967578888
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0004.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0004.txt
new file mode 100644
index 0000000000..a43cba95b5
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0004.txt
@@ -0,0 +1,4 @@
+0.8131693601608276 0.5820270776748657 -1.4901161193847656e-08 -0.008340374566614628
+0.41039153933525085 -0.5733716487884521 -0.7091007232666016 -0.092191182076931
+-0.4127158522605896 0.576619029045105 -0.7051072120666504 0.45915699005126953
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0005.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0005.txt
new file mode 100644
index 0000000000..d978680719
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0005.txt
@@ -0,0 +1,4 @@
+0.8086094856262207 0.5883457064628601 1.4901159417490817e-08 -0.007713909726589918
+0.41395923495292664 -0.5689365267753601 -0.710597574710846 -0.09123633056879044
+-0.4180769622325897 0.5745958685874939 -0.7035986185073853 0.45764264464378357
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0006.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0006.txt
new file mode 100644
index 0000000000..922a43e966
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0006.txt
@@ -0,0 +1,4 @@
+0.8028054237365723 0.5962411165237427 -2.9802322387695312e-08 -0.006953080650418997
+0.4183806777000427 -0.5633262395858765 -0.7124754190444946 -0.09005934000015259
+-0.4248071312904358 0.5719791054725647 -0.701697051525116 0.4557497501373291
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0007.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0007.txt
new file mode 100644
index 0000000000..818c84db8c
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0007.txt
@@ -0,0 +1,4 @@
+0.795769453048706 0.6055997610092163 -1.4901161193847656e-08 -0.0060828314162790775
+0.42356762290000916 -0.5565757751464844 -0.7147125005722046 -0.08868788182735443
+-0.43282970786094666 0.5687463283538818 -0.6994183659553528 0.4535053074359894
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0008.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0008.txt
new file mode 100644
index 0000000000..e4e059168e
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0008.txt
@@ -0,0 +1,4 @@
+0.7875093221664429 0.6163028478622437 0.0 -0.005129436030983925
+0.4294264614582062 -0.5487194061279297 -0.7172865271568298 -0.087151899933815
+-0.4420657455921173 0.5648698210716248 -0.6967782974243164 0.45093807578086853
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0009.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0009.txt
new file mode 100644
index 0000000000..151c3f4dd2
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0009.txt
@@ -0,0 +1,4 @@
+0.7780298590660095 0.6282273530960083 1.4901161193847656e-08 -0.004119593184441328
+0.4358592927455902 -0.5397911667823792 -0.7201751470565796 -0.08548298478126526
+-0.45243367552757263 0.5603177547454834 -0.6937922835350037 0.4480782747268677
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0010.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0010.txt
new file mode 100644
index 0000000000..2839314be7
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0010.txt
@@ -0,0 +1,4 @@
+0.767335057258606 0.6412464380264282 1.4901161193847656e-08 -0.0030798681546002626
+0.4427650570869446 -0.5298261046409607 -0.7233557105064392 -0.08371386677026749
+-0.4638492465019226 0.555056095123291 -0.690475583076477 0.444957971572876
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0011.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0011.txt
new file mode 100644
index 0000000000..f39084cb87
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0011.txt
@@ -0,0 +1,4 @@
+0.7554287314414978 0.6552307605743408 -1.4901161193847656e-08 -0.002035644603893161
+0.45004111528396606 -0.5188614130020142 -0.7268052101135254 -0.08187814056873322
+-0.4762251675128937 0.5490495562553406 -0.6868436336517334 0.44161027669906616
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0012.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0012.txt
new file mode 100644
index 0000000000..061a99073a
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0012.txt
@@ -0,0 +1,4 @@
+0.7423171401023865 0.6700486540794373 1.4901159417490817e-08 -0.0010107600828632712
+0.45758408308029175 -0.5069370269775391 -0.7305009365081787 -0.08000965416431427
+-0.4894711673259735 0.5422633290290833 -0.6829116344451904 0.4380698800086975
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0013.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0013.txt
new file mode 100644
index 0000000000..601a7b87d4
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0013.txt
@@ -0,0 +1,4 @@
+0.7280094623565674 0.6855671405792236 0.0 -2.676434814929962e-05
+0.4652910828590393 -0.49409639835357666 -0.7344201803207397 -0.0781419649720192
+-0.503494381904602 0.5346648097038269 -0.6786950826644897 0.43437278270721436
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0014.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0014.txt
new file mode 100644
index 0000000000..14be49a348
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0014.txt
@@ -0,0 +1,4 @@
+0.712519109249115 0.7016527056694031 -1.4901159417490817e-08 0.0008976565441116691
+0.47306087613105774 -0.4803871512413025 -0.7385401129722595 -0.07630810886621475
+-0.5181986689567566 0.5262240171432495 -0.674209475517273 0.43055546283721924
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0015.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0015.txt
new file mode 100644
index 0000000000..74a95b5ad1
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0015.txt
@@ -0,0 +1,4 @@
+0.695865273475647 0.7181724309921265 0.0 0.0017469320446252823
+0.4807955026626587 -0.4658615291118622 -0.7428382635116577 -0.07453995943069458
+-0.5334859490394592 0.5169153213500977 -0.6694708466529846 0.426655650138855
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0016.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0016.txt
new file mode 100644
index 0000000000..b79115b60c
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0016.txt
@@ -0,0 +1,4 @@
+0.6780732870101929 0.7349943518638611 2.9802322387695312e-08 0.0025089767295867205
+0.48840025067329407 -0.45057645440101624 -0.7472923994064331 -0.07286761701107025
+-0.5492557287216187 0.5067190527915955 -0.6644952893257141 0.42271122336387634
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0017.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0017.txt
new file mode 100644
index 0000000000..20821f9a13
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0017.txt
@@ -0,0 +1,4 @@
+0.6591755151748657 0.7519891262054443 1.4901161193847656e-08 0.003175426973029971
+0.4957859516143799 -0.4345940053462982 -0.7518805861473083 -0.07131931185722351
+-0.5654060244560242 0.4956212639808655 -0.6592992544174194 0.4187600910663605
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0018.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0018.txt
new file mode 100644
index 0000000000..83a915d40f
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0018.txt
@@ -0,0 +1,4 @@
+0.6392122507095337 0.7690303921699524 1.4901161193847656e-08 0.003741637570783496
+0.5028690099716187 -0.4179809093475342 -0.7565809488296509 -0.06992070376873016
+-0.5818337202072144 0.48361581563949585 -0.6539000272750854 0.4148397445678711
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0019.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0019.txt
new file mode 100644
index 0000000000..313a055884
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0019.txt
@@ -0,0 +1,4 @@
+0.6182315945625305 0.7859960794448853 -1.4901161193847656e-08 0.0042068189941346645
+0.5095728635787964 -0.4008086621761322 -0.761372447013855 -0.06869465857744217
+-0.598435640335083 0.47070440649986267 -0.6483148336410522 0.41098687052726746
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0020.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0020.txt
new file mode 100644
index 0000000000..a5be8edb7f
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0020.txt
@@ -0,0 +1,4 @@
+0.5962899923324585 0.802769124507904 0.0 0.004573747515678406
+0.5158284902572632 -0.38315296173095703 -0.7662342190742493 -0.0676606297492981
+-0.6151092052459717 0.4568977952003479 -0.6425615549087524 0.4072369933128357
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0021.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0021.txt
new file mode 100644
index 0000000000..a6619f8621
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0021.txt
@@ -0,0 +1,4 @@
+0.5734525322914124 0.8192389011383057 -2.9802322387695312e-08 0.004848741460591555
+0.5215751528739929 -0.3650932312011719 -0.7711460590362549 -0.06683473289012909
+-0.6317527294158936 0.44221556186676025 -0.6366583108901978 0.40362349152565
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0022.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0022.txt
new file mode 100644
index 0000000000..91a8a6aa21
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0022.txt
@@ -0,0 +1,4 @@
+0.5497923493385315 0.835301399230957 -2.9802322387695312e-08 0.005041027907282114
+0.526761531829834 -0.34671249985694885 -0.7760881185531616 -0.0662294402718544
+-0.6482675075531006 0.4266873002052307 -0.6306244134902954 0.40017786622047424
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0023.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0023.txt
new file mode 100644
index 0000000000..1e655ee573
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0023.txt
@@ -0,0 +1,4 @@
+0.5253911018371582 0.8508608341217041 0.0 0.005162715911865234
+0.5313448905944824 -0.32809579372406006 -0.7810414433479309 -0.06585310399532318
+-0.6645575761795044 0.4103522300720215 -0.6244791746139526 0.3969287574291229
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0024.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0024.txt
new file mode 100644
index 0000000000..e6704bab02
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0024.txt
@@ -0,0 +1,4 @@
+0.5003378391265869 0.8658303022384644 0.0 0.005228161811828613
+0.5352931618690491 -0.30933016538619995 -0.7859873175621033 -0.06571038067340851
+-0.6805315613746643 0.393259197473526 -0.618242621421814 0.3939014971256256
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0025.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0025.txt
new file mode 100644
index 0000000000..a63e92d130
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0025.txt
@@ -0,0 +1,4 @@
+0.47472915053367615 0.8801319003105164 0.0 0.005253314971923828
+0.5385837554931641 -0.29050350189208984 -0.7909080386161804 -0.06580186635255814
+-0.6961033344268799 0.37546706199645996 -0.6119351983070374 0.3911179304122925
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0026.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0026.txt
new file mode 100644
index 0000000000..ddaf1ab385
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0026.txt
@@ -0,0 +1,4 @@
+0.44866830110549927 0.8936983346939087 -1.4901161193847656e-08 0.00525530194863677
+0.5412039160728455 -0.2717035710811615 -0.7957861423492432 -0.0661243200302124
+-0.7111927270889282 0.35704395174980164 -0.605577826499939 0.38859617710113525
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0027.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0027.txt
new file mode 100644
index 0000000000..bd496884c3
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0027.txt
@@ -0,0 +1,4 @@
+0.42226460576057434 0.9064726233482361 -1.4901161193847656e-08 0.0052517312578856945
+0.5431515574455261 -0.25301775336265564 -0.800605058670044 -0.06667090952396393
+-0.7257266044616699 0.3380671739578247 -0.5991924405097961 0.3863498866558075
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0028.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0028.txt
new file mode 100644
index 0000000000..5420333b65
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0028.txt
@@ -0,0 +1,4 @@
+0.395632266998291 0.9184089303016663 0.0 0.0052602775394916534
+0.5444336533546448 -0.2345311939716339 -0.8053489923477173 -0.06743118166923523
+-0.7396398186683655 0.3186221420764923 -0.5928008556365967 0.38438859581947327
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0029.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0029.txt
new file mode 100644
index 0000000000..f9784d481a
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0029.txt
@@ -0,0 +1,4 @@
+0.3688908517360687 0.9294727444648743 0.0 0.005297591909766197
+0.5450668931007385 -0.21632716059684753 -0.810002863407135 -0.06839151680469513
+-0.7528756260871887 0.2988027036190033 -0.5864259600639343 0.38271716237068176
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0030.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0030.txt
new file mode 100644
index 0000000000..f4efe211cc
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0030.txt
@@ -0,0 +1,4 @@
+0.342162162065506 0.9396408200263977 -1.4901159417490817e-08 0.0053793820552527905
+0.5450766682624817 -0.19848501682281494 -0.8145520091056824 -0.06953547149896622
+-0.7653863430023193 0.27870890498161316 -0.5800904035568237 0.38133594393730164
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0031.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0031.txt
new file mode 100644
index 0000000000..97966e4c44
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0031.txt
@@ -0,0 +1,4 @@
+0.31557193398475647 0.9489016532897949 1.4901161193847656e-08 0.005519295576959848
+0.5444970726966858 -0.1810809075832367 -0.818982720375061 -0.07084406167268753
+-0.777134120464325 0.25844794511795044 -0.5738182663917542 0.3802410364151001
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0032.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0032.txt
new file mode 100644
index 0000000000..2f2a0239fe
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0032.txt
@@ -0,0 +1,4 @@
+0.289247065782547 0.9572545289993286 0.0 0.005728639662265778
+0.5433692932128906 -0.16418620944023132 -0.8232817053794861 -0.07229620963335037
+-0.7880900502204895 0.2381318062543869 -0.5676330327987671 0.3794237971305847
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0033.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0033.txt
new file mode 100644
index 0000000000..4d92bbfbf3
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0033.txt
@@ -0,0 +1,4 @@
+0.2633156180381775 0.9647097587585449 -7.450580596923828e-09 0.006016004364937544
+0.541741669178009 -0.14786730706691742 -0.827436625957489 -0.07386908680200577
+-0.7982361316680908 0.21787697076797485 -0.5615592002868652 0.378871887922287
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0034.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0034.txt
new file mode 100644
index 0000000000..8da0a5c2fd
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0034.txt
@@ -0,0 +1,4 @@
+0.23790577054023743 0.9712882041931152 -7.4505797087454084e-09 0.006386858876794577
+0.539668619632721 -0.13218559324741364 -0.8314352035522461 -0.07553871721029282
+-0.8075631856918335 0.19780327379703522 -0.5556214451789856 0.3785686790943146
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0035.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0035.txt
new file mode 100644
index 0000000000..c7f5342e7f
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0035.txt
@@ -0,0 +1,4 @@
+0.21314503252506256 0.9770206212997437 -7.450581485102248e-09 0.006843383889645338
+0.5372099280357361 -0.1171967163681984 -0.8352667689323425 -0.077280193567276
+-0.8160728216171265 0.17803293466567993 -0.5498450398445129 0.3784946799278259
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0036.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0036.txt
new file mode 100644
index 0000000000..95d54ff6c4
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0036.txt
@@ -0,0 +1,4 @@
+0.18916046619415283 0.9819461703300476 7.450580596923828e-09 0.007383914198726416
+0.5344289541244507 -0.10295148938894272 -0.838919997215271 -0.07906802743673325
+-0.8237743377685547 0.15869049727916718 -0.5442547798156738 0.37862667441368103
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0037.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0037.txt
new file mode 100644
index 0000000000..3e05599748
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0037.txt
@@ -0,0 +1,4 @@
+0.1660759150981903 0.9861130714416504 0.0 0.008003652095794678
+0.53139328956604 -0.08949444442987442 -0.8423846960067749 -0.08087696880102158
+-0.8306864500045776 0.13989980518817902 -0.5388767719268799 0.37893930077552795
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0038.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0038.txt
new file mode 100644
index 0000000000..943e9cce20
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0038.txt
@@ -0,0 +1,4 @@
+0.14401447772979736 0.9895755052566528 0.0 0.00869389995932579
+0.5281722545623779 -0.07686574757099152 -0.8456509709358215 -0.08268146961927414
+-0.836835503578186 0.12178599834442139 -0.5337361693382263 0.3794049024581909
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0039.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0039.txt
new file mode 100644
index 0000000000..7311db5543
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0039.txt
@@ -0,0 +1,4 @@
+0.12309587746858597 0.9923948645591736 -7.450581485102248e-09 0.009442712180316448
+0.5248371362686157 -0.06510037928819656 -0.8487095832824707 -0.08445698767900467
+-0.8422549962997437 0.10447263717651367 -0.5288591980934143 0.37999436259269714
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0040.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0040.txt
new file mode 100644
index 0000000000..562cad594f
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0040.txt
@@ -0,0 +1,4 @@
+0.10343741625547409 0.9946359992027283 0.0 0.010234999470412731
+0.5214595198631287 -0.05422930791974068 -0.8515511155128479 -0.08617942780256271
+-0.8469833731651306 0.08808223903179169 -0.5242717266082764 0.3806774616241455
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0041.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0041.txt
new file mode 100644
index 0000000000..e3d08933a0
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0041.txt
@@ -0,0 +1,4 @@
+0.08515303581953049 0.9963678121566772 0.0 0.011052999645471573
+0.5181108713150024 -0.0442795529961586 -0.8541663885116577 -0.08782558143138885
+-0.8510640263557434 0.07273488491773605 -0.5199995636940002 0.3814231753349304
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0042.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0042.txt
new file mode 100644
index 0000000000..ff52786442
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0042.txt
@@ -0,0 +1,4 @@
+0.06835391372442245 0.9976611733436584 0.0 0.01187670323997736
+0.5148620009422302 -0.03527534008026123 -0.8565471172332764 -0.08937350660562515
+-0.8545436859130859 0.05854834243655205 -0.5160690546035767 0.3822009563446045
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0043.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0043.txt
new file mode 100644
index 0000000000..07034ac762
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0043.txt
@@ -0,0 +1,4 @@
+0.0531490296125412 0.9985865354537964 1.8626449271863521e-09 0.012684086337685585
+0.5117815732955933 -0.027239201590418816 -0.8586835861206055 -0.09080249816179276
+-0.857469916343689 0.04563821107149124 -0.5125060081481934 0.38298022747039795
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0044.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0044.txt
new file mode 100644
index 0000000000..abe993654a
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0044.txt
@@ -0,0 +1,4 @@
+0.039643701165914536 0.9992138743400574 -1.862645593320167e-09 0.013452442362904549
+0.5089360475540161 -0.0201919786632061 -0.8605677485466003 -0.09209290891885757
+-0.8598912358283997 0.03411608934402466 -0.5093364119529724 0.383731871843338
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0045.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0045.txt
new file mode 100644
index 0000000000..0fda0caf74
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0045.txt
@@ -0,0 +1,4 @@
+0.027941718697547913 0.9996095895767212 0.0 0.014158292673528194
+0.5063878893852234 -0.01415487565100193 -0.8621896505355835 -0.09322630614042282
+-0.8618529438972473 0.02409105934202671 -0.5065857768058777 0.38442766666412354
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0046.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0046.txt
new file mode 100644
index 0000000000..2605217929
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0046.txt
@@ -0,0 +1,4 @@
+0.018144996836781502 0.9998353719711304 -9.31322685637781e-10 0.014778573997318745
+0.5041967630386353 -0.009150155819952488 -0.8635404109954834 -0.09418581426143646
+-0.8633982539176941 0.01566893979907036 -0.5042797923088074 0.38504183292388916
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0047.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0047.txt
new file mode 100644
index 0000000000..d15ad40754
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0047.txt
@@ -0,0 +1,4 @@
+0.0103538129478693 0.9999462962150574 0.0 0.01529133040457964
+0.5024165511131287 -0.005202205386012793 -0.8646100163459778 -0.09495551139116287
+-0.8645637035369873 0.008952010422945023 -0.5024434924125671 0.38555070757865906
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0048.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0048.txt
new file mode 100644
index 0000000000..d157c5e49f
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0048.txt
@@ -0,0 +1,4 @@
+0.004666863940656185 0.9999890327453613 -2.3283061589829401e-10 0.015676766633987427
+0.5010963678359985 -0.0023385740350931883 -0.8653882741928101 -0.09552090615034103
+-0.8653788566589355 0.00403864961117506 -0.5011017918586731 0.3859334886074066
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0049.txt b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0049.txt
new file mode 100644
index 0000000000..d15d28e2c7
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/data/teabox/ground-truth/Camera_L_0049.txt
@@ -0,0 +1,4 @@
+0.0011831083102151752 0.9999993443489075 0.0 0.01591740921139717
+0.5002790093421936 -0.0005918845999985933 -0.8658641576766968 -0.095868781208992
+-0.865863561630249 0.0010244110599160194 -0.5002793669700623 0.38617271184921265
+0.0 0.0 0.0 1.0
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0001.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0001.exr
deleted file mode 100644
index e4209f4518..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0001.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0002.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0002.exr
deleted file mode 100644
index 1072c72e60..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0002.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0003.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0003.exr
deleted file mode 100644
index 8b00e009ff..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0003.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0004.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0004.exr
deleted file mode 100644
index 0f4f365fb1..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0004.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0005.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0005.exr
deleted file mode 100644
index 0dc497e103..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0005.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0006.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0006.exr
deleted file mode 100644
index 6b0f17f702..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0006.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0007.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0007.exr
deleted file mode 100644
index 1aeac2dd72..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0007.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0008.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0008.exr
deleted file mode 100644
index 59bbb8700c..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0008.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0009.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0009.exr
deleted file mode 100644
index 269fcb1680..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0009.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0010.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0010.exr
deleted file mode 100644
index 2682340048..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0010.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0011.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0011.exr
deleted file mode 100644
index 8826ea9282..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0011.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0012.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0012.exr
deleted file mode 100644
index f017aeb641..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0012.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0013.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0013.exr
deleted file mode 100644
index ab1a569142..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0013.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0014.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0014.exr
deleted file mode 100644
index 1846cac058..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0014.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0015.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0015.exr
deleted file mode 100644
index 62c440d247..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0015.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0016.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0016.exr
deleted file mode 100644
index 7135c1284c..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0016.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0017.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0017.exr
deleted file mode 100644
index 4b4423caec..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0017.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0018.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0018.exr
deleted file mode 100644
index e35ffbd888..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0018.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0019.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0019.exr
deleted file mode 100644
index ad5965ee90..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0019.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0020.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0020.exr
deleted file mode 100644
index a2dba55977..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0020.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0021.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0021.exr
deleted file mode 100644
index 6305fc72c4..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0021.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0022.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0022.exr
deleted file mode 100644
index d9d9fc15e6..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0022.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0023.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0023.exr
deleted file mode 100644
index 95de9e7d91..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0023.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0024.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0024.exr
deleted file mode 100644
index d33d58eee5..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0024.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0025.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0025.exr
deleted file mode 100644
index 8e30b102cb..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0025.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0026.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0026.exr
deleted file mode 100644
index 393d5f6707..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0026.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0027.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0027.exr
deleted file mode 100644
index 8189e2a122..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0027.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0028.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0028.exr
deleted file mode 100644
index d66b5f43a7..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0028.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0029.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0029.exr
deleted file mode 100644
index 9729417d8d..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0029.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0030.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0030.exr
deleted file mode 100644
index 4599c45322..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0030.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0031.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0031.exr
deleted file mode 100644
index d86239cd39..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0031.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0032.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0032.exr
deleted file mode 100644
index 013b7df844..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0032.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0033.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0033.exr
deleted file mode 100644
index 339d36b15e..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0033.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0034.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0034.exr
deleted file mode 100644
index 7c008b1dcb..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0034.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0035.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0035.exr
deleted file mode 100644
index 3ded5230a6..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0035.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0036.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0036.exr
deleted file mode 100644
index 7d38f52f28..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0036.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0037.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0037.exr
deleted file mode 100644
index fcfa0d5073..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0037.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0038.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0038.exr
deleted file mode 100644
index 9af0c02501..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0038.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0039.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0039.exr
deleted file mode 100644
index 2de6f53db5..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0039.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0040.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0040.exr
deleted file mode 100644
index d15aa8c6ea..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0040.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0041.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0041.exr
deleted file mode 100644
index 48b6e07631..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0041.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0042.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0042.exr
deleted file mode 100644
index 076baf71e7..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0042.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0043.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0043.exr
deleted file mode 100644
index 07c046a047..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0043.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0044.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0044.exr
deleted file mode 100644
index d2b087322c..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0044.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0045.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0045.exr
deleted file mode 100644
index 31af39afc1..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0045.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0046.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0046.exr
deleted file mode 100644
index 681f007ff4..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0046.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0047.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0047.exr
deleted file mode 100644
index d5ed615ad7..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0047.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0048.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0048.exr
deleted file mode 100644
index 42307e30cc..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0048.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0049.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0049.exr
deleted file mode 100644
index 8efdc5b269..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0049.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0050.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0050.exr
deleted file mode 100644
index e40acacd2e..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0050.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0051.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0051.exr
deleted file mode 100644
index 9d36e28086..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0051.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0052.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0052.exr
deleted file mode 100644
index fa478e4a94..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0052.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0053.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0053.exr
deleted file mode 100644
index 1f226b6bc6..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0053.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0054.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0054.exr
deleted file mode 100644
index a8384222d8..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0054.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0055.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0055.exr
deleted file mode 100644
index 4efafc36a7..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0055.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0056.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0056.exr
deleted file mode 100644
index 27e5e16014..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0056.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0057.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0057.exr
deleted file mode 100644
index 59f6b80650..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0057.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0058.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0058.exr
deleted file mode 100644
index 4c16dbff20..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0058.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0059.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0059.exr
deleted file mode 100644
index 0fa5c3add2..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0059.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0060.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0060.exr
deleted file mode 100644
index 219e6e37b1..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0060.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0061.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0061.exr
deleted file mode 100644
index 542e5afdf7..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0061.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0062.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0062.exr
deleted file mode 100644
index c33a42550a..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0062.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0063.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0063.exr
deleted file mode 100644
index b311faf1c4..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0063.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0064.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0064.exr
deleted file mode 100644
index a792d7436f..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0064.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0065.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0065.exr
deleted file mode 100644
index d5df69bbf4..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0065.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0066.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0066.exr
deleted file mode 100644
index 73015731e7..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0066.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0067.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0067.exr
deleted file mode 100644
index 4a3971df35..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0067.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0068.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0068.exr
deleted file mode 100644
index 44daf01572..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0068.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0069.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0069.exr
deleted file mode 100644
index eeca011225..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0069.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0070.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0070.exr
deleted file mode 100644
index 540ec8972f..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0070.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0071.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0071.exr
deleted file mode 100644
index 882d39e34f..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0071.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0072.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0072.exr
deleted file mode 100644
index a8d213fe23..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0072.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0073.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0073.exr
deleted file mode 100644
index 4a6e845ad7..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0073.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0074.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0074.exr
deleted file mode 100644
index d3d284e718..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0074.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0075.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0075.exr
deleted file mode 100644
index 3d6e7d19aa..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0075.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0076.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0076.exr
deleted file mode 100644
index 8edc81a945..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0076.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0077.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0077.exr
deleted file mode 100644
index b430ec2e01..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0077.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0078.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0078.exr
deleted file mode 100644
index 56d5835fb5..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0078.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0079.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0079.exr
deleted file mode 100644
index 5860791f00..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0079.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0080.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0080.exr
deleted file mode 100644
index 8988edf296..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0080.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0081.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0081.exr
deleted file mode 100644
index c45582f7d7..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0081.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0082.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0082.exr
deleted file mode 100644
index 4f0875a119..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0082.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0083.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0083.exr
deleted file mode 100644
index 87a9d40af2..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0083.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0084.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0084.exr
deleted file mode 100644
index d42a12d9ec..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0084.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0085.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0085.exr
deleted file mode 100644
index 806cf43489..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0085.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0086.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0086.exr
deleted file mode 100644
index 860d1e5dff..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0086.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0087.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0087.exr
deleted file mode 100644
index 6f7cf1f3b6..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0087.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0088.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0088.exr
deleted file mode 100644
index 16f7f45849..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0088.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0089.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0089.exr
deleted file mode 100644
index 06e57d8d04..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0089.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0090.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0090.exr
deleted file mode 100644
index 64c9e67b68..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0090.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0091.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0091.exr
deleted file mode 100644
index 4aebfb9a0a..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0091.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0092.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0092.exr
deleted file mode 100644
index c9c831fcb1..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0092.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0093.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0093.exr
deleted file mode 100644
index 096756eb99..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0093.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0094.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0094.exr
deleted file mode 100644
index 50805a160f..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0094.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0095.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0095.exr
deleted file mode 100644
index 99c668301c..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0095.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0096.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0096.exr
deleted file mode 100644
index 2c890a79fa..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0096.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0097.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0097.exr
deleted file mode 100644
index ba27934b46..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0097.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0098.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0098.exr
deleted file mode 100644
index b6100e34bd..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0098.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0099.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0099.exr
deleted file mode 100644
index a3cb5e8624..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0099.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0100.exr b/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0100.exr
deleted file mode 100644
index 637275790b..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/depth/Image0100.exr and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/depth_M_color.txt b/tutorial/tracking/model-based/generic-rgbd-blender/depth_M_color.txt
deleted file mode 100644
index a07e7263ae..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/depth_M_color.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-1.0 0.0 0.0 -0.1
-0.0 1.0 0.0 0.0
-0.0 0.0 1.0 0.0
-0.0 0.0 0.0 1.0
\ No newline at end of file
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/get_camera_intrinsics.py b/tutorial/tracking/model-based/generic-rgbd-blender/get_camera_intrinsics.py
index eb25923449..2479e3b6b7 100644
--- a/tutorial/tracking/model-based/generic-rgbd-blender/get_camera_intrinsics.py
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/get_camera_intrinsics.py
@@ -2,41 +2,49 @@
from mathutils import Matrix
# https://blender.stackexchange.com/questions/15102/what-is-blenders-camera-projection-matrix-model/38189#38189
-def get_calibration_matrix_K_from_blender(camd):
- f_in_mm = camd.lens
- scene = bpy.context.scene
- resolution_x_in_px = scene.render.resolution_x
- resolution_y_in_px = scene.render.resolution_y
- scale = scene.render.resolution_percentage / 100
- sensor_width_in_mm = camd.sensor_width
- sensor_height_in_mm = camd.sensor_height
+def get_calibration_matrix_K_from_blender(cam_data):
+ """! Get the camera matrix from Blender
+ @param[in] cam_data Camera data.
+ @return Camera matrix K that contains intrinsic parameters.
+ """
+ f = cam_data.lens
+ scene = bpy.context.scene
+ resolution_x_in_px = scene.render.resolution_x
+ resolution_y_in_px = scene.render.resolution_y
+ scale = scene.render.resolution_percentage / 100
+ sensor_width = cam_data.sensor_width
+ sensor_height = cam_data.sensor_height
+ pixel_aspect_ratio = scene.render.pixel_aspect_x / scene.render.pixel_aspect_y
+ if (cam_data.sensor_fit == 'VERTICAL'):
+ # the sensor height is fixed (sensor fit is horizontal),
+ # the sensor width is effectively changed with the pixel aspect ratio
+ s_u = resolution_x_in_px * scale / sensor_width / pixel_aspect_ratio
+ s_v = resolution_y_in_px * scale / sensor_height
+ else: # 'HORIZONTAL' and 'AUTO'
+ # the sensor width is fixed (sensor fit is horizontal),
+ # the sensor height is effectively changed with the pixel aspect ratio
pixel_aspect_ratio = scene.render.pixel_aspect_x / scene.render.pixel_aspect_y
- if (camd.sensor_fit == 'VERTICAL'):
- # the sensor height is fixed (sensor fit is horizontal),
- # the sensor width is effectively changed with the pixel aspect ratio
- s_u = resolution_x_in_px * scale / sensor_width_in_mm / pixel_aspect_ratio
- s_v = resolution_y_in_px * scale / sensor_height_in_mm
- else: # 'HORIZONTAL' and 'AUTO'
- # the sensor width is fixed (sensor fit is horizontal),
- # the sensor height is effectively changed with the pixel aspect ratio
- pixel_aspect_ratio = scene.render.pixel_aspect_x / scene.render.pixel_aspect_y
- s_u = resolution_x_in_px * scale / sensor_width_in_mm
- s_v = resolution_y_in_px * scale * pixel_aspect_ratio / sensor_height_in_mm
+ s_u = resolution_x_in_px * scale / sensor_width
+ s_v = resolution_y_in_px * scale * pixel_aspect_ratio / sensor_height
- # Parameters of intrinsic calibration matrix K
- alpha_u = f_in_mm * s_u
- alpha_v = f_in_mm * s_v
- u_0 = resolution_x_in_px*scale / 2
- v_0 = resolution_y_in_px*scale / 2
- skew = 0 # only use rectangular pixels
+ # Parameters of intrinsic calibration matrix K
+ p_x = f * s_u
+ p_y = f * s_v
+ u_0 = resolution_x_in_px*scale / 2
+ v_0 = resolution_y_in_px*scale / 2
+ skew = 0 # only use rectangular pixels
- K = Matrix(
- ((alpha_u, skew, u_0),
- ( 0 , alpha_v, v_0),
- ( 0 , 0, 1 )))
- return K
+ K = Matrix(
+ ((p_x, skew, u_0),
+ ( 0, p_y, v_0),
+ ( 0, 0, 1 )))
+ return K
if __name__ == "__main__":
- # Insert your camera name below
- K = get_calibration_matrix_K_from_blender(bpy.data.objects['Camera'].data)
- print(K)
+ """! Python script that dials with Blender to retrieve camera intrinsic parameters.
+ """
+ # Modify your camera name below
+ # If you follow carefully the tutorial, you can set "Camera_L" for the color camera and "Camera_R" for the depth camera
+ camera_name = "Camera_R"
+ K = get_calibration_matrix_K_from_blender(bpy.data.objects[camera_name].data)
+ print(f"Intrinsics for {camera_name} are K = \n{K}")
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/get_camera_pose_teabox.py b/tutorial/tracking/model-based/generic-rgbd-blender/get_camera_pose_teabox.py
index 108b8c5a57..4aef53c707 100644
--- a/tutorial/tracking/model-based/generic-rgbd-blender/get_camera_pose_teabox.py
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/get_camera_pose_teabox.py
@@ -1,76 +1,232 @@
import bpy
import os
-from mathutils import *
+from mathutils import Matrix
+import sys
-prefix_pose = "/tmp/camera_poses/"
-prefix_image = "/tmp/images/"
+def save_depth_M_color_file(prefix_data, scene, camera_name_color, camera_name_depth):
+ """! Save depth_M_color.txt file.
+ @param[in] prefix_data String corresponding to the folder where depth_M_color.txt file has to be saved.
+ @param[in] scene Scene handler.
+ @param[in] camera_name_color String corresponding to the name of the color camera to consider.
+ @param[in] camera_name_depth String corresponding to the name of the depth camera to consider.
+ """
-def get_camera_pose(cameraName, objectName, scene, frameNumber):
- if not os.path.exists(prefix_pose):
- os.makedirs(prefix_pose)
+ w_M_c = get_object_pose_in_world(camera_name_color)
+ w_M_d = get_object_pose_in_world(camera_name_depth)
+ d_M_c = w_M_d.inverted() @ w_M_c
+ #print("d_M_c: \n", d_M_c)
+
+ filename = prefix_data + "depth_M_color.txt"
+ save_pose(filename, d_M_c)
+ print(f"Saved: {filename}")
+
+def get_object_pose_in_world(object_name):
+ """! Return the object pose in the world frame w_M_o.
+ @param[in] object_name String corresponding to the name of the object to consider.
+ @return The 4-by-4 homogeneous matrix corresponding to w_M_object.
+ """
+ w_M_object = bpy.data.objects[object_name].matrix_world
+ w_M_object_normalized = w_M_object.copy()
+ w_R_object_normalized = w_M_object_normalized.to_3x3().normalized()
+ for i in range(3):
+ for j in range(3):
+ w_M_object_normalized[i][j] = w_R_object_normalized[i][j]
+ return w_M_object_normalized
+
+def get_camera_pose(camera_name, object_name):
+ """! Return the object pose in the camera frame as an homogenous matrices.
+ @param[in] camera_name String corresponding to the name of the camera to consider.
+ @param[in] object_name String corresponding to the name of the object to consider.
+ @return The 4-by-4 homogeneous matrix corresponding to c_M_o.
+ """
# OpenGL to Computer vision camera frame convention
M = Matrix().to_4x4()
M[1][1] = -1
M[2][2] = -1
- cam = bpy.data.objects[cameraName]
- object_pose = bpy.data.objects[objectName].matrix_world
+ #print("M: \n", M)
- #Normalize orientation with respect to the scale
- object_pose_normalized = object_pose.copy()
- object_orientation_normalized = object_pose_normalized.to_3x3().normalized()
- for i in range(3):
- for j in range(3):
- object_pose_normalized[i][j] = object_orientation_normalized[i][j]
+ w_M_c = get_object_pose_in_world(camera_name)
+ w_M_o = get_object_pose_in_world(object_name)
+
+ #print("w_M_c: \n", w_M_c)
+ #print("w_M_o: \n", w_M_o)
+
+ c_M_o = M @ w_M_c.inverted() @ w_M_o
+
+ #print("c_M_o:\n", c_M_o)
+ return c_M_o
- camera_pose = M*cam.matrix_world.inverted()*object_pose_normalized
- print("camera_pose:\n", camera_pose)
-
- filename = prefix_pose + cameraName + "_%03d" % frameNumber + ".txt"
+def save_pose(filename, pose):
+ """! Save pose in a .txt file.
+ @param[in] filename String corresponding to the file name that will contain the saved pose.
+ @param[in] pose Object pose to save as a 4-by-4 homogeneous matrix.
+ """
+
+ print(f"Save: {filename}")
with open(filename, 'w') as f:
- f.write(str(camera_pose[0][0]) + " ")
- f.write(str(camera_pose[0][1]) + " ")
- f.write(str(camera_pose[0][2]) + " ")
- f.write(str(camera_pose[0][3]) + " ")
+ f.write(str(pose[0][0]) + " ")
+ f.write(str(pose[0][1]) + " ")
+ f.write(str(pose[0][2]) + " ")
+ f.write(str(pose[0][3]) + " ")
f.write("\n")
- f.write(str(camera_pose[1][0]) + " ")
- f.write(str(camera_pose[1][1]) + " ")
- f.write(str(camera_pose[1][2]) + " ")
- f.write(str(camera_pose[1][3]) + " ")
+ f.write(str(pose[1][0]) + " ")
+ f.write(str(pose[1][1]) + " ")
+ f.write(str(pose[1][2]) + " ")
+ f.write(str(pose[1][3]) + " ")
f.write("\n")
- f.write(str(camera_pose[2][0]) + " ")
- f.write(str(camera_pose[2][1]) + " ")
- f.write(str(camera_pose[2][2]) + " ")
- f.write(str(camera_pose[2][3]) + " ")
+ f.write(str(pose[2][0]) + " ")
+ f.write(str(pose[2][1]) + " ")
+ f.write(str(pose[2][2]) + " ")
+ f.write(str(pose[2][3]) + " ")
f.write("\n")
- f.write(str(camera_pose[3][0]) + " ")
- f.write(str(camera_pose[3][1]) + " ")
- f.write(str(camera_pose[3][2]) + " ")
- f.write(str(camera_pose[3][3]) + " ")
+ f.write(str(pose[3][0]) + " ")
+ f.write(str(pose[3][1]) + " ")
+ f.write(str(pose[3][2]) + " ")
+ f.write(str(pose[3][3]) + " ")
f.write("\n")
return
+def save_color_camera_pose(prefix, scene, camera_name, object_name):
+ """! Save homogeneous transformation from camera to object frames (cMo).
+ @param[in] prefix String corresponding to the folder name that will contain the saved poses.
+ @param[in] scene Scene handler.
+ @param[in] camera_name String corresponding to the name of the camera to consider.
+ @param[in] object_name String corresponding to the name of the object to track.
+ """
+ frame_number = scene.frame_current
+ print("\n\nCurrent Frame", scene.frame_current)
+ camera_pose = get_camera_pose(camera_name, object_name)
+
+ filename = prefix + camera_name_color + "_%04d" % frame_number + ".txt"
+ save_pose(filename, camera_pose)
+
+def get_intrinsics(camera_name):
+ """! Save camera intrinsics in xml.
+ @param[in] prefix String corresponding to the folder name that will contain the intrinsics xml file.
+ @param[in] scene Scene handler.
+ @param[in] camera_name String corresponding to the name of the camera to consider.
+ """
+ cam_data = bpy.data.objects[camera_name].data
+ f = cam_data.lens
+ scene = bpy.context.scene
+ resolution_x_in_px = scene.render.resolution_x
+ resolution_y_in_px = scene.render.resolution_y
+ scale = scene.render.resolution_percentage / 100
+ sensor_width = cam_data.sensor_width
+ sensor_height = cam_data.sensor_height
+ pixel_aspect_ratio = scene.render.pixel_aspect_x / scene.render.pixel_aspect_y
+ if (cam_data.sensor_fit == 'VERTICAL'):
+ # the sensor height is fixed (sensor fit is horizontal),
+ # the sensor width is effectively changed with the pixel aspect ratio
+ s_u = resolution_x_in_px * scale / sensor_width / pixel_aspect_ratio
+ s_v = resolution_y_in_px * scale / sensor_height
+ else: # 'HORIZONTAL' and 'AUTO'
+ # the sensor width is fixed (sensor fit is horizontal),
+ # the sensor height is effectively changed with the pixel aspect ratio
+ pixel_aspect_ratio = scene.render.pixel_aspect_x / scene.render.pixel_aspect_y
+ s_u = resolution_x_in_px * scale / sensor_width
+ s_v = resolution_y_in_px * scale * pixel_aspect_ratio / sensor_height
+
+ # Parameters of intrinsic calibration matrix K
+ w = resolution_x_in_px
+ h = resolution_y_in_px
+ p_x = f * s_u
+ p_y = f * s_v
+ u_0 = resolution_x_in_px*scale / 2
+ v_0 = resolution_y_in_px*scale / 2
+
+ return w, h, p_x, p_y, u_0, v_0
+
+def save_intrinsics(filename, camera_name, w, h, p_x, p_y, u_0, v_0):
+ """! Save camera intrinsics in xml.
+ @param[in] filename Name of the file that will contain the intrinsics in xml format.
+ #param w, h Image size.
+ @param[in] p_x, p_y Ratio between the focal length and the size of the pixel.
+ @param[in] u_0, v_0 Coordinates of the principal point.
+ """
+ print(f"Save: {filename}")
+ with open(filename, 'w') as f:
+ f.write("\n")
+ f.write("\n")
+ f.write(" \n")
+ f.write(f" {camera_name}\n")
+ f.write(f" {w}\n")
+ f.write(f" {h}\n")
+ f.write(" \n")
+ f.write(" perspectiveProjWithoutDistortion\n")
+ f.write(f" {p_x}\n")
+ f.write(f" {p_y}\n")
+ f.write(f" {u_0}\n")
+ f.write(f" {v_0}\n")
+ f.write(" \n")
+ f.write(" \n")
+ f.write("\n")
+ f.write("\n")
+
+if __name__ == '__main__':
+ """! Python script that save camera poses, color and depth images, but also depth to color transform.
+ """
+ camera_name_color = "Camera_L"
+ camera_name_depth = "Camera_R"
+ object_name = "teabox"
+ prefix_data = "/tmp/teabox/"
+ prefix_pose = prefix_data + "ground-truth/"
+ prefix_color_images = prefix_data + "color/"
+ prefix_depth_images = prefix_data + "depth/"
+ images_suffix = "JPEG"
+
+ if not os.path.exists(prefix_data):
+ print(f"Create {prefix_data}")
+ os.makedirs(prefix_data)
+
+ if not os.path.exists(prefix_pose):
+ print(f"Create {prefix_pose}")
+ os.makedirs(prefix_pose)
+
+ scene = bpy.context.scene
+
+ save_depth_M_color_file(prefix_data, scene, camera_name_color, camera_name_depth)
+
+ color_w, color_h, color_p_x, color_p_y, color_u_0, color_v_0 = get_intrinsics(camera_name_color)
+ filename_color_intrinsics = prefix_data + camera_name_color + ".xml"
+ save_intrinsics(filename_color_intrinsics, camera_name_color, color_w, color_h, color_p_x, color_p_y, color_u_0, color_v_0)
+
+ depth_w, depth_h, depth_p_x, depth_p_y, depth_u_0, depth_v_0 = get_intrinsics(camera_name_depth)
+ filename_depth_intrinsics = prefix_data + camera_name_depth + ".xml"
+ save_intrinsics(filename_depth_intrinsics, camera_name_depth, depth_w, depth_h, depth_p_x, depth_p_y, depth_u_0, depth_v_0)
+
+ for step in range(scene.frame_start, scene.frame_end):
+ # Set render frame
+ scene.frame_set(step)
+
+ # Set filename and render
+ if not os.path.exists(prefix_color_images):
+ os.makedirs(prefix_color_images)
+ scene.render.filepath = (prefix_color_images + '%04d') % step
+ scene.render.image_settings.file_format = images_suffix
+ bpy.ops.render.render( write_still=True )
+
+ save_color_camera_pose(prefix_pose, scene, camera_name_color, object_name)
-def my_handler(scene):
- frameNumber = scene.frame_current
- print("\n\nFrame Change", scene.frame_current)
- get_camera_pose("Camera", "tea_box_02", scene, frameNumber)
+ # Remove useless rendered images to keep only
+ # - color images from Camera_L
+ # - depth images from Camera_R
+ filename_color_R = (prefix_color_images + '%04d' + "_R" + scene.render.file_extension) % step
+ if not os.path.exists(filename_color_R):
+ raise Exception(f"Color image {filename_color_R} doesn't exists. Should not occur.")
-step_count = 250
-scene = bpy.context.scene
-for step in range(1, step_count):
- # Set render frame
- scene.frame_set(step)
+ print(f"Remove file: {filename_color_R}")
+ os.remove(filename_color_R)
- # Set filename and render
- if not os.path.exists(prefix_image):
- os.makedirs(prefix_image)
- scene.render.filepath = (prefix_image + '%04d.png') % step
- bpy.ops.render.render( write_still=True )
+ filename_depth_L = (prefix_depth_images + 'Image%04d' + "_L" + ".exr") % step
+ if not os.path.exists(filename_depth_L):
+ raise Exception(f"Depth image {filename_depth_L} doesn't exists. Check if you set the extension to OpenEXR in the compositor.")
- my_handler(scene)
+ print(f"Remove file: {filename_depth_L}")
+ os.remove(filename_depth_L)
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0001.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0001.jpg
deleted file mode 100644
index eca446d429..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0001.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0002.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0002.jpg
deleted file mode 100644
index 3ce956076d..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0002.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0003.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0003.jpg
deleted file mode 100644
index b5655dbaf9..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0003.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0004.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0004.jpg
deleted file mode 100644
index d3e07ab944..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0004.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0005.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0005.jpg
deleted file mode 100644
index edc3e120d8..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0005.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0006.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0006.jpg
deleted file mode 100644
index a5a174c2bb..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0006.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0007.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0007.jpg
deleted file mode 100644
index b26b43847c..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0007.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0008.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0008.jpg
deleted file mode 100644
index 62d2309979..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0008.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0009.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0009.jpg
deleted file mode 100644
index ccf150f4ac..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0009.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0010.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0010.jpg
deleted file mode 100644
index 0e6af7a385..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0010.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0011.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0011.jpg
deleted file mode 100644
index fc34ae6c35..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0011.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0012.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0012.jpg
deleted file mode 100644
index 68c42f159e..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0012.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0013.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0013.jpg
deleted file mode 100644
index 6cee1fcfe5..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0013.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0014.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0014.jpg
deleted file mode 100644
index 02521133c8..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0014.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0015.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0015.jpg
deleted file mode 100644
index b2d87a69f3..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0015.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0016.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0016.jpg
deleted file mode 100644
index 502b6988f2..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0016.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0017.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0017.jpg
deleted file mode 100644
index 0411a8c462..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0017.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0018.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0018.jpg
deleted file mode 100644
index e5778cd9c7..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0018.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0019.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0019.jpg
deleted file mode 100644
index b1e7055496..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0019.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0020.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0020.jpg
deleted file mode 100644
index 1b6f1b2036..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0020.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0021.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0021.jpg
deleted file mode 100644
index c4ed722bc8..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0021.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0022.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0022.jpg
deleted file mode 100644
index 2a9884dff9..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0022.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0023.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0023.jpg
deleted file mode 100644
index e5f3e30783..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0023.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0024.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0024.jpg
deleted file mode 100644
index 1c94ceb2ac..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0024.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0025.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0025.jpg
deleted file mode 100644
index 3533e42f60..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0025.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0026.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0026.jpg
deleted file mode 100644
index 2c0efe64c2..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0026.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0027.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0027.jpg
deleted file mode 100644
index b24ee75c67..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0027.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0028.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0028.jpg
deleted file mode 100644
index b946aaadf5..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0028.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0029.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0029.jpg
deleted file mode 100644
index 75dac0bd90..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0029.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0030.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0030.jpg
deleted file mode 100644
index 79fa34b59a..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0030.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0031.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0031.jpg
deleted file mode 100644
index 7ba2e532d5..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0031.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0032.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0032.jpg
deleted file mode 100644
index 1101bd356b..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0032.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0033.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0033.jpg
deleted file mode 100644
index 0954b15e5a..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0033.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0034.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0034.jpg
deleted file mode 100644
index 01b77ee8ec..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0034.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0035.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0035.jpg
deleted file mode 100644
index c3eff6c6ff..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0035.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0036.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0036.jpg
deleted file mode 100644
index b5d48a9774..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0036.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0037.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0037.jpg
deleted file mode 100644
index baf1c5041a..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0037.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0038.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0038.jpg
deleted file mode 100644
index 130f94fe0b..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0038.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0039.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0039.jpg
deleted file mode 100644
index 1c586307ea..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0039.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0040.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0040.jpg
deleted file mode 100644
index 0a2318fcfc..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0040.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0041.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0041.jpg
deleted file mode 100644
index eb2f33ff55..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0041.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0042.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0042.jpg
deleted file mode 100644
index 16298415a8..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0042.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0043.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0043.jpg
deleted file mode 100644
index ef5888830b..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0043.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0044.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0044.jpg
deleted file mode 100644
index a88fce24ae..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0044.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0045.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0045.jpg
deleted file mode 100644
index 4e54816038..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0045.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0046.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0046.jpg
deleted file mode 100644
index 377ff80ad6..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0046.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0047.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0047.jpg
deleted file mode 100644
index 4d6d46f852..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0047.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0048.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0048.jpg
deleted file mode 100644
index e03dd440de..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0048.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0049.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0049.jpg
deleted file mode 100644
index f982842ccf..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0049.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0050.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0050.jpg
deleted file mode 100644
index f5eb31d62f..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0050.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0051.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0051.jpg
deleted file mode 100644
index 55f3da5dbc..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0051.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0052.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0052.jpg
deleted file mode 100644
index a5c91ff62e..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0052.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0053.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0053.jpg
deleted file mode 100644
index 5ead5e5f20..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0053.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0054.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0054.jpg
deleted file mode 100644
index 713af24840..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0054.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0055.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0055.jpg
deleted file mode 100644
index e69f0d02a3..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0055.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0056.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0056.jpg
deleted file mode 100644
index 95f551209c..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0056.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0057.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0057.jpg
deleted file mode 100644
index a87ffcc38d..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0057.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0058.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0058.jpg
deleted file mode 100644
index 33ee7b0219..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0058.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0059.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0059.jpg
deleted file mode 100644
index 1592b54ddc..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0059.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0060.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0060.jpg
deleted file mode 100644
index 8c95e180a5..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0060.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0061.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0061.jpg
deleted file mode 100644
index 984f95aa6b..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0061.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0062.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0062.jpg
deleted file mode 100644
index 797b82c487..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0062.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0063.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0063.jpg
deleted file mode 100644
index 1d7233320c..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0063.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0064.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0064.jpg
deleted file mode 100644
index a3492abb6a..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0064.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0065.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0065.jpg
deleted file mode 100644
index 260e2d983c..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0065.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0066.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0066.jpg
deleted file mode 100644
index af998952ca..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0066.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0067.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0067.jpg
deleted file mode 100644
index 331a8c7899..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0067.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0068.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0068.jpg
deleted file mode 100644
index f16b605eb4..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0068.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0069.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0069.jpg
deleted file mode 100644
index ce6835d97c..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0069.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0070.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0070.jpg
deleted file mode 100644
index 25aebfe5da..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0070.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0071.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0071.jpg
deleted file mode 100644
index 256463d6a1..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0071.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0072.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0072.jpg
deleted file mode 100644
index 54c7fd22e1..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0072.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0073.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0073.jpg
deleted file mode 100644
index 52669b2dae..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0073.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0074.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0074.jpg
deleted file mode 100644
index 94d848b70e..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0074.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0075.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0075.jpg
deleted file mode 100644
index 9117aaa3c4..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0075.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0076.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0076.jpg
deleted file mode 100644
index 8a5d79ce74..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0076.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0077.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0077.jpg
deleted file mode 100644
index 7bbbf2d8f8..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0077.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0078.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0078.jpg
deleted file mode 100644
index 7bfc6b742d..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0078.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0079.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0079.jpg
deleted file mode 100644
index 2578feff91..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0079.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0080.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0080.jpg
deleted file mode 100644
index 9186f2b305..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0080.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0081.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0081.jpg
deleted file mode 100644
index 285a0b8780..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0081.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0082.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0082.jpg
deleted file mode 100644
index 803df52d50..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0082.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0083.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0083.jpg
deleted file mode 100644
index 3737eea4cc..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0083.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0084.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0084.jpg
deleted file mode 100644
index d75a0abc75..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0084.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0085.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0085.jpg
deleted file mode 100644
index 194c229dda..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0085.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0086.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0086.jpg
deleted file mode 100644
index 6f72b02f59..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0086.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0087.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0087.jpg
deleted file mode 100644
index add39ad43e..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0087.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0088.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0088.jpg
deleted file mode 100644
index 70d2f42015..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0088.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0089.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0089.jpg
deleted file mode 100644
index 2f09d9b748..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0089.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0090.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0090.jpg
deleted file mode 100644
index df0e9f0480..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0090.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0091.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0091.jpg
deleted file mode 100644
index 8e17bddea6..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0091.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0092.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0092.jpg
deleted file mode 100644
index d105b8d470..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0092.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0093.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0093.jpg
deleted file mode 100644
index b4c114d11c..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0093.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0094.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0094.jpg
deleted file mode 100644
index 9181186a10..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0094.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0095.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0095.jpg
deleted file mode 100644
index 43344efda2..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0095.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0096.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0096.jpg
deleted file mode 100644
index 07278f0f13..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0096.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0097.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0097.jpg
deleted file mode 100644
index 97246ad028..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0097.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0098.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0098.jpg
deleted file mode 100644
index c353e52772..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0098.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0099.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0099.jpg
deleted file mode 100644
index 08c1bc05b9..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0099.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/images/0100.jpg b/tutorial/tracking/model-based/generic-rgbd-blender/images/0100.jpg
deleted file mode 100644
index 99d8ed6f36..0000000000
Binary files a/tutorial/tracking/model-based/generic-rgbd-blender/images/0100.jpg and /dev/null differ
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/teabox.cao b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.cao
similarity index 61%
rename from tutorial/tracking/model-based/generic-rgbd-blender/teabox.cao
rename to tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.cao
index f39607517f..ef9cadb8bc 100644
--- a/tutorial/tracking/model-based/generic-rgbd-blender/teabox.cao
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.cao
@@ -1,14 +1,14 @@
V1
# 3D Points
8 # Number of points
-0.031598 -0.04 0.001594 # Point 0: X Y Z
-0.034 0.037166 0.001594
-0.034 0.037166 0.166594
-0.031598 -0.04 0.166594
--0.034 -0.037166 0.166594
--0.031598 0.04 0.166594
--0.031598 0.04 0.001594
--0.034 -0.037166 0.001594 # Point 7
+0 0 0 # Point 0: X Y Z
+0 0 -0.08 # Point 1
+0.165 0 -0.08 # Point 2
+0.165 0 0 # Point 3
+0.165 0.068 0 # Point 4
+0.165 0.068 -0.08 # Point 5
+0 0.068 -0.08 # Point 6
+0 0.068 0 # Point 7
# 3D Lines
0 # Number of lines
# Faces from 3D lines
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.init b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.init
new file mode 100644
index 0000000000..f109800a0e
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.init
@@ -0,0 +1,5 @@
+4 # Number of points
+0 0 0 # Point 0
+0.165 0 0 # Point 3
+0.165 0 -0.08 # Point 2
+0.165 0.068 -0.08 # Point 5
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/teabox.png b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.png
similarity index 100%
rename from tutorial/tracking/model-based/generic-rgbd-blender/teabox.png
rename to tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.png
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.wrl b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.wrl
new file mode 100644
index 0000000000..a452ea0b7c
--- /dev/null
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox.wrl
@@ -0,0 +1,33 @@
+#VRML V2.0 utf8
+
+DEF fst_0 Group {
+children [
+
+# Object "teabox"
+Shape {
+
+geometry DEF cube IndexedFaceSet {
+
+coord Coordinate {
+point [
+0 0 0 ,
+0 0 -0.08,
+0.165 0 -0.08,
+0.165 0 0 ,
+0.165 0.068 0 ,
+0.165 0.068 -0.08,
+0 0.068 -0.08,
+0 0.068 0 ]
+}
+
+coordIndex [
+ 0,1,2,3,-1,
+ 1,6,5,2,-1,
+ 4,5,6,7,-1,
+ 0,3,4,7,-1,
+ 5,4,3,2,-1,
+ 0,7,6,1,-1]}
+}
+
+]
+}
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/teabox.xml b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox_color.xml
similarity index 88%
rename from tutorial/tracking/model-based/generic-rgbd-blender/teabox.xml
rename to tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox_color.xml
index f07b4212f5..7fc13ab1fc 100644
--- a/tutorial/tracking/model-based/generic-rgbd-blender/teabox.xml
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox_color.xml
@@ -1,45 +1,44 @@
-
-
-
-
- 5
- 180
-
-
- 8
-
-
- 1
- 20
- 0.5
- 0.5
-
-
- 4
-
-
-
- 5
- 300
- 5
- 0.015
- 8
- 0.01
- 3
- 3
-
-
- 320.0
- 240.0
- 700.0
- 700.0
-
-
- 70
- 80
- 0.1
- 100
- 1
-
-
-
+
+
+
+
+ 5
+ 180
+
+
+ 8
+
+
+ 1
+ 20
+ 0.5
+ 0.5
+
+
+ 4
+
+
+
+ 5
+ 300
+ 5
+ 0.015
+ 8
+ 0.01
+ 3
+ 3
+
+
+ 320
+ 240
+ 700
+ 700
+
+
+ 70
+ 80
+ 0.1
+ 100
+ 1
+
+
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/teabox_depth.xml b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox_depth.xml
similarity index 72%
rename from tutorial/tracking/model-based/generic-rgbd-blender/teabox_depth.xml
rename to tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox_depth.xml
index b7dfecc8eb..19bd860683 100644
--- a/tutorial/tracking/model-based/generic-rgbd-blender/teabox_depth.xml
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/model/teabox/teabox_depth.xml
@@ -19,17 +19,16 @@
- 320.0
- 240.0
- 600.0
- 600.0
+ 320
+ 240
+ 600
+ 600
- 70
- 80
- 0.1
- 100
+ 80
+ 85
+ 0.001
+ 5
1
-
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/teabox.init b/tutorial/tracking/model-based/generic-rgbd-blender/teabox.init
deleted file mode 100644
index 79ef7f0ef3..0000000000
--- a/tutorial/tracking/model-based/generic-rgbd-blender/teabox.init
+++ /dev/null
@@ -1,5 +0,0 @@
-4 # Number of points
-0.031598 -0.04 0.001594 # Point 0
-0.031598 -0.04 0.166594 # Point 3
-0.034 0.037166 0.166594 # Point 2
--0.031598 0.04 0.166594 # Point 5
diff --git a/tutorial/tracking/model-based/generic-rgbd-blender/tutorial-mb-generic-tracker-rgbd-blender.cpp b/tutorial/tracking/model-based/generic-rgbd-blender/tutorial-mb-generic-tracker-rgbd-blender.cpp
index 640c56f81c..20f6dd453c 100644
--- a/tutorial/tracking/model-based/generic-rgbd-blender/tutorial-mb-generic-tracker-rgbd-blender.cpp
+++ b/tutorial/tracking/model-based/generic-rgbd-blender/tutorial-mb-generic-tracker-rgbd-blender.cpp
@@ -3,6 +3,7 @@
#include
#include
+#include
#include
#include
#include
@@ -12,161 +13,233 @@
#if defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGCODECS)
namespace
{
-bool read_data(unsigned int cpt, const std::string &input_directory, vpImage &I,
- vpImage &I_depth_raw, unsigned int &depth_width, unsigned int &depth_height,
- std::vector &pointcloud, const vpCameraParameters &cam,
+bool read_data(unsigned int cpt, const std::string &video_color_images, const std::string &video_depth_images,
+ bool disable_depth, const std::string &video_ground_truth,
+ vpImage &I, vpImage &I_depth_raw,
+ unsigned int &depth_width, unsigned int &depth_height,
+ std::vector &pointcloud, const vpCameraParameters &cam_depth,
vpHomogeneousMatrix &cMo_ground_truth)
{
char buffer[FILENAME_MAX];
// Read color
- std::stringstream ss;
- ss << input_directory << "/images/%04d.jpg";
- snprintf(buffer, FILENAME_MAX, ss.str().c_str(), cpt);
- std::string filename_img = buffer;
+ snprintf(buffer, FILENAME_MAX, video_color_images.c_str(), cpt);
+ std::string filename_color = buffer;
- if (!vpIoTools::checkFilename(filename_img)) {
- std::cerr << "Cannot read: " << filename_img << std::endl;
+ if (!vpIoTools::checkFilename(filename_color)) {
+ std::cerr << "Cannot read: " << filename_color << std::endl;
return false;
}
- vpImageIo::read(I, filename_img);
+ vpImageIo::read(I, filename_color);
- // Read depth
- ss.str("");
- ss << input_directory << "/depth/Image%04d.exr";
- snprintf(buffer, FILENAME_MAX, ss.str().c_str(), cpt);
- std::string filename_depth = buffer;
+ if (!disable_depth) {
+ // Read depth
+ snprintf(buffer, FILENAME_MAX, video_depth_images.c_str(), cpt);
+ std::string filename_depth = buffer;
- cv::Mat depth_raw = cv::imread(filename_depth, cv::IMREAD_ANYDEPTH | cv::IMREAD_ANYCOLOR);
- if (depth_raw.empty()) {
- std::cerr << "Cannot read: " << filename_depth << std::endl;
- return false;
- }
+ if (!vpIoTools::checkFilename(filename_depth)) {
+ std::cerr << "Cannot read: " << filename_depth << std::endl;
+ return false;
+ }
+ cv::Mat depth_raw = cv::imread(filename_depth, cv::IMREAD_ANYDEPTH | cv::IMREAD_ANYCOLOR);
+ if (depth_raw.empty()) {
+ std::cerr << "Cannot read: " << filename_depth << std::endl;
+ return false;
+ }
- depth_width = static_cast(depth_raw.cols);
- depth_height = static_cast(depth_raw.rows);
- I_depth_raw.resize(depth_height, depth_width);
- pointcloud.resize(depth_width * depth_height);
-
- for (int i = 0; i < depth_raw.rows; i++) {
- for (int j = 0; j < depth_raw.cols; j++) {
- I_depth_raw[i][j] = static_cast(32767.5f * depth_raw.at(i, j)[0]);
- double x = 0.0, y = 0.0;
- // Manually limit the field of view of the depth camera
- double Z = depth_raw.at(i, j)[0] > 2.0f ? 0.0 : static_cast(depth_raw.at(i, j)[0]);
- vpPixelMeterConversion::convertPoint(cam, j, i, x, y);
- size_t idx = static_cast(i * depth_raw.cols + j);
- pointcloud[idx].resize(3);
- pointcloud[idx][0] = x * Z;
- pointcloud[idx][1] = y * Z;
- pointcloud[idx][2] = Z;
+ depth_width = static_cast(depth_raw.cols);
+ depth_height = static_cast(depth_raw.rows);
+ I_depth_raw.resize(depth_height, depth_width);
+ pointcloud.resize(depth_width * depth_height);
+
+ for (int i = 0; i < depth_raw.rows; i++) {
+ for (int j = 0; j < depth_raw.cols; j++) {
+ I_depth_raw[i][j] = static_cast(32767.5f * depth_raw.at(i, j)[0]);
+ double x = 0.0, y = 0.0;
+ // Manually limit the field of view of the depth camera
+ double Z = depth_raw.at(i, j)[0] > 2.0f ? 0.0 : static_cast(depth_raw.at(i, j)[0]);
+ vpPixelMeterConversion::convertPoint(cam_depth, j, i, x, y);
+ size_t idx = static_cast(i * depth_raw.cols + j);
+ pointcloud[idx].resize(3);
+ pointcloud[idx][0] = x * Z;
+ pointcloud[idx][1] = y * Z;
+ pointcloud[idx][2] = Z;
+ }
}
}
// Read ground truth
- ss.str("");
- ss << input_directory << "/camera_poses/Camera_%03d.txt";
- snprintf(buffer, FILENAME_MAX, ss.str().c_str(), cpt);
+ snprintf(buffer, FILENAME_MAX, video_ground_truth.c_str(), cpt);
std::string filename_pose = buffer;
- std::ifstream f_pose;
- f_pose.open(filename_pose.c_str()); // .c_str() to keep compat when c++11 not available
- if (!f_pose.is_open()) {
- std::cerr << "Cannot read: " << filename_pose << std::endl;
- return false;
- }
-
- cMo_ground_truth.load(f_pose);
+ cMo_ground_truth.load(filename_pose);
return true;
}
} // namespace
-int main(int argc, char *argv[])
+void usage(const char **argv, int error, const std::string &data_path, const std::string &model_path, int first_frame)
{
- std::string input_directory = "."; // location of the data (images, depth maps, camera poses)
- std::string config_color = "teabox.xml", config_depth = "teabox_depth.xml";
- std::string model_color = "teabox.cao", model_depth = "teabox.cao";
- std::string init_file = "teabox.init";
- std::string extrinsic_file = "depth_M_color.txt";
- unsigned int first_frame_index = 1;
- bool disable_depth = false;
- bool display_ground_truth = false;
- bool click = false;
+ std::cout << "Synopsis" << std::endl
+ << " " << argv[0]
+ << " [--data-path ] [--model-path ] [--first-frame ] [--disable-depth] "
+ << " [--disable-klt] [--step-by-step] [--display-ground-truth] [--help, -h]" << std::endl
+ << std::endl;
+ std::cout << "Description" << std::endl
+ << " --data-path Path to the data generated by Blender get_camera_pose_teabox.py" << std::endl
+ << " Python script."
+ << " Default: " << data_path << std::endl
+ << std::endl
+ << " --model-path Path to the cad model and tracker settings." << std::endl
+ << " Default: " << model_path << std::endl
+ << std::endl
+ << " --first-frame First frame number to process." << std::endl
+ << " Default: " << first_frame << std::endl
+ << std::endl
+ << " --disable-depth Flag to turn off tracker depth features." << std::endl
+ << std::endl
+ << " --disable-klt Flag to turn off tracker keypoints features." << std::endl
+ << std::endl
+ << " --step-by-step Flag to enable step by step mode." << std::endl
+ << std::endl
+ << " --display-ground-truth Flag to enable displaying ground truth." << std::endl
+ << " When this flag is enabled, there is no tracking. This flag is useful" << std::endl
+ << " to validate the ground truth over the rendered images." << std::endl
+ << std::endl
+ << " --help, -h Print this helper message." << std::endl
+ << std::endl;
+ if (error) {
+ std::cout << "Error" << std::endl
+ << " "
+ << "Unsupported parameter " << argv[error] << std::endl;
+ }
+}
+
+int main(int argc, const char **argv)
+{
+ std::string opt_data_path = "data/teabox";
+ std::string opt_model_path = "model/teabox";
+ unsigned int opt_first_frame = 1;
+ bool opt_disable_depth = false;
+ bool opt_disable_klt = false;
+ bool opt_display_ground_truth = false;
+ bool opt_step_by_step = false;
for (int i = 1; i < argc; i++) {
- if (std::string(argv[i]) == "--input_directory" && i + 1 < argc) {
- input_directory = std::string(argv[i + 1]);
- } else if (std::string(argv[i]) == "--config_color" && i + 1 < argc) {
- config_color = std::string(argv[i + 1]);
- } else if (std::string(argv[i]) == "--config_depth" && i + 1 < argc) {
- config_depth = std::string(argv[i + 1]);
- } else if (std::string(argv[i]) == "--model_color" && i + 1 < argc) {
- model_color = std::string(argv[i + 1]);
- } else if (std::string(argv[i]) == "--model_depth" && i + 1 < argc) {
- model_depth = std::string(argv[i + 1]);
- } else if (std::string(argv[i]) == "--init_file" && i + 1 < argc) {
- init_file = std::string(argv[i + 1]);
- } else if (std::string(argv[i]) == "--extrinsics" && i + 1 < argc) {
- extrinsic_file = std::string(argv[i + 1]);
- } else if (std::string(argv[i]) == "--disable_depth") {
- disable_depth = true;
- } else if (std::string(argv[i]) == "--display_ground_truth") {
- display_ground_truth = true;
- } else if (std::string(argv[i]) == "--click") {
- click = true;
- } else if (std::string(argv[i]) == "--first_frame_index" && i + 1 < argc) {
- first_frame_index = static_cast(atoi(argv[i + 1]));
- } else if (std::string(argv[i]) == "--help" || std::string(argv[i]) == "-h") {
- std::cout
- << "Usage: \n"
- << argv[0]
- << " [--input_directory (default: .)]"
- " [--config_color (default: teabox.xml)] [--config_depth (default: "
- "teabox_depth.xml)]"
- " [--model_color (default: teabox.cao)] [--model_depth (default: teabox.cao)]"
- " [--init_file (default: teabox.init)]"
- " [--extrinsics (default: depth_M_color.txt)] [--disable_depth]"
- " [--display_ground_truth] [--click] [--first_frame_index (default: 1)]"
- << std::endl;
+ if (std::string(argv[i]) == "--data-path" && i + 1 < argc) {
+ opt_data_path = std::string(argv[i + 1]);
+ i++;
+ }
+ else if (std::string(argv[i]) == "--model-path" && i + 1 < argc) {
+ opt_model_path = std::string(argv[i + 1]);
+ i++;
+ }
+ else if (std::string(argv[i]) == "--disable-depth") {
+ opt_disable_depth = true;
+ }
+ else if (std::string(argv[i]) == "--disable-klt") {
+ opt_disable_klt = true;
+ }
+ else if (std::string(argv[i]) == "--display-ground-truth") {
+ opt_display_ground_truth = true;
+ }
+ else if (std::string(argv[i]) == "--step-by-step") {
+ opt_step_by_step = true;
+ }
+ else if (std::string(argv[i]) == "--first-frame" && i + 1 < argc) {
+ opt_first_frame = static_cast(atoi(argv[i + 1]));
+ i++;
+ }
+ else if (std::string(argv[i]) == "--help" || std::string(argv[i]) == "-h") {
+ usage(argv, 0, opt_data_path, opt_model_path, opt_first_frame);
return EXIT_SUCCESS;
}
+ else {
+ usage(argv, i, opt_data_path, opt_model_path, opt_first_frame);
+ return EXIT_FAILURE;
+ }
}
- std::cout << "input_directory: " << input_directory << std::endl;
- std::cout << "config_color: " << config_color << std::endl;
- std::cout << "config_depth: " << config_depth << std::endl;
- std::cout << "model_color: " << model_color << std::endl;
- std::cout << "model_depth: " << model_depth << std::endl;
- std::cout << "init_file: " << model_depth << std::endl;
- std::cout << "extrinsic_file: " << extrinsic_file << std::endl;
- std::cout << "first_frame_index: " << first_frame_index << std::endl;
- std::cout << "disable_depth: " << disable_depth << std::endl;
- std::cout << "display_ground_truth: " << display_ground_truth << std::endl;
- std::cout << "click: " << click << std::endl;
+ std::string video_color_images = vpIoTools::createFilePath(opt_data_path, "color/%04d_L.jpg");
+ std::string video_depth_images = vpIoTools::createFilePath(opt_data_path, "depth/Image%04d_R.exr");
+ std::string ground_truth = vpIoTools::createFilePath(opt_data_path, "ground-truth/Camera_L_%04d.txt");
+ std::string extrinsic_file = vpIoTools::createFilePath(opt_data_path, "depth_M_color.txt");
+ std::string color_camera_name = "Camera_L";
+ std::string depth_camera_name = "Camera_R";
+ std::string color_intrinsic_file = vpIoTools::createFilePath(opt_data_path, color_camera_name + ".xml");
+ std::string depth_intrinsic_file = vpIoTools::createFilePath(opt_data_path, depth_camera_name + ".xml");
+ std::string mbt_config_color = vpIoTools::createFilePath(opt_model_path, "teabox_color.xml");
+ std::string mbt_config_depth = vpIoTools::createFilePath(opt_model_path, "teabox_depth.xml");
+ std::string mbt_cad_model = vpIoTools::createFilePath(opt_model_path, "teabox.cao");
+ std::string mbt_init_file = vpIoTools::createFilePath(opt_model_path, "teabox.init");
+
+ std::cout << "Input data" << std::endl;
+ std::cout << " Color images : " << video_color_images << std::endl;
+ std::cout << " Depth images : " << (opt_disable_depth ? "Disabled" : video_depth_images) << std::endl;
+ std::cout << " Extrinsics : " << (opt_disable_depth ? "Disabled" : extrinsic_file) << std::endl;
+ std::cout << " Color intrinsics: " << color_intrinsic_file << std::endl;
+ std::cout << " Depth intrinsics: " << (opt_disable_depth ? "Disabled" : depth_intrinsic_file) << std::endl;
+ std::cout << " Ground truth : " << ground_truth << std::endl;
+ std::cout << "Tracker settings" << std::endl;
+ std::cout << " Color config : " << mbt_config_color << std::endl;
+ std::cout << " Depth config : " << mbt_config_depth << std::endl;
+ std::cout << " CAD model : " << mbt_cad_model << std::endl;
+ std::cout << " First frame : " << opt_first_frame << std::endl;
+ std::cout << " Step by step : " << opt_step_by_step << std::endl;
+ if (opt_display_ground_truth) {
+ std::cout << " Ground truth is used to project the cad model (no tracking)" << std::endl;
+ }
+ else {
+ std::cout << " Init file : " << mbt_init_file << std::endl;
+ std::cout << " Features : moving-edges " << (opt_disable_klt ? "" : "+ keypoints") << (opt_disable_depth ? "" : " + depth") << std::endl;
+ }
std::vector tracker_types;
+ if (opt_disable_klt) {
+ tracker_types.push_back(vpMbGenericTracker::EDGE_TRACKER);
+ }
+ else {
#if defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
- tracker_types.push_back(vpMbGenericTracker::EDGE_TRACKER | vpMbGenericTracker::KLT_TRACKER);
+ tracker_types.push_back(vpMbGenericTracker::EDGE_TRACKER | vpMbGenericTracker::KLT_TRACKER);
#else
- tracker_types.push_back(vpMbGenericTracker::EDGE_TRACKER);
+ std::cout << "Warning: keypoints cannot be used as features since ViSP is not build with OpenCV 3rd party" << std::endl;
#endif
- if (!disable_depth)
+ }
+ if (!opt_disable_depth)
tracker_types.push_back(vpMbGenericTracker::DEPTH_DENSE_TRACKER);
vpMbGenericTracker tracker(tracker_types);
- if (!disable_depth)
- tracker.loadConfigFile(config_color, config_depth);
+ if (!opt_disable_depth)
+ tracker.loadConfigFile(mbt_config_color, mbt_config_depth);
else
- tracker.loadConfigFile(config_color);
- tracker.loadModel(model_color);
+ tracker.loadConfigFile(mbt_config_color);
+ tracker.loadModel(mbt_cad_model);
vpCameraParameters cam_color, cam_depth;
- if (!disable_depth)
+
+ // Update intrinsics camera parameters from Blender generated data
+ vpXmlParserCamera p;
+ if (p.parse(cam_color, color_intrinsic_file, color_camera_name, vpCameraParameters::perspectiveProjWithoutDistortion)
+ != vpXmlParserCamera::SEQUENCE_OK) {
+ std::cout << "Cannot found intrinsics for camera " << color_camera_name << std::endl;
+ }
+ if (p.parse(cam_depth, depth_intrinsic_file, depth_camera_name, vpCameraParameters::perspectiveProjWithoutDistortion)
+ != vpXmlParserCamera::SEQUENCE_OK) {
+ std::cout << "Cannot found intrinsics for camera " << depth_camera_name << std::endl;
+ }
+ if (!opt_disable_depth)
+ tracker.setCameraParameters(cam_color, cam_depth);
+ else
+ tracker.setCameraParameters(cam_color);
+
+ // Reload intrinsics from tracker (useless)
+ if (!opt_disable_depth)
tracker.getCameraParameters(cam_color, cam_depth);
else
tracker.getCameraParameters(cam_color);
tracker.setDisplayFeatures(true);
std::cout << "cam_color:\n" << cam_color << std::endl;
- std::cout << "cam_depth:\n" << cam_depth << std::endl;
+
+ if (!opt_disable_depth)
+ std::cout << "cam_depth:\n" << cam_depth << std::endl;
vpImage I_depth_raw;
vpImage I, I_depth;
@@ -174,9 +247,9 @@ int main(int argc, char *argv[])
std::vector pointcloud;
vpHomogeneousMatrix cMo_ground_truth;
- unsigned int frame_cpt = first_frame_index;
- read_data(frame_cpt, input_directory, I, I_depth_raw, depth_width, depth_height, pointcloud, cam_depth,
- cMo_ground_truth);
+ unsigned int frame_cpt = opt_first_frame;
+ read_data(frame_cpt, video_color_images, video_depth_images, opt_disable_depth, ground_truth,
+ I, I_depth_raw, depth_width, depth_height, pointcloud, cam_depth, cMo_ground_truth);
vpImageConvert::createDepthHistogram(I_depth_raw, I_depth);
#if defined(VISP_HAVE_X11)
@@ -188,35 +261,38 @@ int main(int argc, char *argv[])
#endif
d1.init(I, 0, 0, "Color image");
- d2.init(I_depth, static_cast(I.getWidth()), 0, "Depth image");
-
- vpHomogeneousMatrix depthMcolor;
- if (!disable_depth) {
- std::ifstream f_extrinsics;
- f_extrinsics.open(extrinsic_file.c_str()); // .c_str() to keep compat when c++11 not available
+ if (!opt_disable_depth) {
+ d2.init(I_depth, static_cast(I.getWidth()), 0, "Depth image");
+ }
- depthMcolor.load(f_extrinsics);
- tracker.setCameraTransformationMatrix("Camera2", depthMcolor);
- std::cout << "depthMcolor:\n" << depthMcolor << std::endl;
+ vpHomogeneousMatrix depth_M_color;
+ if (!opt_disable_depth) {
+ depth_M_color.load(extrinsic_file);
+ tracker.setCameraTransformationMatrix("Camera2", depth_M_color);
+ std::cout << "depth_M_color:\n" << depth_M_color << std::endl;
}
- if (display_ground_truth) {
+ if (opt_display_ground_truth) {
tracker.initFromPose(I, cMo_ground_truth); // I and I_depth must be the same size when using depth features!
- } else
- tracker.initClick(I, init_file, true); // I and I_depth must be the same size when using depth features!
+ }
+ else {
+ tracker.initClick(I, mbt_init_file, true); // I and I_depth must be the same size when using depth features!
+ }
try {
bool quit = false;
- while (!quit && read_data(frame_cpt, input_directory, I, I_depth_raw, depth_width, depth_height, pointcloud,
- cam_depth, cMo_ground_truth)) {
+ while (!quit && read_data(frame_cpt, video_color_images, video_depth_images, opt_disable_depth,
+ ground_truth, I, I_depth_raw, depth_width, depth_height, pointcloud, cam_depth,
+ cMo_ground_truth)) {
vpImageConvert::createDepthHistogram(I_depth_raw, I_depth);
vpDisplay::display(I);
vpDisplay::display(I_depth);
- if (display_ground_truth) {
+ if (opt_display_ground_truth) {
tracker.initFromPose(I, cMo_ground_truth); // I and I_depth must be the same size when using depth features!
- } else {
- if (!disable_depth) {
+ }
+ else {
+ if (!opt_disable_depth) {
std::map *> mapOfImages;
std::map *> mapOfPointClouds;
std::map mapOfPointCloudWidths;
@@ -227,29 +303,38 @@ int main(int argc, char *argv[])
mapOfPointCloudWidths["Camera2"] = depth_width;
mapOfPointCloudHeights["Camera2"] = depth_height;
tracker.track(mapOfImages, mapOfPointClouds, mapOfPointCloudWidths, mapOfPointCloudHeights);
- } else {
+ }
+ else {
tracker.track(I);
}
}
vpHomogeneousMatrix cMo = tracker.getPose();
std::cout << "\nFrame: " << frame_cpt << std::endl;
- if (!display_ground_truth)
+ if (!opt_display_ground_truth)
std::cout << "cMo:\n" << cMo << std::endl;
std::cout << "cMo ground truth:\n" << cMo_ground_truth << std::endl;
- if (!disable_depth) {
- tracker.display(I, I_depth, cMo, depthMcolor * cMo, cam_color, cam_depth, vpColor::red, 2);
- vpDisplay::displayFrame(I_depth, depthMcolor * cMo, cam_depth, 0.05, vpColor::none, 2);
- } else {
+ if (!opt_disable_depth) {
+ tracker.display(I, I_depth, cMo, depth_M_color * cMo, cam_color, cam_depth, vpColor::red, 2);
+ vpDisplay::displayFrame(I_depth, depth_M_color * cMo, cam_depth, 0.05, vpColor::none, 2);
+ }
+ else {
tracker.display(I, cMo, cam_color, vpColor::red, 2);
}
vpDisplay::displayFrame(I, cMo, cam_color, 0.05, vpColor::none, 2);
std::ostringstream oss;
oss << "Frame: " << frame_cpt;
- vpDisplay::displayText(I, 20, 20, oss.str(), vpColor::red);
-
- if (!display_ground_truth) {
+ vpDisplay::setTitle(I, oss.str());
+ if (opt_step_by_step) {
+ vpDisplay::displayText(I, 20, 10, "Left click to trigger next step", vpColor::red);
+ vpDisplay::displayText(I, 40, 10, "Right click to quit step-by-step mode", vpColor::red);
+ }
+ else {
+ vpDisplay::displayText(I, 20, 10, "Left click to trigger step-by-step mode", vpColor::red);
+ vpDisplay::displayText(I, 40, 10, "Right click to exit...", vpColor::red);
+ }
+ if (!opt_display_ground_truth) {
{
std::stringstream ss;
ss << "Nb features: " << tracker.getError().size();
@@ -258,7 +343,7 @@ int main(int argc, char *argv[])
{
std::stringstream ss;
ss << "Features: edges " << tracker.getNbFeaturesEdge() << ", klt " << tracker.getNbFeaturesKlt()
- << ", depth " << tracker.getNbFeaturesDepthDense();
+ << ", depth " << tracker.getNbFeaturesDepthDense();
vpDisplay::displayText(I, I.getHeight() - 30, 20, ss.str(), vpColor::red);
}
}
@@ -266,28 +351,33 @@ int main(int argc, char *argv[])
vpDisplay::flush(I);
vpDisplay::flush(I_depth);
+ // Button 1: start step by step if not enabled from command line option
+ // Button 2: enables step by step mode
+ // Button 3: ends step by step mode if enabled
+ // quit otherwise
vpMouseButton::vpMouseButtonType button;
- if (vpDisplay::getClick(I, button, click)) {
- switch (button) {
- case vpMouseButton::button1:
- quit = !click;
- break;
- case vpMouseButton::button3:
- click = !click;
- break;
-
- default:
- break;
+ if (vpDisplay::getClick(I, button, opt_step_by_step)) {
+ if (button == vpMouseButton::button1 && opt_step_by_step == false) {
+ opt_step_by_step = true;
+ }
+ else if (button == vpMouseButton::button3 && opt_step_by_step == true) {
+ opt_step_by_step = false;
+ }
+ else if (button == vpMouseButton::button3 && opt_step_by_step == false) {
+ quit = true;
+ }
+ else if (button == vpMouseButton::button2) {
+ opt_step_by_step = true;
}
}
frame_cpt++;
}
- vpDisplay::displayText(I, 40, 20, "Click to quit.", vpColor::red);
vpDisplay::flush(I);
vpDisplay::getClick(I);
- } catch (std::exception &e) {
+ }
+ catch (std::exception &e) {
std::cerr << "Catch exception: " << e.what() << std::endl;
}
diff --git a/tutorial/tracking/model-based/generic/tutorial-mb-generic-tracker-full.cpp b/tutorial/tracking/model-based/generic/tutorial-mb-generic-tracker-full.cpp
index 0f7254be5a..a201e10225 100644
--- a/tutorial/tracking/model-based/generic/tutorial-mb-generic-tracker-full.cpp
+++ b/tutorial/tracking/model-based/generic/tutorial-mb-generic-tracker-full.cpp
@@ -209,7 +209,8 @@ int main(int argc, char **argv)
display->init(I, 100, 100, "Model-based tracker");
if (opt_plot) {
- plot = new vpPlot(2, 700, 700, display->getWindowXPosition() + I.getWidth() / display->getDownScalingFactor() + 30, display->getWindowYPosition(), "Estimated pose");
+ plot = new vpPlot(2, 700, 700, display->getWindowXPosition() + I.getWidth() / display->getDownScalingFactor() + 30,
+ display->getWindowYPosition(), "Estimated pose");
plot->initGraph(0, 3); // Translation
plot->setTitle(0, "Translation [m]");
plot->setColor(0, 0, vpColor::red);