Simulated Premium

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
26 postsPage 2 of 21, 2
26 postsPage 2 of 21, 2

Post by Fritzoid » Wed Apr 27, 2011 3:08 pm

Post by Fritzoid
Wed Apr 27, 2011 3:08 pm

Hi Mohit,

Humanoid walking behavior is a complex action comprised of a number of wave-like motions with acceleration and momentum changes thrown in. It's hardly been mastered by some of the most sophisticated humanoid robots to date, Asimo for example. For a hobby robot like Bioloid it is just at the limits of its capabilities.

As you may have gathered at this point, there are no easy answers as to how one generates a complete walking gait. The tools supplied by Robotis are limited mostly because the Bioloid platform is limited. So the hobbyist is left to his own devices.

The first thing you need to do is to understand is what goes into a good walking gait. For this kind of information a good place to look is at character animation books or articles. Here's a link to get you startedhttp://www.idleworm.com/how/anm/02w/walk1.shtml

You should also look into key-frame animation since that is essentially what the Bioloid will be doing.

Next you need to consider underlying geometry of your robot. The robot has many degrees of freedom but is more restricted in its movements than an actual human. You will need to modify the optimum gait that a human might use to something the robot can actually perform, for example the Bioloid has no head movement or shoulder sway.

Once you understand what walking a robot is all about you can start to think about what you need to do to get the results that you are looking for. As I see it there seem to be at least three ways to approach the problem.

1. Learn to use the key-framing tools that you have, catch and play and the RoboPlus pose utility for example. You more-or-less have to learn this by trial and error. Aided of course by your newly acquired understanding of character animation and kinematics.

2. Upgrade you processing power so that you can use formula-based gait generating software. This means either adding a piggy-back processor to you Bioloid or upgrading to something like a DarwinOP. How deep is your wallet?

3. Create new tools to bridge the gap between the two worlds. One might modify or build a parametric gait generator and use it to produce key-frame positioning data. How are your programming skills?

So it's not that we're holding out any information here, it's just that we don't have the answer either.
Hi Mohit,

Humanoid walking behavior is a complex action comprised of a number of wave-like motions with acceleration and momentum changes thrown in. It's hardly been mastered by some of the most sophisticated humanoid robots to date, Asimo for example. For a hobby robot like Bioloid it is just at the limits of its capabilities.

As you may have gathered at this point, there are no easy answers as to how one generates a complete walking gait. The tools supplied by Robotis are limited mostly because the Bioloid platform is limited. So the hobbyist is left to his own devices.

The first thing you need to do is to understand is what goes into a good walking gait. For this kind of information a good place to look is at character animation books or articles. Here's a link to get you startedhttp://www.idleworm.com/how/anm/02w/walk1.shtml

You should also look into key-frame animation since that is essentially what the Bioloid will be doing.

Next you need to consider underlying geometry of your robot. The robot has many degrees of freedom but is more restricted in its movements than an actual human. You will need to modify the optimum gait that a human might use to something the robot can actually perform, for example the Bioloid has no head movement or shoulder sway.

Once you understand what walking a robot is all about you can start to think about what you need to do to get the results that you are looking for. As I see it there seem to be at least three ways to approach the problem.

1. Learn to use the key-framing tools that you have, catch and play and the RoboPlus pose utility for example. You more-or-less have to learn this by trial and error. Aided of course by your newly acquired understanding of character animation and kinematics.

2. Upgrade you processing power so that you can use formula-based gait generating software. This means either adding a piggy-back processor to you Bioloid or upgrading to something like a DarwinOP. How deep is your wallet?

3. Create new tools to bridge the gap between the two worlds. One might modify or build a parametric gait generator and use it to produce key-frame positioning data. How are your programming skills?

So it's not that we're holding out any information here, it's just that we don't have the answer either.
Fritzoid offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 331
Joined: Mon Dec 18, 2006 1:00 am

Post by MOHIT JINDAL » Fri Apr 29, 2011 12:24 pm

Post by MOHIT JINDAL
Fri Apr 29, 2011 12:24 pm

That is again a good Help FritZoid :lol:

Can you ask ROBOTIS When they start selling the Aluminum Frames of Bioloid GP ? :roll:

And what is the difference between Ax12A and Ax18A ?

Thanks.
That is again a good Help FritZoid :lol:

