Vehicle Camera Tracking
This feature is only available to operators in the Testbed
The Vehicle Camera Tracking service is a tool used to record experiments in the Testbed. The service uses a camera installed at LW1 to track and record vehicles.
The actual tracking software (CameraDistance) is constantly running in LW1S, checking for vehicle mavproxy streams.
OEO Console
The commands needed for this service are rewritten below for reference:
track_camera { on | off | auto } - Tells the camera to track the vehicle node that was used in this command. The arguments tell the camera when to record:
on - The camera will immediately start recording (if it is not already)
off - The camera will stop recording
auto - The camera will record when the vehicle is armed, and stop recording when the vehicle is disarmed
list_recordings - Lists all the recordings that have been recorded. Lists them with an index/recording_id attached to each (starting at 0).
download_recording <recording_id> - Downloads the recording corresponding to <recording_id> to the E-VM ~/Results folder. The <recording_id> is the index printed when using the list_recordings command
In order to start tracking a vehicle, the track_camera command needs to be run to tell the camera which vehicle to record and when to start/stop recording.
Ex: 1 track_camera auto will record node 1 when it is armed.
Once the experiment has been run, the list_recordings command can be run to list all recordings that can be downloaded. The recording file names will contain timestamps to help with identification. An example output is shown below:
[drone_tracker]-[INFO]
0: 20240407_195838_3B39_B8A44F6DAF66.mkv
1: 20240408_145208_99A5_B8A44F6DAF66.mkv
To download the 1st recording, run the command <node_id> download_recording 0. This will download the 1st recording (with index 0), to the Results folder in the E-VM of the node_id that was given. Once the recording has finished downloading, the following message will be displayed in the OEO Console:
[<node_id>]-[INFO] Successfully transferred recording
NOTES:
Allow ~10 seconds after a vehicle is armed for the camera to detect it and start recording
Allow ~30 seconds after the camera detects a signal to stop recording (either vehicle is disarmed or track_camera off command) for the recording to stop and be available for download.
Developer Information
There are 5 processes that are involved in Drone Tracking Microservice:
C-VM-Agent
OEO Console
Drone Tracker Microservice in OEO-Server
CameraDistance container in LW1S
AERPAW Kafka Server
The CameraDistance container (which is the process directly controlling the camera) takes a mavproxy stream to get vehicle location data. To facilitate this, an additional mavproxy stream is routed from each C-VM to the OEO-Server on port 15550+{node_id}.
The following sequence diagrams show the flow of the system for different use cases: