top of page
Tbot_background.webp

/Robotics Projects

Soccer-Playing Robots

UBC Thunderbots - RoboCup 2024 in Eindhoven

Electrical Team - Motordriver & Power Electronics Designer

A fully autonomous fleet of 6 robots, controlled by computer vision algorithms, to play against a similar fleet of opponents in a simplified game of soccer. The target is to score as many goals as possible over two halves of a match. An overhead camera recognizes each robot on the field via its colour-coded top and sends position information to each team's centralized PC. The PC then runs the gameplay algorithm to determine the fleet's actions and sends command packages via Wifi/Radio signal to each robot's onboard computer.

​

The main electrical stack includes:

  • Central Power Board

  • "UI" board (with computer and communication modules)

  • Motordriver board

We work on a range of projects from PCB design and assembly using Altium, to firmware development, to creating modular test jigs.

​

Main goal of Motordriver Team in 2024: Design a completely new motordriver board using STSPIN motordriver chip with integrated STM32 MCU. (Current solution with Trinamic Motion Control chip requires a separate driver chip and is hard to maintain, among other reasons)

/My Contributions

Eval Board Development & Motor Characterization

eval board annotated.png

Maxon EC 45 BLDC

EVSPIN32 Evaluation Board for driving 1 BLDC

To spin the BLDC using the eval board, I completed the following works:

​

  • Ensure voltage and current supply across the board are provided correctly and sufficiently

​

  • Configure eval board hardware to work with our test setup and motor (encoder vs. sensorless, direct DC supply, logic power from STLink, etc.)

​

  • Modify the FOC firmware in C++ to match the motor's specifications

​

  • Debug faults using an oscilloscope (as shown on the left: analyzing under voltage fault, solved by limiting motor acceleration to reduce BEMF on bus voltage line)

The pure joy of seeing a BLDC spinning for the first time XD

​

When it spins, we know that all the pieces (hardware & firmware) are working properly

The speed ramp of the motor, plotted at the PWM rate. To enable this plotting, I had to manually debug the STM code and add in a missing UART register logging case: 

elecbench.png

Schematic Capture & PCB Design

(On-going)

With the motordriver chip validated using the evaluation board, the current project is to design our own PCB to drive 5 BLDCs on each robot. The first stage is to understand the system requirements and select parts with appropriate ratings. Then, I will go on to capture the schematic and develop the first version of the PCB.

(Above) Power MOSFET selection: I created a detailed analysis of various power MOSFET options for the board. Options are compared based on trade-offs between cost, power dissipation, switching time, package size, etc. A detailed calculation for power loss is included. The final selection has the appropriate specs while cutting down the cost more than 4 times the current solution. 

(Left) Bootstrap circuit calculations: Since we are changing the power MOSFET, elements in the bootstrap circuitry for the high-side MOSFET must be updated

(Left) Tentative BOM for the power stage of the motor driver

While my focus is on the power stage of the motordriver board, I also contributed to the analysis and component selections of the current sensing circuit (small signal amplification), encoder lines, etc. 

​

As we are finishing the circuit analysis and component selections, I am starting the schematic capture on Altium and ultimately aim to send a team-reviewed PCB design to JLC by the end of April :D

​

(more updates to come...)

bottom of page