Unmanned aerial vehicle control system
The UAV control system addresses proximity and interference issues by using a three-dimensional scanning sensor and flight controller for precise navigation and coating applications, enhancing drone operation near structures.
Patent Information
- Application Number
- PCT/GB2025/050628
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-02
- Filing Date
- 2025-03-24
- Publication Date
- 2025-09-25
AI Technical Summary
Existing drone control systems struggle with maintaining accurate proximity to structures, are prone to interference from metal objects and GPS inaccuracies, and require significant computational resources for mapping, making them unsuitable for close-range operations.
A UAV control system utilizing a three-dimensional distance scanning sensor, location determining system, and flight controller to generate a map of the vicinity, enabling profile tracking and collision avoidance modes, allowing the drone to maintain a predetermined distance from structures while operating in GPS-denied and compass-denied environments.
The system enables precise navigation and application of coatings to structures by maintaining a consistent distance and orientation, reducing the need for pilot intervention and minimizing computational overhead.
Smart Images

Figure GB2025050628_25092025_PF_FP_ABST
Abstract
Description
[0001] Unmanned Aerial Vehicle Control System
[0002] The present invention concerns an unmanned aerial vehicle (UAV) such as a drone and, more specifically, to control systems for drones to facilitate navigation in the vicinity of buildings and other structures.
[0003] The applicant’s earlier international patent application, published as WO2017 / 191469, discloses a drone that is specifically adapted for the purpose of applying liquid substances to structures. Using that technology, coatings can be applied to buildings, wind turbines and a variety of other hard-to-reach structures without the need for extensive scaffolding or other manual access solutions.
[0004] The drone of WO2017 / 191469 has a position maintenance and control system that makes use of a LIDAR sensor, a camera and a GPS device in order to help maintain a desired position of the drone relative to a wall. However, ongoing use the technology has revealed a number of operational scenarios in which the existing control schemes were found to be sub-optimal.
[0005] Conventional control schemes for drones focus on obstacle avoidance to ensure there are no unwanted collisions between the drone and the obstacle. However there are many instances in which a desire to maintain an accurate, close distance to a building can result in conventional collision-avoidance approaches being unsuitable. It is therefore desirable to have a bespoke methodology for maintaining an accurate and consistently close distance to a building.
[0006] Drones use a combination of remote manual control and autonomous controls within their control scheme. The existing drone’s roll is not controlled by any autonomous system, and instead follows the pilot's stick input. This means that constant pilot intervention is required for safe flight in most environments and skill is required on the behalf of the pilot.
[0007] The majority of drones use a magnetometer as a compass to maintain a persistent heading estimate during operation. In some environments with large metal structures or high voltage cables, significant noise or interference can be found in the magnetometer readings. This interference can result in the compass being non-operable, preventing any use of the drone. Furthermore, in the vicinity of large structures, there are many scenarios where GPS data is unavailable or inaccurate, again meaning that drone dependence on a GPS signal for navigation can be problematic.
[0008] The mapping of large structures, i.e. for accurate navigation about those structures by the drone can be computationally expensive. The large area of a structure would require a large map to access in real time. Furthermore, there is a need to be able to access and update a map in real time either due to the speed of movement of the drone or else because the structure itself may be moving. When it is considered that onboard weight and power consumption are key considerations for drones, it is generally not practical to incur significant computational penalties based on the mapping process.
[0009] It is an aim of the present invention to mitigate one or more of the above problems. It may be considered an aim of the invention to provide a control system that is better suited to UAVs that are required to fly in close proximity to structures.
[0010] Statements of Invention
[0011] According to a first aspect of the invention there is provided a UAV as defined in appended claim 1 .
[0012] According to a second aspect there is provided UAV control software as defined in appended claim 19.
[0013] According to a third aspect, there is provided a control system for a UAV comprising the machine-readable instructions and / or data carrier of claim 19, e.g. in the form of a tangible data store.
[0014] According to a fourth aspect there is a UAV as defined in appended claim 20.
[0015] According to a fifth aspect, there is provided UAV control system or a data carrier for a UAV control system comprising machine readable instructions for the control of one or more compute processors to: receive three-dimensional distance scanning sensor data over a first scanning range comprising distance data for surfaces within said scanning range; receive a current UAV location from a location determining system for the UAV; define a mapping boundary around the current UAV location, said mapping boundary being of defined size that is smaller than the scanning range of the position scanning sensor; generate a map of any surfaces within the mapping boundary from the distance scanning sensor; determine control instructions for control of one or more propulsive rotor of the UAV based upon the three-dimensional map.
[0016] According to a sixth aspect of the invention, there is provided a UAV as recited in appended claim 33.
[0017] The UAV may comprise a location determining system having a depth detection vision system.
[0018] According to a seventh aspect there is provided a control system or a data carrier for a control system of a UAV having a plurality of propulsive rotors and one or more sensor for detecting a profile of a structure within a predetermined vicinity of the UAV, the data carrier or control system comprising machine readable instructions for the control of one or more compute processors to: receive the output of the one or more sensor and determine a distance between the UAV and the structure; output control instructions for control of the propulsive rotors based on the determination of the distance between the UAV and the structure; and, operate in a profile tracking mode by determining a path for the UAV that is a predetermined distance from the detected structure and control the UAV to follow the profile of said detected structure by outputting instructions to a flight controller of the UAV to implement said path so as to constrain movement of the UAV in said profile tracking mode to be within a plane that is at the predetermined distance from the structure.
[0019] According to an eighth aspect there is provided a UAV comprising: a plurality of propulsive rotors; one or more sensor for detecting a profile of a structure within a predetermined vicinity of the UAV; a control system comprising: one or more data processor arranged to receive the output of the one or more sensor and determine a distance between the UAV and the structure; and, a flight controller arranged to output control instructions for control of the propulsive rotors based on the output of the data processor, wherein the control system is operable in a profile tracking mode, wherein the data processor determines a path for the UAV that is a predetermined distance from the detected structure and follows the profile of said detected structure, wherein the flight controller implements said path so as to constrain movement of the UAV in said profile tracking mode to be within a plane that is at the predetermined distance from the structure.
[0020] Separate from the profile tracking mode, the control system may be operable in: a collision avoidance mode, in which the control system simply maintains a minimum threshold distance / clearance from a surface (but does not constrain the movement of the UAV to only be at said distance); and / or a surface homing mode, in which the UAV actively / automatically moves towards the predetermined spacing from the detected surface.
[0021] The control system may control the UAV to face the structure, e.g. along a surface normal for the structure. The control system may control the UAV to face the nearest point of the structure profile. The UAV may have a forward-facing appendage, e.g. a lance, which may be directed towards the structure by the control system.
[0022] The one or more sensor may emit EM rays and checks for receipt of reflected rays, e.g. being a LiDAR sensor. The sensor may iteratively perform scans and return only positive distance data for surfaces in the scanning range at each iteration.
[0023] The UAV is typically a multi-rotor UAV. The UAV is typically capable of vertical take-off and / or landing.
[0024] The flight controller may or may not output control instructions for maintaining a predetermined clearance along or over a surface of the map. Iterative scans may comprise iterative sweeps over an angular range, such as for example 360“ sweeps.
[0025] The UAV may comprise a wall tracking system for determining a flight path following a contour of a surface of the map, wherein control inputs for manoeuvring the UAV are converted to directional controls within a plane containing the flight path.
[0026] According to further aspects of the invention, there is provided a UAV that can operate in GPS denied and / or compass denied scenarios as described herein.
[0027] According to a further aspect of the invention, there is provided a UAV comprising a power source and a plurality of electric motors arranged to drive a plurality of propellors under the control of an on-board flight controller, the flight controller comprising a first data processor, wherein the UAV comprises a plurality of sensors for providing sensor signals to the flight controller in a first or normal mode of in-flight operation and wherein the UAV comprises a three-dimensional depth scanner and a further data processor for processing the three-dimensional depth scanner, wherein the further data processor is selectively activated to process the three-dimensional depth scanner data in a second mode of inflight operation, said second mode of operation comprising flight of the UAV in close proximity to an external structure, whereby the further data processor creates a three- dimensional map of the external structure for control of the flight of the UAV proximate thereto.
[0028] The first or normal mode of operation may comprise a collision avoidance mode of operation. The further mode of operation may comprise a surface tracking or aligning mode of operation.
[0029] The UAV may have an appendage in the form of an arm or lance projecting forwardly of a main body of the UAV.
[0030] According to embodiment of the invention the UAV may be used to apply liquids such as coatings, to structures, such as buildings, ships, aircraft, wind turbines, electric pylons, masts, cranes, oil & gas rigs or the like.
[0031] The UAV may comprise a liquid delivery system, e.g. including a liquid dispensing nozzle or outlet. A lance may be mounted to the UAV and may extend therefrom, e.g. with the liquid dispensing nozzle or outlet at a distal end of the lance. The lance may have a length such that it extends form the body of the UAV to a location that is beyond the lateral extent of the propellors, e.g. outside of downwash created by the propellors in use.
[0032] The control system or flight controller may control rotational speed and / or pitch / orientation of each of the plurality of propellors.
[0033] The detected profile of the structure may be a three-dimensional profile.
[0034] The one or more sensor may comprise a three-dimensional distance scanning sensor arranged to perform scans of the profile of the structure to return relative distance data between the UAV and the structure and the data processor may be arranged to generate a three-dimensional map of the profile of the structure. The control system may maintain an active map used for determination of a flight path.
[0035] The control system may maintain a further map undergoing processing, wherein the active map and further map are successively switched.
[0036] The UAV may comprise a receiver for receiving control inputs for manoeuvring the UAV in flight and the received control inputs may be converted by the control system to directional controls for the flight controller lying within a plane relative to the profile of the structure. The received control inputs may comprise directional control inputs and the control system converts the received directional control input to a flight path within the plane.
[0037] The distance scanning sensor may iteratively perform scans and may return no position data where no surface is in scanning range for one or more emitted EM ray. The distance scanning sensor and / or data processor may make an active determination of no received reflected ray for emitted EM ray(s) for each scan, e.g. within a predetermined time window for each scan. The active determination may be made at the end of a predetermined time window. Thus the system may avoid delays waiting for reflected rays that will not be received and may instead infer a non-received reflected ray (i.e. that no surface is present) more quickly.
[0038] Further optional features are defined in the dependent claims. Optional features of any single aspect or invention defined herein may be applied to any other aspect or invention defined herein where practicable.
[0039] Detailed Description
[0040] Practicable embodiments of the invention are described in further detail below by way of example only with reference to the accompanying drawings, of which:
[0041] Figure 1 shows a side view of a drone operable in according with the present invention; Figure 2 shows a schematic view of the drone control system;
[0042] Figure 3 shows a flow chart used for mapping a region around the drone;
[0043] Figure 4 shows a schematic representation of a bounding region to be mapped in the vicinity of the drone;
[0044] Figure 5 shows a schematic of the ray casting and sampling process used in dynamic mapping; Figure 6 shows schematic steps used in a wall tracking procedure for the drone;
[0045] Figure 7 shows a flow chart of a drone navigation procedure where control inputs such as GPS and / or compass readings are denied.
[0046] Overview of Drone
[0047] Turning to Fig. 1 there is shown an aircraft 10 in the form of a UAV, which is referred to herein as a drone. The drone has been built from a customised airframe and is designed for spraying liquids on to structures or objects. The control system has integrated an array of specialist sensors and equipment as will be described herein.
[0048] The drone 10 is capable of vertical take-off and landing, having a central body 12 and a plurality or arms 14, each extending outwardly from the central body 12 and bearing at least one propulsive rotor 16 in the form of a propellor.
[0049] The central body provides a housing a power source in the form of one or more batteries 18 and associated electronic / electrical equipment for drone control as will described in further detail below. The drone 10 comprises an aerial / antenna 15 for transmission and receipt of radio frequency signals. The batteries may be spaced about the central body to manage weight distribution.
[0050] The housing may be waterproof and / or may comprise a waterproof canopy. The housing and / or central body may comprise or be formed of a fibreglass material. The onboard electronics are preferably mounted on anti-vibration suspension in the central body 12.
[0051] In the example shown, each arm 14 bears a rotor assembly comprising the propellor 16 and an associated electric motor 20 for driving rotation of the propeller 16 in use. Each rotor assembly can be controlled individually or in unison as required. The rotor assembly 16 includes two rows of propellors 16 arranged to rotate about a common axis, i.e. with one row being above the other row, e.g. being spaced by the electric motor 20. The rotor assembly may thus be described as being of a push-pull configuration. Each rotor assembly may comprise associated servo and linkage systems.
[0052] In this example, a pair of motors 20 are provided for each rotor assembly, e.g. on each arm 14, arranged coaxially. Thus each row of propellors 16 has its own motor. Each propellor row 16 can thus be controlled individually or in unison with the other coaxial propellor row as necessary. There are eight propulsive motors in this example.
[0053] The push-pull configuration can be used to provide lateral propulsion required to manoeuvre away from a building / structure in use. However in other examples the push- pull configuration is not required and the rotor configuration could be pull-only or push- only. The number of motors, propellors and their configuration could be altered according to design requirements.
[0054] The drone 10 is shown from the side and includes four or more arms 14 and associated rotor assemblies. The arms 14 may be foldable and may be formed of a carbon fibre tube. The arms are locked into place for flight, i.e. in the orientation shown in Fig. 1 , and can be folded for transportation. The arms may all be the same length and the position of the motors 20, e.g. the axis of rotation of the propellors 16, may take the relative positions of the corners of a square when viewed in plan.
[0055] The drone 10 comprises legs 17 depending beneath the central body 12, e.g. at an oblique angle so that the legs splay outwardly toward ground engaging feet 19 at their ends. The legs may be braced by struts 21 extending laterally between legs.
[0056] The drone may also comprise conventional propellor guards (not shown in the figures).
[0057] The drone 10 is intended in use to dispense a liquid / coating and may comprise an onboard pump 22 for delivery of liquid along a rigid flow pipe 24 to an outlet 25. In other examples, the pump 22 or a further pump is provided off-board. The drone may or may not also comprise an on-board tank / reservoir for liquid to be dispensed. Such an on-board tank will be of relatively small volume due to drone weight limitations. In some examples, there is no onboard liquid tank.
[0058] A main liquid reservo ir / tank 26 is typically provided off-board, e.g. on the ground or upon an elevated structure above the ground. The drone / lance is fed by a hose 28 extending from the reservoir 26. An off-board pump may be associated with the reservoir 26 such that liquid to be dispensed by the drone is fed along the hose under positive pressure to the lance. Flow control means in the form of a further pump and / or flow regulator may be provided on the drone 10 to control start / stop of liquid dispensing and how the liquid is dispensed in use, e.g. according to a desired fixed / variable flow rate or pressure. A nozzle or other dispensing formation may be provided at the outlet 25 for creating the desired spray / atomisation or other dispersion of the liquid as it exits the flow pipe 24. The dispensing formation may be adjustable, e.g. having an adjustment mechanism, to allow varying of the angle of dispersion / spray of the liquid. The dispensing formation may be bespoke, e.g. being 3D printed.
[0059] The flow pipe 24 is referred to herein as a lance, which may be rigid. The lance 24 protrudes, e.g. substantially horizontally or perpendicular to an axis of rotation of the propellors 16, from the central body 12 to a radial position that is beyond the tip of the propellors and / or any downwash caused by the propellors in use. In this example the lance is greater than 1 m or 1.5m in length, e.g. being around 2m in length. The lance may comprise a carbon fibre tube, e.g. for the desired stiffness and weight balance so the tip of the lance is accurately located in use. The lance may have a mass of around 0.3kg or less, which may be defined as a desirable mass-to-length ratio.
[0060] The lance 24 is connected underneath the central body 12 using a plurality of secure fixtures / clips to maintain the desired lance orientation.
[0061] The hose 28 is fluidly connected to the proximal end of the lance 24 or to a connection point on the body 12 to fluid can pass from the hose along the lance. The hose may also be attached part-way along its length to one or more strut 19, e.g. to manage the position of the hose and / or control tension in the hose at the connector. A clip or the like may be used for this purpose.
[0062] The drone 10 comprises various sensors for use by the control system as follows:
[0063] • laser scanner 30: a three-dimensional depth detection laser scanning system or so-called LiDAR (Light Detection and Ranging) system may be used to generate point cloud data. This may be done over a 360“field of view.
[0064] • Camera 32: a conventional two-dimensional vision camera for capturing video. The camera 32 is rear-facing, e.g. being mounted on the rear of the central body 12 facing away from the lance 24. One or more further camera may be forward facing, e.g. in the direction of the lance 24.
[0065] • Position sensor 34: Global Positioning System (GPS)
[0066] • Compass 35: electronic magnetic sensor • Altimeter 36: a laser altimeter in this example or ultrasonic distance sensor. In various embodiments, the altimeter may or may not be present.
[0067] The drone 10 may also include other conventional movement sensors, e.g. accelerometer and / or gyro, to determine relative movement or acceleration of the drone.
[0068] Turning now to Fig. 2, there is shown a schematic of the control system 38 for the drone 10 in terms of the hardware and connections therebetween. This figure concerns the flight control system and so the liquid pump and its associated controller is omitted for brevity. However it is noted that liquid pump controls of the type described in the applicant’s earlier published patent application WO2017 / 191469 may be used.
[0069] At the heart of control system is a main flight controller 40 which receives sensor signals and processes them to output control instructions to the electric motors 20 for each of the propellors. The main controller 40 feeds appropriate signals to electronic speed controllers (ESC) or motor speed controllers 42 for each of the motors 20. Pitch, roll and yaw can thus be controlled to affect the orientation and movement of the drone 10 according to the signals from the main controller 40. The controller 40 can control thrust provided by each rotor assembly individually.
[0070] An example of a suitable flight controller is the commercially-available PixHawk Cube PX4.
[0071] The system also comprises a pitch control mechanism for each propellor, e.g. provided as a module with the motor 20. The actuator for pitch control of the propellors may be by servo. The main controller 40 can thus control pitch / orientation of the propellors as well as their rotational speed.
[0072] The ESCs may be mounted in the main body 12 of the drone 10 and connected to the motors 20 along arms 14.
[0073] In this example, the camera 32, position system (GPS) 34 and altimeter 36 signals are fed directly to the main controller 40, which can process those signals in real-time or near- real-time. The laser scanner (LiDAR) 30 signal takes the form of point cloud data and is connected to a processor unit / module 44 for graphical processing the point cloud data prior to passing processed data or resulting flight control data to the flight controller 40. In this regard, processor 44 may be considered to represent a companion computer, graphical processing unit (GPU) or mapping computer. The processor 44 takes the point cloud data from the scanner and produces a model or map of any assets / geometry within a predetermined vicinity of the sensor / drone as will be described in further detail below.
[0074] The use of the processor 44 may replace or override certain radio control inputs by a user (as will be described below). However the processor 44 is relatively power hungry compared to flight controller 40 and so it is proposed herein that it is only used in certain flight modes where proximity to an external structure surface needs to be maintained. In other examples, e.g. for shorter flights or where power considerations allow, the processor 44 could be used constantly.
[0075] The drone 10 is powered by a plurality of batteries 18, such as multi-cell lithium-polymer battery configuration. The battery configuration is connected to a power distribution unit / board 46, which powers all of the electrical and electronic components onboard. The power distribution unit 46 has connections for each of the ESCs 42 and separate connections to the flight controller 40 and other avionics, e.g. processor 44. In this example, there can be either two or four batteries mounted in the drone 10 depending upon the amount of resilience or flight time required.
[0076] The multi-battery configuration allows power to be supplied to the power distribution unit 46 by each battery 18 and ensures that there is no single point of failure if power fails from one of the set of batteries. Using just two batteries of varying sizes can be used to increase flight time or increase the maximum height at which the drone can operate.
[0077] Power distribution from the unit 46 is outlined as follows:
[0078] • 8x ESC and motors forming main propulsion system.
[0079] 1 x connection to push-pull subsystem, then spit to 1 x ESC and motor for propeller / rotor
[0080] 1x regulator and servo for push pull pitch control (e.g. 5V) • 2x outputs (e.g. 5V) to the flight controller to provide redundancy (only one output being used at a time, with a failure prompting an automatic switch over to the backup).
[0081] - Flight controller supplies power to: RC receiver 48
[0082] - GPS 34 and compass 35 Optional telemetry link 49
[0083] • 1 x connection to laser scanner (e.g. 12V)
[0084] • 1 x connection via regulator to computer 44, which supplies (e.g. 5V over USB)
[0085] Wi-Fi module
[0086] - Camera 32
[0087] - distance sensor or altimeter 36 (optional)
[0088] There are additional 5V and 12V connectors available for future use and component connections as may be used for testing or future developments of the hardware.
[0089] All regulators are equipped with low pass noise filters and have been selected to accommodate the maximum rated power consumption of the relevant component(s).
[0090] All electronics are mounted inside the housing of central body 12 and connected. These include flight controller 40, companion computer 44, buffer battery, set of power regulators, RC receiver 48, GPS 34 and compass 35.
[0091] The drone 10 can also be designed to be flown with a power tether in other embodiments. In this case the tether power unit is located in a compartment of the central body 12 and an onboard backup battery only may be needed (e.g. with counterweight used to balance the battery). The tether will be connected to the power distribution unit 46, e.g. using a bespoke clip. A power tether may run to an offboard / ground power supply, e.g. in a manner akin to the hose 28.
[0092] Also included in Fig. 2 are the off-board components of the control system, generally designated 50, which include a remote controller 52 and a ground control station 54. The remote controller 52 may be a conventional wireless / radio controller with user interface for manual unput of drone flight controls. The user interface typically includes manual input devices such as one or more conventional stick, button and / or dial for input of control signals to a receiver 48 onboard the drone 10. The manual input control signals are fed from the receiver 48 to the main flight controller 40.
[0093] The ground control station 54 is a remote computer / processor for one or two-way communication with the drone 10 (e.g. as a telemetry device and / or an active control device). The ground control station 54 receives signals from a telemetry module 49 onboard the drone 10 which processes flight data from the controller 40 for offboard communication.
[0094] The ground control station and remote controller 52 may be one and the same unit. In other examples, the ground control station 54 could be a separate device, such as a laptop, tablet, desktop computer or the like. Either or both devices 52 / 54 preferably comprise a display screen for displaying a video stream from a camera on board the drone.
[0095] The remote controller 52, e.g. when paired with the drone 10, may provide: directional control; flight mode selection; and / or propellor RPM control. The telemetry system may provide system health monitoring and / or battery monitoring, e.g. along side other reporting of drone operation.
[0096] The radio control and video transmission system, allows real time high definition video transmission alongside standard RC control and telemetry. The commercially-available HereLink RC and HD Video and telemetry system has been found to be suitable. Data is sent to a RC controller 52 and / or station 54 which may run ground control software, such as QGroundControl or alternative.
[0097] However the companion computer 44 and its implementation in control of the drone 10 may be bespoke to aspects of the present invention.
[0098] For the distance sensor (Lidar) a 360 degree horizontal coverage sensor is used with thirty-two layers of vertical coverage, covering a 95“ area. The sensor may operate at a relatively low (20hz) frequency but also provides inertial data. A LiDAR system may be used that can support any or any combination of 16 channels, -300,000 points / second, 360° horizontal field of view and a 30° vertical field of view, with ±15° up and down. For the tracking camera (e.g. yaw camera) 32, a commercially available camera may be used to provide yaw measurements in place of a magnetic compass as will be described below. This camera is mounted to the rear of the drone and connects to the companion processor 44 and / or flight controller 40.
[0099] For the altimeter 36, where used, a microwave altimeter supplement a barometer of the flight controller 40 to provide more accurate altitude estimation.
[0100] Various drone details may be specified to achieve desired characteristics, including any or any combination of: take-off mass; command control frequency; altitude capability w / o spraying; operational time / endurance; speed over ground; radio control range; power consumption; battery capacity / weight; payload capacity (e.g. at hover / thrust); LiDAR range.
[0101] General Operation
[0102] The flight controller 40 and associated control system onboard the drone 10 operates to undertake certain autonomous controls as well as act on operator control inputs via the remote controller 52. The flight controller 40 has full control over the drone and can perform normal flight in various flight modes, including direct RC control, GPS assisted position control and failsafe return-to-launch.
[0103] The companion computer / processor 44 is a standalone system-on-chip, equipped with a powerful processor. When enabled, it extends the flight controller 40 capability but does not replace it. The companion computer is not required for the drone to stay in the air. The operator / pilot at any point can disable it, and it is not active in failsafe mode.
[0104] The different flight modes include:
[0105] MANUAL - Pilot controls aircraft via RC directly. Companion processor 44 may be unused or disabled. Flight controller provides attitude stabilisation and power to motors controlled directly.
[0106] ALT-CON - Altitude hold mode. Pilot controls aircraft via RC directly. GPS is not needed to assist position control if not available. Companion processor 44 may be unused or disabled. Altitude is maintained by flight controller 40 and user inputs directional controls. Alt-Con is akin to Manual but with altitude held. POS-CON - Position hold mode. Akin to Alt-Con but also with GPS location held by controller 40 where available.
[0107] FAILSAFE - Return-to-launch mode. If RC signal is lost, or other RTL scenario, aircraft will return to launch and land. Companion processor 44 is unused or disabled. If the GPS is disabled / unavailable, such as when operating near buildings the failsafe will instead auto-land in its current location.
[0108] COMPANION (otherwise referred to as OFFBOARD board) - Companion processor 44 reads RC commands and distance sensor signals. Companion processor 44 sends setpoints to the flight controller 40 implementation. Companion mode may be a Proximity mode (below) or non-Proximity mode where the companion processor is used for enhanced collision avoidance but does not positively move towards an external surface or control a flight path relative to the surface contour.
[0109] PROXIMITY MODE - Operates e.g. when the drone is in Companion mode. When Proximity Mode is active the companion processor 44 output is used to control the drone according to a pre-set distance from the wall / surface of a structure. Proximity mode may be simply ‘Enabled’ where the companion processor will search for and move towards the intended structure. Alternatively, Proximity mode may be ‘Locked’ whereby the companion processor 44 will maintain a set distance from the structure surface, e.g. such that movement of the drone 10 will always be controlled to be at a set distance from the structure surface. The drone can track the wall / surface, e.g. including corners, in this mode.
[0110] Any fault in Proximity Mode will cause control signals from the companion processor / computer 44 to the flight controller 40 to timeout, which will result in flight controller switching into a different mode. If RC is still present this may default to Alt-Con but could potentially switch to Manual. If RC is unavailable then the Failsafe mode will be entered.
[0111] In Companion mode, the aircraft control may temporarily be handed over to a different computing unit and the RC signal may be ignored (e.g. apart from flight mode switch signals). In the present example, the alternative computing unit is the companion computer 44, which is mounted on the drone, meaning that all control software / routines are run onboard. Whilst not used in the present embodiment, the Companion mode could be an offboard mode where some / all distance data is sent to the ground station 54 for processing, assuming the bandwidth and consistency of the communication link with the ground station is sufficient. In the Companion, Proximity modes any received RC signal, attitude signal, and other flight data is passed / diverted to the companion computer 44. The flight controller 40 ignores the RC signal (apart from flight mode selection) and monitors the companion computer commands for validity and timeout. The flight controller 40 switch into RTL mode automatically if companion computer fails. As such, the flight controller 40 acts in a supervisory mode.
[0112] At the same time, the companion processor 44 monitors RC signal inputs and passes through yaw / pitch / roll and throttle demand to flight controller 40. Based on distance sensor 30 data, the companion processor 44 will amend flight control RC signal inputs (e.g. apart from flight mode selection) to avoid collision and / or maintain / seek a set distance from the tracked surface. If a failure is detected, the companion processor 44 will hand over control to flight controller 44 automatically to enter Alt-Con (or Pos-Con) mode, or Failsafe mode, e.g. if RC is lost then auto-land.
[0113] The altimeter 36 supports low altitude operations and landing of the drone 10, i.e. providing vertical height data above the ground or an object beneath the drone.
[0114] The GPS 34 and compass 35 are shown and can be used in a conventional manner during flight control by the main flight controller 40. However the control schemes described below also allow modes of flight where compass and / or GPS signals are not available.
[0115] In a normal mode of operation, e.g. Manual or Alt-Con, the distance scanners are enabled and the drone will automatically avoid collisions from the front, or in the direction of travel. A simple distance sensor could be used for this purpose in place of LiDAR 30, or else the LiDAR 30 could be used in a simplified mode of operation that does not require full mapping, e.g. being used to detect only the presence of a structure within a predetermined distance of the drone 10, rather than mapping the structure.
[0116] In view of the foregoing description, it can be seen that the drone 10 can be controlled in normal modes of operation (MANUAL, ALT-CON, POS-CON, FAILSAFE) like a conventional multi-rotor drone via altering thrust on the main propulsion system. However Companion modes allow improved spatial control near to buildings / structures for Proximity modes where attitude setpoints are passed based on RC input, specifically controlling pitch and yaw to maintain distance and orientation to a wall based on processing by the companion computer 44.
[0117] The flight controller 40 may be enabled for an entirety of a flight and may always provide certain essential functionality (e.g. attitude stabilisation, Failsafe) but the companion computer 44 may be enabled only when needed and, when used, may access certain sensors signals to instigate additional processing functionality and / or sending superior instructions to the flight controller 40 where the flight controller 40 alone is deemed non- optimal. Based on this control philosophy, the way the drone flight control works varies significantly depending on flight mode.
[0118] The following description of different aspects of control proceeds in relation to modes where the laser scanner 30 is in use and the companion processor 44. However it will be appreciated that, in other embodiments, where the flight controller 40 is a more powerful processor, or a multi-core processor, use of a companion processor is optional and the processes may be implemented by one or more core of the flight controller 40.
[0119] Dynamic Mapping
[0120] Turning to Figs. 3 and 4, the dynamic mapping process for structures in the vicinity of the drone 10 is based on the use of the three-dimensional scanner 30. The system can measure distance from the scanner 30 to a solid surface 60 by measuring time of flight of emitted-and-reflected laser beams 62 from laser scanner 30 to the surface 60 and back.
[0121] The distance measurements are supplemented by an inertial sensor measurement, e.g. at high frequency such as 100Hz, which provides linear accelerations and angular velocities. These are fused with the distance measurements in software to smooth out velocity estimates.
[0122] The LiDAR sensor has ‘multi echo’ functionality, negating the impact of fine mist on measurement quality. Sensor data from the scanner 30 undergoes significant processing to ensure reliability prior to being fused in an industry tested algorithm, ensuring reliable performance in adverse circumstances. The resulting point cloud data is provided as a vast number of points and their three-dimensional co-ordinates relative to the scanner which collectively represent a structure surfaces. A publicly available library can be used for the low level data structure and operations. However robot mapping for specific applications is a common problem and several specific features, not built into public libraries, were programmed for mapping in relation to this specific drone application. One specific problem was found during mapping of structures that present a relatively small surface area compared to the surrounding space, for example when operating around wind turbines.
[0123] In order to control the mapping process, a bounding zone or box 64 of predetermined size is defined around the drone 10 (e.g. around the scanner 30 thereof). The bounding box 64 is shown as a square in Fig. 4 but would be a cuboid in the three-dimensional space about the drone in practice. Other three-dimensional shapes may be used as the bounding zone if desired, such as other polygons or a sphere / ellipsoid.
[0124] In order to create and update the bounding zone 64 a persistent position estimate for the drone is maintained. The position estimate is held in cartesian coordinates (x, y, z distance values) relative to a fixed start point or datum. As the drone moves relative to the fixed datum position, its position estimate is updated and logged. Then the bounding zone is created about the current position estimate by applying the predetermined bounding zone shape / size with the current position at its centre (or slightly offset from centre to accommodate the geometry of the drone 10).
[0125] With a defined, up-to-date bounding zone established, the sensor data from the scanner (360“ rotary LiDAR) can be processed by the companion processor to define a map of any surfaces 60 within the bounding zone 64.
[0126] Thus in the flow chart of Fig. 3 it can be seen that the map updating process 66 commences at step 68 with trimming / updating of the bounding box based on the position and orientation data from the flight controller 40, i.e. so that it only includes the immediate volume. Any old volume space from a previous iteration of the bounding zone is trimmed / discarded.
[0127] The bounding zone 64 limits the size of the generated map and the associated processing. Only points representing surfaces within the bounding zone 64 need to be maintained in memory and further processed by the processor for collision detection or surface tracking flight. Point data for surfaces lying outside of the bounding zone can be discarded, i.e. based on the distance of the point from the current position of the drone 10. However the open space would mean the scanner data did not return the distance area for open space, e.g. as indicated by the non-returned rays 63 shown as dashed lines in Fig. 4. This can cause issues in real-time processing of the map, particularly when the structure’s surface is moving, for example preventing the swaying of a wind turbine blade being accurately detected, or other movement of the structure surface more generally.
[0128] It was deemed necessary to access the generated map concurrently with the various reads happening on an older ‘swap’ version happening at the same time as writing new map data. This is due in part to the lower power of the onboard processor / computer, with each running on separate threads.
[0129] Therefore, after trimming the bounding box 68 and inserting the new point data 70 for the bounding box, the step 72 fills in any non-returned ray data with free space in the local map. This may be done within a suitable time threshold, e.g. a scan duration, and helps in mapping of dynamic / moving structures. This process is shown in Fig. 5 in which sample points are generated across the entire field of view of the scanner (i.e. 360“x30 in this example). Sample points are rotated and elevated each iteration of the scanner about the axis. A ray is cast to all sample points and the map is updated as empty space along the ray path if the point was not included in the most recent scan data. Thus the open space is updated promptly for each iteration.
[0130] Any speckles (i.e. speckle noise resulting from unwanted ray reflections from airborne particulates) are removed from the map / point cloud at 74 such that the clean, current version of the local map is now available. The contour / extent of surfaces 60 in the bounding zone 64 are now available and can be determined to be solid / continuous surfaces as planes containing the points of the point cloud.
[0131] The system maintains two maps that can be swapped back and forth by the processor to ensure concurrent writing / processing of new maps, whilst maintaining read access to the prior map for surface tracking and / or collision avoidance use. Therefore the flow chart 66 shows the step of storing cached updates 76 for the currently processed map update. Then at step 78 the process can swap the read / write pointers and apply the cached updates at 80 so the updated map is now read (in use for flight control) whilst the next map update is being written according to the repetition of the process described above. Aspects of the dynamic mapping process can thus be defined according to one or more of the steps of: updating a predetermined bounding zone around the drone; processing nonreturn ray data as space; and, swapping between a currently in-use / active map and a cached updated map.
[0132] The bounding box trim ensures map size and associated processing power remains limited throughout use. For surface coating applications, the speed of the drone can be controlled to be relatively slow such that the limited size of the bounding box does not represent a significant problem.
[0133] The resulting local map of the drone’s environment can then be used for the purposes of surface tracking and collision avoidance as will be discussed below. Furthermore the mapping process is useful in that the map as a point for reference for the control system can allow flight and surface tracking (i.e. for following / coating surfaces) even in situations where GPS or compass data is denied.
[0134] Surface Tracking
[0135] This new surface tracking algorithm aims to improve upon the prior art and allow the drone to do the following:
[0136] 1 . Maintain a constant distance to a surface, regardless of the surfaces shape. This includes going around corners, alcoves and changes in altitude.
[0137] 2. Maintain a constant orientation to the surface, such that the drone or attached spray lance is always normal to the surface.
[0138] Turning firstly to Fig. 7, the system will operate from a local map of the environment, and although a preferred example of local mapping is defined above, the method by which the map is generated is not critical, provided the map adequately defines the local surfaces. With the local map available, in order to be able to plot a trajectory for the drone an Euclidean Distance Transform (EDT) is built from the map data. The EDT is a process whereby it is recorded at each point in space the distance to the nearest obstacle.
[0139] The contour track algorithm aims to exploit properties of EDT such that a path may be generated that maintains a constant distance to a given surface or structure. When given some map, containing free and occupied space the EDT may provide a new representation, with each location on the map being represented with just its distance to the closest obstacle. This makes plotting a safe course for obstacle avoidance simple and computationally efficient. However, whilst robotic path planning applications in the prior art are primarily concerned with avoiding obstacles whilst moving from point A to B, our requirements are different in that we intend the drone to maintain a specific distance to a surface, with an additional requirement that movements are always predictable.
[0140] At step 82 in Fig. 7 the algorithm in use extracts either a single 2d line, or a plane if using scan data with multiple layers of points. This plane is extracted using a RANSAC (Random sample consensus) algorithm, e.g. for the purposes of ignoring erroneous readings from water droplets, spray, particulates in the air. The algorithm will select a random selection of points from the scan, and attempt to fit a plane to them. The number of points from the total scan within some specified distance of this plane is then used as a metric to determine if an acceptable plane has been found.
[0141] The algorithm runs iteratively until an acceptable plane has been found.
[0142] The process then proceeds to steps 84 (calculating yaw angle and distance to the plane). The closest point to this plane is thus calculated.
[0143] The measurement is passed to a Kalman filter at step 86. The Kalman filter uses a simple motion model to estimate velocity and distance to the plane.
[0144] The signed angle to the plane is used to calculate a heading angle. With a velocity and heading angle calculated for the plane, we run several PID controllers that generate attitude setpoints or target values in pitch and yaw as shown at steps 88.
[0145] The pitch setpoint will be calculated such that the drone will be positioned at a specified distance away from the plane.
[0146] Meanwhile the target yaw angle is calculated such that the drone will always be orientated normally to the plane.
[0147] These attitude setpoints are then passed to the control flight stack for actuation when operating in a Companion mode as described above.
[0148] The basic process involves the local map being built into a Euclidean distance transform, which will then be processed. The distance transform is used to find a ‘tracking surface’, that is an area in the direction of choice that is all of the same value distance to an obstacle. In practice, the tracking surface will be found to be at a constant distance around objects, thus describing the entire operating area of the drone.
[0149] The pilot may then proceed to direct the drone in which way to travel about this surface, for instance a left roll input would dictate that the drone is to travel ‘left’ along the tracking surface whereas the right roll input would result in the drone tracking the surface to the right. That is to say the conventional drone controls are modified so that the resulting drone movement is locked into a plane that tracks the mapped surface at a given distance. This is shown at steps 90 in Fig. 7, whereby the operator inputs 92 using controller 52 are converted to modified / resulting motor control instructions for input by the flight controller 40 so the drone follows the desired contour.
[0150] The drone’s position and velocity relative to the wall are determined. The control system is capable of maintaining a pre-set distance, e.g. ranging from 1 m, 1 ,5m or 1 ,8m to 3.0m, 3.5m or 4.0m, to the wall, which is referred to herein as Proximity Lock. In this mode, the drone 10 is a set distance away from the locked surface and will hold there. The pilot can control throttle and pitch. Yaw is handled by the companion computer 44.
[0151] Some further details of the process are described below turning back to Fig. 6. While an EDT consists of distinct ‘cells’, each represented with a single distance value, it’s useful to visualise it as a set of contours 100-110 shown in Fig. 6. Each cell in a contour has the same (or very similar) distance to an obstacle. The contour of the obstacle / structure surface (i.e. the contour at distance=0) is shown as line 100 and the contours 102-110 at increasing distance increments from the surface 100 represent continuous paths around the structure surface 100.
[0152] The ‘contour view’ of the EDT makes apparent the optimal path for the drone to maintain a specific distance to a surface, for instance suppose the contour 104 represented a 2.0m obstacle distance.
[0153] We can also obtain a desirable yaw angle from the same contour view. A surface normal can be approximated by searching from our chosen ‘path contour’ 104 to whatever the lowest distance contour available is, in this case contour 102 (the ‘yaw’ contour) as shown in the zoomed in view of the top-right image of Fig. 6. The shortest path between these two contours will give a surface normal 112. Compared to processing the map data directly, this representation is beneficial for its implicit smoothing, which removes the risk of a surface normal being at an extremely oblique angle, or changing very quickly as the drone traverses.
[0154] Arrows A and B on the path contour give the viable movement directions with a left / right roll input. The surface normal arrow 112 gives the shortest path between the path and yaw contour 102, thus also representing the yaw target for the drone at the given position.
[0155] The implementation of the contour track algorithm relies on the grid / cell based representation typical of the EDT as shown in the bottom two diagrams of Fig. 6
[0156] We use an iterative search to find suitable cells on the path contour 104, and a corresponding cell on the yaw contour for each cell.
[0157] From some starting point 114, typically the centre of the EDT structure, which represents the drone’s current position on contour 104 in the map, we search adjacent cells.
[0158] The adjacency search routine is passed a target cell distance, that is the distance to the obstacle of the desired cell and some angular constraints, in the form of a vector (Search vector) and an angular threshold. The lower-left diagram of Fig. 6 shows an example, with the algorithm generating a path to the left.
[0159] The search will survey each of the eight adjacent cells on a 2D plane, and return the cell that is closest to the target distance, within the angular boundaries given.
[0160] In the event that multiple cells of the same distance are found, that which is in the direction closest to the search vector is returned. Should no valid cell be found, then the original ‘centre’ cell 114 is returned, indicating a failed search.
[0161] The search vector itself is created by generating a vector orthogonal to the surface normal and the Z axis.
[0162] We then flip the vector based on the roll stick input, such that the search is always in the desired direction of travel. See here in diagram 4 the example cell distances in the adjacency search, with the initial centre cell at 2.0m, and the chosen cell on the left of it, such that the resulting path is shaded.
[0163] The surface normal itself can be obtained with the same search routine, by selecting a target distance of 0 and giving a large angle threshold. The initial search vector for this can be the drones current yaw, with subsequent updates being the input to the next iteration.
[0164] In view of the foregoing, it can be seen that maintaining two contours and the associated surface normal can be a beneficial technique in defining an optimal path of travel and associated orientation for the drone 10. Particularly, where the lance 24 of the drone is desired to be pointing towards / perpendicular to the wall surface, the drone body can effectively follow one contour 104 (the path contour) and the lance tip can follow as closely as possible a contour 102 (the yaw contour) closer / closest to the structure surface.
[0165] In the proximity mode flight tests a variety of movements were attempted to simulate those used when undertaking a spray coating operation, including vertical and lateral movement of the drone, alongside deliberately applied over-correction of the yaw to demonstrate the autonomous yaw correction by the control system.
[0166] Compass and / or GPS Denied Operation
[0167] This control systems described above for surface tracking do not require GPS for localisation, instead a scanning sensor 30 is used in conjunction with companion computer 44 for processing the data and generating attitude and thrust control commands that are then passed to the flight controller 40 for actuation. As such the drone can operate in close proximity to walls and manoeuvre effectively even where no GPS signal is available.
[0168] Furthermore, there is a significant issue that magnetic compass readings from compass 35 may not be available in the vicinity of certain structures or locations. Magnetic compass measurements have also proved unreliable in urban locations. Without compass readings (and / or GPS) conventional drone controls may not permit the drone to take off, i.e. without a reference / datum location and heading. This issue has been overcome by using a Simultaneous Localisation and Mapping (SLAM) sensor that can provide a persistent translation and attitude measurement from power on of the drone. The sensor 32 is shown in Figs. 1 and 2 as comprising one or more rearward facing camera. In particular, the SLAM sensor system used comprises a plurality of cameras i.e. for stereo vision or depth sensing. The system also uses an inertial measurement unit (IMU).
[0169] Using this arrangement the drone control system, i.e. flight controller 40 and / or companion processor 44 can identify a fixed visual feature in the camera images and define a reference or datum point at the point of take-off, which can be logged. The movement of the drone can be tracked with reference to the logged datum point (e.g. in x, y, z coordinates or distances) throughout its use. As such, the mapping process defined above and wall tracking method of control can all operate to track / spray a structure’s surface, or part thereof, without the need for GPS or compass readings. This represents a significant step forward when it is considered that drones may be required to treat / inspect large metallic structures such as ships, masts, wind turbines and the like or large buildings where wireless signals may be impeded.
[0170] The SLAM sensor in this example is on the rear of the drone 10, facing away from the lance 24, because the front of the drone will typically face the structure to be inspected / treated and so there is a significantly greater likelihood that a fixed visual asset at greater distance from the drone can be found to the rear, e.g. a visually identifiable feature or viewpoint closer to, or on, the horizon would likely be more reliable to use than a nearfield feature or feature on the structure itself. Furthermore, a close view of the structure itself may be virtually devoid of visual information, rendering the sensor ineffective.
[0171] With the SLAM sensor mounted on the rear, we do not have the ability to track linear translation well, however angular rate and attitude may be accurately tracked. The attitude output from this sensor is therefore taken and processed for use by the flight controller 40.
[0172] The controller flight stack had certain built in functionality for ‘external vision yaw’, and so modifications were required such that it was possible to fully disable the need for magnetometer readings when only a SLAM sensor is used for heading estimation. The SLAM sensor is therefore capable of providing an accurate yaw estimate relative to the power-on location, which can serve as reference values for ongoing flight. In the current example, an Intel Realsense T265 sensor module was used for the SLAM and can define visual features to track. In other examples, a separate accelerometer / IMU could be used in conjunction with depth-sensing cameras. The drone describe herein is therefore resilient to a number of sensor outages as shown in the table below.
[0173] In addition to longitude and latitude position measurements, GPS is also often used to supplement altitude estimation. Without GPS, by default the barometer alone is responsible for absolute altitude measurements. It is possible to supplement the barometer with a microwave based altimeter sensor, mounted on the bottom of the drone that provides accurate distance measurements (e.g. to centimetre accuracy) at all times, improving the stability of any altitude control modes.
[0174] Where GPS is available, it may be used in conjunction with any of the other features described herein to increase the accuracy of operation / movement of the drone 10.
[0175] Further Developments and Embodiments
[0176] The implementation of the pitch-proximity control has necessitated some developments to basic process, most notably a mechanism to account for drone pitch and sudden ‘steps’ in the distance measurements.
[0177] The inertial data from the LIDAR sensor may be fused on the companion computer 44 in order to smooth the distance estimates. At the time of writing the actual processing of the LIDAR data may make use of a single straight line being fit to the points in a 120 degree cone in front of the drone. This line fitting is applied to different layers of the lidar scan depending on the pitch angle, thus increasing measurement accuracy when at steeper angles and minimising ‘steps’ in the data. The processing provides accurate distance and yaw measurements even in the presence of significant spray.
[0178] An updated drone may run similar software to the embodiments described above but may differ in that the push-pull mechanism has been removed, with wall proximity now being handled by pitch controller, which may pass pitch setpoints from the companion computer 44 to the flight controller 40.
Claims
Claims:
1. A UAV comprising: a plurality of propulsive rotors; one or more sensor for detecting a profile of a structure within a predetermined vicinity of the UAV; a depth sensor for detecting a visible feature of the environment beyond the predetermined vicinity of the UAV; and a control system comprising: one or more data processor arranged to receive the output of the one or more sensor and the depth sensor; and, a flight controller arranged to output control instructions for control of the propulsive rotors based on the output of the data processor, wherein the control system is operable to log the visible feature as reference point and to determine yaw readings for use by the flight controller relative to said reference point.
2. The UAV of claim 1 , wherein the control system determines a yaw reading relative to the reference point at take-off.
3. The UAV of claim 1 or 2, where the control system enables take-off or flight of the UAV without GPS and / or a compass reading.
4. The UAV of any preceding claim, where in the predetermined vicinity of the UAV is less than or equal to 50m, 40m, 30m, 20m, 10m or 5m from the UAV.
5. The UAV of any preceding claim, wherein the visible feature comprises a feature on the horizon.
6. The UAV of any preceding claim, wherein the control system determines that the visible feature is static prior to logging it as the reference point.
7. The UAV of any preceding claim, wherein the depth sensor comprises a camera, a plurality of cameras and / or a SLAM sensor system.
8. The UAV of any preceding claim wherein the control system maintains a persistent position reading for the drone relative to the reference point during flight.
9. The UAV of claim 8, wherein the persistent position reading comprises cartesian coordinates in three dimensions relative to the reference point, said position reading being updated during movement of the drone.
10. The UAV of any preceding claim comprising an onboard appendage, such as a camera, an arm or a lance, that is oriented in a first or forward direction and the depth sensor faces away from said direction or in a rearward direction.11 . The UAV of claim 10, wherein the onboard appendage comprises a fluid dispensing system and / or a camera for inspecting the structure.
12. The UAV of any preceding claim, wherein the control system determines a flight path for the UAV relative to the profile of the structure.
13. The UAV of claim 12, wherein the control system determines a flight path for the UAV relative to a surface normal, e.g. an instantaneous surface normal, determined for the profile of the structure.
14. The UAV of any preceding claim, wherein the one or more sensor comprises a scanning or distance sensor such as a point cloud or LiDAR sensor system.
15. The UAV of any preceding claim, wherein the control system can operate in a profile tracking mode, wherein the data processor determines a path for the UAV that is a predetermined distance from the detected structure and follows the profile of said detected structure, wherein the flight controller implements said path so as to constrain movement of the UAV in said profile tracking mode to be within a plane that is at the predetermined distance from the structure.
16. The UAV of claim 15, wherein an angular orientation for the UAV, such as a yaw angle, is determined in said profile tracking mode according to the profile of the structure.
17. The UAV of any preceding claim, wherein the control system is operable in a structure collision avoidance mode of operation and / or a structure homing mode ofoperation in which the UAV is controlled to move towards the detected structure until the predetermined distance is reached.
18. The UAV of any preceding claim, wherein the UAV comprises an orientation sensor and the control system controls the orientation of the UAV relative to the profile of the structure.
19. A data carrier for a control system of a UAV having a plurality of propulsive rotors, one or more sensor for detecting a profile of a structure within a predetermined vicinity of the UAV, and a depth sensor for detecting a visible feature of the environment beyond the predetermined vicinity of the UAV, the data carrier comprising machine readable instructions for the control of one or more computer processors to: receive the output of the one or more sensor and the depth sensor; determine a distance between the UAV and a point on the profile of the structure; log the visible feature as reference point and to determine yaw readings for the UAV based on the reference point; and, output control instructions for control of the propulsive rotors based on the determined yaw readings.
20. A UAV comprising: a plurality of propulsive rotors; a three-dimensional distance scanning sensor having a first scanning range and arranged to perform scans to return distance data for surfaces within said scanning range; a location determining system for the UAV; a control system comprising one or more data processor arranged to receive the outputs of the distance scanning sensor and the location determining system and to define a mapping boundary around a current position of the UAV, said mapping boundary being of defined size that is smaller than the scanning range of the position scanning sensor; wherein the data processor is arranged to generate a map of any surfaces within the mapping boundary from the distance scanning sensor; and, the control system comprising a flight controller arranged to output control instructions for control of the propulsive rotors based upon the map.21 . The UAV according to claim 20 wherein the flight controller outputs control instructions for maintaining a predetermined clearance or at least a threshold clearance from the surfaces in the map.
22. The UAV according to claim 20 or 21 , wherein the distance scanning sensor emits EM rays and checks for receipt of reflected rays, e.g. being a LiDAR sensor.
23. The UAV according to any one of claims 20-22, wherein the distance scanning sensor iteratively performs scans or sweeps and returns only positive distance data for surfaces in the scanning range at each iteration24. The UAV according to claim 23, wherein the data processor supplements each scan or iteration with a positive determination of free space in the map where a scan does not return surface distance data within a time period for the scan.
25. The UAV of any one of claims 20-24, wherein the distance scanning sensor returns point cloud data and the data processor positively infers open space in a map for locations on or within the mapping boundary where no point data is determined by the most recent iteration of the scan.
26. The UAV of any one of claims 20-25, wherein the data processor updates the current location of the UAV by the output of the location determining system and accordingly updates the mapping boundary for successive scans.
27. The UAV of any one of claims 20-26, wherein the mapping boundary is a three- dimensional boundary of predetermined shape, such as a cuboid, and / or the map is a three-dimensional map.
28. The UAV of any one of claims 20-27, wherein the data processor maintains an active map used by the flight controller and a further map undergoing processing, wherein the active map and further map are successively switched.
29. The UAV of claim 28, wherein the active map and further map are successively switched for each successive scan by the distance scanning sensor.
30. The UAV of any one of claims 20-29, wherein the data processor actively discards surface data distance data for points or surfaces beyond the mapping boundary.31 . The UAV of any preceding claim comprising an arm projecting forwardly of the UAV for directing towards the surface, e.g. for directing fluid from a fluid dispensing system onto a surface defined within the map.
32. The UAV of any one of claims 20-31 , wherein the location determining system comprises a depth detection vision system.
33. A UAV comprising: a plurality of propulsive rotors; one or more sensor for detecting a profile of a structure within a predetermined vicinity of the UAV; a control system comprising: one or more data processor arranged to receive the output of the one or more sensor and determine a distance between the UAV and the structure; and, a flight controller arranged to output control instructions for control of the propulsive rotors based on the output of the data processor, wherein the control system is operable in a profile tracking mode, wherein the data processor determines a path for the UAV that is a predetermined distance from the detected structure and follows the profile of said detected structure, wherein the flight controller implements said path so as to constrain movement of the UAV in said profile tracking mode to be within a plane that is at the predetermined distance from the structure.
34. The UAV of claim 33, wherein the control system is operable in one or more further mode of operation, comprising a structure collision avoidance mode of operation and / or a structure homing mode of operation in which the UAV is controlled to move towards the detected structure until the predetermined distance is reached.
35. The UAV of claim 33 or 34, wherein the predetermined distance is between 0.5m and 5m.
36. The UAV of any one of claims 33 to 35, wherein the one or more data processor determines a vector that is normal to the profile of the structure and determines said path based upon said vector.
37. The UAV of claim 36, wherein the UAV comprises an orientation sensor and the control system controls the orientation of the UAV in the profile tracking mode relative to said vector.
38. The UAV of claim 37, wherein the UAV comprises an onboard directional appendage, such as an arm or lance, and the control system controls orientation of the UAV such that the directional appendage faces the surface in the direction of the vector in the profile tracking mode..
39. The UAV of any preceding claim, comprising a fluid dispensing system and / or a camera for inspecting the detected structure.
40. The UAV of any preceding claim, wherein the detected profile of the structure is a three-dimensional profile.41 . The UAV of claim 40, wherein the one or more sensor comprises a three- dimensional distance scanning sensor arranged to perform scans of the profile of the structure to return relative distance data between the UAV and the structure and the data processor is arranged to generate a three-dimensional map of the profile of the structure.
42. The UAV of any one of claims 33 to 41 , wherein the control system maintains an active map used for determination of the path and a further map undergoing processing, wherein the active map and further map are successively switched.
43. The UAV of any one of claims 33 to 42, wherein the UAV comprises a receiver for receiving control inputs for manoeuvring the UAV in flight and the received control inputs are converted by the control system to directional controls for the flight controller lying within the plane.
44. The UAV of claim 43, wherein the received control inputs comprise directional control inputs and the control system converts the received directional control input to the path within the plane.
45. The UAV of any one of claims 33 to 45, wherein the data processor determines cells lying within the plane and selects the path according to the direction between adjoining cells.
46. The UAV of claim 45, wherein a mesh of said cells is processed by the data processor and the path constitutes the direction through successive adjoining cells of the mesh.
47. The UAV of claim 45 or 46, wherein each successive cell for the path is selected in dependence upon the preservation of the predetermined distance from the structure.
48. The UAV of any of claims 45 to 47, wherein the data processor performs a search of cells adjacent to a current cell which lie in a plane orthogonal to a surface normal for the profile and selects a direction or vector to the cell returned by said search.
49. The UAV of any preceding claim, wherein the control system performs a distance transform or Euclidean distance transform for the profile.
50. The UAV of any preceding claim, wherein the control system determines a first path and a second path relative to the profile of the structure, the first and second paths being spaced different distances from the structure.51 . The UAV of claim 50, wherein an angular orientation for the UAV, such as a yaw angle, is determined according to the direction between points in the first and second paths.
52. The UAV of claim 50 or 51 , wherein the first path represents the path of a first point on the UAV and the second path represents the path of a second point on the UAV.
53. The UAV of claim 52, wherein one of the first and second points represents the tip or extremity of an appendage extending from the body of the UAV.
Citation Information
Patent Citations
A remotely piloted aircraft system
WO2017191469A1
UAV-based aviation inspection systems and related methods
US20200377233A1
System and method for collecting and georeferencing 3D geometric data associated with a GPS-denied environment
US20220284671A1
Cited By
Spraying operation control method and device fusing distance measurement information and positioning information
CN121254725A
A spraying operation control method and device fusing ranging and positioning information
CN121254725B