Drone-based system for stable close-up inspection
Project summary
A custom plug-in module to extend standard drones for stable close-up inspection of large wind-farm turbines. No more manual correction of position and altitude, even within complex settings with weak satellite signals.
Keeping focus on quality, not stabilizing the flight.
Services:
Because getting up close is half the job
Our client – a company that inspects wind farms by assessing the condition of complex composite structures. They get up close to detect any damage to maintain high-level performance and prevent potential failure.
They switched to drones to unlock greater efficiency but faced the challenge of adjusting the flight:
- They got the camera exactly where they needed
- But keeping it there was creating serious friction: too many manual corrections
We developed a module to extend existing capabilities while keeping human pilots in control over directions. It’s designed to maintain the position and altitude, even working in settings without reliable satellite signals.
Get there. Stay steady. Get insight without distraction.
Same drone, more gains
Too much to control
Wind turbines are under constant stress, both environmental – hail, snow, rain, dust, and salt – and mechanical. These conditions might cause serious damage if unattended (erosion, cracks, corrosion, deformation, and more) and lead to unwanted, expensive repairs.
Regular inspection comes with many blockers:
- Rope access is slow and costly, and exposes the team to hazard
- Ground inspection (still slow and costly) is limited by line of sight
A drone ultimately resolves this problem, but causes another one: the operator is too busy correcting the flight. Position, altitude, yaw, direction – it’s simply too overwhelming.
This creates an inefficient, split-focus workflow:
- Correct position – and lose the view
- Correct altitude – and lose the focus
- Look left – the drone is drifting
- Look right – and start all over
Letting drones take over
We designed a module to extend standard drones and maintain the position and altitude all autonomously. What’s more, it works even without a reliable satellite signal – a challenge often faced during inspections.
The concept:
- Once reaching the point of inspection, the operator can activate the system
- The drone will handle the stabilization, the operator – the yaw and direction
The pilot can assess the components (towers, blades, nacelles, hubs) without handling repetitive corrections. No distraction, no exposure to danger.
The result: an efficient, focused workflow without distraction – the operator can focus on what is important.
More than just hover
| FPV compatibility | 7 inches and above |
| Firmware compatibility | – Betaflight via MSP protocol – ArduPilot via MAVLink protocol |
| Core components | – ARM-based computer – Downward-facing camera |
| Data processing | – Visual odometry – IMU readings |
| Working range | 30-500 meters to object |
| Wind resistance | Up to 12 m/s |
| Hold accuracy | Stable position with an up to 8° drift |
| Tilt tolerance | Stable operation at an up to 25° tilt |
Where the complexity lies
Multi-firmware compatibility
Different capabilities and protocols – all controllers are unique.
To achieve desired behavior:
- We developed an algorithm for autonomous flight control
- And adapted the solution to leverage sensor fusion
Advanced control
Different configurations and components heavily affected flight behavior and required precision tuning.
To compensate for variations:
- We developed axis-specific controllers
- And enabled platform-specific calibration
Stable elevation
To maintain stable elevation was not that easy without reliable GNSS coverage and with camera disposition.
To resolve this problem:
- We combined visual odometry
- With extracted IMU readings
Feature matching
To enable feature matching was critical to estimate the drone’s exact motion that happened between frames.
To resolve this problem:
- We set the algorithm to match current frame with the last updated
- We tuned the camera to obtain video footage of the best-possible quality
Very limited sensor data
We focused on affordability, which limited our options in terms of localization to the following two:
- The inertial measurement unit, which isn’t very accurate, and barometer
- A mounted downward-facing camera
To address this challenge, we built a custom localization algorithm to determine the drone’s exact position.
Camera orientation
To provide optimal accuracy, the camera that’s attached must always remain perpendicular to the land plane. The problem: due tilting, the camera isn’t pinpointing directly downward during flight.
To address this challenge, we engineered a sophisticated gimbal system to stabilize the camera’s visual feed.
Real-world robustness
There’s also changing weather:
- Wind bursts
- Luminance changes
To address this challenge, we applied software & hardware optimization, and preprocessing.
Real-time processing
With the computing power the integrated SBC provides, to enable real-time processing is a massive challenge. But nonetheless, it’s critical to have a fast (and low-latency) control loop when operating high-speed drones.
To address this challenge, we performed software & hardware optimization, and multithreading.
From lab to field
The results in practice
Tech stack
- C++
- Python
- Bash
- OpenCV
- ORB
- SURF
- MSP
- MAVLink
- SDL2 X11
- Linux
- ROS Noetic
- Gazebo
- Betaflight SITL
- ArduPilot SITL
Project timeline & team
4 months
