Estimate scene pose =================== Once [ArUco markers are placed into a scene](aruco_marker_description.md) and the [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarker.ArUcoCamera) is [configured](configuration_and_execution.md), the 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.ArUcoMarker.ArUcoScene) class defines a space with [ArUco markers inside](aruco_marker_description.md), helping to estimate scene pose when they are watched by [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarker.ArUcoCamera). Here is an extract from the JSON [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarker.ArUcoCamera) configuration file with a sample where one scene is added and displayed: ```json { "argaze.ArUcoMarker.ArUcoCamera.ArUcoCamera": { "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.ArUcoMarker.ArUcoCamera) instance can contain multiples [ArUcoScene](../../argaze.md/#argaze.ArUcoMarker.ArUcoScene) stored by name. ### MyScene The name of an [ArUcoScene](../../argaze.md/#argaze.ArUcoMarker.ArUcoScene). Basically, it is useful for visualization purposes. ### *aruco_markers_group* The 3D placement of ArUco markers into the scene, as defined in the [ArUco marker description chapter](aruco_marker_description.md). Thanks to this description, it is possible to estimate the pose of [ArUcoScene](../../argaze.md/#argaze.ArUcoMarker.ArUcoScene) in an [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarker.ArUcoCamera) frame. !!! note [ArUcoScene](../../argaze.md/#argaze.ArUcoMarker.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.ArUcoMarker.ArUcoScene) in an [ArUcoCamera.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image).