In January 2017, a few undergraduate engineering students at the University of Toronto learned of the RoboCup International Competition, and were inspired by the vision it was founded upon—to have a team of autonomous humanoid robots beat the most recent champions of the World Cup by 2050, in full compliance with FIFA rules. Upon noticing there were no teams representing Canada in the competition, the first plans to start a robot soccer league began. In the summer of 2017, a team of inexperienced—but determined—undergraduate engineering students came together to create the first iteration a robot which could one day achieve RoboCup’s founding goal.
This page presents our team’s faculty advisors and subsystem leads, who are contributing to this effort to make a name for Canada in robotics, AI, and “robosoccer”.
Professor. Jonathan Kelly – “Professor Kelly’s research is focussed on developing robust autonomous systems that are able to operate independently over long durations in challenging environments, for example, in space, and on remote planetary surfaces. He is also interested in ‘bringing space robotics down to Earth’, by emphasizing opportunities for technology transfer from space systems to terrestrial robots.”
Professor. Gabriele D’Eleuterio – “The primary interest of our group is multiagent systems. We have worked on a swarm of robots working cooperatively to accomplish a common goal such as autonomous excavation, developing robotic control strategies based on neural networks that mimic the brain, developing flying robots that could one day explore Mars, and striving to understand better the dynamics of evolution. In this way, not only do we hope these techniques to have a greater impact on the artificial world of robotics but perhaps we can also give back to the field of biology. It is our Group’s mission to foster robotic life.”
Electrical & Hardware System
Team Lead: Shahryar Rajabzadeh (3rd Year ECE, PEY) and Jeff Ma (3rd Year ECE)
The electrical & hardware team is responsible for designing the circuits for the robot. This includes parts selection, PCB design using Eagle, and assembly. Over the 2017–2018 year, this culminated in the creation of a single PCB that contained all the circuits for the robot.
The electrical & hardware team also works on several other projects, including:
- Developing custom and semi-custom servo motor solutions to significantly reduce the cost of our humanoid robots while providing flexibility for our mechanical and control systems design.
- Designing and improving the microcontroller board that sits between the main computer and servo motors as well as various sensors. The areas of improvement include shrinking the size of the PCB as well as improving the communication link between the main computer and the board by using Ethernet rather than UART based solution for improved reliability, throughput and latency.
- Developing printed circuit board manufacturing process using lithography to boost the speed of circuit prototyping for testing proof of idea for various incremental improvements for our overall designs before they get integrated into the final product.
Current members: Jorge Armijos, Diego Amores Vargas, Xiaoxue Xu, Chi-Hong Cheung, Edward Luo, Mohamed Hirole, Derek Lam, Tom Luo
Past members: Omer Faruque
Team Lead: Tyler Gamvrelis (3rd Year ECE, PEY)
The embedded systems are the “spine of the robot”. While the high-level software determines how the robot should behave, and the control systems determine how the robot should move, the “spine” is what actually distributes the motion commands to each actuator (joint), and collects sensor data for feedback.
The embedded software is written in C, documented using Doxygen, and uses FreeRTOS to provide multithreading capabilities. I/O is DMA-based where possible and interrupt-based otherwise. Development is primarily done using a STM32F446RE microcontroller on a PCB designed by the electrical team, as well as on Nucleo-L432KC and Nucleo-F767ZI development boards.
The major projects we completed over the 2017–2018 year were:
- Overall algorithm for the embedded systems
- Dynamixel AX-12A and MX-28 libraries
- MPU6050 library
- Communication interface between the microcontroller and on-board PC
Current members: Gokul Dharan, Hannah Lee, Robert Fairley, Sherry Chen
Past members: Jenny Yang, Izaak Niksan
Team Lead: Jason Wang (3rd Year ECE, PEY)
There are many many aspects in consideration of the software systems. The 4 layers of the robot are
- Data Acquisition
- Data Processing and Perception
- High-Level Control (Path Planning) and Strategy
- Feedback Control
The Robocup small-size is no ordinary student competition. They limit the perception and thus the use of sensors to only those that are possible by humans, meaning that we cannot use any fancy LIDAR or sonar distance sensors. These limitations help delineate the architecture and structure of the robot.
At UTRA Robosoccer, our current projects in defining the robot include
- Utilize state-like decision for robots to be able to change their original plan of action based on external circumstances (such as a ball coming into view)
- Experimenting with reinforcement learning to improve the robustness of the robot’s walking capability.
- Using state of the art localization and path planning algorithms to make the robot robust while its making a decision.
Current members: Farwa Khan, Mariko Tatsumi, Carl Zhang
Past members: Justin Yuan, Yuchen Wu, Newton Xu
Team Lead: Sabrina Lokman (4th Year Mech, PEY) and Nam Nguyen (3rd Year Robotics, PEY)
The mechanical subsystem is responsible for designing and manufacturing the robot’s physical form. The robot is actuated by 12 Dynamixel MX-28 and 6 Dynamixel AX-12A servos. There are 6 MX-28s per leg, 2 AX-12As per arm, and 2 AX-12As for the head. All the electronics are embedded in the torso.
The robot design lives in Autodesk Fusion 360. All rigid components are manufactured using UTRA’s 3D printers, which improves consistency and reduces labor.
Current members: Robin Lin, Nyk Blozowski, Hailin Wang, Max Hadley, Skye Zitian Wu
Team Lead: Lukas Zhornyak (3rd Year Robotics, PEY) and Daniel Campoverde (3rd Year ECE, PEY)
The control systems are what make the robot walk, kick, and get up from a fall. Walking is accomplished through the following stages:
- Body trajectories: generates the path that the body will take, given an initial and desired pose
- Footstep planning: determines where the feet will touch the ground while traversing the path
- Foot trajectories: given the positions where the feet will touch the ground, this stage computes the positions of all the actuators for each step in time. The result of this stage is a vector of angles—one element for each actuator—which is fed to the embedded systems for realization
- Body sway: walking is accomplished by centering the robot over one of its feet, then moving the other foot forward; naturally, this causes the body to sway side-to-side. To compensate for this, an exponential smoothing filter is used to decrease the abruptness of this motion
Specific actions such as kicking are implemented as transitions between several statically stable states. These transitions are discretized with a constant time step and interpolated by fitting 4th order Bezier curves.
MATLAB, Simulink, and systems theory are used extensively in this subsystem.
Current members: None
Past members: Jeffrey Qiu, Samee Mahbub
Next Generation / Omnibot Team
A partnership between the software and embedded teams, this group is responsible for creating a simplified platform using a four-wheeled chassis to test all of the software components running on the main computer, excluding the bipedal motion.
Current members: Hannah Lee, Sherry Chen, Shahryar Rajabzadeh
Past members: Nabiha Tahsin, Safeerah Zayneb, Aninda Poddar, Russell Wang