Project Aria Tools C++ Visualization
Overview
This page introduces our C++ visualization tools available in Project Aria Tools. We've provided example datasets to test these tools.
- Aria Viewer: visualize raw Aria data
- MPS 3D Scene Viewer: renders a static scene using Aria data with trajectories, global point cloud, and static camera poses
- MPS 3D Replay Viewer: renders static scene and dynamic elements: 2D/3D observations rays + eye gaze data
- MPS Eye Gaze Viewer: visualize Aria data with eye gaze data
Requirements
Step 0 : Check system requirements and download codebase
Go to the Download Codebase page to:
- Check your system is supported
- Download projectaria_tools codebase from the GitHub
Step 1 : Download the sample dataset
- Go to the Download MPS Sample dataset to retrieve a raw VRS file and all the corresponding MPS outputs.
Step 2 : Build and install visualizers
The visualizers need the C++ version of Project Aria Tools to run.
- In the C++ Installation Guide, follow the instructions to build from source with visualization
Run Aria Viewer
Aria Viewer enable you to to visualize Aria device recorded VRS files. It shows all sensor data including:
- Camera images
- IMU
- Audio (visualization of waveform, sound is not available)
cd $HOME/Documents/projectaria_sandbox/build
./tools/visualization/aria_viewer --vrs $MPS_SAMPLE_PATH/sample.vrs
Run MPS 3D Scene Viewer
The MPS 3D Scene Viewer renders a static scene using location MPS output.
Through this tool you can create visualizations using:
- Closed loop trajectories
- Global point cloud
- Static camera poses
- Open loop trajectories
- Because open loop is in odometry frame of reference, it shouldn’t be visualized with closed loop trajectories, global points or static camera poses
This tutorial generates a visualization containing:
- Closed loop trajectories
- Global point cloud
cd $HOME/Documents/projectaria_sandbox/build
./tools/mps_visualization/mps_3d_scene_viewer \
--closed-loop-traj $MPS_SAMPLE_PATH/trajectory/closed_loop_trajectory.csv \
--global-point-cloud $MPS_SAMPLE_PATH/trajectory/global_points.csv.gz
Because the sample dataset doesn't have static cameras you won't be able to interact with the static camera settings
Run MPS 3D Replay Viewer
The MPS 3D Replay Viewer renders static scene and dynamic elements at each frame: Aria's pose + 2D/3D observations rays + eye gaze data.
Through this tool you can create visualizations using:
- Closed loop trajectories
- Semi-Dense Point Cloud
- Global point cloud
- Point observations
- Static camera poses
This tutorial generates a visualization containing:
- Static elements
- Closed loop trajectories
- Global point cloud
- Dynamic elements
- One closed loop trajectory for replay
- 2D/3D point observations rays
- Generalized and Personalized Eye Gaze vectors
cd $HOME/Documents/projectaria_sandbox/build
./tools/mps_visualization/mps_3d_replay_viewer \
--vrs $MPS_SAMPLE_PATH/sample.vrs \
--replay-trajectory $MPS_SAMPLE_PATH/trajectory/closed_loop_trajectory.csv \
--closed-loop-traj $MPS_SAMPLE_PATH/trajectory/closed_loop_trajectory.csv \
--global-point-cloud $MPS_SAMPLE_PATH/trajectory/global_points.csv.gz \
--point-obs $MPS_SAMPLE_PATH/trajectory/semidense_observations.csv.gz \
--generalized-eye-gaze $MPS_SAMPLE_PATH/eye_gaze/generalized_eye_gaze.csv \
--calibrated-eye-gaze $MPS_SAMPLE_PATH/eye_gaze/calibrated_eye_gaze.csv \
--hands $MPS_SAMPLE_PATH/hand_tracking/wrist_and_palm_poses.csv
MPS Eye Gaze visualizer
The MPS Eye Gaze visualizer renders the computed eye gaze and vrs data side by side. The visualizer contains:
- Eye Tracking camera stream
- RGB, Mono Scene (SLAM) left and right camera streams
- A red dot shows the projection of the eye gaze onto the image
- The projection is computed using a fixed depth of 1m
- 2D graph plot of the gaze yaw and pitch angles in radians
- 2D radar plot of the eye gaze yaw and pitch angles
Run visualizer and visualize both generalized and optional calibrated eye gaze
cd $HOME/Documents/projectaria_sandbox/build
./tools/mps_visualization/mps_eyegaze_viewer --vrs $MPS_SAMPLE_PATH/sample.vrs \
--generalized-eye-gaze $MPS_SAMPLE_PATH/eye_gaze/general_eye_gaze.csv \
--calibrated-eye-gaze $MPS_SAMPLE_PATH/eye_gaze/personalized_eye_gaze.csv
Troubleshooting
Check the Troubleshooting Guide if you encounter issues using this tutorial.