It’s quite incredible. All the way over in Germany, a guy named Klaus had thought up a very similar open source, Arduino-powered adaptive lower-limb exoskeleton. It also utilizes a wiper motor for the leg actuation! It feels great to know that someone else is on a similar path and thought process as myself. The Internet is awesome and times like this makes me feel less alone.
He has a fresh video of the him putting on the exo and walking with it here:
I’m excited to keep up on his progress and perhaps maybe collaborate more closely in the future.
I plan on using it to store and version the Arduino code. I’d also like to host and version some Fritzing files there. I’ll also use the issue tracker for todos, enhancements and bugs related to both the software and the hardware. I feel like I’ve been keeping so much of the projected roadmap in my head. So this will be good to have it out in the open and also I think it’ll help clear my mind so I can iterate more quickly through the items.
12 Volt Motorcycle Battery Rated at 55 Cold Cranking Amps
I just ordered two of these batteries from Amazon. They are each 12 volts and rated at 55 cold cranking amps. So at ~40 amps draw at stall current for each motor these two should provide plenty of juice when connected in series for a total of 24 volts with plenty of power. Also the dimensions on these are 4.75″ x 4.75″ x 3″ so they’ll fit nicely into the walker bed.
Just a quick update to mention that I was struggling for a bit on the software to control the Exo alongside using the the motor in PID mode. For those not familiar, PID is a type of control method that uses certain algorithms to position the motor shaft in a very precise and particular way. When you see fancy industrial robots moving very quickly and haltingly, they’re more than likely being controlled with PID. I thought this would be the way to go w/ the Exo but it actually seems that as I wrestled w/ the best implementation it wouldn’t be the best for real world usage. I feel that actually the flexibility of not using PID will make for a better user experience.
So I’m just going to use speed and direction control alongside some fuzzy positioning logic from here on out.
I’ve encountered some challenges with the current exoskeleton device.
Using linear actuators for powering the joints has been the cause of a number of these. One of the big issues has been that the linear actuators I’m using are slow. As you can see in my test video, the standing and sitting routines are just too slow. In testing these modes with the device strapped to my body, the slowness actually is somewhat dangerous in that both of those routines whether assisted or not require a degree of quickness and momentum in order to be stable. Try sitting down while deliberately bending your knee slowly and you’ll see what I mean.
The other problem with the linear actuators is that, at least in my current configuration, the attachment of the linear actuators to the frame requires the frame to be perfectly rigid. In turn, that means that it’s very difficult to design in any lateral play in the joints which I’m finding would be beneficial in allowing for more natural leg joint action.
The linear actuators, at least the ones that I’m using, also make it difficult to get a large range of degrees of rotation. This is of course possible by getting a linear actuator with a longer travel but a longer travel also means a longer overall motor and right now using a 2″ and 4″ travel actuators, they are already getting a bit unwieldy.
Another major problem with the first design is that the interface between the aluminum tubing frame and the body is not very secure and the frame tends to slide on the leg which renders the motorized joints less effective. I think the problem here is that I started off using just 1.5″ nylon webbing for attaching the device to the leg. I’ve since started to experiment more with foam padding that covers more of a surface area along with a couple other ideas that I’m going to try with prototype 2.
Which brings me to prototype 2. I’m not ditching prototype 1 and I may very well go back to it and try iterating off of it but I do want to start prototype 2 as a separate unit because of the changes.
The biggest change is that I’m going to go with using rotary motors that I can control as servos in place of the linear actuators. Doing this should solve the speed, degrees of rotation, and lateral play issues that I mention above. If you have looked into buying large servo motors you’ll know that they can be hard to find and pricey. There’s a company called DeviceCraft that has a great approach to meeting this need for those like me seeking larger servo motors at reasonable prices. It’s an automobile wiper motor that they sell that’s customized with a circuit board that contains a rotary encoder to determine the axle position along with the logic for controlling the motor through PID as a servo. You can also use the board as more of a standard H-Bridge speed controller if you want to. And Roger, the guy that runs DeviceCraft, is very nice and answered my questioned quickly.
Large servo wiper motor available at devicecraft.com
Here’s a video of the motor and controller in action:
The other changes in prototype 2 are going to be related to making the device/body interface better. I’ll write about those in future posts.
Nylon webbing and buckles and sliders oh my! All came in the mail and I rigged the straps up (not yet affixed to aluminum tubing) just to see how it would all flow. Here’s a photo of me with it on:
Exoskeleton frame strapped on (not the best photo because taken in front of a mirror with bad lighting)
Now I’m working on cutting holes into the nylon webbing and grommeting the holes to affix the straps to the tubing with a bolts through the grommeted holes.
Here’s a shot of one that I have done already:
Nylon webbing strap grommeted and then bolted to aluminum tubing
So wrapping up the rest of the straps to match the one above. I’ve also added a new piece of aluminum stock that extends from the top aluminum piece situated right above the hip joint. The stock extends from the top of that piece up to the armpit and is necessary for keeping that top piece straight when the actuator is bending the hip joint w/ all of the torque. If it’s not there then that short piece will just twist against the nylon webbing strap.