"You need to be more... Flexible"

Discussions regarding building a walking robot at home. Most of the robots participating at Robo-One competitions are custom fabricated.
10 postsPage 1 of 1
10 postsPage 1 of 1

"You need to be more... Flexible"

Post by RamDragon » Tue Dec 26, 2006 8:51 pm

Post by RamDragon
Tue Dec 26, 2006 8:51 pm

I've been hashing this question for a few weeks. The problem, I think, is that while I know what I'm thinking, it's often difficult to find the words that mean what I'm thinking. So, here it goes.

Watching the many videos available on the internet showing humanoid robots doing stupid human tricks (running, jumping, the Macarena...) I started thinking, "What is lacking in that robot? Why can I do it while it can't?" Obviously not in refference to the Macarena, which I can't do. I came up with this answer:

My muscles have an elastic property. I can flex my muscles a bit before my joints move. That property helps while jumping, because I can store energy in the elastic stretch first, then continue the flex through the jump as my lever (leg) catches up with the contraction. When I land, my muscles take the impact rather than my joints for exactly the same reason. Running works the same way, only one leg at a time.

I have read many instances that indicate that jumping, in particular, can strip a servo faster than (insert inappropriate metaphor here). So how can a servo-powered joint be made to be more flexible? The answer came to me in a vision. Well, it was television, but it still counts. The new Bowflex (to which I have no affiliation) uses plates that twist to create resistance, and I thought that would be a perfect design for a shock-absorbing robot knee.

I took that line of reasoning further; the leg bone's connected to the ankle bone, as it were. A flexible foot would also provide the extra spring runners and jumpers get from the foot and toes. One step farther down that road led me to the prosthetic foot—a curved composite spring for amputee runners. (Idly, the implementation of this style of foot would eliminate two DOF from each foot.)

Both solutions have similar problems. In both cases, two positions need to be sensed—the actual position of the joint and where it’s supposed to be according to the servo position—and responded to in real time. The flexible joints also introduce the necessity of balance correction in the robot, a problem normally averted by using honking big foot-plates and keeping the center of balance from moving too far.

Has anyone here even attempted something along those lines before? What is the limitation in the control hardware that would provide obstacles to building that kind of dynamic walking gait? Does anyone know if that would increase or decrease the actual torque on the servo? How can torque be dynamically measured so that the servos can respond in such a manner to prevent stripping or burning out? Can controllers be arrayed in a master/slave relationship to distribute processing loads? (I’ve been contemplating a 3:1 controller design so that each leg gets its own brain, the arms get their own brain, and those three are further controlled by a central controller in the same way that your joystick controls the controller normally. If that made sense, pat yourself on the back.)

Keep in mind, I’m a total noob. I have just started collecting designs and materials lists so I can start shopping for the parts I want. I’m hoping to start a regular brainstorm for home builders for my own selfish reasons, obviously.

I never know how to end long posts.
I've been hashing this question for a few weeks. The problem, I think, is that while I know what I'm thinking, it's often difficult to find the words that mean what I'm thinking. So, here it goes.

Watching the many videos available on the internet showing humanoid robots doing stupid human tricks (running, jumping, the Macarena...) I started thinking, "What is lacking in that robot? Why can I do it while it can't?" Obviously not in refference to the Macarena, which I can't do. I came up with this answer:

My muscles have an elastic property. I can flex my muscles a bit before my joints move. That property helps while jumping, because I can store energy in the elastic stretch first, then continue the flex through the jump as my lever (leg) catches up with the contraction. When I land, my muscles take the impact rather than my joints for exactly the same reason. Running works the same way, only one leg at a time.

I have read many instances that indicate that jumping, in particular, can strip a servo faster than (insert inappropriate metaphor here). So how can a servo-powered joint be made to be more flexible? The answer came to me in a vision. Well, it was television, but it still counts. The new Bowflex (to which I have no affiliation) uses plates that twist to create resistance, and I thought that would be a perfect design for a shock-absorbing robot knee.

