Guest Blog: UBC Thunderbots

Guest Blog: UBC Thunderbots

UBC Thunderbots is an engineering design team at the University of British Columbia, where students create and compete with autonomous soccer-playing robots. Since the team began in 2006, we have been continuously improving our robots so we can then compete on the international level at the annual RoboCup competition. After years of hard work, we won first place in our RoboCup soccer league and division (SSL Division B) in 2019 and 2021.

Over the past year, we saw the chance for improvement and took on a complete robot system redesign – from creating new PCBs, to reimagining mechanical systems, to implementing new and improved software strategies. Using Trinamic solutions, we recently completed a total redesign of our robots which allowed us to compete this past summer at RoboCup 2022 in Bangkok, Thailand.

Our robots need to be able to maneuver around obstacles, control their speeds, and dribble the ball down the field to play and score goals. To do this, we use five BLDC motors on each robot: four that are mounted on the robot’s base to allow movement, and one as the dribbler that keeps the ball in its possession.

Since RoboCup is a rapidly evolving tournament, we realized that we needed to completely redesign our robots in order to remain competitive. One of the major upgrades we needed to implement was FOC (Field Oriented Control), allowing us to more precisely and efficiently control our motors. In the past, our motors were controlled with simple MOSFET gate drivers, which did not provide us with as much feedback or control as we could have. Additionally, we decided to use the NVIDIA Jetson Nano as our onboard computer and wanted to take advantage of its SPI capabilities instead of using many GPIO pins for communication.

After evaluating many different options, including testing with an evaluation kit sponsored by Trinamic, we designed a brand-new Motor Driver board using TMC6100 gate drivers and TMC4671 controllers. Thanks to its extensive documentation, we based our design on the TMC4671+TMC6100-BOB. After successful tests with this break out boards as well as the evaluation kit using its USB-2-RTMI adapter, we began designing a PCB with these components. We selected the TMC6100 due to its appropriate voltage rating (our motors are nominally rated for 24V), SPI communication and fault readouts, and flexibility for selecting gate MOSFETs. The TMC4671 was selected thanks to its FOC abilities, fast PWM engine, and SPI communication.

A unique challenge faced in our design was that this single board would house all 5 of our motor driver and controller circuits, including other required components such as digital isolators, buffers, multiplexers, inductors, and connections to other PCBs and our onboard computer. We also had to consider the effect of noise on high-speed signals including SPI, which affected the layout of our board.

Another challenge came about due to a component shortage occurring while we were designing our board. Unfortunately, many of the parts used in the TMC4671+TMC6100-BOB were not in stock, so we had to evaluate and test many different options before creating our final design.

Testing the new Motor Driver board (shown in the center) with the other electronics of our robots

To reach our final design, we created and tested 3 revisions of the motor driver board. An early revision included manual switches to select between hardware and SPI configuration for testing, and finally, we designed a purely SPI-based 6-layer PCB with added protection circuits, safety features and indicators, and an improved layout to minimize noise and signal loss.

After many hours of testing and troubleshooting, we were able to successfully use our design in competition at RoboCup 2022! Our robots were able to move and dribble thanks to these new solutions implemented in our Motor Driver board.

While the new Motor Driver board is an overall success, there is always room for improvement, and we aim to fix some issues in another revision later this year. Since RoboCup 2022 was the first time we used this new and improved fleet of robots in action, we learned a lot about what we need to work on from this competition. For example, we found that some motors would stall or fault unexpectedly. Thankfully, the built-in fault systems in the TMC ICs saved us from breaking motors. UBC Thunderbots managed to achieve 5th place in our division at RoboCup 2022, and we are currently working hard to fix these issues, add new improvements, and reclaim our title as Division B Champions at RoboCup 2023 in Bordeaux, France.

Trinamic was instrumental for us successfully completing our motor board redesign this past year, as they not only provided us with a TMC6100+TMC4671-EVAL-KIT, but also 50x TMC6100-LA and 80x TMC4671-LA components, all free of charge. Not only were they generous in sending us these parts (during a chip shortage no less), but they were very accommodating to give us expedited shipping as our competition date drew nearer.

The UBC Thunderbots team is very much looking forward to working with Trinamic again, and we are excited to showcase our new designs and competition results in the coming year!

Meet Robert, a member of the UBC Thunderbots fleet