Indoor UV light surface cleaning drone. It is intended for offices in order to have a better come back to work.
Introduction:The COVID-19 pandemic has been an event that has affected not only our daily lives, but the coexistence of people in all aspects and one is in effect the way we socialize in offices.
One of the best ways to curb the pandemic is to clean (and sterilize) work areas [1]. However, the use of chemicals can be harmful in the long term, so the use of UV lights to sterilize surfaces is a vital part of the future of office work.
For this we've come up with a drone that is capable of deactivating COVID-19 in office areas that conventional robots cannot access [2].
We have several proposals already in the market such as:
- TMiRob: https://mobilerobotguide.com/2020/05/26/introducing-the-intelligent-disinfection-robot-by-tmirob/
- XDBOT: https://www.therobotreport.com/xdbot-developed-ntu-singapore-disinfect-large-areas-covid-19/
- Tru-D SmartUVC: https://tru-d.com/
- UVCLight
- Siemens / Aucma
But if you take a look at them, they are huge and very cumbersome. And quite expensive. They have one huge weakness: None of these robots is capable of disinfecting surfaces such as tables or desks in a proper manner, or they are not designed to do so. When cleaning offices the places that we are most in contact with are the ones they have little reach with.
Enter CoviDrone:
Our autonomous flight drone is capable of taking off, flying over a table and then through a ring of UV LED lights fullfil the mission of deactivating the Covid19 viruses. With also the ability to land in adock after its flight.
The automatic flight control is carried out by means of a RPi Gateway which through WiFi communication will control the drone and will give it the instructions to carry out its entire flight from take-off to landing.
These instructions will be managed by the raspberry. Through the reception of the images taken with the drone camera, it will process them with OpenCV (Haarcascades) and according to the proximity of the indicators (in this case Stop signs), it will indicate the drone that it should move forwards, turn, or backwards, before landing.
Step by Step instructions:Diagram:Diagram:
Assemble the LED's one by one, taking care to always connect Anodes with Anodes and Cathodes with Cathodes.
Create a ring around the base of the drone.
Place the power circuit of the Led strip.
It should look like this:
NOTE: Whenever you work with UV Led's wear eye protection.
According to a peer-reviewed paper from PurpleSun [3] we know the following:
This measurement here is the minimum dose to lower virus activity by 90%.
Using the following formula:
We know that Power (Watts) times time equals Work (Joules).
Therefore Power per time divided by area equals work and all this divided by area equals dose.
Within an electrical circuit, Power is equal to Voltage per current.
Developing the formula according to our problem, we know that the voltage of each LED is 3 volts and the number of LED's is 30, therefore.
We obtain then the current of the circuit with the resistance that we have before the LED's, since we have a LiPo battery, this will stabilize its voltage at 3.7 Volts, however the LED's require 3 volts to work. Therefore our resistance will be determining the current that passes through the LED's, in this case the voltage that the resistance will have will be 0.7 volts.
Then.
Therefore the power of all LEDs would be.
Combining all the formulas we obtain the following general formula.
- Vsource = Voltage of the source [volts]
- Vled = LED operating voltage [volts]
- R = Resistor before the led [ohms]
- NLeds = Number of LED's in parallel in the circuit [dimensionless]
- Area = Exposure area [square meter]
- Time = Exposure time [seconds]
Substituting in the formula the values we want (in this case 1 square meter).
Now we calculate the exposure time necessary for the drone to achieve the D90 dose.
- Check the propeller order, if the order of the propellers is not correct, the drone will not fly.
- This drone is very unstable outdoors as it is very light and wind just overpowers it. It should be only used for indoor applications.
- Use a protective cage so that the drone is 100% safe.
If you use the protective cage the drone can not perform flips, if you try them, the drone will fall and hit itself hard.
- Always check the battery level of the drone. If the battery is less than 10% the drone will not take off, also if it is flying and reaches 10% the drone will land.
Download the operating system of the Raspberry Pi.
- To download the Raspberry Pi OS, enter the following link:
- Link: https://www.raspberrypi.org/downloads/raspbian/
- Download the lastest version.
Flash the operating system in the SD.
Software: https://www.balena.io/etcher/
Because the drone use the WiFi connection to control it, we must first connect to our WiFi to set up the libraries.
Run the following commands to setup the libraries
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-opencv
pip3 install tellopy
git clone https://github.com/altaga/CoviDrone
Connect to the Tello Drone WiFi network.
These are the libraries that you have to install before continuing.
The drone flight algorithm is based on pure programming along with the libraries that were previously mentioned. The algorithm reviews at all times that there is a stop signal (or any other mark) in front of it and looks for the way to focus and approach.
Signal recognition is done using Haar Cascades, the Haar Cascade file used will be in the "haar_model" folder, inside "Rasp", more information in the link below.
Link: https://docs.opencv.org/3.4.3/d7/d8b/tutorial_py_face_detection.html
It is important to mention that this code provides the method to check all the sensors of the drone, for example the height, the level of the battery, position, etc...
However we added that the battery level has to be displayed in the OpenCV screen at all times:
def handler(event, sender, data, **args):
global prev_flight_data
global battery
drone = sender
if event is drone.EVENT_FLIGHT_DATA:
if prev_flight_data != str(data):
#print(data)
datas=str(data)
num = datas.find("BAT")
battery=int(datas[num+4:-31])
print("Battery:" + str(battery))
prev_flight_data = str(data)
else:
print('event="%s" data=%s' % (event.getname(), str(data)))
The system works like a state machine, the case requires the command that makes the drone approach the signal. With this type of system we avoid sending commands that are useless to the drone.
Lateral Fly Control Diagram (This is the diagram of how the drone moves if you are looking at it from the side):
Frontal Fly Control Diagram (This is the diagram of how the drone moves if you are looking at it from the front):
In our case, the path that the drone must follow to travel the table is as follows.
1: https://covid19.cdc.gov.sa/community-public/preventive-measures-in-workplaces/
2: https://tectales.com/bionics-robotics/9-disinfection-robots-fighting-the-coronavirus.html
Comments