I took that line of reasoning further; the leg bone's connected to the ankle bone, as it were. A flexible foot would also provide the extra spring runners and jumpers get from the foot and toes. One step farther down that road led me to the prosthetic foot—a curved composite spring for amputee runners. (Idly, the implementation of this style of foot would eliminate two DOF from each foot.)

Both solutions have similar problems. In both cases, two positions need to be sensed—the actual position of the joint and where it’s supposed to be according to the servo position—and responded to in real time. The flexible joints also introduce the necessity of balance correction in the robot, a problem normally averted by using honking big foot-plates and keeping the center of balance from moving too far.

Has anyone here even attempted something along those lines before? What is the limitation in the control hardware that would provide obstacles to building that kind of dynamic walking gait? Does anyone know if that would increase or decrease the actual torque on the servo? How can torque be dynamically measured so that the servos can respond in such a manner to prevent stripping or burning out? Can controllers be arrayed in a master/slave relationship to distribute processing loads? (I’ve been contemplating a 3:1 controller design so that each leg gets its own brain, the arms get their own brain, and those three are further controlled by a central controller in the same way that your joystick controls the controller normally. If that made sense, pat yourself on the back.)

Keep in mind, I’m a total noob. I have just started collecting designs and materials lists so I can start shopping for the parts I want. I’m hoping to start a regular brainstorm for home builders for my own selfish reasons, obviously.

I never know how to end long posts.
RamDragon offline
Robot Builder
Robot Builder
Posts: 7
Joined: Sun Dec 03, 2006 1:00 am

Post by rockweasel » Wed Dec 27, 2006 8:00 am

Post by rockweasel
Wed Dec 27, 2006 8:00 am

Springs.
Springs.
rockweasel offline
Robot Builder
Robot Builder
User avatar
Posts: 9
Joined: Mon Sep 18, 2006 1:00 am
Location: Scotland, U.K.

Post by Joe » Wed Dec 27, 2006 5:29 pm

Post by Joe
Wed Dec 27, 2006 5:29 pm

Yes, professional robot builders have considered elastic energy storage for years. It's rather difficult to make use of, though. Our muscles can change their elasticity; springs cannot. So if you add springs to your joints, your robot will be great at bouncing along (running/hopping/whatever), but when you ask it to stand still, it's going to wobble and shake like a bowlful of jelly.

Pneumatic cylinders can work more like muscles, if they have controlled valves on both sides. Put low pressure on both sides, and the cylinder is soft; high pressure on both sides makes it firm. Different pressure on each side changes the set point (analogous to the natural length of a spring).

However, building pneumatic robots is rather hard. Not only do you need a pump — which is heavy and energy-hungry — but you need a LOT of electrically controlled valves, and do get fine control, you probably need variable (rather than just on/off) valves too. (Though you might be able to substitute PWM instead, but then you need very fast valves.) This is something I looked into a while back, thinking to build some pneumatic LEGO robots. But it turns out that electrically controlled valves are surprisingly expensive.

Some people on comp.robotics.misc have recently been asking whether you could do the energy storage and release electrically, rather than mechanically. Standard servos can't do this, but suppose you build your own. It'd need to have a gear train that can work in reverse, and electronics that can draw power off the motor/generator (say, when your robot is landing and that joint is being flexed by the downward force of the robot), store this power in a supercapacitor or some such, and then apply it later when the joint needs a quick burst. In theory, by controlling how much power you put into or take out of the motor, you could control how soft or firm it feels, and even get some of that energy storage and recovery you were talking about. But I don't know whether even the pros have attempted this. It sounds tricky to me.

Meanwhile, it turns out that there is an awful lot robots can do without such energy storage and recovery. Every time somebody says robots can't do something (e.g. running or jumping), people go and show that they can, even with fairly ordinary servos.

Best,
— Joe
Yes, professional robot builders have considered elastic energy storage for years. It's rather difficult to make use of, though. Our muscles can change their elasticity; springs cannot. So if you add springs to your joints, your robot will be great at bouncing along (running/hopping/whatever), but when you ask it to stand still, it's going to wobble and shake like a bowlful of jelly.

