Autonomous recharging and docking for multirotors

A system that enables multirotors to dock and self recharge which allows them to perform longer autonomous missions

Similar projects worth following
Multicopters are good because they are cheap, simple and if equipped capable of doing remote sensing

My system attaches to the bottom of current apm systems and allows them to land on a user defined target (example targets provided) and when equipped with the supplementary electronics allows for recharging

This means that the copter is now capable of performing multiple missions and if combined with a ground vehicle it can be used as an extension of the ground robots capabilities thus creating a multi robot system

Example applications are
multiple copters watching an area
-environmental surveying
Can do mapping or remote sensing over a longer period due to recharge
if with agv it can move around the environment and perform a multitude of missions
-extending current agv operations
Aerial mapping / complimentary sensors
-improved aerial photography
capable of tracking a target

The cheap small GPS used on hobby UAVS are only accurate to +-5m and traditional landing systems simply move the copter to a predefined GPS location and slowly lower the craft hoping that there is nothing in the way and that the position is where you started. This is nowhere near accurate enough to allow the copters to dock and thus recharge themselves. Normally a human operator is required to move the copter from the landing site to a place where it can be recharged. This limits mission operation and requires a human operator to be physically present.

Utilizing recent advances in low power high performance computing and computer vision techniques my system will allow the copter to dock, recharge itself and when finished fly off again and continue its mission thus partially compensating for the poor endurance of multirotors.


- Design testing platform [DONE]

- Build testing platform [DONE]

- Test flightworthyness of platform [DONE]

- Design recharging electronics [Underway]

- Design vision software for landing [DONE]

- Test integration of vision system with platform [DONE]

-Test landing capabilities of platform [DONE and works within acceptable parameters] 

-Finish prototyping docking hardware [Todo}

-Finish prototyping docking electronics [Todo]

  • 1 × Hexacopter More detailed parts list is in the detailed design document
  • 1 × Odroid u3 computer
  • 1 × Pixhawk autopilot
  • 1 × Usb webcam Genius F100 wide angle webcam
  • 1 × Sonar MaxBotix XL-EZ0

  • Final product design outline

    Giovanni Durso09/28/2014 at 04:15 0 comments

    The goal of my project is to provide a system that consists of a docking cone with wires that your batteries including their respective balance leads will be connected to that mounts to the bottom of multirotors. Inside the cone there will be a wide angle webcam, sonar and a single board computer. Onboard computer connects to a flight controller over UART using mavlink packets and it is expected that the flight controller is using the arducopter firmware version 3.1 rc7 (or a version that has sonar support for your chosen flight controller). 

    (Prototype rendering of the system)
    Currently I am designing it for the F550 frame from hobbyking which is a knock off of the DJI H550 frame with a set of tall springy landing skids (they are useful for rough landings and have saved my hex  a few times) ,but the design can be easily adjusted to fit other frames by changing the parameters(height, width, angle and spacing of connection rings) of the docking cones.
    The system may not be suitable for small multirotors as it weighs approximately 500g, but this weight could be reduced in later versions as I am not optimizing for weight due to tight time constraints and prototyping.

    Integration with arducopter

    At a later date when the project is more mature I am going to make further modifications to the arducopter software to add in configurations to allow easier external control and integrate my offboard controller more into the firmware to allow easier integration for people who want to use this system.

  • Current testing progress and results!

    Giovanni Durso09/28/2014 at 04:13 0 comments

    As part of my testing a rig has been set up in the front yard involving a rope between the roof and a tree in the yard which allowed me to test the copter repeatedly and ensure that any changes I made don't destabilize the craft or cause fly aways. Once the software has been proven to not cause problems and the copter had managed to perform its task while tethered a few untethered flights were performed in a reserve far away from people, power lines and buildings.

    It has been a slow and long process ,but finally I have managed to achieve a set of results that can be considered a working prototype system. The copter has been able to reliably detect and center itself over the target them bring itself down onto the target with a 10cm error outdoors which should be fine as the docking station is being designed to deal with that much error. Currently the system is a little slow with actuating itself over the target but this is past of slowly building up confidence in the system and taking it slow for safety reasons both for the copter and myself.

    Possible improvements:
    I can also improve my results when I switch over to a better state estimation when I can finish off the EKF design and I think velocity based control  for the positional control will work better than attitude based. As well as implementing a sliding mode controller rather than cascaded PID loops

  • Prototype docking station design

    Giovanni Durso09/28/2014 at 04:04 0 comments

    In order to achieve the task of docking a multirotor for recharging a custom docking station had to be designed. Several designs were considered against the requirements in order to select the most appropriate.

    Read more »

  • Visiual detection of landing target

    Giovanni Durso09/28/2014 at 03:46 0 comments

    Vision can be a very complex problem and when you add in the requirements and restrictions from the multirotor it can be very hard to find a suitable algorithm.

    Read more »

  • Simulation of autonomous landing

    Giovanni Durso08/21/2014 at 02:23 0 comments

    Using the free vrep simulation environment and my access to matlab and simulink via the university the simulation model of the copter has been developed and I can work on designing vision based control algorithms without the risk of crashing copters.

  • Flight tests of autonomous platform

    Giovanni Durso08/21/2014 at 02:07 0 comments

    The autonomous platform was assembled based on the design documents and all the electronics were validated in the lab. Once the system was confirmed to be working the platform was taken out to the ACFR test area on the Marulan farm.

    A number of tests were performed and the pixhawk running the arducopter firmware performed as expected.

    Preliminary testing of the visual system was started ,but the software integration requires more work and the addition of more failsafes to deal with fail cases

  • Selection of onboard computer and autopilot

    Giovanni Durso08/21/2014 at 02:04 0 comments

    After considering the options avalible the three best possible solutions which are very close are the udoo, odroidx2 and the BBB.

    The odroidx2 is the most powerful processing unit by far it is almost twice as powerful as the udoo and almost 7 times as powerful as the BBB (assuming that all the cores are fully utilised) it also has twice and four times the offering of ram as the others.

    The downsides of the odroidx2 is that it does not have tha ardunio envrionment avalible on the udoo but since the FC(pixhawk) is receiving the sensor data it does not need many gpio pins itself. Also the selected sonar sensors have the option to use pulsewidth or serial transfer. It also has 4 uart, 3spi and 8i2c ports avlialbe so there is plenty of interfaces. The biggest downside is lack of good documentation and higher complexity to get things running due to having to deal with the linux to gpio interface.

    But odroid x2 + console cable + wifi = much more powerful processing for vision / control modelling

    With the pixhawk doing stabilisation/reading sensors and parroting the data over the uart

    The selected autopilot will be either an APM or a Pixhawk

    If the official APM is used then there is no real benefit to choosing it over the Pixhawk but if the arduflier or some other knock off version is considered instead than it may be worth it financially choosing it over the pixhawk

    The final selected autopilot is the pixhawk due to the higher processing power which allows an extended kalman filter to be implemented which can lead to better state estimation. Another benefit of the pixhawk is the extra ports avalible for external sensors to be integrated with the software framework

  • Selection of multirotor platform

    Giovanni Durso08/21/2014 at 02:03 1 comment

    I have a lengthy design document for the selection and design of the copter system being used in my development. Some select sections have been posted here for documentation purposes and the document will be included with my project. 

    (link to lengthier design document)

    Read more »