Can you ask ROBOTIS When they start selling the Aluminum Frames of Bioloid GP ? :roll:

And what is the difference between Ax12A and Ax18A ?

Thanks.
MOHIT JINDAL offline
Savvy Roboteer
Savvy Roboteer
Posts: 178
Joined: Wed Nov 10, 2010 7:43 am

Post by Fritzoid » Mon May 02, 2011 2:51 pm

Post by Fritzoid
Mon May 02, 2011 2:51 pm

Here's a video of a simulation using position data generated from the Darwin-OP walk_tuner routine (with modifications).

phpBB [media]


It could still use some fine tuning but it's getting there.
Here's a video of a simulation using position data generated from the Darwin-OP walk_tuner routine (with modifications).

phpBB [media]


It could still use some fine tuning but it's getting there.
Fritzoid offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 331
Joined: Mon Dec 18, 2006 1:00 am

How too

Post by KenM » Thu Aug 04, 2011 2:44 pm

Post by KenM
Thu Aug 04, 2011 2:44 pm

Hi Frizoid,
I ran across your excellent post here and i tried to pm you but im not sure it worked. Anyway Im attempting to use OpenHRP to do some developing on a bipedal robot and i was wondering if could ask you a few questions about how you got from point A to B.

1) I understand you used Alibre to import the iGS and then gathered the necessary data. How did you ensure the physics data was correct as compared to the actual data? Or is the difference not critical to the simulation?

2) As the output shaft of a servo is offset by X amount what were the steps you used to origin position the model so the pivot point is at the output shaft? Or is this just defined via some attribute in the VRML.

3) so i understand you exported from Alibre to Blender? and then exported out To VRML. then imported into the GrxUI and modified the translation,rotational data. Or was it via another process? I can guess it was alot of work on your part to make it happen for sure.

4) I did try and import your Biosim model into the GrxUI to see it using the MODEL load humaniod_a.vrml i believe.. while it didnt crash the program .. it also didnt do anything ( no model appeared and nothing was in the tree). This didnt happen with the built in sample model they loaded and appeared. I was curious if youve run into this problem during your learning curve?

5) are you able to actually control the joints on the robot in realtime?.. kind of like a pose and capture a frame editor using the default program? Id like to develop some slider controls and perhaps use OpenHRP as a motion editing software.. seems like its almost there to me.

Id like to Thank you for your hard work. Just getting OpenHRP to compile was tough enough. I can only imagine your learning curve based on the sketchy website ( which is chopful of information arranged in a hard for beginners to understand way) Im hoping to post some beginner tutorials on my site so more people can take advantage of the program.

Thanks in advance for your time!
Ken M
Hi Frizoid,
I ran across your excellent post here and i tried to pm you but im not sure it worked. Anyway Im attempting to use OpenHRP to do some developing on a bipedal robot and i was wondering if could ask you a few questions about how you got from point A to B.

1) I understand you used Alibre to import the iGS and then gathered the necessary data. How did you ensure the physics data was correct as compared to the actual data? Or is the difference not critical to the simulation?

2) As the output shaft of a servo is offset by X amount what were the steps you used to origin position the model so the pivot point is at the output shaft? Or is this just defined via some attribute in the VRML.

3) so i understand you exported from Alibre to Blender? and then exported out To VRML. then imported into the GrxUI and modified the translation,rotational data. Or was it via another process? I can guess it was alot of work on your part to make it happen for sure.

4) I did try and import your Biosim model into the GrxUI to see it using the MODEL load humaniod_a.vrml i believe.. while it didnt crash the program .. it also didnt do anything ( no model appeared and nothing was in the tree). This didnt happen with the built in sample model they loaded and appeared. I was curious if youve run into this problem during your learning curve?

5) are you able to actually control the joints on the robot in realtime?.. kind of like a pose and capture a frame editor using the default program? Id like to develop some slider controls and perhaps use OpenHRP as a motion editing software.. seems like its almost there to me.

Id like to Thank you for your hard work. Just getting OpenHRP to compile was tough enough. I can only imagine your learning curve based on the sketchy website ( which is chopful of information arranged in a hard for beginners to understand way) Im hoping to post some beginner tutorials on my site so more people can take advantage of the program.

Thanks in advance for your time!
Ken M
KenM offline
Newbie
Newbie
Posts: 3
Joined: Tue Aug 02, 2011 2:55 pm

