# Getting Started

Cyclops is a software-only visual positioning system for fixed-wing UAVs operating in GPS-denied environments. It delivers drift-free global position estimates using onboard camera imagery, runs on commercial hardware, works day or night, and integrates directly with ArduPilot.

<figure><img src="/files/foo8y5AoRVbedXkiZYuE" alt=""><figcaption></figcaption></figure>

## Before starting

This quick start guide walks you through setting up Cyclops on your drone. By the end you'll be ready to perform bench tests and run your first flight with Cyclops.

What you need:

**On the drone:**

* ArduPilot v4.6+ fixed-wing with compass, barometer, airspeed sensor
* Camera (EO or thermal), ≥0.05MP resolution, global shutter is optimal
* ARM64 edge computer: 2+ cores @ 2.4GHz, 2GB RAM, Ubuntu 22/24
  * Tested: Raspberry Pi 5, NanoPi R6C
* MAVLink connection (UART or UDP) between autopilot and edge device

**On the ground:**

* Host computer running Linux or Windows

{% hint style="info" %}
Learn more about supported hardware [here](/cyclops/pre-requisites.md#computer-requirements).
{% endhint %}

## Setup steps

The following steps walk you through the software setup process. For information on mechanical installation check out [Vehicle Integration](/cyclops/vehicle-integration.md).

1. [Create a Theseus account](https://dashboard.theseus.us/signup)
2. [Get Vozilla](/gcs-software/vozilla-gcs/installation.md)
3. [Setup edge device OS with ssh](/cyclops/cyclops-computer/pi-5-walkthrough.md)
4. [Connect your edge device to the flight controller and setup drive](/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup.md)
5. [Run Cyclops installer](/cyclops/cyclops-computer/pi-5-walkthrough/vns-sdk-setup.md)
6. [Connect to edge device with Vozilla](/gcs-software/vozilla-gcs/quick-start.md#using-another-ip-address-for-you-edge-device)
7. [Configure edge device with Vozilla](#add-your-vehicle)
8. [Calibrate camera](/cyclops/vehicle-integration/camera-calibration.md)
9. [Generate maps](/gcs-software/vozilla-gcs/maps.md)
10. [Set ardupilot params](#update-ardupilot-parameters)
11. [Bench test the system](/cyclops/validation/bench-test.md)

### Add your Vehicle

Cyclops requires the camera pose relative to the flight controller. To ensure this goes smoothly, refer to the [mechanical installation](/cyclops/vehicle-integration/mechanical-installation.md) guide.&#x20;

Once your camera is mounted to your platform, enter:

* the translation from camera to flight controller, and
* the camera orientation relative to the flight controller

On the vehicle calibration page and upload your vehicle configuration. Cyclops includes a few default configs to help you get started.

<figure><img src="/files/WGeJDbjTrJ861Ukxju3l" alt=""><figcaption></figcaption></figure>

### Update ArduPilot parameters

Cyclops requires time synchronization between your autopilot and the edge device. Enable time sync over MAVLink by setting the `BRD_RTC_TYPES` parameter to 2 on your drone.

{% hint style="warning" %}
Time synchronization is essential, set `BRD_RTC_TYPES=2` on ArduPilot.
{% endhint %}

Cyclops sends position updates with the `MAV_CMD_EXTERNAL_POSITION_ESTIMATE` command. For ArduPilot to accept these commands, GPS cannot be an EK3 sensor source.

We recommend that you use our EK3 source switching scripts to toggle between dead-reckoning with Cyclops and flying with a GPS during testing. Learn more about ArduPilot configuration [here](/cyclops/autopilot-integration.md).

### Generate and upload a map

Congrats! You are done with all initial setup steps for Cyclops:

* Vozilla is downloaded and Theseus account is created
* Cyclops is installed on your edge device
* MAVLink ports and storage on edge device
* Cyclops license is activated
* Camera is calibrated

Next, **generate a map** and upload it to Cyclops. Cyclops uses reference maps to estimate your drone's positioning when flying.

Check out [Maps](/gcs-software/vozilla-gcs/maps.md) for more info on how to complete this step.

### Bench tests and test flights

Before flying, make sure that your home position has been set correctly in Vozilla and that Cyclops is active. Learn more about bench tests [here](/cyclops/validation/bench-test.md) and flight test [here](/cyclops/validation/flight-test.md).

## FAQ

#### Does cyclops have MIPI CSI-2 support? — Camera interface

Cyclops doesn't have built in MIPI support, however, we have docs that allow you to create your own custom camera publisher. Check out [Custom Camera Publisher](/cyclops/developers/custom-camera-publisher.md) for details on implementing a customer camera publisher.

There a corresponding repo here: <https://github.com/Theseus-Dev/cyclops-camera-publisher>

#### **Are there any rolling shutter limitations?**

We have primarily tested on global shutter so far. We should be able to use rolling shutter, as long as the framerate is high. If the image has too much jello that will be a problem, but if the framerate is high and the image quality is good a little jitter is okay. We can support low quality images.

#### **What camera FOV / lens works with cyclops?**

Depends on altitude. We are using anything from 60deg to 100+deg. Any standard FPV camera + lens should be good; whatever is cheapest and most available.

#### **Does cyclops support thermal cameras for night operation?**

We see the same performance between thermal & EO. We have run a caddx eclipse o3 through an analog to digital converter (ADC) which is also 256 pixels and seen good results at 120m altitudes.

#### **What is the operational envelope?**

For the cameras above, expected limits on flight altitude (min/max) and airspeed?

Thermals: We need to test 256 maximum altitude. We are able to fly it at 60 - 120m with our airspace here, but cyclops should be able to go higher. With 640 camera it can go much higher, 700m - 1km should be no problem.

EO: Any 1280x720p EO camera will be good for 60-1000m out of the box.

#### **Module operation without M.2 HAT**

M.2 drives offer much faster read/write speeds, more storage, and more reliability, but at a cost comparable to the cyclops BOM. For that reason micro SD cards have quickly become our preferred method for setting up cyclops.

**Micro SD cards are supported for use with cyclops**, however, they come with an important caveat:

* Smaller SD cards will quickly fill with log data and must be manually cleared to ensure normal operation. [Recording Control](/gcs-software/vozilla-2.0/settings/recording-control.md#clearing-log-data)

## Learn More

1. Check pre-requisites: [Pre-Requisites](/cyclops/pre-requisites.md)
2. Install Cyclops on your Flight Computer [Cyclops Computer](/cyclops/cyclops-computer.md)
3. Mount your Cyclops system to your vehicle: [Vehicle Integration](/cyclops/vehicle-integration.md)
4. Configure ArduPilot for Cyclops: [Autopilot Integration](/cyclops/autopilot-integration.md)
5. Configure Cyclops in software: [Vozilla GCS](/gcs-software/vozilla-gcs.md)
6. Perform a bench test: [Bench Test](/cyclops/validation/bench-test.md)
7. Perform a flight test: [Flight Test](/cyclops/validation/flight-test.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.theseus.us/cyclops/getting-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