View all 8 project logs

Enjoy this project?



J Groff wrote 01/20/2015 at 21:27 point

Not seeing any source code in repository

  Are you sure? yes | no

doccb wrote 11/12/2014 at 12:44 point
It reminded me about your self-charging project I read months ago when I was shopping for some home appliances ---- the little electronic gadget I came across was the iRobot Roomba Vacuum Cleaning Robot. You may want to take a closer look at their self-charging function.

  Are you sure? yes | no

Peter Gerten wrote 09/15/2014 at 06:10 point
looks awesome. Do you have the code somewhere on github? Would love to give it a try in my project.

  Are you sure? yes | no

Francesca wrote 09/05/2014 at 02:34 point
Hi Giovanni.
I'm highly interested in this project for my Start-up (we provide automated operations with UAVs) and I would like to ask you more information.
Please contact me at so we can speak about it.

  Are you sure? yes | no

Harrison Jones wrote 09/02/2014 at 23:46 point
Hey, what a cool project! I'm interested in doing something similar. My main problems I've been trying to tackle in my head is:
A, Percise and accurate landing is hard. How could we solve this?
B, Once we are landed how do we connect the 'copter to the station?
C, Once connected how do we charge the copter in a way that is responsive (the copter needs to know the state of charging)?

Have you tackled any of the above? I'd like to share information.

  Are you sure? yes | no

Giovanni Durso wrote 09/03/2014 at 03:02 point
Hi Harrison, thank you for the support.

A - This is a fairly complex problem and there are a wide variety of approaches you can use which depend on the exact system you are using. A number of considerations such as what sensors you are using, the amount of processing power you have available(onboard or offboard), your operation environment, the requirements of your landing (accuracy, orientation, is it moving etc) and a number more.
For my system above I am using an approach called vision based closed loop control or visual servoing. I detect the target using some computer vision algorithms and then feed the detected marker into a controller which tells the copter how to move to center itself over the target. I am going to be putting up some project logs and documentation soon explaining my approach in more detail so i'll spare you an even larger post here.

B- I havn't solved this problem quite yet, but I have been looking at some designs and drafting things.
There seems to be three main approaches for this:
1. You have a conductive material on the legs and the target and when you detect a connection you start charging

2. You do a battery swap. Your UAV lands on the target and a mechanism engages which drops the batteries out of the UAV and another one swaps in freshly charged ones then off it flies. The landing pad takes the drained batteries and loads them into a carousel and charges them while waiting for another craft to land.

3. Use wireless or inductive charging and have the coil lower from the craft to touch or put coils on the landing legs (it depends on your design)

C- Similar to B I have looked at it ,but not yet fully implemented a solution. From what I can see there are two approaches here either when the copter detects a charge it shuts itself down and charges and once the charge is complete turn the copter back on either by coupling the power lines to the computers to a relay which gets switched during charging or putting them into sleep mode and using something like Wake Over Lan to wake them back up.
Alternatively the electronics can be kept running and your charging circuitry needs to be capable of detecting the load caused by the computers during the charge operation and compensate for it.

Hopefully this starts to answer your questions and if you have any more feel free to ask :)

  Are you sure? yes | no

seesemichaelj wrote 08/26/2014 at 23:47 point
Man, I already have a semi-working system that does this! I did this for my undergrad senior design project along with 11 other engineers. We did the high-fidelity landing (controls needs working) and recharging system. Unfortunately, it's proprietary information and a group project and could not have submitted for HAD. This is cool; please contact me at I would like to ask you a couple of questions.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates