Access Sensor Profiles Using the CLI or SDK
Overview
Project Aria glasses have multiple recording profiles, so that you can choose what sensors record or stream data, as well as the settings those sensors use. This page shows how to use the Client SDK or CLI to download profile information and set which profile is used.
If a value is not set, Aria glasses will use the default recording profile. If a default recording profile is not set, it will use profile8
when making recordings and profile18
when streaming data.
Go to the Recording Profiles page for more information about possible sensor configurations. You can also view all available recording profile details when you select Create a Recording in the Mobile Companion app. In addition to sensor setup, recording profile information can provide insights into how battery and thermal levels can be affected when streaming or recording.
Retrieve list of available sensor profiles
The CLI or SDK can be used to retrieve the available sensor profiles for recording or streaming stored on your Aria glasses. To make sure you have access to all possible profiles, make sure your Aria glasses OS are up to date.
The available profiles for recording or streaming are the same, but profile12
and profile18
were created specifically for streaming data.
Save streaming/recording profiles
The following commands export all profiles as JSON files. There is one JSON file per recording, profile12.json
etc.
- SDK
- CLI
import aria.sdk as aria
device_client = aria.DeviceClient()
device = device_client.connect()
# sensor profiles for recording
recording_manager = device.recording_manager
recording_profiles = recording_manager.recording_profiles
print(*recording_profiles)
# sensor profiles for streaming
streaming_manager = device.streaming_manager
streaming_profiles = streaming_manager.streaming_profiles
print(*streaming_profiles)
# sensors profiles for recording
aria recording profiles --save-json --json-dir ~/recordingProfiles
# sensors profiles for streaming
aria streaming profiles --save-json --json-dir ~/streamingProfiles
Example output
Each JSON file will show which sensors are used and how each sensor is configured.
profile12.json
will contain the following:
{
"name": "profile12",
"description": "Streaming mode with JPEG (RGB 10fps 2MP, SLAM 10fps, ET 10fps QVGA, JPEG; Audio, GPS, Wi-Fi and BLE off)",
"imu1": {
"enabled": true,
"dataRateHz": 1000
},
"imu2": {
"enabled": true,
"dataRateHz": 800
},
"magnetometer": {
"enabled": true,
"dataRateHz": 10
},
"barometer": {
"enabled": true,
"dataRateHz": 50
},
"audio": {
"enabled": false,
"numChannels": 0,
"sampleRateHz": "0",
"periodSize": 0
},
"gps": {
"enabled": false,
"dataRateHz": 0
},
"ble": {
"enabled": false,
"scanDurationMs": 0
},
"wifi": {
"enabled": false,
"scanDurationMs": 0,
"wifiScanModeActive": false,
"wifiMinDwellTimeMs": 0,
"wifiMaxDwellTimeMs": 0
},
"slamCameras": {
"enabled": true,
"width": 640,
"height": 480,
"fps": 10,
"autoExposureEnabled": true,
"exposureMinUs": "0",
"exposureMaxUs": "0",
"gainMin": 0,
"gainMax": 0,
"exposureUs": "0",
"gain": 0,
"irLedEnabled": false,
"imageFormat": "JPEG",
"jpegEncoderType": "HARDWARE",
"jpegQuality": 80,
"videoEncoderQp": 0,
"videoCodecType": "H264",
"targetIntensity": 0
},
"etCamera": {
"enabled": true,
"width": 320,
"height": 240,
"fps": 10,
"autoExposureEnabled": false,
"exposureMinUs": "0",
"exposureMaxUs": "0",
"gainMin": 0,
"gainMax": 0,
"exposureUs": "1000",
"gain": 1,
"irLedEnabled": true,
"imageFormat": "JPEG",
"jpegEncoderType": "HARDWARE",
"jpegQuality": 80,
"videoEncoderQp": 0,
"videoCodecType": "H264",
"targetIntensity": 0
},
"rgbCamera": {
"enabled": true,
"width": 1408,
"height": 1408,
"fps": 10,
"autoExposureEnabled": true,
"exposureMinUs": "0",
"exposureMaxUs": "0",
"gainMin": 0,
"gainMax": 0,
"exposureUs": "0",
"gain": 0,
"irLedEnabled": false,
"imageFormat": "JPEG",
"jpegEncoderType": "HARDWARE",
"jpegQuality": 80,
"videoEncoderQp": 0,
"videoCodecType": "H264",
"targetIntensity": 0
},
"attention": {
"enabled": false
}
}
Use a recording/sensor profile
Once retrieved a profile can be used to start recording or streaming.
In this example, we use the sensor profile profile12
obtained from the previous step to start streaming:
- SDK
- CLI
streaming_manager = device.streaming_manager
streaming_config = aria.RecordingConfig()
streaming_config.profile_name = "profile12"
streaming_manager.streaming_config = streaming_config
streaming_manager.start_streaming()
aria streaming start --profile profile12