> For the complete documentation index, see [llms.txt](https://horus-make-sense.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://horus-make-sense.gitbook.io/documentation/systems/citymapper/recording-data/system-components.md).

# System Components

How does it work?

The Horus Citymapper and newer Vertex systems all integrate various components that allows the system to output imagery with highly accurate positions.\
This chapter describes these various components.

{% hint style="info" %}
Due to the modular nature of the system, the exact configuration may vary.
{% endhint %}

Below is a schematic view of a system, next we will go through the various components to understand how they work together.

<figure><img src="https://3462221526-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFCe67imy4ipkDut6uMDi%2Fuploads%2Fx1kCO53RhI40YhNDUifn%2FACO%20overview.drawio.png?alt=media&amp;token=575f4090-af3b-4b2e-90fb-ccc6ef58562c" alt=""><figcaption></figcaption></figure>

***

#### GNSS/IMU

The GNSS/IMU system sends location data to the system, this is how each image gets an position.

The system is able to do this by getting timing and location data from satellites via the GPS.\
This is supported by an Inertial Measurement Unit or IMU, this measures any changes in acceleration and roll, pitch, yaw. When GPS signal is lost, the IMU will be able to maintain a degraded fix for a short period.

<figure><img src="https://3462221526-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFCe67imy4ipkDut6uMDi%2Fuploads%2FVzkdV53htEHOL7JarX2Y%2FACO%20overview_gps.drawio%20(2).png?alt=media&amp;token=1354b39b-e6c0-4701-8f77-246ea9babc58" alt=""><figcaption></figcaption></figure>

#### Datastream GNSS/IMU

The GNSS/IMU system sends the location data to the Recording Unit via two data streams.

A serial connection for sending the raw GPS NMEA data. \
This data is used for the live position on the map, and for attaching a raw position to the images.\
This data is saved as the NMEA.dat files in each recording.

The GPS sensor data is send over an ethernet connection.\
This data stream is used to get the raw GNSS/IMU data for the system its own software and for logging during the recording mission. This log is then used later for [Post-Processing](/documentation/legacy/citymapper/post-processing.md).

<figure><img src="https://3462221526-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFCe67imy4ipkDut6uMDi%2Fuploads%2FGy3O8JWfNvplHGLwOd0A%2FACO%20overview_switch.drawio.png?alt=media&amp;token=e1ba11aa-769d-488a-9707-a00afb0ebf96" alt=""><figcaption></figcaption></figure>

#### Triggering

The GNSS/IMU system sents out trigger pulses each meter. The Horus Triggerbox receives these pulses and every X (configurable) pulses it will sent out a trigger pulse to all the camera devices.\
A timestamp is also created at this exact time, which will be used later to synchronize the images and the positions.\
\
The Triggerbox will ensure that all the cameras take an image at the same time.

<figure><img src="https://3462221526-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFCe67imy4ipkDut6uMDi%2Fuploads%2FY6pWUHyPHQxxkFvE2Igi%2FACO%20overview_triggering.drawio.png?alt=media&amp;token=2a1738a7-e068-4a24-8245-557cae8dbf5f" alt=""><figcaption></figcaption></figure>

#### Data Collection Sensors

Various sensors can be used with the Horus mapping systems, these can be 360 and High Resolution cameras, Thermal cameras, and Lidars.

When the cameras receive a trigger pulse, they will send an image to the recording unit.\
The Triggerbox will sent synchronization data.\
A lidar will stream data continuously.

<figure><img src="https://3462221526-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFCe67imy4ipkDut6uMDi%2Fuploads%2FD5WiVdjLAV2xGsFFQ6CE%2FACO%20overview_sensors.drawio.png?alt=media&amp;token=f25adc54-ca53-4fd7-ac4a-58e66b60c4ee" alt=""><figcaption></figcaption></figure>

#### Data Storage

Collected data can then be written to an external SSD for processing.

<figure><img src="https://3462221526-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFCe67imy4ipkDut6uMDi%2Fuploads%2FYRU7nI9DODmEyEZnBf84%2FACO%20overview_data.drawio.png?alt=media&amp;token=56cf2ed4-568d-4a7d-9d7b-c54aa16f1b7f" alt=""><figcaption></figcaption></figure>
