-
Actuator is ready for testing with the ESC!
02/16/2021 at 20:02 • 0 commentsIt's been a long time since the last update, but we are finally ready for some real-world testing!
We have a completed actuator to test with the modified ESC, including the onboard absolute contactless encoder. This way we can implement position control on the motor-side of things, with the eventual goal of having a second encoder somewhere on the output side (say on a joint or chain and sprocket).
Stay tuned for a demo in the next couple of weeks!
Here is a video on the actuator undergoing testing with the ODrive motor controller. We will make a video comparing the ODrive to our modified bidirectional ESC once we get a stable position control method implemented.
-
Testing bidirectional control
06/09/2020 at 19:29 • 0 commentsSuccess! We managed to get bidirectional control with an off-the-shelf ESC!
Unfortunately, the type of ESC had to be changed, as we encountered numerous issues flashing different firmware to a generic SimonK-type ESC. Instead we opted to go with a BLHeli_32 ESC. This comes with a number of advantages over the previous model, without incurring a massive price increase:
- 32-bit MCU,
- Easier firmware management, using a GUI;
- Built-in RPM, voltage and current monitoring;
- Sinusoidal control option;
- Higher continuous + peak current rating, and
- native bidirectional support
We are using a T-Motor F35A and F45A ESC to evaluate our BLDC controller design, as they are lightweight (~10 g) and compact (33 x 16 x 6 mm). The cost of each unit runs between $29 CAD and 43$ CAD, which is within our ideal price range, given their specifications. An ESC capable of delivering a higher continuous current will incur a higher cost, as expected. The current rating of an ESC selected for our actuator design will be based around the average current requirement for the intended task (current req. for drive systems for legs on a robot will be greater than that of the arms).
Next up is to experiment with position control of the BLDC motor (using the attached AS5047P Encoder), create a PID controller, and install the motor into an actuator housing. Load tests with a planetary gearbox will also be performed.
-
Wiring the ESC for flashing firmware
05/22/2020 at 03:30 • 0 commentsHere is the current wiring setup for flashing a generic ESC with new firmware. The layout of soldered wires for re-flashing will depend on the model of ESC.
Six wires are soldered onto the six exposed pads on the PCB. They are, from left to right,
RESET > VCC > GND > SCK > MISO > MOSI
The wires are connected to a USBASP programmer using a 6 to 10 pin ISCP ribbon cable, following the standard Arduino ISCP pinout.
USBASP Programmer
It can be hard to tell from the image as the plastic bits on the jumper wires are crammed together. We actually ended up just soldering to the ATmega8 chip directly as the pads ripped right off the PCB!
Fixing the botched attempt. Notice the carnage on the second image...
With that out of the way, hopefully we can flash some different firmware to the chip. Fingers crossed, we won't have to go looking for another alternative. If we do, hopefully it is also affordable to fit the bill for our project.
-
Getting Started: The ESC
05/15/2020 at 05:27 • 0 commentsFirst, 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.