Embedded Active Marker 3D Tracking using C++

Overview

This app is a sample application that demonstrates how to use Metavision Embedded active marker 3D tracking.

This sample can act 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 runs with limited graphical display feature set. The idea is to be able to stream the 3D estimated pose 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 -