Create a mechanized robot inspired by the TitanFall titan, but using pneumatic actuators and building it with a reasonable budget
Basic build would result in an adult-sized walking robot. More advanced features like running, jumping, crouching would be added if the initial build gets off the ground (literally and figuratively).
Not a lot of information is widely available for pneumatic cylinders and the Arduino (or at least none that I have found, please leave a comment if you know of anything other than a simple demo project). There are a couple of projects I found on YouTube but a lot of them never went very far or are just the basics (which I can use to get started).
I hope to change all of that by releasing all the entire project as Open Source/Open Hardware for anyone to recreate, and/or modify.
Workspace Challenges:
I live in a small apartment on Long Island, NY and so I have a few neighbors with only a small paper-thin wall between us. So my work will have to take place at reasonable hours of the day (ie: 5pm-8pm on weekdays, 12pm-8pm on weekends). This will prevent me from doing a lot of hardware testing late at night (my best coding time, as I am sure you are familiar with) and will slow down my progress. I am employed by a company that is about 10min. away from my apartment, and as a small company I wear quite a few hats and tend to work more than 40hrs/week, so my rate of progress will probably be slower than I would have liked. That being said, this project is going to take months if not years so I am OK with this as it allows me to reflect on what I have accomplished that day, and allow me to update this project log.
Software/Hardware Challenges:
So a lot of walking gaits for robots are so called: static movement algorithms, in which the robot is always balanced, but that is not how we walk, so I will choose the active dynamic movement algorithms (Passive dynamic movement uses the inertia of the robot to make the walking gait), which I will have to write myself.
My control program will need some sort of feedback to get the right "muscle memory" to stand up and walk, which will probably be some sort of potentiometer along with an accelerometer(already have) and gyroscope, since it is cheaper than a flow meter and/or some sort of position sensor.
This HackADay article on hacking a laser measurement system might be valuable for determining distance to objects and/or the ground, which will probably provide useful for control.
Well as much as I would love to just buy everything all at once, that seems unfeasible based on my budget and probably isn't a wise idea in case I cannot finish the project.
So I must come up with a battleplan to tackle this monster of a project.
BATTLEPLAN:
1. Create the battleplan (this list)
2. (Small) purchase of some components for testing
Arduino (have that, and the Intel Galileo if needed)
Transistor (before I had a relay board but apparently a TIP120 Transistor is all I need to fire the solenoid)
3. Hardware Setup & Programming
Wire everything up
Should be pretty basic. Arduino -> relay -> solenoid -> pneumatic cylinders
Start programming!
Simple test case of extending and retracting a single pneumatic cylinder
Work on two cylinders at once and see if there is a noticeable lag between starting and stopping
Add more and more cylinders until Arduino cannot handle it or I run out of cylinders.
Testing and feasibility study(can this work?, do I have enough power and speed on the Ardunio? that sort of stuff)
4. Purchase more components
5. Integrate components into overall testing setup
6. Start working on design of robot
Where do the pneumatic cylinders go
Why should it go there and not over there?
How will the robot keep its balance?
Accelerometer? Gyroscope? Both? Multiple?
Size of the robot?
Probably around adult-sized, so I can work on it easier and I don't have to worry as much about smaller more expensive components
Feet
This is going to require a lot of experimentation. I don't like the flat footed (literally and figuratively) nature of most robots, so we will have to design a new foot, with a ball for a heel and a split both length-wise and wide-wise(better control just at the feet)
Arms
Does it need arms? (probably)
Hands?
Probably later since they are difficult and require smaller and more expensive components and aren't needed for walking and moving. Although they would help save the robot if it falls but I may just use some sort of counter-balance system for that
Torso
In a perfect world a lot of the control components and air compressor and supply would go there but the compressor and supply will be off-robot in the beginning.
7. More to come and more to be updated as the projects starts rolling
Servos are great. You can buy high-torque ones and fast ones and they are relatively easy to program since they are repeatable (go at this speed to this angle) and work great when doing calculations.
But...
They are too repeatable and they are too easy to program. I know it doesn't make sense, don't you want it to be easy to program? Yes and no. Yes because then development is easier but no because they also don't represent our muscles all too well. Only muscle memory or reaching the maximum stretch/contraction of a muscle/ligament/tendon allow us to have repeatable actions, and this comes with time and repetition, and is still off by a little bit. So pneumatics really fit better when talking about muscles/tendons/ligaments.
Now this isn't to say I won't use servos at all in my design, on the contrary I can see a number of uses already in my head for them, such as move the head around, possibly used for the leg-to-hip assembly and possibly a weight mass in the torso of the robot to better counter-act or accentuate the movements of the robots.
What about McKibben Artificial Muscles?
Sure, I could use McKibben Artificial Muscles, but they are expensive to buy and if I make them myself (which is apparently pretty easy to do) they may not be exactly the same and lead to more programming complications.
Wait, didn't you want them not to be repeatable? Yes, but I also don't want to spend years on the programming side of this (although it may take that long anyways) trying to figure out the differences between the muscles on either side of the robot. Also they tend to wear out faster than a regular pneumatic cylinder.
Just out of curiosity, have you considered applying evolutionary programming and learning systems to the balancing portion of the robot? In addition, have you considered creating a computer vision agent for proprioception? If so, what libraries will you be using? (Personal note/recommendation: I like using OpenCV for this sort of thing). Lastly, what are you considering for a power supply? (I am thinking in terms of the weight of a sealed lead-acid battery).
I understand from your logs/comments that you are still in a research phase, I was curious as to whether or not you had given these details any thought yet.
With a vision system, I was going to "hopefully" program less. I don't mean less code I mean less specifics and kinda let it learn itself. I have not looked into this much but evolutionary programming will probably have something to do with it, and probably monte carlo simulations and maybe a neural network. I have no idea if all of this is even possible though.
OpenCV is on my list of things to learn so I am looking into it. I am also looking at a Microsoft Kinect as a pre-built vision system, but I have never used one so I don't know much else, much less about the Kinect 2 and how they differ and what is still open-source and not and what I am giving up if anything from going open-source.
As far as a power supply I was going to look at a regular computer power supply and see if it had enough on 12V rails to supply my project. I have to look into that or buying some sort of dedicated power supply. Since I don't have a setup yet I would think the computer power supply would be sufficient at least through the testing phase.
I haven't thought about mobility yet because the air tank and compressor are going to be harder to fit in this robot, and not have it fall over when it empties/pressurizes. Although, that would be funny to watch =D
I've considered building a biped for a long time.. I still have a pile of mechanical sketches laying around somewhere.
One of the conclusions I came to is similar to yours: That the motor control scheme should mimic our own muscles as much as possible. This means no high-ratio gearboxes that stay in place when unpowered, and no hydraulics. MOST of the control is effort based, which translates roughly to how much current is in the motor. Our position based movements are just ballpark but extremely controllable.
This is where I have a hard time accepting pneumatic based motion.. yes the effort based scheme would roughly translate to what the pressure in the actuator is, but to accurately control the pressure with high analog resolution and response time, and on a budget. You're starting from scratch here. Typical pneumatic actuators just bang from one position to the other. If it was an arm that's carrying something and drops it, the arm would want to fly up in the air unless it could bleed pressure in a snap.
I feel that it would be easier to use high-torque electric motors and/or linear motors, so it's the route I went with in my designs.
Pneumatic does have it's advantages though. You'll be saving a lot of weight in the actuators compared to motors and power wires. Storing energy as compressed air is easy. Your heat management is reduced to just the compressor itself. But now what you are looking at are air flow rates, pressure control, pipes and joints that could leak, etc. I would expect most of these items to appear bulky and not package well.
Something to consider. :)
If I have not dissuaded you from pneumatic then i would start with a simple test board with 1 cylinder on it and a tank of air. You'll need to come up with a cheap and efficient way to measure and control it's pressure in each direction, monitor position, and have a fast control loop. Fast enough that if you push on it then unload it, it can maintain position without bouncing off the endcaps first.
Two cylinders on opposite ends of a weight on a stick to keep that weight balanced in the air, using the pressure feedback to know when it's balanced.. It wouldn't be easy.
Yes I have figured high-torque electric motors could be a solution but I feel like I would want them with some sort of clutch/transmission and a flywheel just so I could spin it up and engage the movement rather than start the motor with the load (I really want to mimic a muscle more than a regular motor allows). I don't know if that is completely necessary or not but it would be closer to what I wanted to build (of course plans change and I may end up doing it anyways for some joints).
=D
Yeah I was just going to start small. My first step is trying to find a place to put the air compressor, without being a jerk of a neighbor.
That's a much more reasonable budget. An adult sized humanoid should be doable for a few thousand. Some exoskeletons are under 1000$. Avoiding the likeness of the titan will avoid the copyright issue I mentioned.
I'm also a programmer. I've also spent a significant amount of time studying bipedal gait and attempting to replicate said gait in robots. Be prepared for the programming to take years.
Be sure to do your research for EVERY step of your project, especially material selection. I encourage you to reconsider your method of actuation. I'm not saying pneumatic muscle is wrong, but it would be best that you're DAMN sure you're right. How well do you understand the (extreme) forces, speed, and precision required to replicate bipedal walking patterns? Can your method of actuation accomplish this? You can account for some of this by modifying your gait pattern to minimize heel-strike forces and uncontrolled motion, but not all of it. You might also want to consider how traversal of non-flat or non-ideal conditions is going to work sooner rather than later.
I don't mean to sound like I'm tearing your project apart. I certainly mean for quite the opposite! I'd really love for this project to work out and break the barrier between open source and bipedalism!!!
Yeah I have been looking on ebay for some pneumatic cylinders and solenoids and I have found quite a few for cheap (some even come with 4 "matched" cylinders), so I think most of the hardware will be "rather cheap."
I have thought about how long it will take me to do bipedal walking, and all I can say is I have the time (moving to a new city, working 50+ hr/wk gives me lots of that), so I am prepared to learn and re-learn everything I thought I knew about software for this project. I imagined months but years seems about right, this isn't simple stuff.
And no I haven't thought of other methods of actuation (besides servos), but like I said in one of my others posts, I don't think they (servos) replicate the human body (tendons/muscles/ligaments) as well as pneumatics do, and since PETMAN is just hydraulically driven cylinders I think this is semi-doable (well if I was Boston Dynamics that is). But as you said with the "extreme precision" required for bipedal walking, maybe that is why robots are always built with them.
"How well do you understand the (extreme) forces, speed, and precision required to replicate bipedal walking patterns?"
I don't, but I am willing to research, learn and find out!
Also, I don't take this as tearing my project apart, but constructive criticism (and I could use some) to make my project even better.
Right now all I have is lofty dreams of this being real, but I hope one day this will actually work. Either that or it will end up in HackADay's fail posts. =D
As much as I'd LOVE to see this project work out, the combination of pneumatics, "shoestring" budget, bipedal gait, and blatant copyright infringement all contribute to an unstable equilibrium. Whats the end goal for this project, and how big is your first Titan going to be? I'm inclined to believe that a worn, human-actuated mechanical augmentation is going to be your best bet, because balance is damn hard to program, and humans already have a good sense of balance, even when strapped into upwards of a thousand pounds of stuff.
You also might want to consider poking around with something like a Robonova first.
Hey Sarah, thanks for the comment (I honestly didn't think any one would pay attention to it since it's so early in the project), I have a lot to work out still, as you can see this is still in the planning stages.
So let me first clarify something which I should have clarified when I was writing the project logs (I will update them when I get a chance), first "shoestring" budget means thousands not hundreds of thousands or millions of dollars like a lot of advances robots cost.
Second, the Titan from TitanFall was simply an inspiration for this project. I am NOT going to be copying it. So I think I am free from copyright infringement since I just have the photos and should be in the "fair use" case (please let me know I am wrong on this one, I am a programmer not a lawyer).
The first inception of the robot will be around the size of an adult human, not the actual size of a Titan from TitanFall (20+ feet tall). Also I do not have any plans to include a human inside of my machine (both logistically and safety-wise). This robot will probably end up looking somewhere between the Honda Asimo robot (http://www.bubblews.com/assets/images/news/341708936_1382156135.jpg) and Boston Dynamics PETMAN (http://www.bostondynamics.com/img/petman512.jpg)
Yes I know the balance portion of the programming is going to be difficult, and take the bulk of my time (I imagine months of working, testing and re-working), but someone has to at least try to get this into the realm of possibility instead of keeping it in high-tech research labs and robotics companies.
I understand from your logs/comments that you are still in a research phase, I was curious as to whether or not you had given these details any thought yet.
Overall, I like this project.