Showing posts with label CNC. Show all posts
Showing posts with label CNC. Show all posts

Thursday, July 1, 2021

Lots of machining!

Hello again, 

as always I did not plan to make such a long break from documenting stuff, but this time I waited to finish preparing all the parts so that the photos are as good as they can get. Basically, this entry is about making the parts needed for the remaining nine actuators and an additional tenth actuator that's going to serve as a test unit. 

The whole process took me around 1,5 months, but only because I had a few hours available every weekend (I did not want to mess up with my neighbours :P). The first step was to purchase the stock at a local company. I got around 5.5 kg of aluminium stock in 140mm diameter slices cut on a band saw.

The surface finish was quite bad so I had to face mill each side of each slice and then proceed with milling the parts. Besides face milling, each slice was drilled with seven holes to keep it fixed to the table. Each hole was widened on both sides of the slice so that the screw head could hide inside the material for the purpose of face milling.


Basically I've drilled seven 3mm holes, widened them at one end, screwed the stock to the table, face milled it, turned it around, widened holes by hand using a electric drill, screwed to the table and face milled on the other side as well. The whole process of face milling and drilling holes took me around one hour per two slices. 

When first two slices were ready I could proceed with machining parts. I didn't have any particular plan, just started with the parts I've had the least. These were the motor base parts:

During milling I found some things I could optimize for example before I used to mill the distancing part without utilizing the material that's inside the part. It was just cut out and additionally had to be fixed so that it doesn't fly away. I found out that the material could be used to mill the planet carrier and there still will be enough material to cut the distancing part. Additionally the rest of material on the sides could be used to mill sungear mounts. I'm not the best at describing things so I prepared a photo - story of the process :





I like how these PCB caps present in the sunlight (these were actually cut out of a 6mm aluminum sheet, hence the brownish finish on the first six of them): 

I wish I had flood coolant system, as after more aggressive cuts I had to wait for the part to cool down. Moreover I had to stand nearby with a vacuum cleaner to clear the chips in deeper grooves so that they don't build up. Anyway I'm happy with the overall result - the machine did just fine, without any major issues. After all, milling these parts was actually the reason it was created. Group photo: 


After finishing all the custom parts I proceeded with motor parts and gears I had to modify slightly. The rotors were milled with four slots and the top surface was face-milled. The shaft was cut so that the encoder magnet could be glued onto it. 



The thing I'm not particularly happy about is that five out of 12 actuators have the magnets glued to the shaft without any additional fixture. The rest is actually held in place using a miniature 2mm rod going through the shaft and the magnet, because the magnets have a small hole in the center. Unfortunately I ran out of stock on them and had to use regular ones. 

The magnet on the right has a small 2mm hole which helps to align and properly fix it to the shaft

If anyone knows where to buy them (I got these from a friend of mine), I'd be grateful for leaving a comment. 

Next I cut out the stators out of the original case. It was a long and stressful process as I didn't want to mess up the windings or the laminated steel sheets. I centered each motor in a vise and bored a hole through the aluminum case leaving only around 0.4 mm of material on each side. Then I manually milled the remaining material in two opposing spots and used a screwdriver to break the walls to the inside freeing the stator. 

After that each stator was cleaned and a thermistor was glued in between the windings with expoxy.



The sungears had to be modified slightly as well. I had to mill two lobes on opposing sides so that they match the part that is screwed to the rotor. It was quite stressful as well and ended up with one broken tool (the 1.5mm 3 flute endmill) when I wanted to go a bit faster. 

When these were ready I press-fitted them onto the aluminium shafts that are visible on the photos below. 

As for now I've finished soldering the remaining PCBs, without testing them yet. Now it's time to press each stator onto the base part and make sure everything is hunky dory. Some pre-assembly family photos in the end: 





The process of tiling these parts was tedious, but I'm really happy with the photos (could use some more light though). 

Tuesday, November 17, 2020

New method of fixing the sun gear to the shaft

 Hi,

this is going to be just a short log about new way of fixing the sun gear to the aluminium shaft mounted to the rotor. During some high speed tests of the actuator I noticed that the sun gear slipped on the aluminium axis when I tried to stop the output 3d-printed lever. I was kind of expecting it as I haven't made a strong interference fit and used just a regular epoxy adhesive and paid no extra attention to that part. I decided to try some new methods. 