Pneumatic cylinders can work more like muscles, if they have controlled valves on both sides. Put low pressure on both sides, and the cylinder is soft; high pressure on both sides makes it firm. Different pressure on each side changes the set point (analogous to the natural length of a spring).

However, building pneumatic robots is rather hard. Not only do you need a pump — which is heavy and energy-hungry — but you need a LOT of electrically controlled valves, and do get fine control, you probably need variable (rather than just on/off) valves too. (Though you might be able to substitute PWM instead, but then you need very fast valves.) This is something I looked into a while back, thinking to build some pneumatic LEGO robots. But it turns out that electrically controlled valves are surprisingly expensive.

Some people on comp.robotics.misc have recently been asking whether you could do the energy storage and release electrically, rather than mechanically. Standard servos can't do this, but suppose you build your own. It'd need to have a gear train that can work in reverse, and electronics that can draw power off the motor/generator (say, when your robot is landing and that joint is being flexed by the downward force of the robot), store this power in a supercapacitor or some such, and then apply it later when the joint needs a quick burst. In theory, by controlling how much power you put into or take out of the motor, you could control how soft or firm it feels, and even get some of that energy storage and recovery you were talking about. But I don't know whether even the pros have attempted this. It sounds tricky to me.

Meanwhile, it turns out that there is an awful lot robots can do without such energy storage and recovery. Every time somebody says robots can't do something (e.g. running or jumping), people go and show that they can, even with fairly ordinary servos.

Best,
— Joe
Joe offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 204
Joined: Tue Sep 05, 2006 1:00 am

Post by RamDragon » Thu Dec 28, 2006 1:08 am

Post by RamDragon
Thu Dec 28, 2006 1:08 am

I used to work for a paintball manufacturer as a product designer and got into the nitty-gritty by asking to many "why don't we..." questions. We ended up designing an electro pneumatic marker that used those kinds of electro valves. Yes, they are expensive. Marginally more expensive than servos. And they don't allow pressure control; they only provide on/off or on/left/right/both functionality. Unless you really want to get into some dough by using 5-way and up through 12-way valves. You can get very complex very fast if money is no object, but that's true no matter what materials you are using.

The kind of rotary spring I had in mind, rather than a metal one, was one a lot like the resistance plate the new Bowflex system uses. It wouldn't flex under normal load, however a quick burst at higher torque would flex it slightly and provide energy storage. It would simply be a matter of determining precisely at what torque the servo would stress the spring. Again, the question is about torque, and if it would feed back force and strip the servo.

Joe wrote: It's rather difficult to make use of, though. Our muscles can change their elasticity; springs cannot.


Human muscle tissue changes elasticity in very predictable ways. When fully flexed it is most rigid, and when relaxed it is most elastic. The change in elasticity, then, can by very accurately approximated using springs. The effect of variable elasticity can be further simulated by controlling the amount of juice going to the DC motor. More juice, more torque. Less juice, lower torque and slower movements. The need for a drive train, that you mentioned, that goes both ways is obvious there. That is the only reason why standard servos can’t do that; the drive train is inadequate. Again, illustrating that market servos that have only been adapted form RC Hobby servos are going to need serious redesigning before they are properly adapted to robotics.

I’ve seen several pneumatic robots, but I disagree that pneumatics, or even hydraulics, will ever produce a reliable amount of control for use in humanoid robots. At least, not without a major rethinking over the cylinders and valves.

And I have yet to see a “running robot” run. They can walk fast, but I’ve yet to see running, which is characterized by the momentary air-time that is achieved between steps, while walking is characterized by the transfer of weight from one foot to the other while both rest on the ground.

