Software

Embedded
The Embedded sub-team programs the control systems and algorithms of all the robots. We use the Nucleo F446RE, which is an STM32 board that we code using a framework called mbed-os. Our work involves firmware, communications protocols, controls, and algorithms.
Our controls group works on motor system characterization and PID control methods, using matlab and simulink. The firmware group ensures consistent communication with sensors and our autonomy team, using C++ and RTOS libraries. Finally, the algorithms group then uses the work from these teams to write code to control our robot kinematics and responses.
All our sub-teams work together to ship out a robot that has smooth and responsive controls for both the driver and our autonomy teams to make the best use of.

Electronics
The Electronics team manages all electronics for our robots including custom PCBs, off-the-shelf components and on-robot wiring. Our most recent project was the supercapacitor system, which is a power system that stores power in large capacitors and allows us to breach the normal limits of power for our competition.

Autonomy
Autonomy is focused on developing autonomous movement and controls within the robots. This incorporates multiple fields, such as machine learning and object detection, ballistics, communication protocols, and state management.
Our machine learning division focuses on armor plate detection using deep neural networks that focus on speed and accuracy. We will be designing and labeling a custom dataset to train this model.
We also heavily utilize ROS2 and OpenCV, allowing communication from subnodes to the main robot control board. We also implement custom functions in OpenCV and the camera SDK that enable the computer vision software to have higher flexibility in image preprocessing.
Ultimately, we do most of our programming in C++, with occasional use of Python. Our end goal is to contribute to the ever expanding field of autonomous robotics through building systems of our own from the ground up