The first idea was to make a hole in the aluminium stock before milling, and then mill the motor shaft part so that the shaft has this long groove. A similar groove was milled in the sun gear as well. As you might expect it was supposed to be a keyway connection. The key was simply a piece of mild steel screw shaped to fit the empty space. 

before pressing in the key

After pressing the key


The connection looked ok, but was a bit springy when I tried to break it using pliers. I succeeded eventually and saw the shaft was weakened by the groove. 

broken connection


The second idea was to make something like a shape connection (I do not know the professional name) where the shaft and gear are milled with a matching shape and then just pressed onto each other. This connection does not require additional elements, however it is inevitable to avoid the rounded edges when milling the shaft "tab". The rounded corners favor breaking the gear by pushing on its walls outwards. 

"shape fit"
This kind of connection weakened the gear and when I tried to break it I just broke the gear. It could be influenced by the additional force exerted by the pliers as well, but I did not want to take that chance. 

The last idea was to make two small tabs on the shaft (making it more rigid as well) and two grooves of the same shape in the gear. However the tabs were substantial smaller, and they reached only half of gear's length. The rest was just a normal shaft, though slightly larger in order to make a strong connection when the gear is press fitted onto it. 

Two small tabs milled with 6mm endmill

Two small grooves made with 1,5mm endmill

The two parts were cleaned with alcohol and epoxy adhesive was applied on the contact surfaces. I used a vise and slowly pressed the gear onto the shaft. I haven't really tried to break this part manually, however I mounted it in the motor module and till now it survived a few hard shocks and about 0.45Nm of continuous torque (on the motor shaft). 

If it fails I'll try adding loctite adhesive, but hopefully this connection will be strong enough ;) 




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/

 

Friday, August 14, 2020

Machining the first motor module prototype

Recently I've written about the motor controllers, and now it's time for mechanical aspects of my project - the aluminum case holding the parts together. It took me about a week to finish a 3d model of the module. Then I 3d printed the parts, made some adjustments, and started milling the individual parts. The material used is PA6 aluminum (2017 T4511) bought in 70mm slices of different height. It is relatively cheap and easy accessible in my town (less than 8$ per kilo and ablut 1,5$ for band-saw cutting the slices). Milling in this material is very pleasant and at the same time mechanical properties of this aluminum alloy are sufficient for my purposes. While machining I did not have to use a lot of coolant (which is quite important as still use a plywood table). I mostly used IPA alcohol and WD-40 to cool down the part in moments where a lot of material was being removed. 

Now it is the photos time:




sun gear and bearing pressed onto the pin

I know the surface of the motor is sloppy it was done by hand, will fix it next time ;p

This part is the rotor extension so that I can press-fit a gear on it. The diameter step on the tip of the part is for bearing. It was milled from a 20mm PA6 aluminum cylinder.

Each 70mm cylinder slice was faced in order to get a flat reference point. Actually the one on the picture was earlier faced in the vice from other side, and this photo was made after facing from top side. 

I mostly used screws to fix the material to the table, as it was the fastest way considering I do not own any good claps yet. 




This is the lower part with PCB cap and stator press-fitted onto the cylinder. Now it is time for the distancing cylinder:


This was the part that required the most coolant as it is relatively thin and a lot of material has to be removed around it. I did not noticed any problems caused by overheating whatsoever. 

Probing the gearbox mount

slots made for internal gear's tabs 

though the endmill was a bit to big it looks nice and fits tightly!

lower planet carrier with additional sleeve for bearing ring

gearbox mount, top planet carrier, lower planet carrier ready to be assembled

And after milling the parts it was the time for assembling them: 




I'm really happy with the result, considering it was machined on a low cost DIY CNC machine. Of course it works - for now only in spring/damper mode (and open loop d/q voltages mode), but I'm working on a FDCAN communication app and more features right now. Hope you enjoyed it, and see you next time. 

I recently started documenting my projects on Instagram, so feel free to check it out: https://www.instagram.com/klonyyy/