2‐Localization Set up - LOG795-UAV-Search-and-Rescue/documentation GitHub Wiki

Setup & Networking Guide

Drone (VOXL) + UGV (Jetson/ESP32) + Laptop System

This section ensures that all devices communicate, and localization works before launching follow behaviors.


System Architecture

Component Role
VOXL (Drone) Provides VIO + sends pose + commands
UGV Jetson Receives position commands + runs rover sim/real control
ESP32 Executes wheel motor JSON commands
Laptop Receives VIO, runs control logic, can simulate rover

Network Requirement:
All devices must be connected to the same network (192.168.8.x VOXL subnet recommended).


Networking Setup

Drone Hotspot (Recommended for Field)

VOXL creates Wi-Fi AP:

SSID: voxl
Password: voxl
IP: 192.168.8.1

Laptop & UGV connect to the VOXL network.

Device Expected IP
VOXL 192.168.8.1
Laptop 192.168.8.xx (DHCP)
UGV Jetson 192.168.8.xx (DHCP)

Required VOXL Services

Service Purpose Status Command
voxl-camera-server Camera stream `voxl-inspect-services
voxl-qvio-server VIO pose `voxl-inspect-services
voxl-vision-px4 Sends pose over MAVLink `voxl-inspect-services
voxl-mavlink-server UDP bridge `voxl-inspect-services

Enable any missing component:

sudo systemctl enable <service>
sudo systemctl start <service>

VOXL Odometry Check

Run to verify VIO streaming:

sudo voxl-inspect-qvio

Expected output:

T_imu_wrt_vio (m) | Roll Pitch Yaw | features | quality | state
-0.05 0.11 0.02   | 5.1 -2.9 0.4  | 27       | 94%     | OKAY

If quality stays above 30% when moving → good tracking
If quality drops to ~1% → reset handling will trigger


UDP Verification (Before running scripts)

Test if VOXL can reach Laptop

On VOXL:

ping <Laptop-IP>

Test UDP stream

Laptop listener:

nc -ul 5005

Then move drone — you should see values.


File Transfer

To send scripts to VOXL:

scp read_vio_send_udp.py [email protected]:/PFE/code/

To SSH:

Password: voxl


First Run Checklist

Check OK?
VOXL services running
Laptop & UGV connected to VOXL Wi-Fi
voxl-inspect-qvio shows movement & good quality
UDP packets received on laptop (nc test)
Python control script runs without errors

Only then run rover control script:

python3 rover_follow_sim.py

⚠️ **GitHub.com Fallback** ⚠️