Post by Fritzoid » Thu Aug 04, 2011 5:43 pm

Post by Fritzoid
Thu Aug 04, 2011 5:43 pm

Hi Ken,

Thanks for your interest in my work. I hope I can answer some of your questions.

In regard to the physical properties the data needed to define the model in OpenHRP are the mass, center of gravity, and the inertial tensor for each assembly. For the frames you can have Alibre calculate the mass and COG by specifying the material density. I did this in reverse by weighing the individual frames and then plugging in a density that produced the correct weight for each part.

Unfortunately the servo COG cannot be calculated this way. Here it was necessary to make the material density very low and to add a special mass unit (small cube) into the interior of the model. The mass is placed at the measured COG as closely as can be managed by hand. This technique is described at the Humanoid Robotics Lab website http://humanoids.dem.ist.utl.pt/Iden_external/overview.html

Once all the parts have good mass and COG values, Alibre can calculate the required values for the assemblies. Finally I compared the calculated masses to measurements I took when building my robot and tweaked the results accordingly.

Because the COG and inertial tensors are relative to the part origins care must be taken to set to appropriate starting point for the assemblies. Since the model coordinates are relative to the parent joint it is necessary to set the origin for many of the frames to where the servo horn will be located after assembly. The other parts in the assembly are then added relative to this parent frame.

The VRML models were created in Blender starting from the low-resolution igs files included in the RoboPlus package. These are used only for display purposes and are significantly less complex than the engineering parts used above. Here again it was necessary to set the origins for the parts to reflect their mounting positions. I combined the parts again to create the necessary assemblies. Finally the mesh assemblies were scaled and oriented to conform with the OpenHRP coordinate system.

You should be congratulated for getting OpenHRP installed!!!

To load my model you will need to update the CORBA message buffer size. The default 2M is too small, I upped it to 4M. Do do this you need to edit the configuration file. On Linux systems this can be found at /etc/omniORB4.cfg. Increase the parameter for giopMaxMsgSize to something like 4194304.

Finally, I don't have a real-time capability for the simulator at this point. The plan is to use my MotionEdit program to do this. It can edit motion files and do the uploads and downloads to an actual or simulated robot. It's written in java so it should be possible to run my MotionEdit from a JYTHON script in OpenHRP. I haven't hacked out the details of the interface yet. As you've said the web based information is sketchy.
Hi Ken,

Thanks for your interest in my work. I hope I can answer some of your questions.

In regard to the physical properties the data needed to define the model in OpenHRP are the mass, center of gravity, and the inertial tensor for each assembly. For the frames you can have Alibre calculate the mass and COG by specifying the material density. I did this in reverse by weighing the individual frames and then plugging in a density that produced the correct weight for each part.

Unfortunately the servo COG cannot be calculated this way. Here it was necessary to make the material density very low and to add a special mass unit (small cube) into the interior of the model. The mass is placed at the measured COG as closely as can be managed by hand. This technique is described at the Humanoid Robotics Lab website http://humanoids.dem.ist.utl.pt/Iden_external/overview.html

Once all the parts have good mass and COG values, Alibre can calculate the required values for the assemblies. Finally I compared the calculated masses to measurements I took when building my robot and tweaked the results accordingly.

Because the COG and inertial tensors are relative to the part origins care must be taken to set to appropriate starting point for the assemblies. Since the model coordinates are relative to the parent joint it is necessary to set the origin for many of the frames to where the servo horn will be located after assembly. The other parts in the assembly are then added relative to this parent frame.

The VRML models were created in Blender starting from the low-resolution igs files included in the RoboPlus package. These are used only for display purposes and are significantly less complex than the engineering parts used above. Here again it was necessary to set the origins for the parts to reflect their mounting positions. I combined the parts again to create the necessary assemblies. Finally the mesh assemblies were scaled and oriented to conform with the OpenHRP coordinate system.

You should be congratulated for getting OpenHRP installed!!!

To load my model you will need to update the CORBA message buffer size. The default 2M is too small, I upped it to 4M. Do do this you need to edit the configuration file. On Linux systems this can be found at /etc/omniORB4.cfg. Increase the parameter for giopMaxMsgSize to something like 4194304.

