First, what is the goal of this project?
We require a brushless motor driver to control BLDC motors with, for the development of our humanoid robots. Without an effective, simple and cheap controller, we cannot build our robots. Simple!
BLDC motors offer high torque, high acceleration and high speeds - all ideal for a powerful robot. Their lack of brushes should reduce the chances of arcing inside the motor housing, allowing for operation in more hazardous environments (i.e. explosive/combustible gases). Furthermore, they perform very well when combined with a gear reducer or ballscrew , forming either a quasi-direct-drive (QDD) or direct-drive actuator. Actuators like these can be backdriven, compliant, and more importantly - 3D printed - making for a more affordable robot!
The heart of the controller: The ESC
The Electronic Speed Controller (ESC) is the most important component of the BLDC controller. It is responsible for regulating the speed of the brushless motor, and is often controlled by means of pulse width modulation (PWM). Depending on how the ESC is calibrated, different pulse widths will result in a different speed. Some ESCs even have bidirectional control, meaning that pulse widths above and below a certain threshold will change the motor's direction in addition to its speed. However, the majority of ESCs we've encountered are not bidirectional, and lack more complicated control methods (i.e. FOC, BEMF, etc.). Therefore, we are going to expand the capability of common hobby ESCs and modify them for robotics-oriented applications.