Sunday, November 1, 2020

Programming and testing the actuator

 Hi,

It's been a while since I last wrote, but it was mostly because I was engaged in writing my thesis and programming the actuator as well as writing a simple service app. Right now I'm testing the actuator and preparing a torque test stand in order to determine maximum torque and see if there is no severe cogging torque. 

I've made a few changes in the actuator design since the first prototype was made. A couple of parts (including the rotor) were milled with additional slots in order to make them lighter. 

these four slots result in 6g of mass reduction

the rotor mounted in the case 

I also modified the stator mount part in order to place the rotor a bit lower than it was before. I gave up on three of four slots (initially made for motor cables) as I think they negatively influenced the heatsinking ability of the part. 

The gearbox housing was milled with eight additional slots and eight mounting threaded holes. Initially I wanted to use half of the motor gearbox screws for holding the motor to the external housing, but I decided to make additional threaded holes just for fixing the actuator. This solution looks much better and I do not have to use only four out of eight screws. 

Gearbox housing botom view

Moreover I milled the part that is used for connecting two actuators front-to-back. This was the most complicated part as there were many milling operations and the part required flipping. I even made a short time-lapse video about it :


The part itself: 


In order to reduce the backlash I modified the planet carrier pins to 3.1mm instead of 3mm (the gearbox planets holes are about 3.11 - 3.12mm in diameter which is not very convenient). There is still some play at the output, but at this point I cannot do anything about it, other than replacing the gearing system. For now it is okay. 

I prepared an early 3d-printed prototype of robot's leg: 

Leg prototype

The thigh is mounted to the knee actuator, whereas the knee actuator is mounted to the thigh actuator. This way the joints are independent which simplifies the mathematical analysis. The knee joint is driven by a belt. All three actuators were mounted as close to the torso as possible in order to make the leg light and reduce the moment of inertia. The adduction / abduction motor (hip actuator) is going to be placed in the robot's torso and connected to the thigh actuator. 

Besides mechanical parts modifications I made a simple python app for communicating with each actuator. The main purpose of the app is to be able to update the drivers' firmware by FD-CAN bus. Although there are some other functionalities such as spring/damper position control, offset measurement, motor parameters identification (d/q axis inductances and phase resistance used for PI controller gain calculations), setting the bounds within the motor should stay during the movement, or the live plot of measured quantities. So far it's been really useful in testing the motor and testing different ideas during development.

Service app - i know it looks awful ;)


In the end some high speed actuator tests that I performed recently: 


Hope you enjoyed this entry! Next time I'll do a quick writeup about the torque test bench and post some results ;)

You can follow me on Instagram for more frequent updates: https://www.instagram.com/klonyyy/

 

1 comment:

  1. Looks fantastic. Once again, some parallels with my robot. Just finished wiring on mine, mostly. I keep saying this week it will walk then I find something I want to improve. Such as is this type of stuff. Lol.

    ReplyDelete