Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

Bioloid Premium (Type A) Balancing issue

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

Bioloid Premium (Type A) Balancing issue

Post by retro_boy » Sun Nov 27, 2011 1:58 am

Post by retro_boy
Sun Nov 27, 2011 1:58 am

Hi,

Completed my build and noticed that the robot seems very unstable. For example he cannot seem to pick himself up after falling down, he will fall down after attempting the 'kick' motion, and he doesn't seem to auto correct his balance.

How do I test the balance / gyro? Is there a mode I can put him in that allows me to push and pull him to see if he compensates his stance?
Hi,

Completed my build and noticed that the robot seems very unstable. For example he cannot seem to pick himself up after falling down, he will fall down after attempting the 'kick' motion, and he doesn't seem to auto correct his balance.

How do I test the balance / gyro? Is there a mode I can put him in that allows me to push and pull him to see if he compensates his stance?
retro_boy
Robot Builder
Robot Builder
Posts: 22
Joined: Sat Nov 19, 2011 8:48 pm

Re: Bioloid Premium (Type A) Balancing issue

Post by garycmartin » Sun Nov 27, 2011 4:19 pm

Post by garycmartin
Sun Nov 27, 2011 4:19 pm

retro_boy wrote:Hi,

Completed my build and noticed that the robot seems very unstable. For example he cannot seem to pick himself up after falling down, he will fall down after attempting the 'kick' motion, and he doesn't seem to auto correct his balance.

How do I test the balance / gyro? Is there a mode I can put him in that allows me to push and pull him to see if he compensates his stance?


It's been quite a while since I looked at the stock moves, but I'm pretty sure the default task script for the Humanoid Type A disables the gyro correction offsets when it plays back most (maybe all) of the 'special action' type animations as it would interfere and make stability worse. Take a skim through the type A tsk script and see which moves it is disabled on. FWIW the 2 axis gyro provided doesn't detect the direction of gravity, it just tries to compensate for torso pitch and roll changes (the walk animations are made to try and keep the torso as level).

Some quick things to check if you still think there is a particular balance issue: Make sure you try testing motions on a hard and level surface, just in case your ground isn't a level as you think. Try downloading the latest Humanoid Type A motion and task files from the robotis site and upload them to you robot, you might be using older versions. Check that the default standing pose looks correct and symmetrical, there is a mode in Motion that allows you to adjust servo offsets if one needs a little tweaking (but not something I've ever needed to do).

--Gary
retro_boy wrote:Hi,

Completed my build and noticed that the robot seems very unstable. For example he cannot seem to pick himself up after falling down, he will fall down after attempting the 'kick' motion, and he doesn't seem to auto correct his balance.

How do I test the balance / gyro? Is there a mode I can put him in that allows me to push and pull him to see if he compensates his stance?


It's been quite a while since I looked at the stock moves, but I'm pretty sure the default task script for the Humanoid Type A disables the gyro correction offsets when it plays back most (maybe all) of the 'special action' type animations as it would interfere and make stability worse. Take a skim through the type A tsk script and see which moves it is disabled on. FWIW the 2 axis gyro provided doesn't detect the direction of gravity, it just tries to compensate for torso pitch and roll changes (the walk animations are made to try and keep the torso as level).

Some quick things to check if you still think there is a particular balance issue: Make sure you try testing motions on a hard and level surface, just in case your ground isn't a level as you think. Try downloading the latest Humanoid Type A motion and task files from the robotis site and upload them to you robot, you might be using older versions. Check that the default standing pose looks correct and symmetrical, there is a mode in Motion that allows you to adjust servo offsets if one needs a little tweaking (but not something I've ever needed to do).

--Gary
garycmartin
Savvy Roboteer
Savvy Roboteer
Posts: 42
Joined: Fri Jan 15, 2010 9:27 pm

Post by retro_boy » Sun Nov 27, 2011 5:34 pm

Post by retro_boy
Sun Nov 27, 2011 5:34 pm

