This repository contains the source code and circuit schematics used in the IEEE IROS 2021 paper titled Toward battery-free flight: Duty cycled recharging of small drones.
- 39 x 21 mm, 1.83 g circuit laser etched using a DPSS laser machine
- 90.84 % average efficiency across different light intensities (see the Results section)
- charges a 250 mAh 1S LiPo battery completely with two 94 x 73 mm (1.98 g each) thin film flexible solar panels in 3 hr 3 min (see the Results section) in real outdoor lighting varying due to intermittent clouds
takeoff.mp4
- fabricated using 2.3 mm balsa wood, weighs just 0.83 g
- enables airflow from propellers for lift, decreases destabilizing torques
- uses gravity for folding down and ground effect (increase in air pressure below the drone near the ground) to open out the panels; passive mechanism implies no actuators, making it simple, effective and light
landing-site-selection.webm.mov
- detects presence of light to avoid landing in shaded regions
- avoids crashing into nearby obstacles
- avoids landing in unflat terrain where panels cannot open out for recharging
- circuits: charging circuit schematics and vector drawings used for laser etching
- data: all recorded experiment data used for generating all plots (see the Results section)
- docs: relevant datasheets etc
- resources: resources used in this README
- scripts: all scripts
- scripts/plots: the scripts used for generating all plots (see the Results section)
- scripts/controller.py: script used to manually control the crazyflie and trigger the landing site selection sequence. Heavily borrows from thecountoftuscany/crazyflie-run-and-tumble/scripts/cflibController.py for the keyboard control part.
- While the battery is not low, the drone is controlled manually to fly around. This behaviour can be substituted with whatever persistent operations (autonomous or otherwise) are desired in a particular application.
- To get outside a shaded area, the drone keeps moving forward (defined as at least 1000 lux for indoor light, and 100,000 lux for outdoors). This behaviour can be changed to a random walk or anything else as desired.
- To avoid obstacles, the drone moves directly away from the closest one. This behaviour can be changed to turning away, wall-following, sliding mode controller or anything else as desired
- On detecting an unflat area, the drone moves forward by a set amount to re-check for flatness. This behaviour can be changed to a random walk or anything else as desired
- To check for flatness, the drone measures time of flight measurements while moving in a square around the area to be tested. This behaviour can be changed to a different trajectory (for eg. a circle) as desired.
- scripts/crazyflie-thrust-control.py: script used to control crazyflie’s thrust (open loop, constant or closed loop, hovering) and save data for flight performance plots (see the Results section)
The following python packages (obtain using pip
, conda
, your OS distribution package manager or any other preferred means):
numpy
pygame
- cflib
argparse
matplotlib
- Battery capacity limits flight time: low energy density of currently available batteries, but high power required for hovering flight
- Miniaturization reduces required flight power and solar harvesting increases flight time
- Scaling effects lead to lower required hover power for smaller robots. This scales down faster than required photovoltaic panel size required for continuous hover (see figure).
- For scale l:
- PV cell area scales as l^2
- Required flight power for hovering scales as l^7/2
- From existing robots, we can see this trend that required PV cell size for continuous hovering becomes smaller than the robot size below approx 1 g robot mass. For robots slightly above this threshold duty cycled operation is possible: that is, the robot operates normally until the battery is low, at which point it stops, recharges its battery and continues operation indefinitely.
- Tethered flight: restricts drone movement
- Wireless power transfer, autonomously docking to power outlets, hot-swapping UAV batteries in-flight: needs additional base stations or docks, bulky sensors (eg. cameras, lidars) to search for and align / dock with them, computationally intensive algorithms (eg. computer vision) for planning, and additional sensors for localization. Also restricts how far the drone can travel via dependence on these external systems
- Solar-powered hovering for fixed wing drones: only achieved on large, fixed wing drones. Large size increases cost, use of unpackaged monocrystalline solar panels makes them fragile, and being fixed wing decreases agility and they cannot hover which limits their utility for many applications
In contrast, this system is simple, self-contained and deployable on size, weight, power and computationally limited platforms, specially, insect scale robots like the UW Robofly.
- Inspiration from IoT radios: low average power
- Continuous hover with only solar power not possible at this scale. Duty cycled operation enables indefinite operation without any human intervention or existence of any external power infrastructure.
- Traversal of long distances possible: no need for a return journey
- 21 g palm-sized drone, Crazyflie 2.1 with optic flow deck, multiranger deck, and BH1750 light sensor (driver can be obtained here)
- Custom charging circuit
- Solar panels: two thin-film flexible, amorphous silicon cells (200 microns), 94 x 73 mm
Panels | Mass (g) | Avg light intensity (x10^3 lux) | Avg efficiency | Charging time (min) |
---|---|---|---|---|
two MPT4.8-75 | 3.96 | 107.16 | 90.84% | 183 |
four MPT4.8-75 | 7.92 | 71.41 | 89.61% | 84 |
four MPT6-75 | 9.20 | 65.74 | 86.94 | 80 |
- to allow airflow from propellers
- to reduce imbalancing torques
- to enable passive transition between states
- 4.7 min flight time
- can travel 400 m at maximum velocity in single discharge, or 1.2 km in a day (assuming two recharges which is typical in a day)
For more details refer to the paper here. You can also contact one of the authors below:
The authors would like to thank Yogesh Chukewad for insightful suggestions during the writing of the paper, and The Air Force Office of Scientific Research (AFOSR), grant no. FA9550-14-1-0398 by The Air Force Center of Excellence on Nature-Inspired Flight Technologies and Ideas (NIFTI) for funding the equipment used in this research.
- [ ] The crazyflie now has an app layer. Implement this algorithm on-board and remove the dependency on an external computer