Embedded Active Marker 3D Tracking using C++
Overview
This sample application demonstrates how to use Metavision Embedded Active Marker 3D tracking in a client-server setup.
The sample can operate as a server, streaming 3D tracking data to a client application. This is useful when running on a device that does not support 3D acceleration or has limited graphical display capabilities. The idea consists in streaming the 3D estimated poses of the Active Marker, from the server to the client using :
Metavision Active Marker 3D (as the client)
Metavision Embedded Active Marker 3d (as the server)
Expected Output
The sample displays a 3D projected pose on a 2D canvas.
How to start
When running the application on a device that doesn’t support 3D rendering, you can use the –pose-output - | <pose-output-file> option to serialize the 3D tracking data position to the standard output (if - is specified, or to a specific <pose-output-file> otherwise).
From the client side, you can use the –pose-input - | <pose-output-file> option to read the 3D tracking data from the standard input (or from the pose-output-file)
ssh <my_embedded_device> ./metavision_embedded_active_marker_3d_tracking --am-json-file rectangular_active_marker.json --calib-json-file calibration.json --pose-output - |
MV_HAL_PLUGIN_PATH=./lib ./bin/metavision_active_marker_3d_tracking --am-3d-scene-path industrial_scene.scene --am-json-file rectangular_active_marker.json --pose-input -