aboutsummaryrefslogtreecommitdiff
path: root/docs/user_guide/aruco_marker_pipeline/pose_estimation.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/user_guide/aruco_marker_pipeline/pose_estimation.md')
-rw-r--r--docs/user_guide/aruco_marker_pipeline/pose_estimation.md84
1 files changed, 84 insertions, 0 deletions
diff --git a/docs/user_guide/aruco_marker_pipeline/pose_estimation.md b/docs/user_guide/aruco_marker_pipeline/pose_estimation.md
new file mode 100644
index 0000000..7f6573c
--- /dev/null
+++ b/docs/user_guide/aruco_marker_pipeline/pose_estimation.md
@@ -0,0 +1,84 @@
+Estimate scene pose
+===================
+
+Once [ArUco markers are placed into a scene](aruco_markers_description.md) and [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) is [configured](configuration_and_execution.md), scene pose can be estimated.
+
+![Scene pose estimation](../../img/aruco_camera_pose_estimation.png)
+
+## Add ArUcoScene to ArUcoCamera JSON configuration file
+
+An [ArUcoScene](../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene) class defines a space with [ArUco markers inside](aruco_markers_description.md) helping to estimate scene pose when they are watched by [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera).
+
+Here is an extract from the JSON [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) configuration file with a sample where one scene is added and displayed:
+
+```json
+{
+ "name": "My FullHD camera",
+ "size": [1920, 1080],
+ ...
+ "scenes": {
+ "MyScene" : {
+ "aruco_markers_group": {
+ "dictionary": "DICT_APRILTAG_16h5",
+ "places": {
+ "0": {
+ "translation": [17.5, 2.75, -0.5],
+ "rotation": [-18.5, 0, 0],
+ "size": 5
+ },
+ "1": {
+ "translation": [46, 34, 18.333],
+ "rotation": [0, 70, 0],
+ "size": 5
+ },
+ "2": {
+ "translation": [41, 4, 3.333],
+ "rotation": [-60, 0, 0],
+ "size": 5
+ }
+ }
+ }
+ }
+ },
+ ...
+ "image_parameters": {
+ ...
+ "draw_scenes": {
+ "MyScene": {
+ "draw_aruco_markers_group": {
+ "draw_axes": {
+ "thickness": 3,
+ "length": 10
+ },
+ "draw_places": {
+ "color": [0, 0, 0],
+ "border_size": 1
+ }
+ }
+ }
+ }
+ }
+}
+```
+
+Now, let's understand the meaning of each JSON entry.
+
+### *scenes*
+
+An [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) instance can contains multiples [ArUcoScene](../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene) stored by name.
+
+### MyScene
+
+The name of an [ArUcoScene](../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene). Basically useful for visualisation purpose.
+
+### *aruco_markers_group*
+
+The 3D places of ArUco markers into the scene as defined at [ArUco markers description chapter](aruco_markers_description.md). Thanks to this description, it is possible to estimate the pose of [ArUcoScene](../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene) in [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) frame.
+
+!!! note
+
+ [ArUcoScene](../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene) pose estimation is done when calling the [ArUcoCamera.watch](../../argaze.md/#argaze.ArFeatures.ArCamera.watch) method.
+
+### *draw_scenes*
+
+The drawing parameters of each loaded [ArUcoScene](../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene) in [ArUcoCamera.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image).