Finally, I don't have a real-time capability for the simulator at this point. The plan is to use my MotionEdit program to do this. It can edit motion files and do the uploads and downloads to an actual or simulated robot. It's written in java so it should be possible to run my MotionEdit from a JYTHON script in OpenHRP. I haven't hacked out the details of the interface yet. As you've said the web based information is sketchy.
Fritzoid offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 331
Joined: Mon Dec 18, 2006 1:00 am

Great info

Post by KenM » Thu Aug 04, 2011 10:08 pm

Post by KenM
Thu Aug 04, 2011 10:08 pm

Thanks! I really appreciate the fast response.. I editted the Omni file and the model loaded just fine. Being able to study it should answer alot of future questions as well! Im stoked.

Thanks for the link to the COG for a servo with a cube.. i would not have thought of that. As we are rolling our own servo; I have full Alibre model access to the components so it will be interesting to see how close Alibre is to the actual physical servo, failing that ill use the cube!

I wish i could say I figured out how to install OpenHRP myself but I had to ask for help. On the upside the guru helping me out came out with a nice installation HOW TO which i did post on my site.. www.biomimetix.us. I'm hoping that it helps others over that hurdle.

Is your Motion Editor open source? If so i would love to play with it and see if i can figure out how to integrate it myself. I saw after loading your model I can go to the properties and update the joint angle and see a change in the model so that is really promising. So a Java UI slider interface that changes those values ( between the set min and max angle) and then can parses thru the joint tree (on a buton click) and collects data. then perhaps appends it to a file would make for a simple interactive motion editor? Just a thought out loud.
Thanks! I really appreciate the fast response.. I editted the Omni file and the model loaded just fine. Being able to study it should answer alot of future questions as well! Im stoked.

Thanks for the link to the COG for a servo with a cube.. i would not have thought of that. As we are rolling our own servo; I have full Alibre model access to the components so it will be interesting to see how close Alibre is to the actual physical servo, failing that ill use the cube!

I wish i could say I figured out how to install OpenHRP myself but I had to ask for help. On the upside the guru helping me out came out with a nice installation HOW TO which i did post on my site.. www.biomimetix.us. I'm hoping that it helps others over that hurdle.

Is your Motion Editor open source? If so i would love to play with it and see if i can figure out how to integrate it myself. I saw after loading your model I can go to the properties and update the joint angle and see a change in the model so that is really promising. So a Java UI slider interface that changes those values ( between the set min and max angle) and then can parses thru the joint tree (on a buton click) and collects data. then perhaps appends it to a file would make for a simple interactive motion editor? Just a thought out loud.
KenM offline
Newbie
Newbie
Posts: 3
Joined: Tue Aug 02, 2011 2:55 pm

Post by Fritzoid » Fri Aug 05, 2011 12:32 pm

Post by Fritzoid
Fri Aug 05, 2011 12:32 pm

Motion Edit is open source, it can be downloaded from my files area http://robosavvy.com/Builders/Fritzoid. It's written in java using the Netbeans IDE. Netbeans is a very usable programming environment and is available for free download at http://netbeans.org/downloads/.

To modify and compile the project you will also need a couple of third-party libraries. I use the java extension library for communications, javax.comm, to do the serial I/O. You can get that at http://www.oracle.com/technetwork/java/index-jsp-141752.html. You will also need JFreeChart which is used to generate the graph used by the import function. You can get JFreeChart at http://www.jfree.org/jfreechart/.

Have fun!
Motion Edit is open source, it can be downloaded from my files area http://robosavvy.com/Builders/Fritzoid. It's written in java using the Netbeans IDE. Netbeans is a very usable programming environment and is available for free download at http://netbeans.org/downloads/.

To modify and compile the project you will also need a couple of third-party libraries. I use the java extension library for communications, javax.comm, to do the serial I/O. You can get that at http://www.oracle.com/technetwork/java/index-jsp-141752.html. You will also need JFreeChart which is used to generate the graph used by the import function. You can get JFreeChart at http://www.jfree.org/jfreechart/.

Have fun!
Fritzoid offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 331
Joined: Mon Dec 18, 2006 1:00 am

No luck with Java comms

Post by KenM » Mon Aug 08, 2011 7:48 pm

Post by KenM
Mon Aug 08, 2011 7:48 pm

Hi Thanks for the motion editor and the links.. ive got it all installed i see your coded all loaded in netbeans but the java comms link while giving you a page, once you hit download says that the site has been rearranged. Ive been all up and down and it and for the life of me i cant find the new javacomm library could you post the zip for me perhaps?