Idly, as the subject of making your own servos was mentioned, does anyone have a ling for designing and building servos? I can see that many of my questions can only be properly questioned by winding my own motor first. I can definitely tell that before I try to tackle any of these issues, I’m going to have to build a smaller more realistic robot first.
I used to work for a paintball manufacturer as a product designer and got into the nitty-gritty by asking to many "why don't we..." questions. We ended up designing an electro pneumatic marker that used those kinds of electro valves. Yes, they are expensive. Marginally more expensive than servos. And they don't allow pressure control; they only provide on/off or on/left/right/both functionality. Unless you really want to get into some dough by using 5-way and up through 12-way valves. You can get very complex very fast if money is no object, but that's true no matter what materials you are using.

The kind of rotary spring I had in mind, rather than a metal one, was one a lot like the resistance plate the new Bowflex system uses. It wouldn't flex under normal load, however a quick burst at higher torque would flex it slightly and provide energy storage. It would simply be a matter of determining precisely at what torque the servo would stress the spring. Again, the question is about torque, and if it would feed back force and strip the servo.

Joe wrote: It's rather difficult to make use of, though. Our muscles can change their elasticity; springs cannot.


Human muscle tissue changes elasticity in very predictable ways. When fully flexed it is most rigid, and when relaxed it is most elastic. The change in elasticity, then, can by very accurately approximated using springs. The effect of variable elasticity can be further simulated by controlling the amount of juice going to the DC motor. More juice, more torque. Less juice, lower torque and slower movements. The need for a drive train, that you mentioned, that goes both ways is obvious there. That is the only reason why standard servos can’t do that; the drive train is inadequate. Again, illustrating that market servos that have only been adapted form RC Hobby servos are going to need serious redesigning before they are properly adapted to robotics.

I’ve seen several pneumatic robots, but I disagree that pneumatics, or even hydraulics, will ever produce a reliable amount of control for use in humanoid robots. At least, not without a major rethinking over the cylinders and valves.

And I have yet to see a “running robot” run. They can walk fast, but I’ve yet to see running, which is characterized by the momentary air-time that is achieved between steps, while walking is characterized by the transfer of weight from one foot to the other while both rest on the ground.

Idly, as the subject of making your own servos was mentioned, does anyone have a ling for designing and building servos? I can see that many of my questions can only be properly questioned by winding my own motor first. I can definitely tell that before I try to tackle any of these issues, I’m going to have to build a smaller more realistic robot first.
RamDragon offline
Robot Builder
Robot Builder
Posts: 7
Joined: Sun Dec 03, 2006 1:00 am

Post by Joe » Thu Dec 28, 2006 8:17 pm

Post by Joe
Thu Dec 28, 2006 8:17 pm

RamDragon wrote:The kind of rotary spring I had in mind, rather than a metal one, was one a lot like the resistance plate the new Bowflex system uses.

I'm not familiar with those plates. However, I'd be surprised if they weren't functionally equivalent to regular springs.

RamDragon wrote:Human muscle tissue changes elasticity in very predictable ways. When fully flexed it is most rigid, and when relaxed it is most elastic. The change in elasticity, then, can by very accurately approximated using springs.

I don't think so. Human muscles can be stiff in any position, even when not flexed; this is how I am able to stand still, upright, without bouncing all over the place. Springs can't do that. Pneumatic cylinders can, but we seem to be in agreement about the technical problems of using those.

However, I'm sure there's plenty of room for innovation involving springs in robot joints. Please don't let me discourage you from exploring this yourself — I look forward to seeing what you discover.

RamDragon wrote:And I have yet to see a “running robot” run. They can walk fast, but I’ve yet to see running, which is characterized by the momentary air-time that is achieved between steps

Then I daresay you haven't been paying attention. ;) Both ASIMO and Qrio achieved this feat in 2004.

Best,
- Joe
RamDragon wrote:The kind of rotary spring I had in mind, rather than a metal one, was one a lot like the resistance plate the new Bowflex system uses.

I'm not familiar with those plates. However, I'd be surprised if they weren't functionally equivalent to regular springs.

RamDragon wrote:Human muscle tissue changes elasticity in very predictable ways. When fully flexed it is most rigid, and when relaxed it is most elastic. The change in elasticity, then, can by very accurately approximated using springs.