Everything appears to be set up correctly, but the robot does seem to fall over backwards a lot. I have seen videos on youtube where people clearly push the robot or tilt it and it compensates by putting its arm out or adjusting its servos.
My Bioloid never seems to do any of that, that is what worries me. What mode should the robot be in in order to properly test the gyro functionality?
Everything appears to be set up correctly, but the robot does seem to fall over backwards a lot. I have seen videos on youtube where people clearly push the robot or tilt it and it compensates by putting its arm out or adjusting its servos.
My Bioloid never seems to do any of that, that is what worries me. What mode should the robot be in in order to properly test the gyro functionality?
retro_boy
Robot Builder
Robot Builder
Posts: 22
Joined: Sat Nov 19, 2011 8:48 pm

Post by garycmartin » Sun Nov 27, 2011 6:53 pm

Post by garycmartin
Sun Nov 27, 2011 6:53 pm

retro_boy wrote:Everything appears to be set up correctly, but the robot does seem to fall over backwards a lot. I have seen videos on youtube where people clearly push the robot or tilt it and it compensates by putting its arm out or adjusting its servos.
My Bioloid never seems to do any of that, that is what worries me. What mode should the robot be in in order to properly test the gyro functionality?


You'll need to take a look at the Humanoid Type A task script and see which motions are using the gyro code, perhaps tweak the code and upload it so you can test the gyro while it's standing still, so the effect is more obvious. The sample code is just making simple ankle angle offset adjustments if I remember correctly.

If you are just worried your gyro is not connected/communicating correctly, use the RoboPlus Manager software. You can use it to see the values of the CM-510 analogue ports and make sure when you pitch and roll the robot, you see the correct port values change.

The more interesting Bioloid videos out there are where folks have customised the code to do more interesting balance postures depending on their goals. Also keep in mind that it is rather tricky to write a general purpose balance solution (e.g. standing on one foot, two feet, absorbing external bump forces, balance while walking on a flat hard surface, walking on a carpet, walking on a surface with inclines, etc). I've seen nice examples of some of these cases, but rarely more than one at a time.

--Gary
retro_boy wrote:Everything appears to be set up correctly, but the robot does seem to fall over backwards a lot. I have seen videos on youtube where people clearly push the robot or tilt it and it compensates by putting its arm out or adjusting its servos.
My Bioloid never seems to do any of that, that is what worries me. What mode should the robot be in in order to properly test the gyro functionality?


You'll need to take a look at the Humanoid Type A task script and see which motions are using the gyro code, perhaps tweak the code and upload it so you can test the gyro while it's standing still, so the effect is more obvious. The sample code is just making simple ankle angle offset adjustments if I remember correctly.

If you are just worried your gyro is not connected/communicating correctly, use the RoboPlus Manager software. You can use it to see the values of the CM-510 analogue ports and make sure when you pitch and roll the robot, you see the correct port values change.

The more interesting Bioloid videos out there are where folks have customised the code to do more interesting balance postures depending on their goals. Also keep in mind that it is rather tricky to write a general purpose balance solution (e.g. standing on one foot, two feet, absorbing external bump forces, balance while walking on a flat hard surface, walking on a carpet, walking on a surface with inclines, etc). I've seen nice examples of some of these cases, but rarely more than one at a time.

--Gary
garycmartin
Savvy Roboteer
Savvy Roboteer
Posts: 42
Joined: Fri Jan 15, 2010 9:27 pm

Post by retro_boy » Sun Nov 27, 2011 10:55 pm

Post by retro_boy
Sun Nov 27, 2011 10:55 pm

Thanks Gary. I will do a few more checks. I guess I don't want to keep taking the thing apart to tweak it!

I noticed you have made a custom assembly with a havimo swivel camera - it looks really cool. Do you have any instructions on how to construct it?
Thanks Gary. I will do a few more checks. I guess I don't want to keep taking the thing apart to tweak it!

I noticed you have made a custom assembly with a havimo swivel camera - it looks really cool. Do you have any instructions on how to construct it?
retro_boy
Robot Builder
Robot Builder
Posts: 22
Joined: Sat Nov 19, 2011 8:48 pm