Thanks
Ken
Hi Thanks for the motion editor and the links.. ive got it all installed i see your coded all loaded in netbeans but the java comms link while giving you a page, once you hit download says that the site has been rearranged. Ive been all up and down and it and for the life of me i cant find the new javacomm library could you post the zip for me perhaps?

Thanks
Ken
KenM offline
Newbie
Newbie
Posts: 3
Joined: Tue Aug 02, 2011 2:55 pm

Post by Fritzoid » Tue Aug 09, 2011 12:33 pm

Post by Fritzoid
Tue Aug 09, 2011 12:33 pm

Hi Ken,

Sorry about the link. Seems I'm not certain where I got the comm library after all. My best guess is that I used the zip file comm3.0_u1_linux.zip which can be found at various places on the web. I've also uploaded a copy to my files area http://robosavvy.com/Builders/Fritzoid.
Hi Ken,

Sorry about the link. Seems I'm not certain where I got the comm library after all. My best guess is that I used the zip file comm3.0_u1_linux.zip which can be found at various places on the web. I've also uploaded a copy to my files area http://robosavvy.com/Builders/Fritzoid.
Fritzoid offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 331
Joined: Mon Dec 18, 2006 1:00 am

Post by MOHIT JINDAL » Wed May 02, 2012 10:54 am

Post by MOHIT JINDAL
Wed May 02, 2012 10:54 am

HI Fritzoid;

Here is my First Experimental Bipedal Walking Video.

http://www.flickr.com/photos/mohitjindal2712/

Its shaking right now. I set the Joint Softness to 2. I will try to make it walk smoothly. :) :D
HI Fritzoid;

Here is my First Experimental Bipedal Walking Video.

http://www.flickr.com/photos/mohitjindal2712/

Its shaking right now. I set the Joint Softness to 2. I will try to make it walk smoothly. :) :D
MOHIT JINDAL offline
Savvy Roboteer
Savvy Roboteer
Posts: 178
Joined: Wed Nov 10, 2010 7:43 am

Walking of humanoid

Post by Compadre » Sun Jun 03, 2012 4:30 am

Post by Compadre
Sun Jun 03, 2012 4:30 am

There are menay ways to make a humanoid walking.

One way to go is IK with tools like blender, etc. and key frame editing motion software, like some two or three aout there (coreograph and one for robonova that I have look).

Another is mathematically formulate trajectories and solve ik in analytic fashion. I followe this way and my bioloid is walking now. Interestingly enough this approach can make a robot walk with atmega 256!!!

There are three interesting topics in this practical problem:

a) Changing the surface of bipedal walking will change a good and fast result into a mess.

b) Rigidity of bioloid servos when passing from double to single support plays an important role (need to be caracterized at least in practical terms)

c) Passing a well done model of Bioloid or KHR-3, to Dynamics software simulator like webots, openHRP is mandotary for serious approaches.

I liked a lot what Fritzoid posted about not yet having an answer because it is true in deed.

With major robots like Darwin, and Nao it is solved but with our kidsize robots is still a challenging issue.

So, how much time dou you think guys that this will take us
considering yearly competitions like robocup and lars sbr... ?
There are menay ways to make a humanoid walking.

One way to go is IK with tools like blender, etc. and key frame editing motion software, like some two or three aout there (coreograph and one for robonova that I have look).

Another is mathematically formulate trajectories and solve ik in analytic fashion. I followe this way and my bioloid is walking now. Interestingly enough this approach can make a robot walk with atmega 256!!!

There are three interesting topics in this practical problem:

a) Changing the surface of bipedal walking will change a good and fast result into a mess.

b) Rigidity of bioloid servos when passing from double to single support plays an important role (need to be caracterized at least in practical terms)

c) Passing a well done model of Bioloid or KHR-3, to Dynamics software simulator like webots, openHRP is mandotary for serious approaches.

I liked a lot what Fritzoid posted about not yet having an answer because it is true in deed.

With major robots like Darwin, and Nao it is solved but with our kidsize robots is still a challenging issue.

So, how much time dou you think guys that this will take us
considering yearly competitions like robocup and lars sbr... ?
Compadre offline
Robot Builder
Robot Builder
Posts: 10
Joined: Fri Jul 22, 2011 3:58 am

Previous
Previous
26 postsPage 2 of 21, 2
26 postsPage 2 of 21, 2