For large-scale construction projects, and smaller tasks, specialized robots need to be created. So we thought, instead of making the custom robots, why not just make many small robots that can do both? This way they can team up together for big tasks, and work in smaller groups for small tasks.
What it does
Moves multiple robots in synchronization to complete a task together (e.g. lift a heavy object)
How we built it
One robot uses LEGO Mindstorms while another uses Arduino. A central program controls the movement of the robots, using OpenCV to analyze a camera feed of a region to accurately determine their position. Another program allows a user to select points for the robots to move to. The host server then sends instructions to each robot to move them to the desired location.
Challenges we ran into
As we were making this, we realized that we will need to train our own haar cascades for image recognition. This took a lot of our time, and the recognition wasn't very accurate. Although it could recognize the EV3, it wasn't accurate enough for it to move it properly. However, we were able to make everything else, like the other Arduino robot.
Accomplishments that we're proud of
One of our biggest accomplishments is the fact that we were able to give the Arduino WiFi connectivity without the use of a shield. We used the ESP8266 (a separate microcontroller with WiFi) as a bridge between the Arduino and the host. This was especially challenging because there weren't any pre-existing libraries to do this, so we had to write the code from scratch.
What we learned
We learned how to use the ESP, and to send data over sockets to the Arduino.
What's next for Schwarma
Hopefully, we can get this working properly at a future event with pretrained models and better algorithms.