Projects /

Mustang Minibots

RESEARCH ART CV PROJECTS

Project Overview

A common challenge FRC teams face is how to introduce and teach programming concepts in an engaging and effective way, while also allowing students to become familiar with the tools needed to write robot code in build season. In that regard, Team 670 has developed Mustang Minibots, an accessible platform for giving students hands-on learning experiences in programming and preparing new coders for build season.

The purpose of this paper is to provide publicly available documentation on the development of our Minibots, which we invite other FIRST Robotics Competition (FRC) teams to experiment with.

Minibots aids us in achieving our goal of teaching our new members about various programming concepts, which could be used on the robot built during build season. Moreover, it acts as a platform for testing new ideas without requiring access to an FRC robot or expensive hardware.

Our Approach

This project provides new Java coders with a great opportunity to put command based programming skills in use. Members will develop a strategy, plan and implement algorithms, assemble the Minibots, and learn about electronics in a process designed to resemble build season development. Additionally, concepts commonly used in FRC programming such as PID control can also be taught. The robot is small enough to fit inside a backpack, and thus is a super portable platform for coders to test teleop code and vision systems during build season.

The build

The goal was to make something that wasn’t very resource-intense, as in we could make this with easy-to-find parts and materials that already existed in our shop. On the mechanical side, we used aluminum stock and plastic, and 3d printed all our wheels, and we had our programming team members actually assemble the minibots during our workshops. Since the FRC control system is pretty darn expensive (a Roborio is $400+), we went with using Raspberry Pis to control the minibots, with a motor shield and 12v DC motors with encoders. The total cost of each minibot was around $100, which is pretty affordable as a robotics platform goes.

Here’s the wiring diagram in fact, it’s real simple and we also have space for adding IR and ultrasonic sensors.

More pictures from the build process and a photo of the electronics too:

The software

Ah yes, my domain! We wanted to familiarize our members with the interface we use for our actual robot code, so the process of coding for the minibots should be as similar as possible. What I ended up doing was creating MiniLibJ, a version of WPILib which can run on a Raspberry Pi. Of course that meant doing away with HAL and bringing in additional outside libraries for controlling motors through the motor shield (and thus Pi GPIO).

The current MiniLibJ includes the following packages from WpiLibJ2:

MiniLibJ can be found here!

Additionally, since the Raspberry Pi 3B has WiFi capabilities and hence can be used to create its own hotspot by setting up the Pi as a Wireless Access Point (WAP). Alternatively, the Pi can be connected to a WiFi router and a static IP can be assigned to it. Using this, the Driver Station (DS) Laptop can be connected to the router in order to deploy, enable or disable the robots using its static IP address.

Speaking of Driver Station, we worked on creating something for connecting to, enabling and disabling the minibots. It can run on both Windows and Mac, and although it is currently in its development stage but will soon have capabilities to deploy code, view logs, view battery level, view Joystick inputs, teleop-control, and more.

So…

Our first minibot joining the ranks of Team 670’s robots…

After all this, we added a fleet of 5 minibots to our team…