-
Finished casting forearms
05/17/2021 at 02:53 • 0 commentsLast week I cast remaining forearm pieces in Ctrl^H foundry, and moving onto upper arm parts. Casting is high-priority for this project, so I will go back to cut off sprues, weld the halves together, polish, and chrome after this.
-
Forearm casts almost done
05/06/2021 at 05:43 • 0 commentsPast few weeks I cast forearm parts in halves - just need another batch of the other half before I can get started on casting the upper arm.
I cut off the sprues and started filing the older parts, and also drilled some holes in the oldest part in the right. The quality is decent, but not perfect: it's hard to achieve a completely perfect surface with larger parts. I will likely end up filling imperfections with a metal filler which will create some gray spots and then just chrome all of them. That way they will be metal and chromed, so they will fit with the drum set better.
-
Casting underway
04/29/2021 at 05:10 • 0 commentsPreparing more parts for casting this week. Pictured here are new wax positives with sprues added, and a metal copy cast during the last cycle.
-
Encoders Working
04/15/2021 at 20:19 • 0 commentsI finally got chained ADS1115 encoders working to read arm bone positions. It was really confusing because the manual lists configuration setting bit offsets in low-endian, but the chip then accepts the resulting bytes in high-endian (reverse) order. Code here:
https://github.com/01binary/drummingrobot/blob/master/src/code/ads1115.cpp
The breakthrough came after I took the Raspberry Pi with me hiking and stayed at a countryside hostel for the night, debugging into late hours
-
First casts of the year!
04/15/2021 at 05:52 • 0 commentsLast year I completed four-part molds for the robot arms, cast some positives out of wax, sprued them up, and dipped them into slurry to create ceramic shells. This year I steamed wax out of the shells, burned them out in a kiln, and cast the first few parts.
Like many other large parts I worked on, I am having to cast these in halves so I can weld them later and polish off the welds. The two main limiting factors are my vacuum oven and kiln (each $2000, about the most I could afford) since their inside dimensions cannot fit large parts.
-
Re-working the shoulder
02/01/2021 at 01:52 • 0 commentsLast week I made a decision to use a new shoulder motor, so I had to re-design the shoulder to put the motor sideways:
This week I added source code to read a hollow shaft potentiometer while rotating the motor so that I could stop using an inaccurate metric of PWM "time" to guess the position of the arm, and the performance has been less than acceptable. I already spent two weeks looking for an absolute encoder to read servo positions and this one was the best I could find:
So now, it looks like I'm forced by build my own encoders. All others are either giant and bulky, or have really difficult legacy programming interface.
I settled on AS5045, so I will have to design my own board for this chip in Eagle Cad (after I learn Eagle Cad) and manufacture my own housing that's really compact and easy to fit anywhere.
-
New rotation motor & source on GitHub
01/26/2021 at 05:59 • 0 commentsOver the past few weeks I found another, cheaper servo that's still strong enough to rotate the arm:
It has a built-in encoder, 100N of force, and basically works the same in this particular application, except that it's $40 rather than $1300. I really thought the Dynamixel servo would be easier to use and work best for this application, but it ended up being an overkill. I will save that when it comes time to work on walking machines, and perfect response & feedback times really matter.
A few other changes - I got a 5V power supply for Raspberri Pi and connected it with a 5-terminal-to-USB-C cable:
I also ordered a 1000W power supply that should have enough juice to power the whole robot:
https://power.sager.com/hrpg-1000-12-5357680.htm
...and finally, I put all the source code I have so far on GitHub along side the 3D parts.
https://github.com/01binary/drummingrobot
If you haven't tried the new "sparse checkout" future in git (requires latest version) - this lets you track changes and pull only a portion of the whole repository. I built git from source on Raspberri Pi to get the new feature, and it works great. I checked out only the C++ source for the robot and left the large 3D part files on the machine I use for CAD.
In the source, I recently implemented a system that loads joint controllers from Robot Operating System launch parameters (basically a block of YAML inside of XML launch file) and it supports all of the actuators I worked with so far.
It creates each controller dynamically from a simple dependency injection container by type name, and supports full paths (like robot/arm1/forearm/).
This is a shot of it running with everything except the arm rotation servo disabled, because I was testing out that new servo. If in the future I substitute the servo with another one that uses serial protocol I just have to code the new servo and specify a different type name for the "shoulder" actuator to load that new type. The interface is the same for all servos, regardless of how they are controlled and how they track their current position.
For simple PWM servos like those linear actuators, I am going to need to code a feedback system by using hollow shaft potentiometers all coming into the same DAC chip.
-
All actuators working
12/21/2020 at 06:07 • 0 commentsMetal brackets came in from the factory, so I got the whole thing assembled and moving.
-
Electronic layout
12/05/2020 at 05:46 • 0 commentsThis week I got all actuators to work for one arm, but some of the wood parts broke, so I am waiting for stainless steel brackets to arrive from the manufacturer. I will be able to film everything moving once I replace the weak prototype parts.
Meanwhile I'm working on more electronic layout, like finding a place for solenoid and servo driver boards. I think I will put all the drivers in the chest area, then Raspberri Pi goes in the middle, and power supplies go in the stomach.
-
Ready to start casting
11/09/2020 at 17:35 • 0 commentsThe most time-consuming part of this project has been to get the arms cast. I spent this summer preparing a 3D printed arm model for making molds. After spending a month on sanding it so that it was perfectly smooth and making a mold, turned out it needed to be split into 4 pieces: 2 of them welded by a wax pen after casting out of wax (otherwise the mold would be impossible to make) and 2 of them welded by a welder after casting out of aluminum (otherwise it would be too large to fit in a kiln).
Anyway, a friend helped me prototype and re-print the models so that they were split down two perpendicular axis into quarters, then I spent another month sanding and making molds, and then another month preparing wax positives. I just got done casting 3-4 batches of wax positives for investment casting, put sprues on most of them, and I am ready to start building investment shell layers this week, maybe casting next weekend.