I don't think so. Human muscles can be stiff in any position, even when not flexed; this is how I am able to stand still, upright, without bouncing all over the place. Springs can't do that. Pneumatic cylinders can, but we seem to be in agreement about the technical problems of using those.

However, I'm sure there's plenty of room for innovation involving springs in robot joints. Please don't let me discourage you from exploring this yourself — I look forward to seeing what you discover.

RamDragon wrote:And I have yet to see a “running robot” run. They can walk fast, but I’ve yet to see running, which is characterized by the momentary air-time that is achieved between steps

Then I daresay you haven't been paying attention. ;) Both ASIMO and Qrio achieved this feat in 2004.

Best,
- Joe
Joe offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 204
Joined: Tue Sep 05, 2006 1:00 am

Post by RamDragon » Thu Dec 28, 2006 10:39 pm

Post by RamDragon
Thu Dec 28, 2006 10:39 pm

The "plate" in the newer Bowflex system combines an outer disk with an inner disk. The two are joined with a rubber inner structure designed to provide regular blah, blah, blah.
A flash on their website shows what I am describing.

While it is true that you can stand without fully flexing your muscles, you cannot stand while they are relaxed. Muscles begin flexing well in advance of any real motion taking place, however thay can partially flex through a range from fully relaxed all the way to fully flexed, and they can maintain tension at any point along the way. That is the condition that servos and pneumatic cylinders can approximate. What I am talking about is not really that, though. It is the slight springiness present in human tissue under normal stress, the "preload”, which I am trying to imitate. Under normal walking conditions, the flex would not be present, but once sufficient tension is achieved for preload to happen-- that is where the springiness plays in and that is where the imitation of muscle works. A simple design of stops and limits would keep fast movements from being floppy. I should draw something up to better show what language is failing at.

As for the "running"... you need to watch the videos in slow motion. Both Asimo and Qrio walk really fast, but neither actually run. Honda's website even states that Asimo really walks fast. I'm an animator, so motion and the mechanics of movement are a big part of my education; it's the kind of thing that is easy to see when you know what you're looking for.

It was while watching the movements of those two specific robots that I started thinking along these lines. As far as movement goes, Qrio is far more advanced than Asimo, and Qrio still can't really run. That is when I started thinking about the design used for prosthetic feet.

Like theFreedom Series, Splinter or any of the sport related prosthetics available.

Anyway, it’s clear that nobody here is doing anything like this, so I get to invent on my own. Yippee!
The "plate" in the newer Bowflex system combines an outer disk with an inner disk. The two are joined with a rubber inner structure designed to provide regular blah, blah, blah.
A flash on their website shows what I am describing.

While it is true that you can stand without fully flexing your muscles, you cannot stand while they are relaxed. Muscles begin flexing well in advance of any real motion taking place, however thay can partially flex through a range from fully relaxed all the way to fully flexed, and they can maintain tension at any point along the way. That is the condition that servos and pneumatic cylinders can approximate. What I am talking about is not really that, though. It is the slight springiness present in human tissue under normal stress, the "preload”, which I am trying to imitate. Under normal walking conditions, the flex would not be present, but once sufficient tension is achieved for preload to happen-- that is where the springiness plays in and that is where the imitation of muscle works. A simple design of stops and limits would keep fast movements from being floppy. I should draw something up to better show what language is failing at.

As for the "running"... you need to watch the videos in slow motion. Both Asimo and Qrio walk really fast, but neither actually run. Honda's website even states that Asimo really walks fast. I'm an animator, so motion and the mechanics of movement are a big part of my education; it's the kind of thing that is easy to see when you know what you're looking for.

It was while watching the movements of those two specific robots that I started thinking along these lines. As far as movement goes, Qrio is far more advanced than Asimo, and Qrio still can't really run. That is when I started thinking about the design used for prosthetic feet.

Like theFreedom Series, Splinter or any of the sport related prosthetics available.

