Does this project spark your interest?

Become a member to follow this project and don't miss any updates

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

This project was created on 08/21/2014 and last updated 6 months ago.

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

Project logs
  • Final product design outline

    6 months ago • 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!

    6 months ago • 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

    6 months ago • 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 »

View all 8 project logs


J Groff wrote 2 months ago point

Not seeing any source code in repository

Are you sure? [yes] / [no]

doccb wrote 5 months ago 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 7 months ago 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 7 months ago 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 7 months ago 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 7 months ago 1 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 7 months ago 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