Sphero Swarm
Last updated
Last updated
Autonomous Robotics Club, 2024
We are partnering with Imagination Station and Professor Severin to create an automated robotics-based educational display for students. Our goal is to use a swarm of ~30 robot "Sphero" balls to produce visually appealing and interactive molecular formations on a grid. We plan to also have a graphical user interface for users to interact with the display, where they will be able to choose which chemical formation to display, and by the simple click a of button, watch the autonomous movement. We hope this unique application will enhance education for children in a fun and visual mode!
The Sphero Bolt is a spherical robot that includes a gyroscopic sensor, accelerometer, an LED matrix, among other features. It can be connected and interfaced through the Sphero application, however, in order to control the large among of robots, we bypass the UI.
An example molecular formation we aim to create is shown below:
This project consists of five sub-teams: controls, algorithms, perception, hardware, and interface. Controls handles the connection and movement of the balls on the field. Algorithms works on path planning and mapping out the most optimal route for the robots to take when displaying each formation. Algorithms also takes into account error correction in the case of a faulty movement occurring. We plan to have a camera mounted over the display, which Perception (focused on computer vision) uses to track the Spheros during their movement, and send the relative positions back to algorithms. Hardware handles the design and prototype of the grid the robots move on, integration of the charging stations, as well as any other non-software related task. Lastly, Interface creates the user interface desiged to easily choose different molecular formations and interact with the display.
Completed thorough testing on the Sphero balls
Discovered and learned spherov2 module to control balls
Successfully connected to and able to control two robots simultaneously through bluetooth and multithreading
Decided on A* path planning to use for the algorithm
Built a simulation of a test grid and test Spheros creating a molecular formation using Pygame
Created the list of polymers we hope to display
Optimized circle detection algorithm for identification of balls
Created custom algorithm to identify and track 3+ robots on a field using OpenCV and Python
Looked into camera options and set up for placement of camera on field
Conceptualized field and charging layout (charging for sphero bolts)
Manufactured first full field prototype
Created node and path design for field
Used Flutter to create the interface that will be used to choose molecules to form
Created multiple screens such as the Molecule List View and Molecultes View on the app
Successfully connect and control 5+ Sphero bolts
Implement a stream set up for commands; potentially rospy
Begin feedback control to optimize movement
Interface with Hardware about field material to slow ball movement
Determine final positions of polymers for N sphero bolts
Use A* in modified setting to precalculate each Sphero's route from beginning position to final destination
A* fails to account for dynamic environments and moving obstacles, although we plan to initially begin automation by moving one bolt at a time, for the future we may need to look into other mapping algorithms
Deal with edge cases in tracking algorithm; currently there are issues regarding having a set number of balls and balls leaving and returning the screen
Interface with algorithms about error catching and the format of the positions to send back to them
Test tracking algorithm on 5+ Spheros
Integrate charging station concept into grid prototype
Integrate perception camera into display and design mount
Complete final designs of each concept
Finish designing all pages of user interface
Finalize list of molecules (interface with algorithms)
Work with Controls regarding sending bluetooth signal to Spheros