Anyway, it’s clear that nobody here is doing anything like this, so I get to invent on my own. Yippee!
RamDragon offline
Robot Builder
Robot Builder
Posts: 7
Joined: Sun Dec 03, 2006 1:00 am

Post by Joe » Fri Dec 29, 2006 1:48 am

Post by Joe
Fri Dec 29, 2006 1:48 am

RamDragon wrote:As for the "running"... you need to watch the videos in slow motion. Both Asimo and Qrio walk really fast, but neither actually run.

Simply not true. Qrio actually achieved running in 2003, with both legs off the ground for 20 ms (which I'll admit is just barely running, but running it is). ASIMO stays aloft for about 70 ms (or did in 2004 — it's probably better than that by now). References:

http://www.embedded.com/showArticle.jhtml?articleID=17100193
http://www.itworld.com/Tech/2987/031218sonyrobot/
http://world.honda.com/HDTV/ASIMO/200412-run/index.html
http://www.embedded.com/showArticle.jhtml?articleID=55800829

There are many more too — try google.

Best,
— Joe
RamDragon wrote:As for the "running"... you need to watch the videos in slow motion. Both Asimo and Qrio walk really fast, but neither actually run.

Simply not true. Qrio actually achieved running in 2003, with both legs off the ground for 20 ms (which I'll admit is just barely running, but running it is). ASIMO stays aloft for about 70 ms (or did in 2004 — it's probably better than that by now). References:

http://www.embedded.com/showArticle.jhtml?articleID=17100193
http://www.itworld.com/Tech/2987/031218sonyrobot/
http://world.honda.com/HDTV/ASIMO/200412-run/index.html
http://www.embedded.com/showArticle.jhtml?articleID=55800829

There are many more too — try google.

Best,
— Joe
Joe offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 204
Joined: Tue Sep 05, 2006 1:00 am

Post by Pev » Fri Dec 29, 2006 12:39 pm

Post by Pev
Fri Dec 29, 2006 12:39 pm

Silly suggestion but what about variation the sprung servo savers used in radio control cars. they provide a actuator transfer up to a point then the spring absorbs the additional power or shock (from a jump).

Just a thought

Pev
Silly suggestion but what about variation the sprung servo savers used in radio control cars. they provide a actuator transfer up to a point then the spring absorbs the additional power or shock (from a jump).

Just a thought

Pev
Carl
-------------------------
www.alt-view.co.uk
Pev offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 547
Joined: Sun Feb 26, 2006 1:00 am
Location: UK

Post by JonHylands » Fri Jan 05, 2007 5:44 am

Post by JonHylands
Fri Jan 05, 2007 5:44 am

What you're talking about has already been done - they are called Series Elastic Actuators. Check out MIT's humanoid robot M2, and spefically the Yobotics web site (http://www.yobotics.com).

My next robot, after MicroRaptor, will be actuated almost completely with series elastic actuators...

- Jon
What you're talking about has already been done - they are called Series Elastic Actuators. Check out MIT's humanoid robot M2, and spefically the Yobotics web site (http://www.yobotics.com).

My next robot, after MicroRaptor, will be actuated almost completely with series elastic actuators...

- Jon
JonHylands offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada

Post by Humanoido » Wed Jan 24, 2007 8:46 am

Post by Humanoido
Wed Jan 24, 2007 8:46 am

I put shoes on my Robonova. The Neoprene rubber absorbs a lot of vibration and impact when walking on hard floors, and greatly improves the walk capability.

Check this out:

http://robosavvy.com/modules.php?name=F ... opic&t=994

Humanoido
I put shoes on my Robonova. The Neoprene rubber absorbs a lot of vibration and impact when walking on hard floors, and greatly improves the walk capability.

Check this out:

http://robosavvy.com/modules.php?name=F ... opic&t=994

Humanoido
Humanoido offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 574
Joined: Tue Dec 05, 2006 1:00 am
Location: Deep in the Heart of Asia


10 postsPage 1 of 1
10 postsPage 1 of 1
cron