Competition Report
Introduction
The Waterloo Aerial Robotics Group (WARG) is currently developing Project Icarus, a vertical take-off and landing UAV fixed wing, capable of autonomous flight and landing. It does so by making use of our own, custom flight controller; ZeroPilot, alongside an in-house Computer Vision (CV) system to create an aircraft that can be navigated without much human input. Project Icarus's key subsystems make use of a variety of technologies and components to accomplish this goal, including training our own models for landing, a custom flight and tracking system, and a unique airframe optimized for this year's student competition.
Analysis of Alternate Solutions
Aircraft Type
The CONOPS for the competition initially lead to two potential types of aircraft, a fixed-wing aircraft or a helicopter. A fixed-wing would help in the ability to travel long distances in an efficient manner, and allow an airframe design that easily hold passengers. On the other hand, it will have great difficulty taking off and landing within the limitations, since a runway would be necessary.
Conversely, a helicopter has the ability to hover, take-off and land in more constrained spaces with little difficulty. Helicopters also would be easier to land near debris with higher precision, which can be important when taking into consideration the weather during competition. However, helicopters require significantly more skill to build. WARG as a team also has limited experience working with helicopters, especially with much of the custom hardware and software,such as ZeroPilot not being initially designed with helicopters in mind.
Quadcopters were briefly considered, however ultimately proved to be unfeasible. The requirements for long-range flight as well as the payload type, a realistic flight cabin, seemed impractical, and reaching the desired flight times with an aerodynamically unstable aircraft would only hurt efficiency.
The final decision was to move forward with a hybrid design of a fixed-wing aircraft with a pusher motor and four extra vertical motors. The extra motors are in a configuration similar to a quadcopter, which are only used during vertical take-off and landing. This allows us to take best advantage of the efficiency that is gained with a fixed wing aircraft and the lift it creates while cruising, and meet the requirements of landing in an urban environment as required by the competition.
Flight Control Software
A major focus for this year's competition has been on the level of automation that can be incorporated into completing Task 1 and Task 2. One of the most versatile and popular flight software is ArduPilot. It provides more than sufficient levels of configurability and flexibility, and has a capable autopilot system that can be tweaked for almost any mission requirements, which makes it a great option. However, over the past few years, the embedded flight software (EFS) team at WARG has been in development of a custom flight control software platform, called ZeroPilot Software. Ultimately, ZeroPilot SW was chosen as our primary flight software system for Project Icarus.
Using a custom solution built from the ground up provides numerous advantages. Primarily, ZeroPilot gives more control and flexibility to implement necessary features to specification. It provides the the aircraft further control over each subsystem, and communication between different components, such as the CV system and the ground station can be tweaked to a higher degree of customization. With this further level of customizability, the hope is that the system as a whole has a reduced level of complexity.
Motors, Propellers, and Batteries
This year's competition provides teams more freedom and flexibility with the design. There is a soft restriction placed of 5kg which provides the ability to earn extra points in Task 2.
The original weight goal for Project Icarus was 5kg, however, after investigation, this estimate was determined unfeasible. WARG uses custom boards and requires a lot of electronics to function with our desired architecture. Furthermore, the UAS should be capable of carrying up to 6 passengers: each one may weigh between 80g and 200g. At its approximated maximum, the passenger payload can be 1.2kg. Combined with the scale of the airframe - wingspan being 2.4 meters - this means aiming for a <5kg weight is unreasonable. A hard limit of 8kg was settled on for the all-inclusive mass of the aircraft.
The T-motor V505 KV260 was selected for the lift motors, and the T-motor AT4130 300KV long shaft was selected for the pusher motor. These choices were made because the single pusher motor needs to deliver more power than each of the lift motors.
The propellers are
The drone runs on two 6S batteries in series to act as a singles 12S battery which powers the entire craft.
@Nathan Green help
Need to discuss how we compromised our weight (what is our current target?) and how many passengers, and then include calculations we made for motors, weight, and the batteries we picked.
include image of calculations and flight time calculations
Computer Vision Systems
The drone uses the YOLOv7 object detection model to detect landing pads. YOLOv7 is a CNN optimized for fast object detection, and has a 15% faster inference time and 4% higher accuracy compared to the previous version, YOLOv5. To fine-tune the model, a combination of test flights and public datasets such as COCO were utilized. While public datasets are larger and have more diverse environments, using test flights improved accuracy for detecting landing pads. Additionally, an autolabelling code was created for the test flight recordings before using them in the ML model. The drone has an Nvidia Jetson module added to it, allowing the ML model to run on-board the drone without communicating with the ground station, reducing risks such as connection loss and ensuring the failure of the object detection model does not affect other ground functions.
Solution Overview
diagram/chart of the full system outline
Features and Capabilities
ZeroPilot
WARG's autopilot software comprises of 3 primary sub-components controlled by System Manager (SM). SM is a centralized unit for handling the state of the system. It handles all inputs from sensors like the accelerometer and gyroscope, outputs to motors and servos, the full flight state of the aircraft, and deciding when other sub-components run and integration between them.
Integrated Monitoring and Command Station
There are two direct methods of communication between a pilot and the aircraft. The first is with a traditional radio transmitter . In this mode, the pilot inputs the thrust, yaw, pitch and roll and operates the aircraft in a tele-operated fashion. The second is through the Integrated Monitoring and Command Station (IMACS), telling the on-board autopilot the desired action to take (e.g. fly, travel to waypoint, land) and having minimal or no human interaction thereafter .
IMACS is designed to be the primary method of monitoring and communication with the aircraft. It has a desktop user interface written in Python with QT that displays various aircraft information and statistics, including the GPS position, ground and airspeed, battery levels and power usage, altitude, attitude, motor outputs, and a low-latency video transmission feed.
IMACS also provides an interface for controlling the operation of the aircraft, such as switching between flight modes (VTOL and fixed-wing), the mandatory safety kill-switch, waypoint selection and flight path planning, a return-to-home mode, and delegating back to teleoperation and manual flying if necessary.
Communication Infrastructure
The primary method of bidirectional communication between the aircraft and IMACS will happen with the use of RFD 900x modems, one connected to the ground station and the other to the aircraft. The RFD 900x modems can communicate over 40 km and support serial communication with 2 RP-SMA connectors. They allow for communication between the drone and Ground Station PC similar to a wired serial connection.
The flight controllers have support for hardware add-ons. A direct UART connection is consumed and processed by ZeroPilot to enable communication. On the ground, the a RFD 900x modem will use a jumper to a USB connection to interface and communicate with IMACS.
An antenna tracking system will also be used to improve the data link. On the ground, a large antenna array will be installed on a tripod with a rotating platform. Two servos will allow the antenna tracking system to change the pan and tilt of the antenna to point it directly towards the aircraft.
To autonomously determine the desired pan and tilt of the antenna, a GPS module will also be installed on the tracking antenna. The ground station will provide the GPS coordinates and altitude of the aircraft. An onboard microcontroller on the tracking antenna will use this information to point the antenna precisely at the aircraft.
Airframe Development
The Project Icarus airframe has been been iterated numerous times in order to minimize weight and manage surface area and drag to compromise for flight characteristics during VTOL and fixed-wing operation. Below is a SolidWorks render of the UAS.
Characteristics of the airframe include a wingspan of 2.4m and wing chord length of 400mm. The horizontal stabilizer has a span of 800mm, chord length of 320mm, and the two vertical stabilizers, one attached at each end of the horizontal stabilizer, are 300mm tall. The booms are 1.2m long.
The cabin is 950mm in length, and its circular diameter is 275mm. The distance from the top of the cabin to the bottom of the landing gear is 420mm.
In terms of materials, the structural H-shaped frame of the aircraft, which includes the two booms and the rear cross-beam, is made from 15*31mm rectangular carbon fibre twill tubing. The fuselage of the aircraft is made from custom molded carbon fibre sheets. The wing spar - the carbon fibre tube that runs through the wings, attaching to the H-frame at each boom - is 25mm diameter carbon fibre twill tubing. The wings and tail are made from CNC-cut pink XPS foam. Paper and epoxy was used to coat the surfaces of these foam parts to obtain a better surface finish and impact resistance. The NACA 64A210 airfoil was chosen for this aircraft. It provided the best lift-to-drag ratio that the team was aware of.
A number of assumptions with an added safety factor were considered to determine a surface area of at least 0.8m^2 would be necessary for the aircraft to fly at 70km/h. The aircraft as it exists now has a wing surface area of 0.96m^2. The motor and prop combination that were chosen should have 8kg of thrust each to facilitate a high thrust-to-weight ratio. The fuselage was designed to be aerodynamic, with a focus on having laminar airflow being directed towards the push motor. The carbon fiber construction will allow for low weight and good durability. The aircraft is equipped with 6 seats using four-point harnesses to secure passengers during the flight.
Internals of the fuselage will be discussed the Passenger Safety section. As an overview, the fuselage has a bay door on the Port side, which swings open downwards to form a staircase for passengers to board.
Sizes and dimensions for the various parts (fuselage, wingspan, length, height)
Materials which are being used to construct the aircraft
Aerofoil design and considerationsWeight and thrust calculations, efficiency if considered (drag?)
fuselage design and seats for realism, loading and unloading passengers
VTOL System
Discuss the following talking points
Rotating a set of motors to switch from take-off to flight mode was deemed too difficult of a challenge for the team to take on as it is very complex to implement in software and adds additional degree of freedom to the system mechanically.
Level of complexity in terms of implementing this from software
Considerations with integrating with flight controller and power distribution
(perhaps bring up in alternate solutions): impracticalities for having rotating motors for more thrust in fixed-wing
Motor selection for push vs lift ← redundant with the motors, propellers, and batteries section
Autonomy and CV
Autonomous Flight
Discuss the following talking points
PID tuning rig and teaching the aircraft to fly ← Not doing this, ArduPilot is dealing with it
How do we convert waypoint information into flight control operations?
Sensor fusion implementation and interfacing with LOS
Path Planning and Optimization
Since the drone is required to complete two separate tasks, two path planning algorithms were needed. The first task requires generating a path based on the given waypoints and modifying it in midair as the restricted area is declared. Since the waypoints can be modelled as a graph with the distances between them as edge weights, a graph traversal algorithm can effectively generate an efficient path. For this issue, a modified version of Dijkstra’s algorithm finds the shortest path around the restricted area and sends it to the drone via telemetry link. Since all of this can be calculated from the QR code, the entire data pipeline can take place ground side so the jetson module can be 100% focused on object detection. For the second task, the problem is a lot more computationally complex. Instead of a simple graph, the different taxi destinations and fares form a problem analogous to the travelling salesman problem. To solve this, a reinforcement learning model was created and trained to maximize fare revenue given time and distance constraints. Since this is very computationally intensive, a similar ground side data pipeline is used- after scanning the QR code everything is automated from the reinforcement learning to sending the email, concluding with a series of waypoints sent to the ground station.
Autonomous Landing Capabilities
As previously discussed, an ML model is used to locate landing pads effectively and efficiently. This is done via the addition of a downward facing camera connected to the object detection model on the Nvidia Jetson (see Computer Vision Systems). However, this information is not sufficient to land the drone. After the neural network identifies the landing pad, the precise distance and angle to the pad is needed so autonomous landing can be performed. To calculate these values, multiple steps are needed such as correcting for the fisheye effect and using the current drone position coordinates to calculate the required distance vector. Once this vector is obtained, it is transmitted to Zeropilot- the custom flight controller capable of converting the distance vector to a series of instructions that land the drone.
Passenger Safety Considerations
Enclosed and protected passenger seating
All passengers within UAS are fully enclosed within the carbon fibre fuselage. They have individual seats as well as secure seatbelts to keep them safely restrained during the flight. All fuselage internals, including passenger seats, are fastened in place. The primary hatch on the side of the aircraft can be easily opened and closed. Stairs are fixed to the inside of the door for safe boarding and disembarking in case of emergencies.
In case of an electric failure with the aircraft systems (such as the battery), the fuselage of the aircraft is sufficiently protected in order to keep the passengers safe from any potential risk of fire or smoke.
TODO: Include any redundant software and hardware features we might have. This might include having multiple GPS components, backup flight controller w/ ArduPilot in case of failure with ZeroPilot, and any potential failsafe mode. Also might be good to talk about how we deal with RC link loss (10 seconds before flight termination)
Motor and Speed Controller Failure
Due to the aerodynamic nature of the aircraft, in situations where the aircraft suffers motor or an electronic speed controller failure, the aircraft will have the opportunity to switch to the other flight mode to reduce the risk of a crash. During cruise, the failure of the push propeller will provide the aircraft enough gliding time to attempt troubleshooting the issue and transition into VTOL mode to perform an emergency landing.
During VTOL, the window to troubleshoot and recover from failure will be shorter, however, there still is the opportunity to attempt to recover into fixed-wing mode and perform a traditional fixed-wing emergency landing.
Analysis of Mission Requirements
The competition requirements prove to create unique restrictions for the aircraft design. For one, passenger safety considerations mean there is a need for realism that comes at the cost of efficiency.
Novel Approaches to Mission Requirements
TODO: Discuss the following ideas potentially?
using custom carbon fiber components: we’ve never done this before and it requires setting up the entire process for doing layups, and designing parts beforehand
something specific from zeropilot: transitioning between vtol and fw: mixin for different flight controls and running them in parallel for a short time
our custom cv models + implementation specific details for landing pad
Project Management
Risk Assessment