Post by garycmartin » Mon Nov 28, 2011 3:50 pm

Post by garycmartin
Mon Nov 28, 2011 3:50 pm

retro_boy wrote:Thanks Gary. I will do a few more checks. I guess I don't want to keep taking the thing apart to tweak it!

I noticed you have made a custom assembly with a havimo swivel camera - it looks really cool. Do you have any instructions on how to construct it?


I've been posting occasional photos to my flickr set http://flic.kr/s/aHsjuospRC as I change things, might be of help.

It's quite a long way now from the default Humanoid Type A setup, but a nice platform to experiment on with code (I'm more a software guy than hardware). There seemed to be three choices for adding the pan & tilt setup, 1) simply mount the pan and tilt servos on top of the torso; 2) place the pan servo inside the torso case (shoulder servos need to be moved outside for it to fit, and a very minor bracket mod); 3) build a custom torso to replace the standard premium box. When I first got the havimo unit I used (1) for a while, but found the extra weight up top enough of a change to balance that most of the default motions needed to be adjusted – so if I had to start reworking all the motions (something I wanted to do anyway) I might as well make some more significant body plan changes and switch to (2). :)

--Gary
retro_boy wrote:Thanks Gary. I will do a few more checks. I guess I don't want to keep taking the thing apart to tweak it!

I noticed you have made a custom assembly with a havimo swivel camera - it looks really cool. Do you have any instructions on how to construct it?


I've been posting occasional photos to my flickr set http://flic.kr/s/aHsjuospRC as I change things, might be of help.

It's quite a long way now from the default Humanoid Type A setup, but a nice platform to experiment on with code (I'm more a software guy than hardware). There seemed to be three choices for adding the pan & tilt setup, 1) simply mount the pan and tilt servos on top of the torso; 2) place the pan servo inside the torso case (shoulder servos need to be moved outside for it to fit, and a very minor bracket mod); 3) build a custom torso to replace the standard premium box. When I first got the havimo unit I used (1) for a while, but found the extra weight up top enough of a change to balance that most of the default motions needed to be adjusted – so if I had to start reworking all the motions (something I wanted to do anyway) I might as well make some more significant body plan changes and switch to (2). :)

--Gary
garycmartin
Savvy Roboteer
Savvy Roboteer
Posts: 42
Joined: Fri Jan 15, 2010 9:27 pm

Post by retro_boy » Tue Nov 29, 2011 11:01 am

Post by retro_boy
Tue Nov 29, 2011 11:01 am

How have you got your software environment set up? You mentioned that you were using Python, I'd be interested to know how you compile it?
How have you got your software environment set up? You mentioned that you were using Python, I'd be interested to know how you compile it?
retro_boy
Robot Builder
Robot Builder
Posts: 22
Joined: Sat Nov 19, 2011 8:48 pm

Post by garycmartin » Wed Nov 30, 2011 3:30 pm

Post by garycmartin
Wed Nov 30, 2011 3:30 pm

retro_boy wrote:How have you got your software environment set up? You mentioned that you were using Python, I'd be interested to know how you compile it?


Sure, I'm primarily a Mac and Linux user who seems to work a lot with Python, so my goal at some point (soon) is to replace the cm-510 with a low power device capable or running a standard Linux environment. As a bridge to that setup, I'm now driving the biped directly from my Mac laptop using Python, this same code can be run on other platforms without any re-compiling for special hardware, and is much more programmer friendly than working in RoboPlus Task (which is good for simple experiments but has notable limitations, most likely related to the CM-510 hardware abilities).

So I needed to install:
1) Mac drivers from http://www.ftdichip.com/Drivers/VCP.htm so I could talk to the Dynamixel2USB hardware
2) A Python version of the Dynamixel library from http://code.google.com/p/pydynamixel/
3) An extra module for Python to talk to the serial port http://pypi.python.org/pypi/pyserial (required by pydynamixel)

