# ACO Parameters Description

ACO parameters can be edited in QGroundControl (QGC) either by connecting a USB cable to the Flight Controller or by connecting wirelessly over UDP/TCP.

Once connected through either method and after MAVLink parameters have fully loaded, navigate to **`Vehicle Configuration → Parameters`**\
Then locate **Component 191**, which corresponds to the ACO program running on the FCU/Skynode.<br>

<figure><img src="/files/6CXqiZ76JMFlf60QdcM9" alt=""><figcaption></figcaption></figure>

## **\[ACO] Collision Prevention Parameters**

### **`ACO_ALW_ACT`**

**Visible on QGC:** Yes\
**Value:** `1 = enabled`, `0 = disabled`\
Enables the collision-prevention module to always remain active, regardless of vehicle state.

### **`ACO_SFT_WID`**

**Visible on QGC:** Yes\
**Default:** `2.0` (meters)\
Safety region width used to determine the horizontal buffer around the drone.

### **`ACO_SFT_HI`**

**Visible on QGC:** Yes\
**Default:** `1.0` (meters)\
Safety region height defining the vertical protective boundary.

### **`ACO_SFT_VG`**

**Visible on QGC:** Yes\
**Default:** `5.0`\
Velocity gain applied when scaling the stopping distance during obstacle avoidance.

**Example:**\
If **ACO\_SFT\_VG = 5** and the drone is moving at **5 m/s**, the stopping threshold becomes:\
`5 × 5 = 25 meters`\
The drone will begin stopping when an obstacle is **25 meters ahead** in its direction of travel.

### **`ACO_VEL_THR`**

**Visible on QGC:** Yes\
**Default:** `0.3` (m/s)\
Minimum velocity required to classify the drone as “moving” for collision-prevention logic.

***

## **\[MAV] MAVLink Parameters**

### **`MAV_PORT`**

**Visible on QGC:** No (string parameter)\
**Value:** Serial or UDP URL.\
**Default:** `""`\
Port or URL used for MAVLink communication. If empty, the system selects a platform-specific default.&#x20;

```
"MAV_PORT": "COMM_TYPE://<YOUR PORT HERE>:BAUD_RATE",
```

For example, if the MAVLink port is connected on the serial `/dev/ttyHS1` port with baud rate 921600, the entry would be:

```
"MAV_PORT": "serial:///dev/ttyHS1:921600",
```

Refer to the MAVSDK [Connecting to Systems](https://mavsdk.mavlink.io/main/en/cpp/guide/connections.html#connecting-to-systems-vehicles) documentation for more.

### **`MAV_SYS_ID`**

{% hint style="warning" %} <mark style="color:$danger;">**DEPRECATED**</mark>
{% endhint %}

**Visible on QGC:** Yes\
**Default:** `1`\
Previously used as the MAVLink system ID for the drone.

### **`MAV_COMP_ID`**

{% hint style="warning" %} <mark style="color:$danger;">**DEPRECATED**</mark>
{% endhint %}

**Visible on QGC:** Yes\
**Default:** `11`\
Previously used to identify the MAVLink component.

### **`MAV_HRBTS`**&#x20;

{% hint style="warning" %} <mark style="color:$danger;">**DEPRECATED**</mark>
{% endhint %}

**Visible on QGC:** Yes\
**Value:** `1 = enabled`, `0 = disabled`\
**Default:** `1`\
Previously enabled continuous MAVLink heartbeat transmission.

### **`MAV_GCS_IP1`**

**Visible on QGC:** Yes\
**Default:** `8.8`\
First half of the Ground Control Station IP address (float). Combined with `MAV_GCS_IP2`.

### **`MAV_GCS_IP2`**

**Visible on QGC:** Yes\
**Default:** `8.8`\
Second half of the GCS IP (float). Combined with `MAV_GCS_IP1`.

**Example:**\
`8.8` + `8.8` → GCS IP becomes `8.8.8.8`

### **`MAV_GCS_PORT`**

**Visible on QGC:** Yes\
**Default:** `14550`\
UDP port used for sending MAVLink messages to the GCS.

### **`MAV_USE_UDP`**

{% hint style="warning" %} <mark style="color:$danger;">**DEPRECATED**</mark>
{% endhint %}

**Visible on QGC:** Yes\
**Value:** `1 = enabled`, `0 = disabled`\
Previously selected UDP transport instead of serial for MAVLink.

### **`MAV_OBS_MSG`**&#x20;

**Visible on QGC:** Yes\
**Value:** `1 = enabled`, `0 = disabled`\
**Default:** `1`\
Controls whether `OBSTACLE_DISTANCE` messages are published.

### **`MAV_OBS_FRQ`**

**Visible on QGC:** Yes\
**Default:** `20` (Hz)\
Rate at which `OBSTACLE_DISTANCE` messages are sent. Converted internally to a period (`1000 / Hz` ms).

### **`MAV_TXT_DEL`**

**Visible on QGC:** Yes\
**Default:** `5` (seconds)\
Time delay between sending MAVLink `STATUSTEXT` messages.

### **`MAV_ACO_RST`**

**Visible on QGC:** Yes\
**Value:** `1 = restart`, `0 = no action`\
**Default:** `0`\
Triggers a restart of the collision-prevention module.

***

## **\[SF45] LiDAR Parameters**

### **`SF45_STR_THR`**

**Visible on QGC:** Yes\
**Default:** `90`\
Minimum signal strength required for a valid LiDAR return.

### **`SF45_DIS_THR`**

**Visible on QGC:** Yes\
**Default:** `5000` (mm)\
Maximum return distance considered valid (capped at 5 meters).

### **`SF45_PORT`**

**Visible on QGC:** No (string parameter)\
**Default:** `/dev/ttyACM3`\
Serial port used to communicate with the SF45 sensor.

### **`SF45_BAUD`**

**Visible on QGC:** Yes\
**Default:** `921600`\
Baud rate for the SF45 serial connection.

### **`SF45_LOW_ANG`**

**Visible on QGC:** Yes\
**Default:** `-70` degrees\
Lower bound of the scan angle. Automatically forced negative.

### **`SF45_HI_ANG`**

**Visible on QGC:** Yes\
**Default:** `70` degrees\
Upper bound of the scan angle. Automatically forced positive.

***

## **\[FXG] Foxglove Visualization Parameters**

### **`FXG_NAME`**

**Visible on QGC:** No (string parameter)\
**Default:** `"Ascend Collision Overwatch"`\
Name used for the Foxglove WebSocket server.

### **`FXG_HOST`**

**Visible on QGC:** No (string parameter)\
**Default:** `"0.0.0.0"`\
Host address on which the server listens.

### **`FXG_PORT`**

**Visible on QGC:** Yes\
**Default:** `8765`\
Port used by the Foxglove server.

### **`FXG_VIS`**

**Visible on QGC:** Yes\
**Value:** `1 = enabled`, `0 = disabled`\
**Default:** `1`\
Turns the visualization interface on or off.

### **`FXG_SV_LOG`**

**Visible on QGC:** Yes\
**Value:** `1 = enable logging`, `0 = disable logging`\
**Default:** `0`\
Enables saving data to MCAP log files.

### **`FXG_SV_LOG_PATH`**

**Visible on QGC:** No (string parameter)\
**Default:** `/home/root/mcap_recordings/`\
Directory where MCAP logs are stored when logging is enabled.

***


---

# 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://ascend-engineering.gitbook.io/ascend-collision-overwatch/aco-parameters-description.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.
