SYSTEMS AND METHODS FOR AUTONOMOUS VISION-GUIDED OBJECT COLLECTION FROM WATER SURFACES WITH A CUSTOMIZED MULTIROTOR
20220355926 · 2022-11-10
Assignee
Inventors
- Wenlong Zhang (Chandler, AZ, US)
- Shatadal Mishra (Tempe, AZ, US)
- Danish Faraaz Syed (Tempe, AZ, US)
- Michael Ploughe (Tempe, AZ, US)
Cpc classification
G05D1/106
PHYSICS
G05D1/0094
PHYSICS
G05D1/0088
PHYSICS
B64U10/14
PERFORMING OPERATIONS; TRANSPORTING
B64D35/00
PERFORMING OPERATIONS; TRANSPORTING
B64U2101/30
PERFORMING OPERATIONS; TRANSPORTING
B64D1/22
PERFORMING OPERATIONS; TRANSPORTING
B64U2101/00
PERFORMING OPERATIONS; TRANSPORTING
B64C39/024
PERFORMING OPERATIONS; TRANSPORTING
B64U60/10
PERFORMING OPERATIONS; TRANSPORTING
International classification
B64D1/22
PERFORMING OPERATIONS; TRANSPORTING
B64D35/00
PERFORMING OPERATIONS; TRANSPORTING
G05D1/00
PHYSICS
G05D1/10
PHYSICS
G06T7/246
PHYSICS
Abstract
Various embodiments of a vision-guided unmanned aerial vehicle (UAV) system to identify and collect foreign objects from the surface of a body of water are disclosed herein. A vision system and methodology has been developed to reduce reflections and glare from a water surface to better identify an object for removal. A linearized polarization filter and a specularity-removal algorithm is used to eliminate excessive reflection and glare. A contour-based detection algorithm is implemented for detecting the targeted objects on water surface. Further, the system includes a boundary layer sliding mode control (BLSMC) methodology to reduce and minimize position and velocity errors between the UAV and object in the presence of modeling and parameter uncertainties due to variation in a moving water surface.
Claims
1. A multirotor device, comprising: a base frame defining a plurality of arms, each arm including at least one propeller of a plurality of propellers rotatable by an associated propeller motor of a plurality of propeller motors; a landing assembly located underneath the base frame and including a landing structure framing a capture void, wherein the capture void is configured to encapsulate an object and wherein the capture void defines a first terminus and a second terminus located opposite from the first terminus; an object detection system being operable to estimate a position of the object; and a flight controller system including: a plurality of sensors collectively operable to estimate a set of positional and attitudinal properties of the multirotor; and a processor in communication with a memory, the memory including instructions, which, when executed, cause the processor to: determine an optimal control output to be applied to each respective propeller motor of the plurality of propeller motors based on the position of the object and the set of positional and attitudinal properties of the multirotor such that the multirotor encapsulates the object within the capture void upon landing on a landing surface; and apply the optimal control output to each respective propeller motor of the plurality of propeller motors.
2. The multirotor device of claim 1, further comprising: a net mechanism including: a net defining a first portion and a second portion, wherein the first portion of the net is affixed to the landing structure at the first terminus of the capture void; and a moveable rod affixed to the second portion of the net and configured for positioning between the first terminus of the capture void and the second terminus of the capture void; wherein the net spans across the capture void when the moveable rod is positioned at the second terminus of the capture void.
3. The multirotor device of claim 2, wherein the moveable rod is moveable by a servo arm operable to actuate the moveable rod between the first terminus of the capture void and the second terminus of the capture void.
4. The multirotor device of claim 1, wherein the flight controller system incorporates a set of dynamics models that describe a relationship between the set of positional and attitudinal properties of the multirotor, the position of the object and a velocity of the object.
5. The multirotor device of claim 4, wherein the set of dynamics models includes a model descriptive of a relationship between one or more airflow forces generated by the plurality of propellers of the multirotor and the position of the object and the velocity of the object.
6. The multirotor device of claim 1, wherein the flight controller system employs a sliding mode control system to determine the optimal control output based on the set of positional and attitudinal properties of the multirotor, the position of the object and a velocity of the object, the sliding mode control system including a dynamic sliding manifold operation based on constrained linear model predictive control that minimizes a position error between a position of the object and a position of the multirotor and minimizes a velocity error between a velocity of the object and a velocity of the multirotor and keeps the sliding mode control system within a boundary layer of the sliding mode control system. The multirotor device of claim 1, wherein the object detection system includes an image capture device in communication with the processor and the memory, the memory including instructions, which, when executed, cause the processor to: receive a video feed including a frame indicative of the object from the image capture device; extract a plurality of closed contours from the frame; identify a largest closed contour of the plurality of closed contours placed within a region for a minimum threshold quantity of consecutive frames, wherein a position of the largest closed contour within the frame is indicative of the position of the object; and apply a specularity removal operation to the frame.
8. The multirotor device of claim 7, wherein the memory of the object detection system further includes instructions, which, when executed, cause the processor to: determine a minimum intensity value of a plurality of minimum intensity values for each pixel within the frame; determine an intensity threshold value to distinguish one or more highlighted pixels within the frame using a mean value and a standard deviation value of the plurality of minimum intensity values; determine an offset value based on the intensity threshold value, the offset value being used to indicate one or more pixels that need to be modified to suppress a reflection within the frame; determine a specular component of each pixel within the frame by subtracting the offset value from the intensity threshold value for each pixel outside of a bounding box indicative of the position of the object; and subtract the specular component from each respective pixel outside of the bounding box indicative of the position of the object for a subsequent frame of the plurality of frames.
9. The multirotor device of claim 7, wherein the memory of the object detection system further includes instructions, which, when executed, cause the processor to: estimate a velocity of the object based on one or more positions of the object across a plurality of frames.
10. The multirotor device of claim 1, wherein the set of positional and attitudinal properties of the multirotor include an attitude, a position, a velocity, and an altitude of the multirotor relative to the landing surface.
11. The multirotor device of claim 1, wherein the landing structure is a buoyant structure.
12. The multirotor device of claim 11, wherein the buoyant structure includes a first buoyant sub-structure and a second buoyant sub-structure.
13. A method, comprising: receiving, at a processor in communication with a memory, a video feed including a frame indicative of an object from an image capture device; extracting, at the processor, a plurality of closed contours from the frame; identifying, at the processor, a largest closed contour of the plurality of closed contours placed within a region for a minimum threshold quantity of consecutive frames, wherein a position of the largest closed contour within the frame is indicative of the position of the object; and applying a specularity removal operation to the frame.
14. The method of claim 13, further comprising: determining, at the processor, a minimum intensity value of a plurality of minimum intensity values for each pixel within the frame; determining, at the processor, an intensity threshold value to distinguish one or more highlighted pixels within the frame using a mean value and a standard deviation value of the plurality of minimum intensity values; determining, at the processor, an offset value based on the intensity threshold value, the offset value being used to indicate one or more pixels that need to be modified to suppress a reflection within the frame; determining, at the processor, a specular component of each pixel within the frame by subtracting the offset value from the intensity threshold value for each pixel outside of a bounding box indicative of the position of the object; and subtracting, at the processor, the specular component from each respective pixel outside of the bounding box indicative of the position of the object for a subsequent frame of the plurality of frames.
15. The method of claim 14, further comprising: estimating, at the processor, a velocity of the object based on one or more positions of the object across a plurality of frames.
16. The method of claim 13, further comprising: determining, by the processor, an optimal control output to be applied to a respective propeller motor of a plurality of propeller motors of a multirotor based on the position of the object and a set of positional and attitudinal properties of the multirotor such that the multirotor encapsulates the object within a capture void of the multirotor upon landing on a landing surface; and applying the optimal control output to each respective propeller motor of the plurality of propeller motors.
17. The method of claim 13, further comprising: actuating a net mechanism of the multirotor such that a net of the multirotor spans across the capture void to capture the object within the net.
18. The method of claim 13, further comprising: applying a dynamic sliding manifold operation within a sliding mode control system based on constrained linear model predictive control that minimizes a position error between a position of the object and a position of the multirotor and minimizes a velocity error between a velocity of the object and a velocity of the multirotor and keeps the sliding mode control system within a boundary layer of the sliding mode control system.
19. A method, comprising: estimating, by a processor in communication with a memory, a position of an object relative to a multirotor; determining, by the processor, an optimal control output to be applied to a respective propeller motor of a plurality of propeller motors of the multirotor based on the position of the object and a set of positional and attitudinal properties of the multirotor such that the multirotor encapsulates the object within a capture void of the multirotor upon landing on a landing surface; and applying the optimal control output to each respective propeller motor of the plurality of propeller motors.
20. The method of claim 19, further comprising: applying a dynamic sliding manifold operation within a sliding mode control system based on constrained linear model predictive control that minimizes a position error between a position of the object and a position of the multirotor and minimizes a velocity error between a velocity of the object and a velocity of the multirotor and keeps the sliding mode control system within a boundary layer of the sliding mode control system.
21. The method of claim 19, further comprising: receiving, at the processor, a video feed including a frame indicative of an object from an image capture device; extracting, at the processor, a plurality of closed contours from the frame; identifying, at the processor, a largest closed contour of the plurality of closed contours placed within a region for a minimum threshold quantity of consecutive frames, wherein a position of the largest closed contour within the frame is indicative of the position of the object; and applying a specularity removal operation to the frame.
22. The method of claim 19, further comprising: estimating, at the processor, a velocity of the object based on one or more positions of the object across a plurality of frames.
23. The method of claim 19, further comprising: actuating a net mechanism of the multirotor such that a net of the multirotor spans across the capture void to capture the object within the net.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022] 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.
DETAILED DESCRIPTION
[0023] 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: [0024] A net-based multirotor system with flotation is proposed for object collection from water surfaces. [0025] A computationally efficient contour based algorithm with specularity removal is developed for detecting objects on water surfaces under different illumination conditions. A comparison with different detectors is provided to show the advantages of our algorithm. [0026] A BLSMC approach, with a dynamic sliding surface, is developed. A constrained MPC is designed for determining the optimal sliding surface and the controller demonstrates reliable object tracking in the presence of modeling uncertainties while enabling the system to collect objects under different weather conditions.
II. Multirotor Setup
[0027] Referring to
A. Aerial Platform and Actuation System
[0028] 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
[0029] 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.
B. Flotation and Integrated Net System
[0030] With continued reference to
[0031] 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
C. Sensor and Computation Subsystem
[0032] Referring to
[0033] The different software blocks are demonstrated in
[0034] 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.
III. Object Detection
[0035] 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.
A. Challenges
[0036] 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.
B. Strategy
[0037] The object detection system 200 is represented in
TABLE-US-00001 Algorithm 1 Object detection algorithm 1: while read polarized camera frame do 2: if Object detected = = false then 3: f ← getframe 4: Canny_edge_detector(f) 5: contours(i) = FindContours(f) 6: Obj = max _area{contours(i)} 7: if No contour jumps in a window of 10 frames then 8: Object detected ← true 9: else 10 Object detected ← false 11 end if 12 end if 13 if Object detected = = true then 14 f ← getframe 15 I.sub.min(p) = min{f.sub.R(p), f.sub.G(p), f.sub.B(p)} 16 T = μ.sub.v + η * σ.sub.v 17
[0038] 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
[0039] In the second phase, the specularity removal starts by computing the minimum intensity value I.sub.min(p) across the RGB channel for each pixel in the frame. An intensity threshold value T=μ.sub.v+η.Math.σ.sub.v is then calculated to distinguish highlighted pixels. μ.sub.v and σ.sub.v are the mean and standard deviation of the minimum values I.sub.min 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 I.sub.min. 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
C. Performance Comparison
[0040] 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:
[0041] where TP, FP, and FN are the numbers of True Positives, False Positives, and False Negatives detected by the tracker, respectively.
TABLE-US-00002 TABLE 1 Performance comparisons of different trackers. Average FPS Total CPU usage in % Precision & Recall Objects Ours YOLO SSD Ours YOLO SSD Ours YOLO SSD White Bottle 21 2.8 11 37.5 86.25 75 0.96 0.97 0.57 Dark carton 21 2.8 11 37.5 86.25 75 0.91 0.96 0.52 Dark can 21 2.8 11 37.5 86.25 75 0.78 0.90 0.22 Silver can 21 2.8 11 37.5 86.25 75 0.91 0.90 0.86 Juice carton 21 2.8 11 37.5 86.25 75 0.97 0.96 0.80
[0042] 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.
[0043] 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.
IV. System Modeling and Control
[0044] 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. Multirotor and Object Dynamics
[0045] 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: [0046] 1) The translational kinematics of the multirotor 101 were simplified by assuming the drag acting on the body is negligible. [0047] 2) The pattern of the propeller outwash is radially outwards from the position of the multirotor. [0048] 3) Water currents and object's vertical dynamics were negligible. [0049] 4) The direction of force due to propeller outwash is along the projection of vector, on the water surface, from the center of the multirotor 101 to that of the object 10 on the water surface. It can be seen in
[0050] As illustrated in
{dot over (x)}.sub.q=v.sub.xq, {dot over (y)}.sub.q=v.sub.yq, {dot over (v)}.sub.xq=u.sub.x, {dot over (v)}.sub.yq=u.sub.y,
ż.sub.q=v.sub.zq, {dot over (v)}.sub.zq, =g−u.sub.z, {dot over (x)}.sub.o=v.sub.xo, {dot over (y)}.sub.o=v.sub.yo,
m.sub.o{dot over (v)}.sub.xo=−b(v.sub.vo).sup.2sgn(v.sub.xo)+F.sub.x, F.sub.x=F cos δ,
m.sub.o{dot over (v)}.sub.yo=−b(v.sub.yo).sup.2sgn(v.sub.yo)+F.sub.y, F.sub.y=F sin δ,
F.sub.x=F.sub.emp cos δ+ΔF.sub.x, |ΔF.sub.x|≤β.sub.x, β.sub.x≥0,
F.sub.y=F.sub.emp sin δ+ΔF.sub.y, |ΔF.sub.y|≤β.sub.y, β.sub.y≥0,
F.sub.emp=k.sub.1|v.sub.air|.sup.2{circumflex over (v)}.sub.air, δ=tan.sup.−1 ((y.sub.o−y.sub.q)/(x.sub.o−x.sub.q)) (1)
[0051] where: g=9.81, (u.sub.x, u.sub.y)∈.sup.2 is the control input to the system, (x.sub.q, y.sub.q, z.sub.q)∈
.sup.3 is the position of the multirotor 101, (v.sub.xq, v.sub.yq, v.sub.zq)∈
.sup.3 is the velocity of the multirotor 101, (x.sub.o, y.sub.o, z.sub.o)∈
.sup.3 is the position of the object 10, (v.sub.xo, v.sub.yo, v.sub.zo)∈
.sup.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 m.sub.o∈
, F∈
.sup.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. k.sub.1∈
is a coefficient which is dependent on the area of the object 10 and density of surrounding fluid. F.sub.emp∈
.sup.2 is the empirical formulation of F. (β.sub.x, β.sub.y)∈
.sup.2 represent the bounds on modeling uncertainties. The damping coefficient is b∈
and v.sub.air∈
.sup.2 is the airflow velocity surrounding the object due to the propeller outwash.
B. Controller Design
[0052] 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.
1) Boundary Layer Sliding Mode Control (BLSMC)
[0053] 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.sub.x=(v.sub.xo−v.sub.xq)+λ.sub.x(x.sub.0−x.sub.q)+ϕ.sub.x(t)
s.sub.y=(v.sub.yo−v.sub.yq)+λ.sub.y(y.sub.0−y.sub.q)+ϕ.sub.y(t) (2)
[0054] It can be noted that s.sub.x(0)=0 and s.sub.y(0)=0, if ϕ.sub.x(0)=−ė.sub.x(0)−λe.sub.x(0) and ϕ.sub.y(0)=−ė.sub.y(0)−λe.sub.y(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:
[0055] where sat(.Math.) 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 ϕ.sub.x and ϕ.sub.y such that the position and velocity errors are regulated to the origin in an optimal manner.
[0056] Formulation for F.sub.emp:F.sub.emp is a function of v.sub.air 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, v.sub.air 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.
2) Constrained Linear Model Predictive Control (MPC)
[0057] A constrained linear MPC approach is proposed to design {dot over (ϕ)}.sub.x and {dot over (ϕ)}.sub.y. For the sake of brevity, only the design of {dot over (ϕ)}.sub.x is shown and {dot over (ϕ)}.sub.y is designed in the same way. Based on the u.sub.x in (3), the closed-loop error (e.sub.x=x.sub.o−x.sub.q) dynamics is:
[0058] When the sliding mode control system is within the boundary layer,
[0059] Then combining (4) and (2) gives:
[0060] where ζ.sub.x=η.sub.x+β.sub.x. The closed-loop error dynamics then becomes:
[0061] where w={dot over (ϕ)}.sub.x. The continuous-time system is discretized and the cost function for the linear MPC is defined as follows:
[0062] where E.sub.i=[e.sub.x(i)ė.sub.x(i) ϕ.sub.x(i)].sup.T and N is the prediction horizon. The cost function (7) can be re-written as the following quadratic programming problem:
[0063] An optimal control sequence, U*, is generated by solving (8) and w={dot over (ϕ)}.sub.x=U*(0). The matrices are defined as follows:
[0064] where dt is the sampling time. This constrained MPC was implemented in using the qpOASES libraries.
C. Simulation Results
[0065] 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
V. Field Experiments
[0066] 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.
A. Experimental Setup
[0067] 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).
TABLE-US-00003 TABLE II Experimental results for 22 successful trials and 2 failure attempts Success 1.sup.st failure 2.sup.nd failure Final distance (m) 0.15 ± 0.06 0.38 0.85 Landing duration (s) 7.41 ± 1.10 7.26 6.43 Used capacity (mAh) 80.50 ± 11.63 76.5 72
B. Experimental Results and Discussion
[0068] 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. ç.sub.x=ç.sub.y=2, λ.sub.x=λ.sub.y=1.0 and η.sub.x=η.sub.y=0.5 were used for all the experiments.
[0069] 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
[0070] 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.
Computing System
[0071]
[0072] 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.).
[0073] 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.
[0074] 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).
[0075] 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.
[0076] 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.
[0077] 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.