There are a couple of simple Python examples that come with pydynamixel to talk to the Dynamixel bus and drive/read servos (through note I don't yet have access to analogue ports on the CM-510). I connect my laptop to the biped with a 2M USB extension cable going to the USB2Dynamixel, which can then attach to the biped via the TTL Dynamixel bus.

If you've only just built your Bioloid, I'd recommend experimenting with the tools Robotis provide for a while until you've a fair idea of the abilities/limitations, they do give you access to the majority of the hardware features so you have a good idea what to expect if you try to control it from another language.

--Gary
retro_boy wrote:How have you got your software environment set up? You mentioned that you were using Python, I'd be interested to know how you compile it?


Sure, I'm primarily a Mac and Linux user who seems to work a lot with Python, so my goal at some point (soon) is to replace the cm-510 with a low power device capable or running a standard Linux environment. As a bridge to that setup, I'm now driving the biped directly from my Mac laptop using Python, this same code can be run on other platforms without any re-compiling for special hardware, and is much more programmer friendly than working in RoboPlus Task (which is good for simple experiments but has notable limitations, most likely related to the CM-510 hardware abilities).

So I needed to install:
1) Mac drivers from http://www.ftdichip.com/Drivers/VCP.htm so I could talk to the Dynamixel2USB hardware
2) A Python version of the Dynamixel library from http://code.google.com/p/pydynamixel/
3) An extra module for Python to talk to the serial port http://pypi.python.org/pypi/pyserial (required by pydynamixel)

