The present disclosure generally relates to unmanned aerial vehicles (UAVs), and in particular, to a system and associated method for autonomous vision-guided object collection using a multirotor.
The advent of unmanned aerial vehicles (UAVs) has opened up numerous opportunities for executing perilous and mission-critical tasks such as search and rescue, exploration in radioactive and hazardous environments, inspection of vertical structures, and water sample collection. UAVs can fly over dams and canals for water sample collection, inspection and potentially avoid physical labor for these hazardous tasks. For instance, canals in Arizona have played a critical role in irrigation, power generation, and human's daily uses. These canals require frequent monitoring and inspection. Currently, they are dried up periodically for collecting trash items which is a time-consuming and expensive process.
Autonomous object collection from water surfaces using UAVs poses challenges in 1) aerial manipulation and object collection and 2) landing on a moving object. The field of aerial grasping and manipulation has witnessed great progress recently. A multirotor equipped with a 7-degree of freedom (DOF) manipulator was proposed for aerial manipulation tasks. The 7-DOF manipulator is attached with a camera and is shown to track an object. Pounds et al. employed a helicopter for aerial grasping and discussed the effects of ground wash. To ensure repeatable grasping performance, precise motion control would be required to ensure the object lies within the grasper's workspace, especially when the quadrotor is close to the object. Additionally, adding a robotic manipulator would increase the aircraft gross weight (AGW) and reduce the overall flight time and effective payload. In previous work on autonomous aerial grasping, a hexarotor was integrated with a three-finger soft grasper, which was made of silicone with pneumatically-controlled channels. Experimental results demonstrated that off-centered and irregularly-shaped objects were grasped successfully by the soft grasper. In another reference, a deformable quadrotor was proposed where the whole body was deformed to grasp objects. An origami-inspired foldable arm was proposed in one reference which could be utilized for performing different tasks in confined spaces. Although the robotic arm is extremely lightweight, the arm has one degree of freedom and can pick up objects from limited range of directions. Despite considerable work in this field, aerial grasping of objects on water surfaces poses additional challenges such as i) random motion of floating objects due to unpredictable current flow, ii) partially submerged objects.
Considerable research has been conducted for a multirotor to autonomously land on a moving target. In another reference, a minimum-energy based trajectory planning method was proposed to land on a moving target with a constant velocity. Lee et al. proposed a line-of-sight based trajectory tracking control for quadrotor landing on a moving vehicle in outdoor conditions. In this work, the velocity commands were generated based on the relative distance between the current and target position. Multiple outdoor tests were performed in another reference to autonomously land a UAV on a moving target using model predictive control (MPC). In another reference, a small quadrotor was demonstrated to track a moving spherical ball and the quadrotor's planned trajectory was updated using a receding horizon trajectory planner. However, there are several significant differences between landing on a moving target on ground and a floating object on water surface. Generally, moving targets consist of distinctive markers which reduce the complexity of tracking and dynamics of the moving target is deterministic. On the other hand, tracking floating objects on a water surface is challenging due to reflection and glare from water surfaces. Moreover, the motion of a floating object in close proximity to a multirotor's propeller outwash is complex and random. Therefore, a robust control technique is required to handle modeling uncertainties for reliably tracking and landing on the floating object.
It is with these observations in mind, among others, that various aspects of the present disclosure were conceived and developed.
Corresponding reference characters indicate corresponding elements among the view of the drawings. The headings used in the figures do not limit the scope of the claims.
Various embodiments of a system for autonomous detection and collection of objects floating on a water surface are disclosed herein. In particular, autonomous detection and collection is performed by a multirotor that implements a boundary layer sliding mode control (BLSMC) method with a dynamic sliding manifold. The dynamic sliding manifold is designed to eliminate a reaching phase for sliding mode control. The multirotor features a robust vision-based controller in conjunction with an integrated net system. During experimental evaluation, the multirotor collected floating objects of different shapes and sizes with a 91.6% success rate. The main contributions of present disclosure are summarized as follows:
Referring to
In one embodiment, the multirotor 101 includes a base frame 120. In some embodiments, the base frame 120 is a co-axial octorotor frame having an enhanced in-air stability, a compact design, and high thrust-to-weight ratio compared to a conventional quadrotor. The base frame 120 is coupled to a landing assembly 103 as shown in
The base frame 120 provides a plurality of arms 121, each respective arm 121 including at least one propeller 122 of a plurality of propellers 122 rotatable by an associated propeller motor 124 of a plurality of propeller motors 124. The plurality of propeller motors 124 are controlled at least in part by a flight controller system 300 that provides an optimal control output to be applied to each respective propeller motor 124 of the plurality of propeller motors 124 based on a detected position of an object 10 and a set of positional and attitudinal properties of the multirotor 101 such that the multirotor 101 captures the object 10 upon landing on a landing surface.
With continued reference to
The multirotor 101 also includes an active net mechanism 104 for collection of the object within the capture void 132, which has a larger workspace compared to a grasper, as shown in
Referring to
The different software blocks are demonstrated in
The object detection system 200 detects the object 10 which drifts due to the propeller outwash. The position of the object 10 is estimated by object inertial pose estimation sub-system 250 of object detection system 200. The flight controller system 300 implements a controller scheme discussed in section IV. The inertial thrusts obtained at vision-based control block 310 according to Eq. 3 below are sent to the multirotor attitude control sub-system 350 of flight controller system 300 which generates desired attitude setpoints and resultant generated torques. Eventually, the optimal control output including generated torques are applied to each respective propeller motor 124 of the plurality of propeller motors 124 of the multirotor 101 through the low-level flight control unit 190.
The goal of the object detection system 200 is to detect objects on water surfaces. Object detection system 200 uses a combination of a linear polarization filter 156 in front of a lens of the image capture device 153 and a reflection removal methodology to suppress reflections and employ an edge detector followed by contour extraction for detection.
Detection and tracking of objects on water surfaces pose a multitude of challenges. A major issue with outdoor testing in sunny environments is the glare and reflection of light from the water surfaces and objects. Some of these reflections are intense enough to completely overwhelm the object in the scene. An initial approach was to remove these reflections using background subtraction techniques such as the Gaussian Mixture model or per-pixel Bayesian Mixture Model. However, these algorithms assume still backgrounds and are ineffective when applied to backgrounds that are in motion. Another challenge is the change in the aspect ratio of the object as the multirotor lands on it. This called for the need of the object detection system 200 that is not affected by scale changes. Changing illumination conditions and partial occlusion of the bottle due to drift pose additional challenges.
The object detection system 200 is represented in
In the first phase, a canny edge detector is implemented on polarized video feed to extract a plurality of closed contours from the frame. A contour search method is employed to find the largest closed contour. However, due to the presence of reflections on the water surface, the largest closed contour can either be an object or a reflection. Since the reflections are volatile, their contours aren't consistently placed in the same region. If the largest closed contour is consistently placed in the same region for a minimum threshold quantity of consecutive frames (in some embodiments, the minimum threshold quantity is at least 10 consecutive frames), it indicates the presence of an object in the scene as shown in
In the second phase, the specularity removal starts by computing the minimum intensity value Imin(p) across the RGB channel for each pixel in the frame. An intensity threshold value T=μv+η·σv is then calculated to distinguish highlighted pixels. μv and σv are the mean and standard deviation of the minimum values Imin over all the pixels. η is a measure of the specular degree of an image and is generally set to 0.5. Based on the calculated intensity threshold T, an offset τ is then computed to determine which pixels have to be changed to suppress reflections. The specular component {circumflex over (β)}(p) of the frame is computed by subtracting the offset from Imin. For any pixel inside the bounding box, {circumflex over (β)}(p) is set to 0 to preserve the features of the object to be detected. Finally, the specular component is subtracted from the frame to get the specular-free image without removing reflections from the area where the object is located. One can clearly see the reflections removed without the object being affected by comparing
The performance comparison was conducted on an Intel Core i7-10750H CPU system with 10 GB RAM and 4 cores. Test videos of 1 minute length each were recorded for five objects at 30 fps, as shown in Table I, in cloudy/partly cloudy conditions with a polarizing filter 156 in front of the lens of the image capture device 153. The gain and exposure values were 15 and 45 respectively. The object detection system 200 was compared with deep-learning based detectors such as YOLOv3 and Mobilenet SSDv2 which were pre-trained on the COCO dataset. The metrics used for the evaluation are the processed frames per second (FPS), CPU usage, precision and recall. The latter two are defined as:
where TP, FP, and FN are the numbers of True Positives, False Positives, and False Negatives detected by the tracker, respectively.
For training the deep-learning models, 2000 images were collected and labeled. Since the objective of the object detection system 200 is to detect any object, all the images were labelled under a single class. Synthetic data was generated by performing various operations such as rotation, shearing and varying brightness intensity on the training dataset. The brightness of the images was varied to capture different illumination conditions. The addition of the synthetic data increased the size of the training dataset to 6000 images. Both YOLO and SSD were trained until they reached their average losses stabilized at 0.13 and 3.1 respectively. The models were then deployed on the collected test videos to examine their FPS and CPU usage. The average CPU consumption for the object detection system 200 is 37.5% whereas the average FPS is 21 FPS. The YOLO model utilizes 86.25% of the total CPU and average FPS is 2.8 FPS which is not suitable for realtime testing. SSD had a better average FPS of 11 FPS when compared to YOLO, but it also had a high CPU consumption of 75% that made it unsuitable for our purpose.
The ground truth generation and performance evaluation were conducted in MATLAB. This ground truth was only utilized for calculating precision and recall, and was not used in field experiments. Precision and Recall are equal because the test videos and the ground truth video had an equal number of frames which results to an equal number of true positives and false negatives. The YOLO model has the highest precision and recall for most of the objects. The object detection system 200 shows comparable performance to YOLO. SSD has the lowest precision and recall due to its inability to detect objects for a large number of frames.
The dynamics of the flight controller system 300 with respect to the multirotor 101 and floating object 10 is outlined in this section. The propeller outwash of the multirotor 101 moves the floating object 10 around, and flight controller system 300 is designed for the multirotor 101 to track and land on the object, particularly such that the multirotor 101 encapsulates the object 10 within the capture void 132 upon landing on a landing surface. The flight controller system 300 determines the optimal control output to be applied to each respective propeller motor 124 of the plurality of propeller motors 124 based on the set of positional and attitudinal properties of the multirotor 101, the position of the object 10 and a velocity of the object 10.
A set of dynamics models of the multirotor 101 and object 10 are studied in detail as reliable 2-D tracking of the object is necessary for successful object collection. The following assumptions were made for dynamic modeling of the multirotor 101 and the object 10:
As illustrated in
{dot over (x)}q=vxq, {dot over (y)}q=vyq, {dot over (v)}xq=ux, {dot over (v)}yq=uy,
ż
q
=v
zq
, {dot over (v)}
zq
, =g−u
z
, {dot over (x)}
o
=v
xo
, {dot over (y)}
o
=v
yo,
m
o
{dot over (v)}
xo
=−b(vvo)2sgn(vxo)+Fx, Fx=F cos δ,
m
o
{dot over (v)}
yo
=−b(vyo)2sgn(vyo)+Fy, Fy=F sin δ,
F
x
=F
emp cos δ+ΔFx, |ΔFx|≤βx, βx≥0,
F
y
=F
emp sin δ+ΔFy, |ΔFy|≤βy, βy≥0,
F
emp
=k
1
|v
air|2{circumflex over (v)}air, δ=tan−1 ((yo−yq)/(xo−xq)) (1)
where: g=9.81, (ux, uy)∈2 is the control input to the system, (xq, yq, zq)∈3 is the position of the multirotor 101, (vxq, vyq, vzq)∈3 is the velocity of the multirotor 101, (xo, yo, zo)∈3 is the position of the object 10, (vxo, vyo, vzo)∈3 is the velocity of the object 10, all in the North-East-Down (NED) Frame. The mass of the object 10 is defined as mo∈, F∈2 is the planar force experienced by the object 10 due to propeller outwash and represents the coupling dynamics between the multirotor 101 and object 10. k1∈ is a coefficient which is dependent on the area of the object 10 and density of surrounding fluid. Femp∈2 is the empirical formulation of F. (βx, βy)∈2 represent the bounds on modeling uncertainties. The damping coefficient is b∈ and vair∈2 is the airflow velocity surrounding the object due to the propeller outwash.
One objective of the flight controller system 300 is to reduce position and velocity errors between the multirotor 101 and object 10 in the presence of modeling and parameter uncertainties. A boundary layer sliding mode control (BLSMC) with Constrained Linear Model Predictive Control (MPC) approach is disclosed herein that determines the optimal control output to be applied to each respective propeller motor 124 of the plurality of propeller motors 124 based on the set of positional and attitudinal properties of the multirotor 101, the position of the object 10, and the velocity of the object 10. The BLSMC strategy makes the flight controller system 300 robust against modeling uncertainties. A dynamic sliding manifold is used to eliminate the reaching phase for BLSMC to ensure robustness from the beginning. Furthermore, the constrained MPC is designed considering the closed loop error dynamics of the flight controller system 300 and predicts the future position and velocity errors over a prediction horizon and finds an optimal control input to drive the position and velocity errors to zero. For the inertial Z direction, a PD velocity controller is designed to descend with a predefined constant velocity. For the 3-D rotational dynamics of the multirotor 101, an attitude controller is implemented. For object collection, the multirotor 101 has a predefined yaw setpoint as it can collect objects with any heading.
A BLSMC approach of the flight controller system 300 is disclosed to alleviate the chattering of control signals that are commonly seen in conventional sliding mode control methods. As the designed control inputs are the target thrusts to be applied to the propeller motors 124 in the inertial X and Y directions, chattering thrust signals are detrimental because they cause a multirotor 101 to constantly roll and pitch back and forth. As a result, the measurements from the image capture device 153 of the position and velocity of the object 10 can be adversely affected. To design BLSMC, dynamic sliding manifolds are defined as the following:
s
x=(vxo−vxq)+λx(x0−xq)+ϕx(t)
s
y=(vyo−vyq)+λy(y0−yq)+ϕy(t) (2)
It can be noted that sx(0)=0 and sy(0)=0, if ϕx(0)=−ėx(0)−λex(0) and ϕy(0)=−ėy(0)−λey(0). This eliminates the reaching phase and the sliding mode control system is kept inside the boundary layer from the beginning. Thus, controller functions to keep the sliding mode control system in the boundary layer are designed as:
where sat(·) is the saturation function. The BLSMC is designed with the objective to keep the sliding mode control system in the boundary layer and make it insensitive to modeling and parameter uncertainties. The next objective is to design ϕx and ϕy such that the position and velocity errors are regulated to the origin in an optimal manner.
Formulation for Femp:Femp is a function of vair which is determined empirically by collecting the windspeed data using an anemometer. The windspeed, due to propeller outwash, is collected at horizontal distances d from the multirotor every 0.5 m until d=3 m. For every distance d, the height of the multirotor h from the surface is also varied from 0.5 m to 2 m. Finally, vair is obtained as a function of d and h. In field experiments, the sum of the first two terms in the controller is constrained within a bound to prevent sudden and aggressive maneuvers.
A constrained linear MPC approach is proposed to design {dot over (ϕ)}x and {dot over (ϕ)}y. For the sake of brevity, only the design of {dot over (ϕ)}x is shown and {dot over (ϕ)}y is designed in the same way. Based on the ux in (3), the closed-loop error (ex=xo−xq) dynamics is:
When the sliding mode control system is within the boundary layer,
Then combining (4) and (2) gives:
where ζx=ηx+βx. The closed-loop error dynamics then becomes:
where w={dot over (ϕ)}x. The continuous-time system is discretized and the cost function for the linear MPC is defined as follows:
where Ei=[ex(i)ėx(i) ϕx(i)]T and N is the prediction horizon. The cost function (7) can be re-written as the following quadratic programming problem:
An optimal control sequence, U*, is generated by solving (8) and w={dot over (ϕ)}x=U*(0). The matrices are defined as follows:
where dt is the sampling time. This constrained MPC was implemented in using the qpOASES libraries.
The performance of the flight controller system 300 is compared with that of a conventional sliding mode controller (SMC) in simulation. Due to space limitation, comparisons are provided only along the x-axis in
The efficacy of the present system 100 is validated through a series of field experiments. The experimental setup, results and discussions on the flight tests are presented in this section.
The outdoor field experiments were conducted in a lake park at Gilbert, Arizona (lat:33.3589, lon:-111.7685). The experiments were conducted during September and October 2020 and the weather conditions were mostly sunny with some clouds in late afternoons. The wind speeds varied between 05 mph with sporadic wind gusts. Additionally, multiple experimental trials were conducted with a dark aluminum can (cylindrical, 200 g) on a cloudy day to demonstrate the system's potential. Due to very limited instances of cloudy days in Arizona, object collection experiments couldn't be conducted with a dark carton (cuboidal, 300 g).
The aerial manipulation system achieved 22 successful attempts and 2 failed attempts. Due to the unavailability of ground truth data in the outdoor scenario, the error between the final position of the multirotor and object was utilized to analyze the performance of the system. The origin for all the experiments was set when the GPS lock was found. For the sake of brevity, the results of the experimental trials were shown in Table II, including the landing time, battery capacity consumed for performing landing, and norm of error between the final positions of the floating object and multirotor. Due to space constraints, one successful and one failed trials are described thoroughly. çx=çy=2, λx=λy=1.0 and ηx=ηy=0.5 were used for all the experiments.
The experimental trials demonstrated a high success rate for object collection using the net mechanism 104 and the object detection system 200. Table II shows that the battery capacity consumed during autonomous landing is 80.50 mAh, which is 14% of 575 mAh (the average battery consumption during one trial). The two failed attempts happened in the late afternoon; one with the can and the other with the bottle. One success attempt and one failure attempt are demonstrated in
Additionally, if the multirotor 101 drops on the object at 0.5 meters, the water splash can be detrimental to the onboard electrical components. In this successful experiment, the total time taken, from object detection to autonomously landing on it, is 6.294 seconds, whereas the average time for the 22 successful trials is 7.41 seconds.
Device 400 comprises one or more network interfaces 410 (e.g., wired, wireless, PLC, etc.), at least one processor 420, and a memory 440 interconnected by a system bus 450, as well as a power supply 460 (e.g., battery, plug-in, etc.).
Network interface(s) 410 include the mechanical, electrical, and signaling circuitry for communicating data over the communication links coupled to a communication network. Network interfaces 410 are configured to transmit and/or receive data using a variety of different communication protocols. As illustrated, the box representing network interfaces 410 is shown for simplicity, and it is appreciated that such interfaces may represent different types of network connections such as wireless and wired (physical) connections. Network interfaces 410 are shown separately from power supply 460, however it is appreciated that the interfaces that support PLC protocols may communicate through power supply 460 and/or may be an integral component coupled to power supply 460.
Memory 440 includes a plurality of storage locations that are addressable by processor 420 and network interfaces 410 for storing software programs and data structures associated with the embodiments described herein. In some embodiments, device 400 may have limited memory or no memory (e.g., no memory for storage other than for programs/processes operating on the device and associated caches).
Processor 420 comprises hardware elements or logic adapted to execute the software programs (e.g., instructions) and manipulate data structures 445. An operating system 442, portions of which are typically resident in memory 440 and executed by the processor, functionally organizes device 400 by, inter alia, invoking operations in support of software processes and/or services executing on the device. These software processes and/or services may include Object Detection and Flight Control processes/services 490 described herein with reference to Object Detection System 200 and Flight Controller System 300. Note that while Object Detection and Flight Control processes/services 490 is illustrated in centralized memory 440, alternative embodiments provide for the process to be operated within the network interfaces 410, such as a component of a MAC layer, and/or as part of a distributed computing network environment.
It will be apparent to those skilled in the art that other processor and memory types, including various computer-readable media, may be used to store and execute program instructions pertaining to the techniques described herein. Also, while the description illustrates various processes, it is expressly contemplated that various processes may be embodied as modules or engines configured to operate in accordance with the techniques herein (e.g., according to the functionality of a similar process). In this context, the term module and engine may be interchangeable. In general, the term module or engine refers to model or an organization of interrelated software components/functions. Further, while the Object Detection and Flight Control processes/services 490 is shown as a standalone process, those skilled in the art will appreciate that this process may be executed as a routine or module within other processes.
It should be understood from the foregoing that, while particular embodiments have been illustrated and described, various modifications can be made thereto without departing from the spirit and scope of the invention as will be apparent to those skilled in the art. Such changes and modifications are within the scope and teachings of this invention as defined in the claims appended hereto.
This is a non-provisional application that claims benefit to U.S. Provisional Patent Application Ser. No. 63/178,645 filed 23 Apr. 2021, which is herein incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63178645 | Apr 2021 | US |