by Kyla Qi.
This semester saw a lot of progress for our RoboCup team. The international competition of the same name in which they compete is still on for 2021, but will be taking place online.
Thanks to a new printed circuit board assembly (PCBA) sponsorship from ASEI and the hard work of our electrical subteam, an entirely new fleet of bots were made electrically ready over 6 months before competition day. Six different boards were assembled in parallel, and more complicated boards were ordered pre-assembled. The ASEI sponsorship helped acquire PCBA for 20 mTrain boards, 5 control board prototypes, and 15 control boards and 15 kicker boards for a full fleet of robots.
The electrical subteam has also successfully prototyped ball proximity sensors – called whiskers for short – that will be placed on the front of each bot to detect the precise location of the ball relative to the bot. The primary problem this solves is the loss of precision in cases when the field camera’s view of the ball is being blocked by a robot. The sensors will also reduce the latency of the bot’s response to the ball’s location. Normally, the ball location information is received from the field cameras and passed to the central computer, which then commands the robot to move via radio. The proximity sensor’s PCB design (pictured above) is ongoing, and the team plans to complete its production in the spring semester.
Work also continues on our in-house microcontroller known as mTrain, primarily on the firmware side. In a collaboration with RoboRacing this semester, electrical members worked to build system files that could be used with STM32-based MCUs like the mTrain in an effort to make RoboCup’s firmware stack more developer-friendly. This will also be useful to support API functionality for those devices with minimal work from future developers. Finally, to assist the mechatronics subteam, electrical members also created a device for testing the effectiveness of the robots’ kicks by measuring ball speed as it shoots through a tunnel of sensors.
This semester, the software subteam designed a new and more intuitive gameplay system. The previous system had a number of drawbacks, including a lot of hard coded logic; for example, some types of passes were defined by referencing an exact point on the field. The new system aims to eliminate these hard coded definitions by optimizing over cost functions to find an ‘optimal’ pass, shot, position, etc for the given situation. The team also wanted the new system to be easier for new members to work with, as some aspects of the system were happening in the background, like the process that assigned bots their roles on the field. This resulted in the rest of the gameplay logic being implicitly constrained in ways that were opaque to a developer that was new to the codebase. In the new gameplay system, role assignment is more explicit so members are able to see which role robots are assigned and why. These pieces of logic will also be implemented as cost functions which are optimized over the robots.
Other major work being done by the software team includes successfully moving most of the codebase to ROS 2. This effort was facilitated in part by a successful transfer of knowledge from other RoboJackets software subteams like RoboNav and RoboRacing, which have years of experience working with ROS. Additionally, RoboCup is in the process of setting up an automated testing system to cut down on time spent on manually testing code.
The mechatronics subteam, newly formed as of the fall semester, is already paying dividends as RoboCup has begun prototyping in-house again. Previously, all manufacturing was outsourced to ensure uniformity of the robot fleet, but this resulted in less hands-on machining experience for RoboCup mechanical members. This semester, they have been training their members on the common machining area (CMA) machines, including mills, lathes, and waterjet, and have used their new capabilities to experiment with variations on each subsystem to optimize the robots’ designs. Like the electrical team, the mechatronics subteam has been pushing hard to get the fleet ready, with five bots assembled and ready to go for testing in the spring.
A major achievement was the subteam’s work to optimize the ratio of kicker boot to plunger. Theorizing that inconsistent behavior of the kicker was due to less magnetic material being inside of the solenoid, the team purchased a variety of plungers and boots, and after some experimentation (pictured below) found that the longest plunger gave the most consistent and fastest results. The mechatronics subteam is also in the process of troubleshooting the bots’ new dribbler design, which they found interfered with the kicker inside the robot and blocked the solenoid plunger from coming out. After some prototyping and 3D printing, the subteam lead, Alyssa Gordon, states that they have a solution but are still trying to optimize the design further.
The mechatronics subteam is also experimenting with the bots’ center of mass to eliminate some issues with motion control. The current bot design places the rear wheels further from the center of mass, resulting in those wheels getting less traction. Without an even weight distribution, the robots’ rear wheels tend to spin out when trying to move sideways, causing the robot to spin in place. By moving the center of mass backwards – currently being prototyped by adding brass plates to the back of the bots – the traction force is balanced between the front and rear wheels and prevents this loss of control.
Despite the challenges imposed by COVID and disappointment of the competition moving online, the RoboCup team has had a successful fall semester, with almost a whole fleet ready for software testing in the spring, the new mechatronics team making valuable contributions while moving manufacturing back in-house, and each subteam progressing impactful projects that will continue into next spring.