There are a couple of simple Python examples that come with pydynamixel to talk to the Dynamixel bus and drive/read servos (through note I don't yet have access to analogue ports on the CM-510). I connect my laptop to the biped with a 2M USB extension cable going to the USB2Dynamixel, which can then attach to the biped via the TTL Dynamixel bus.

If you've only just built your Bioloid, I'd recommend experimenting with the tools Robotis provide for a while until you've a fair idea of the abilities/limitations, they do give you access to the majority of the hardware features so you have a good idea what to expect if you try to control it from another language.

--Gary
Last edited by garycmartin on Wed Nov 30, 2011 4:50 pm, edited 1 time in total.
garycmartin
Savvy Roboteer
Savvy Roboteer
Posts: 42
Joined: Fri Jan 15, 2010 9:27 pm

Post by retro_boy » Wed Nov 30, 2011 3:36 pm

Post by retro_boy
Wed Nov 30, 2011 3:36 pm

Thanks Gary,

Great advice, I appreciate it.

I'm a Mac user too, and I am also keen to move away from the CM-510, as I want to investigate speech synthesis/recognition, and other more AI friendly technologies.

Have you seen any SOC boards that might be up to the job?


Mark
Thanks Gary,

Great advice, I appreciate it.

I'm a Mac user too, and I am also keen to move away from the CM-510, as I want to investigate speech synthesis/recognition, and other more AI friendly technologies.

Have you seen any SOC boards that might be up to the job?


Mark
retro_boy
Robot Builder
Robot Builder
Posts: 22
Joined: Sat Nov 19, 2011 8:48 pm

Post by garycmartin » Wed Nov 30, 2011 5:40 pm

Post by garycmartin
Wed Nov 30, 2011 5:40 pm

retro_boy wrote:Thanks Gary,

Great advice, I appreciate it.

I'm a Mac user too, and I am also keen to move away from the CM-510, as I want to investigate speech synthesis/recognition, and other more AI friendly technologies.

Have you seen any SOC boards that might be up to the job?


Mark


The ones that I have my eye on so far are the Beagle Board, and RoBoard RB-050 (still not yet shipping). The Omnima MiniEMBWiFi that folks here have been working with is tempting to try out (as it's so cheap) but I'm worried its OpenWrt Linux environment might just be too limiting e.g. missing Python module packages I'd need to get a working setup. I'm also keen to try and avoid turning my biped into a christmas tree of power supplies/batteries, USB devices, USB hub, power regulators, cabling, etc – but I'll need to see how well that plan goes :) I have no critical rush to be 100% autonomous (though it's a longer term goal), so for now (as I'm working towards proprioception using self-organizing maps) I can carry on using a couple of meters of umbilical cabling (power & usb).

--Gary
retro_boy wrote:Thanks Gary,

Great advice, I appreciate it.

I'm a Mac user too, and I am also keen to move away from the CM-510, as I want to investigate speech synthesis/recognition, and other more AI friendly technologies.

Have you seen any SOC boards that might be up to the job?


Mark


The ones that I have my eye on so far are the Beagle Board, and RoBoard RB-050 (still not yet shipping). The Omnima MiniEMBWiFi that folks here have been working with is tempting to try out (as it's so cheap) but I'm worried its OpenWrt Linux environment might just be too limiting e.g. missing Python module packages I'd need to get a working setup. I'm also keen to try and avoid turning my biped into a christmas tree of power supplies/batteries, USB devices, USB hub, power regulators, cabling, etc – but I'll need to see how well that plan goes :) I have no critical rush to be 100% autonomous (though it's a longer term goal), so for now (as I'm working towards proprioception using self-organizing maps) I can carry on using a couple of meters of umbilical cabling (power & usb).

--Gary
garycmartin
Savvy Roboteer
Savvy Roboteer
Posts: 42
Joined: Fri Jan 15, 2010 9:27 pm

Post by retro_boy » Wed Nov 30, 2011 6:33 pm

Post by retro_boy
Wed Nov 30, 2011 6:33 pm

Beagle Board looks sweet. Nice Arm A8 processor. Why would you not go for the Arm board?
Beagle Board looks sweet. Nice Arm A8 processor. Why would you not go for the Arm board?
retro_boy
Robot Builder
Robot Builder
Posts: 22
Joined: Sat Nov 19, 2011 8:48 pm

Post by garycmartin » Wed Nov 30, 2011 7:44 pm

Post by garycmartin
Wed Nov 30, 2011 7:44 pm

retro_boy wrote:Beagle Board looks sweet. Nice Arm A8 processor. Why would you not go for the Arm board?
I agree, it's the one to beat, that's why I listed it first :) The new BeagleBone looks rather interesting – but stock seems thin in the UK, maybe later in December/January - very tempting.

--Gary
retro_boy wrote:Beagle Board looks sweet. Nice Arm A8 processor. Why would you not go for the Arm board?
I agree, it's the one to beat, that's why I listed it first :) The new BeagleBone looks rather interesting – but stock seems thin in the UK, maybe later in December/January - very tempting.

--Gary
garycmartin
Savvy Roboteer
Savvy Roboteer
Posts: 42
Joined: Fri Jan 15, 2010 9:27 pm

Post by retro_boy » Thu Dec 01, 2011 11:39 am

Post by retro_boy
Thu Dec 01, 2011 11:39 am

okay so if you could take your pick of these boards which one would you go for? :lol:
okay so if you could take your pick of these boards which one would you go for? :lol:
retro_boy
Robot Builder
Robot Builder
Posts: 22
Joined: Sat Nov 19, 2011 8:48 pm

Post by retro_boy » Thu Dec 01, 2011 6:37 pm

Post by retro_boy
Thu Dec 01, 2011 6:37 pm

BeagleBone has just come back in stock. I ordered one. Will let you know how I get on :shock:
BeagleBone has just come back in stock. I ordered one. Will let you know how I get on :shock:
retro_boy
Robot Builder
Robot Builder
Posts: 22
Joined: Sat Nov 19, 2011 8:48 pm

Post by sharpyuk » Wed Dec 21, 2011 12:22 pm

Post by sharpyuk
Wed Dec 21, 2011 12:22 pm

retro_boy wrote:BeagleBone has just come back in stock. I ordered one. Will let you know how I get on :shock:


How you getting on with your beaglebone? I've just got one and would be interested to hear how you're getting on..

Cheers
retro_boy wrote:BeagleBone has just come back in stock. I ordered one. Will let you know how I get on :shock:


How you getting on with your beaglebone? I've just got one and would be interested to hear how you're getting on..

Cheers
sharpyuk
Robot Builder
Robot Builder
Posts: 10
Joined: Tue Nov 01, 2011 8:16 pm

Next
16 postsPage 1 of 21, 2
16 postsPage 1 of 21, 2