7.1 Flight Control
For our flight controller we will be using the Pixsurvey Cube V3 along with its accompanying GPS, IMU, compass, and airspeed sensor. The flight controller will be running the ArduPilot firmware in order to autonomously pilot the airframe. ArduPilot uses an Extended Kalman Filter for state estimation as well as for sensor fusion. ArduPilot supports the MAVLink protocol which is how information from other subsystems will be passed to the flight controller.
7.2 Perception
7.2.1 Companion Computer
The companion computer will be a Raspberry Pi and it will be mounted inside the cabin of the VTOL. Although we will be running two algorithms on the Raspberry Pi they will never be running simultaneously. The GPS non-dependence algorithm will be active when we are in fixed wing mode and navigating to the target location. Once we are close enough the marker detection algorithm will take over and attempt to find the marker.
7.2.2 Camera
The camera that we will be using is an OAK-D camera that will be connected to the companion computer by USB. The OAK-D also has an onboard processor that we can utilize to offload computation from the companion computer if needed.
7.2.3 GPS Non-dependence
The GPS non-dependence algorithm will work by matching the current image from our onboard camera to a set of satellite images. These satellite images will be downloaded before flight from the Google Static Maps API. Only satellite images for locations along our path will be downloaded. In order to reduce computational burden we can use our estimated position as a starting point and only attempt to match images of areas near our estimated position. Once we have determined the global position we can then use the GPS_INJECT_DATA MAVLink message to update where our flight controller believes we are.
7.2.4 Marker Detection
When we are near the target location we will begin the STag marker detection algorithm. The VTOL will then hover in the area and attempt to detect the marker. Upon successful detection it will move into the correct position for delivery and activate the lowering mechanism. Whilst the delivery subsystem is active the marker will be used to maintain the correct position through visual servoing.
7.3 Base Station
The base station will consist of an offboard computer running Mission Planner. Once the target location has been received a set of waypoints will be generated. These waypoints will be sent to the flight control using the MAVLink protocol. The base station does not need to have constant communication with the onboard systems in order for the system to function properly. However, when it is connected we will be able to monitor the sensors and flight controller so it is preferential to remain connected if possible.
7.4 Flight Actuation
The interfacing for this subsystem is incredibly simple due to the maturity of electrical motors, ESCs, and flight controllers. The only work that needs to be done is plugging them in and ensuring that the motors spin in the correct directions.
7.5 Flight Logger
This is a black box provided to us by the AirLab which will sit inside the VTOL. It has a suite of sensors like accelerometers, gyroscopes, compasses to measure the orientation and acceleration of the VTOL. It also has current and voltage sensors, to monitor the power consumed during flight and transition periods. If we are unable to get the AirLab’s logger to work we will be able to set up a backup system by using the ArduPilot logging feature. These logs will be fed to and stored on the companion computer during flight.
7.6 Delivery
The delivery mechanism will be activated once the marker detection system is able to position the VTOL correctly over the marker. The lowering mechanism will proceed until the package is close enough to the ground. Then the holding mechanism will release and the lowering mechanism will retract. The control of both the lowering and holding mechanism will be done by the companion computer even though the mechanisms will be connected to the flight controller. The companion computer can use the MAV_CMD_DO_SET_ACTUATOR MAVLink message to control any actuators attached to the flight controller. Since our flight controller has additional pins we have a wide choice of electrical components we can use within the delivery mechanism. The additional pins support PWM, I2C, and CAN.
7.7 Power Distribution
The batteries we will be using are two 6S LiPo 22.2V 10000maH battery. Since none of our components run at that voltage we need to carefully manage how the power is distributed. Fortunately, the flight controller system comes with a power distribution board that handles the voltage conversion for all of its components. Furthermore, the power distribution board has additional slots for other components. The suggested voltage supply for the Raspberry Pi is 5V 3A. This means that we will need to create a power distribution board to connect our companion computer.