Cal Poly Pomona's Battery Vending Machine

Hi everyone, we are the BANSHEE UAV Robotics Team from Cal Poly Pomona’s College of Engineering. We are back again for this summer, as the team will be working on making a battery vending machine from utilizing the robotic arm provided by ROBOTIS. Sadly, it is not actually like those soda vending machines but more of a changing station. The BANSHEE UAV team uses 4C 4000mAh LiPo batteries, which are dangerous when placed in close proximity to each other. Our goal is to find a way for the batteries to be arranged in an organized fashion while allowing us to charge, monitor, and store them securely.

And hello again, my name is Bethany and I am one of the people in charge of logistics. I will be releasing the team’s progress when the deadline comes up. It is exciting because we have many new members who are working with us on the project and I hope to document everyone’s progress along the way. Since everyone is starting out with their assignments, this week’s updates will be brief.

6/5/2022 Update
For the past few weeks, we attended the ROBOTIS and sub-team meetings. The project leaders went over the work distribution chart and by using that information, tasks were assigned to everyone.

  1. Power team
  • Brainstorm ways to keep batteries apart
  • Create a circuit that charges the 4S LiPo battery
  1. Hardware team
  • Find a way to extract information from the battery
  1. Software team
  • Write a python script dealing with data sent across the network
  1. Manufacturing team
  • Develop a method to insert and eject the battery

Hi everyone, this is Bethany and I hope everyone has been well. Today, I am here with updates of the team’s progress on the project.

6/19/2022 Update
The team has been actively working on the project and despite some setbacks, the sub-teams have begun to design physical components required to complete the task.

1. Power team

  • Design a circuit used to individually charge each cell of the LiPo battery
  • Create a circuit that discharges a 4S LiPo battery
  • Develop a circuit to balance the 4S LiPo battery

    Figure 1: Remade version of the single cell balance-charging circuit

2. Hardware team

  • Develop a script that communicates JSON data through the sockets
  • Write a python script so that the equations used by the robotic arm can be translated into code
  • Discussed and learned about inverse kinematics

    Figure 2: Connection between server and client

3. Software team

  • Write a market detection script that detects ArUco codes
  • Write a python code to detect ArUco codes using the OpenCV Library
  • Created the UI design of the interface

    Figure 3: Market detection script locating multiple ArUco codes

4. Manufacturing team

  • Improve the stability of the robotic arm
  • Find a robotic arm that can withstand the current payload
    unnamed (3)
    Figure 4: A cylindrical robot, which is capable of handling large payloads

Just letting you know the typo

Write a market (-> marker) detection script that detects ArUco codes

Seems that you are using the MX series or AX series, It would be great if you can share the summary of your components used, and some video clips !

Nice project though anyway :slight_smile:

ps. It’s interesting that the vending machine with 6-axis manipulator arm.

Is your vending machine application is the same as a vending machine picking product by user choice like a picture below?


Hello, and thank you for taking interest in our project! I’m Chris, the project lead for the team at CPP, and can answer some of the more technical questions that you may have.

Regarding the equipment from ROBOTIS, we are using the Open Manipulator X. In our previous project (autonomous power replacement for UAVs), we have designed a system to take batteries from our drone and placed them in a side compartment for storage. The links below take you to the videos demonstrating their functionality.

OpenManipulatorX Battery Swap Test
4S Lipo Battery Placement Animation

For this project, the term “Battery Vending Machine” is a blanket term for a much deeper dive into battery storage, charging, discharging, and data extraction mechanisms. With a single command, the robotic arm autonomously replaces a discharged battery given to it with a newly charged battery from the storage area. Therefore, the design is not necessarily to dispense batteries, rather it is to control and replenish our supply of 4S lipo batteries in order to power and extend our UAV’s flight times during a mission.

The robotic arm (OpenManipulatorX) is a multipurpose arm, and we have plans to utilize it for means other than battery handling (such as replacing drone parts).

I hope this answers your questions, and I thank you again for your interest in our project!

1 Like

Given two video links very helped me understand the concept of your battery charging station !!

What interesting thing is the marker dection algorithm ArUco ! Feel like I use it later for my simple project for CNN later.

Thank you for your reply! Please feel free to visit our Github repository for this project, where we are publishing open-source code that powers our electronics. We will update this thread once every week with new updates, so you are more than welcome to check back for progress in all aspects of the battery vending machine. If you have any more questions to our project, feel free to ask. Thanks again!

CPP Battery Vending Machine Github Repo