An highly intelligent autonomous quadcopter for last-mile delivery of medicine in pandemic affected places, rural and remote areas. This drone is equipped with the intelligent systems leading the drone to do real time decision making which helps the vehicle to path planning, take off and landing in any terrain without the intervention of any obstacle or terrain.
How people are affected due to lack of medicine at emergency
The problems which we try to solve are delivering food and medicine during a pandemic situation, during a natural calamity and medical emergency services in rural and remote areas.
During the pandemic or a natural calamity the usual human to human contact delivery or door delivery will be affected, which will affect the supply chain, the necessary commodities will expire if it's not supplied in time and the medical supply will be delayed. This all problems creates a new branch of problem and increases exponentially until the necessary action is taken. In countries like India these are major problems because the total population is around 138 crores.
Remote places of India are still facing a lack of medical emergency services. Nearly 27% of the total deaths in India happen with no medical attention at the time of death, according to 2019. More than 80% of those deaths happen in the rural and remote areas. The major reason for the deaths are lack of delivery of drugs or emergency accessories on time.
2. Our Solution
To provide a better and quick responsive medical service with the drones for medical deliveries and for other emergency deliveries like Organ Deliveries. With this, it is also suitable for delivery chains for faster deliveries in within areas
An highly intelligent autonomous quadcopter for last-mile delivery of medicine in pandemic affected places, rural and remote areas. This drone is equipped with the intelligent systems leading the drone to do real time decision making which helps the vehicle to path planning, take off and landing in any terrain without the intervention of any obstacle or terrain. A customized container is built for the transport and store of commodities.
How our code along with nxp hardware solves this
To tackle this problem and implement the proposed idea the NXP HoverGames Drone Development Kit has been efficiently utilized. The drone kit has been assembled and tested in the field several times. The team has faced several issues while testing the nxp kit and came up with different solutions to tackle the problems. Different customized physical components has been used
3. Our approachWe use a simple methodology on connecting the customer or reaching the public to the servitor. The end users such as health centres/ emergency service centres requests for supplies through our mobile application. Along with the supply request, GPS coordinates of the customer are sent to the base station via server. The base station confirms the request and loads the UAV with the required accessories and sends it to its desired GPS coordinates. The UAV determines the shortest path and moves accordingly without getting in contact with any obstacles. Once the drone reaches the location it finds the feasible spot with the help of arUco code landing pad. The entire procedure is supervised and monitored from the base station and can be overwritten manually if necessary. Fail safe and Safety switch are enabled in the drones to make sure the drone is completely safe to use it between the interaction with the people.
4. Technology stackThe above image shows the complete architecture of our system. The 8MMNavQ is used as a companion computer for the drone to perform autonomous missions. Robot operating system (ROS) is implemented on the board. RC DRONE-FMUK66 FMU is the flight management unit used in the process which is provided by NXP. The processor communicates with the flight controller through MAVROS protocol. MAVROS is a ROS node which converts the ROS topic messages to MAVLink so that the communication between the onboard processor and the FMU is established. Image processing is done using the opencv library.
ArUco code detection landing is implemented for accurate and safe landing. A landing station is set up in the emergency centres and medical centres having an ArUco code. Once the drone reaches the destination it detects the code and lands on it.
The communication between the UAV and the ground station is achieved by two methods.
Through RF signals: A long range telemetry is used to retrieve the flight information of the drone via RF signals such as flight coordinates, altitude, cruise speed etc.
Through 4G LTE Cellular BVLOS (Beyond Visual Line of Sight) Drone Control system is used for communication between the drone and base station. The advantages of the BVLOS system is that pilots can take control of the drone even though it's not inside the line of sight, live streaming is also achieved using 4G LTE.
5. DesignGenerative designing is an iterative design the nxp model was modeled in solidworks. Soldiworks is a powerful engineering tool used all over the world by students, companies and researchers for product development, mechanical simulation etc.The whole system was assembled virtually in solidworks assembly and thereafter the physical parts are assembled as in solidworks which increased the hardware implementation process.
Our whole quad design and model info
- Custom designed box infoThe payload bay is used for delivering the medicine or any necessary items. The designed payload bay has to accommodate inside the circumference of the quadrotor arm. The compact box of dimension 12*12 cm with tapered end is designed. The box is fixed to the nxp frame. And has the basic opening and closing mechanism thus system delivery process at high end becomes easy.
- Landing gear infoIn order to safely take off and land the quadcopter the different landing gear was chosen and durability, strength was tested inorder to choose the best suited landing gear for the system.For ease of manufacturing the 3d printing is chosen to fabricate the landing gear. The PLA filament which is strong and lightweight iis used for 3d printing.
- Camera caseThe customized Camera protection case has been used in the drone. It protects the google coral camera from any damage due to crash or any object interaction. The case is also capable of being tilted into a different angle depending upon the use case.The case can be easily installed into the nxp frame. The case has been designed in solidworks and 3d printed using pla filament.
The final assembled and rendered cad design
Why we need simulation
Testing the algorithm for our drone is crucial. Thus testing it with real hardware is risky, because if there are any bugs or glitches in the code the drone might end up crashing thus damaging the components used. This can result in loss of time and money. Hence we decided to testbench all our code in the simulation
GAZEBO
We used the Gazebo to simulate the drone. Gazebo offers the ability to accurately and efficiently simulate populations of robots in complex indoor and outdoor environments.
PX4 SITL
Inorder to simulate the behaviour of drone precisely with real world, we utilized the PX4’s Software-In-The-Loop (SITL). WIth this we can interact with our drone just as you might with a real vehicle, using QGroundControl, an offboard API, or a radio controller. PX4 communicates with the simulator (e.g. Gazebo) to receive sensor data from the simulated world and send motor and actuator values. It communicates with the GCS and an Offboard API (e.g. ROS) to send telemetry from the simulated environment and receive commands.
MAVROS was used to convert the MAVLink messages from PX4 into ROS messages, so that we can control the drone autonomously using ROS.
Inorder to replicate the real world environment we used particular world model in gazebo along with the drone to make test benching the code more efficient.
URDF/SDF is used to model the drone which is simulated in gazebo world. Plugins of sensors such as camera, imu, gps etc are used to get the sensor values from simulation.
Camera feed from the sensor modeled in gazebo was taken by subscribing to the camera topic and then its converted to opencv format using ROS-OpenCV Bridge. After converting to OpenCV format, the image is processed for ARUCO marker detection.
Obstacle Avoidance using real time depth estimation
Hilly areas in rural regions of India are widely populated with trees, rocks etc. Thus making it more challenging for drones to navigate to the delivery location. And also landing becomes difficult on uneven terrains.
We have used the 3D Vector Field Histogram for avoiding the obstacle using the point cloud obtained from the depth camera such as realsense. The obstacle avoidance will be running as a ROS Node, which is subscribed to the depth-camera topic
7. Dashboard - Monitor Multiple Drones at EaseEvery application needs monitoring to control, get overall data in visual form. When the no. of drones used in the application increases, it's hard to keep track of all the drones. Our medicine delivery to hilly areas is not an exception. Drone Dashboard is like a command centre where we can monitor single as well as multiple drones. It also has order data, where we can observe the orders from different regions as well as estimated time taken for delivery.
The Dashboard was created using HTML and CSS. For updating the data, the dashboard uses AJAX ( Asynchronous JavaScript and XML). The two major features of AJAX allow you to do the following:
- Make requests to the server without reloading the page
- Receive and work with data from the server
Leaflet JavaScript library was used to design the map, to display drones, and order coordinates in it. Dynamic graphs are created to visualize the data.
The data which is present in the sheet is used by the dashboard to visualize things. The Data is the sheet is updated accordingly using HTTP protocol. Github pages are used to host the Drone Dashboard.
DRONE DASHBOARD URL -https://g1-k.github.io/dashboard_test/
8. Real hardware implementationThe Drone Kit provided by NXP is used to demonstrate the working of drone to deliver the medicines in hilly areas autonomously. The drone consists of FMUK66 Flight Controller developed by NXP, running PX4 firmware on it. For high level decision making, NAVQ is used as a companion computer running Ubuntu 20.04 and ROS Noetic on it. The ROS onboard the drone helps in flexible development of algorithms and robust feature integration.
CODE :
The following ROS Packages are used in drone :
- Autonomous_ctrl - This package consists of control scripts used to control the drone autonomously using mavros for delivery.
- Navq_csi_camera - This package is used to retrieve the navq camera stream and convert it into ros message and compress it for transmission with less delay. When camera is accessed remotely using ROS there is a huge delay in video stream. Thus this package can be used to access video stream without any huge delay
- pkg_ros_iot_bridge - This package is used to send the MQTT and HTTP request from the drone to the server for updating ting
AUTONOMOUS CONTROL USING MAVROS WITH NAVQ:
During the build numerous problems, the team has encountered.
- Issue 1(Motor issue) : During the build we came to notice that one of the motors has a damaged winding, hence the motor was unfit to use in the drone. We came up with the solution of replacing all the motors with another 4 motors having thrust more than the previous once.
- Issue 2(wobbling of the drone) : During the first test flight the team noticed that the drone wasn't stable and could show wobbling. To solve this issue the team reconsidered all the aspects of the project by breaking down the problem into simple terms. The team also analyzed the log data/ flight data, vibration analysis etc. From the examination of the data and troubleshooting around the internet the team came to a conclusion of adjusting the PID values would fix the wobbling issue. The next flight test took place with the updated values of PID, the adjusted value fixed the problem.
- Issue 3 (landing gear issue): The basic land gear provided with the f550 frame is not that efficient since the gear is attached to the centre of the drone. Because of this there are a lot of possibilities that the drone would lean towards one particular side and fall during landing. The landing gear couldn't stand a great impact while landing. Therefore we came up with the new frame design where individual legs are attached below each arm. This design is more efficient and completely prevent the drone falling towards one side.
10. Future Developments
Gps denied integration
In Hilly areas and dense, tunnel areas GPS is usually not reliable thus limiting the drones to only navigate in GPS areas. But these areas have an increasing demand for aerial works like delivery, rescue etc.
By using Visual Inertial Odometry Technique, we can make the drones to navigate even in GPS Denied Areas.
https://drive.google.com/file/d/1zpZwl_VIAqosBAxxcLsGpdvAyJTEw2Cs/view
Comments