Skip to content
Gallery
Portfolio
Share
Explore
Current Projects

icon picker
Battery Swapping System for Autonomous Floor Robots

The idea for this project sprouted from initial conversations I had with Dr. Dai when I joined the . I wondered, if instead of charging the drone, we could just carry more batteries, and swap the battery when a small drone would dock onto the larger one. This is ultimately a further step in this teams research, and while out of scope for the currently project, it really got me thinking.
There’s food delivery robots around campus, and someone has to deal with them at the end of the night. There’s likely hundreds of thousands of floor robots moving stuff around warehouses 24/7, and they have to recharge somehow. I looked into Roomba’s, Boston Dynamics’ Spot, and many other robotics, which all seem to have the same charging solution: Docking, and charging. I found this presents a lot of challenges.
Most of these robots have to charge for a much longer time than they run for. Roomba, for example, charges in 2 hours, and can only run for 1. In a warehouse setting, if you need X amount of robots in operation at any time, then you typically have 1 of 2 routes to take; Either you get more robots, or you charge faster. In either way, you face lots of additional costs. More robots: more maintenance, more space required, more people required to maintain. Faster charging: higher risk, shorter battery lifespan. What if you could separate the robot from the battery? Well, that was the idea.
By swapping the battery, a few stations can repower several robots in a matter of minutes. You cut down your floor space required for charging, since you don’t need a bunch of robots sitting around in chargers. You also reduce the number of robots needed to operate at the desired level, since you don’t need extra to be out there while others charge. Not only are we cutting floor space and robot count, but we can also manage the battery better. Since we aren’t needing to fast charge, we can store the battery at a perfect voltage level until we know it will be needed, and then trigger charging. This system would let us charge batteries slowly, helping to maintain a long lifespan, while also minimizing the time the batteries spend at a high or low amount of charge, 2 factors that can lead to further battery degradation.

Final CAD


image.png
CAD
(Below, First Prototype Design)
image.png
image.png
Physical Prototype

Our system was comprised of 5 main subassemblies and a software side:

1. Swappable Battery

image.png
The Swappable Battery was the primary component for this system. It can be placed in or pulled from the Robot or Charging Bays, and has a rear panel interface for a grabbing mechanism that also serves as a lock when in the robot to prevent it from falling out.
Due to time and budget restrictions, we developed our plug interface to work with common XT-60 and JST-XH connectors.

2. Demonstrator Robot

image.png
image.png

The Demonstrator Robot, or “Demon” for short, was our functional robot to showcase the rest of the system. A key component was that our entire system could function without human intervention, so what better way to show that than with an actual robot!
The robot takes in power from the swappable battery, sand steps the voltage down to 12 V. The microcontroller is an ESP32, with an ELRS receiver connected to my transmitter to drive it around. The ESP controls an L298N H-Bridge Motor Controller to power our 2 DC motors.
When the robot would be ready to swap the battery, it drives into the system, guided by a funnel that aligns the robot. Upon detection the robot has docked, servos in the funnel grab the robot to lock it into place.
The idea for the robot was in the future, it could serve as a template vehicle which could be modified to suit customer needs, while still retaining the swappable battery port.

3. Frame

image.png
The frame is inclusive of several misc. components. That includes the 8020 itself, the funnel that guides the robot and locks it into place, the chargers mounted to the side, and the microcontroller / motor drivers mounted on top. It is quite compact to meet our desired space criteria (The goal was 1 station was less than or equal to the length x width of 2 robots.)
An Arduino Mega is the primary controller of the whole system, and communicates with a python script that I’ll discuss later.

4. Elevator

Untitled.png
The elevator was the sub-system responsible for moving the battery between robot and charging bay. See the bottom for testing of this component. It consisted of 2 leadscrews, 3 limit switches, 2 servos, and 2 encoders to track position, and grab/move the battery housing between locations.
Final Version
image.png
Below, An early iteration
image.png

5. Charging Bays

image.png
Charging bays were where the batteries were placed for charging. They were connected to chargers (Blue squares hanging off the sides), and the data off those chargers was being pulled into a python script to read battery info.

6. Software



Testing
IMG_3169.gif



Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.