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

Controlling AX12+ with PC

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

Controlling AX12+ with PC

Post by blug » Thu Nov 06, 2008 3:51 pm

Post by blug
Thu Nov 06, 2008 3:51 pm

Hi Guys

I am interested in expanding my existing platform with some AX12 servos. I am particularly interested in using at least 8 servos via a USB interface. I have read through quite a lot of information on this site, but I would appreciate your thoughts on the following.

Since they are all on the same bus, is there a limit to the number of servos you can put on one USB2Dynamixel? I know I mentioned I would like to use 8, but what if I want to use 40?

Using continious rotation on them, do you still have control over position?
For instance, as an example, can you for instance set a loop running which would:

1. rotate CW 90 degrees
2. wait 2 seconds
3. read/confirm position is 90 degrees
4. continue CW 90 degrees. (now on 180 degrees)
5. goto step 2.


Many thanks for your help
Hi Guys

I am interested in expanding my existing platform with some AX12 servos. I am particularly interested in using at least 8 servos via a USB interface. I have read through quite a lot of information on this site, but I would appreciate your thoughts on the following.

Since they are all on the same bus, is there a limit to the number of servos you can put on one USB2Dynamixel? I know I mentioned I would like to use 8, but what if I want to use 40?

Using continious rotation on them, do you still have control over position?
For instance, as an example, can you for instance set a loop running which would:

1. rotate CW 90 degrees
2. wait 2 seconds
3. read/confirm position is 90 degrees
4. continue CW 90 degrees. (now on 180 degrees)
5. goto step 2.


Many thanks for your help
blug
Newbie
Newbie
Posts: 3
Joined: Thu Nov 06, 2008 3:24 pm

Post by ksamay » Thu Nov 06, 2008 9:03 pm

Post by ksamay
Thu Nov 06, 2008 9:03 pm

Hi Blug ,

Although i am also slightly new to the Robotis "world".

Let me try and answer your doubts.

Since they are all on the same bus, is there a limit to the number of servos you can put on one USB2Dynamixel? I know I mentioned I would like to use 8, but what if I want to use 40?


There is no as such limit on the no. of Ax12s . ( the limit is 255 ) . Basically they all need to have independent ID's if you want they to do different motion and the ID can only be between (0 -255 ) and your USB2Dynamixel uses 255 as its transmit id. (hence 256 - 1 = 255).

Also if you would want to use say 40 AX12s together there could be only a slight design limitation. You would have to just probably wire them in bunches rather than in one single series connection . ( But i have personally tested upto 18 motors in series without any problem ). This limitation might only exist as the current getting drawen by the motors keeps getting added in series and hence the wire or molex connector might heat up.

Using continious rotation on them, do you still have control over position?
For instance, as an example, can you for instance set a loop running which would:

1. rotate CW 90 degrees
2. wait 2 seconds
3. read/confirm position is 90 degrees
4. continue CW 90 degrees. (now on 180 degrees)
5. goto step 2.


I think you are slightly confused as to what is continuous motion .

If by continuous you mean Wheel motion ( the motor keeps rotating continuously like a wheel ) then NO you don't have position control but only have speed control.

But, What you have quoted as example is NOT wheel motion rather only moving to positions. You can definitely do what you have mentioned in the example as long as you stay withing the servo's 300 degree range ( you are only using 180degrees in your example ).

What you cannot do is for example :

1. rotate CW 90 degrees
2. wait 2 seconds
3. read/confirm position is 90 degrees
4. continue CW 90 degrees. (now on 180 degrees)
5. continue CW 160 degrees. (now on 340 degrees)
this is not possible

Simply put you cannot access a position in the rest of the 60 degrees(360 - 300 ) unless you are in wheel mode but even then you can just pass through that zone !

Hope i was able to help, let me know if you have any more questions/doubts?
Hi Blug ,

Although i am also slightly new to the Robotis "world".

Let me try and answer your doubts.

Since they are all on the same bus, is there a limit to the number of servos you can put on one USB2Dynamixel? I know I mentioned I would like to use 8, but what if I want to use 40?


There is no as such limit on the no. of Ax12s . ( the limit is 255 ) . Basically they all need to have independent ID's if you want they to do different motion and the ID can only be between (0 -255 ) and your USB2Dynamixel uses 255 as its transmit id. (hence 256 - 1 = 255).

Also if you would want to use say 40 AX12s together there could be only a slight design limitation. You would have to just probably wire them in bunches rather than in one single series connection . ( But i have personally tested upto 18 motors in series without any problem ). This limitation might only exist as the current getting drawen by the motors keeps getting added in series and hence the wire or molex connector might heat up.

Using continious rotation on them, do you still have control over position?
For instance, as an example, can you for instance set a loop running which would:

1. rotate CW 90 degrees
2. wait 2 seconds
3. read/confirm position is 90 degrees
4. continue CW 90 degrees. (now on 180 degrees)
5. goto step 2.


I think you are slightly confused as to what is continuous motion .

If by continuous you mean Wheel motion ( the motor keeps rotating continuously like a wheel ) then NO you don't have position control but only have speed control.

But, What you have quoted as example is NOT wheel motion rather only moving to positions. You can definitely do what you have mentioned in the example as long as you stay withing the servo's 300 degree range ( you are only using 180degrees in your example ).

What you cannot do is for example :

1. rotate CW 90 degrees
2. wait 2 seconds
3. read/confirm position is 90 degrees
4. continue CW 90 degrees. (now on 180 degrees)
5. continue CW 160 degrees. (now on 340 degrees)
this is not possible

Simply put you cannot access a position in the rest of the 60 degrees(360 - 300 ) unless you are in wheel mode but even then you can just pass through that zone !

Hope i was able to help, let me know if you have any more questions/doubts?
ksamay
Robot Builder
Robot Builder
Posts: 13
Joined: Tue Oct 28, 2008 5:55 am

Post by Bullit » Thu Nov 06, 2008 9:04 pm

Post by Bullit
Thu Nov 06, 2008 9:04 pm

I believe the limit is 31 dynamixels on any one bus. This is a limit of the max485 rs485 tranceiver chip used in the dynamixels and the cm-5.
[edit] my bad, ax-12 uses ttl, CM-5 firmware is still limited to 31 dynamixels
I haven't played much with continuous rotation myself but the AX-12 potentiometer only measures 300 degrees of the rotation. In continuous rotation mode I think you can read the position while its moving but 60 degrees of the rotation will not provide you with a number. The AX-12 is not really designed to move a specific number of rotations. Perhaps with some creative CM-5 firmware or new AX-12 firmware this could be done but I doin't think it would be simple.

hope this helps.
I believe the limit is 31 dynamixels on any one bus. This is a limit of the max485 rs485 tranceiver chip used in the dynamixels and the cm-5.
[edit] my bad, ax-12 uses ttl, CM-5 firmware is still limited to 31 dynamixels
I haven't played much with continuous rotation myself but the AX-12 potentiometer only measures 300 degrees of the rotation. In continuous rotation mode I think you can read the position while its moving but 60 degrees of the rotation will not provide you with a number. The AX-12 is not really designed to move a specific number of rotations. Perhaps with some creative CM-5 firmware or new AX-12 firmware this could be done but I doin't think it would be simple.

hope this helps.
Last edited by Bullit on Fri Nov 07, 2008 1:31 am, edited 1 time in total.
Bullit
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 291
Joined: Wed May 31, 2006 1:00 am
Location: Near robot

did not know this!

Post by ksamay » Thu Nov 06, 2008 9:10 pm

Post by ksamay
Thu Nov 06, 2008 9:10 pm

Hi Bullit,

I did not know about the 31 limit, i think i would be able to gather 31+ Rx10's.

Ill let you know if they work . Even if they don't work just looking at 31 of them move together would be a joy :).
Hi Bullit,

I did not know about the 31 limit, i think i would be able to gather 31+ Rx10's.

Ill let you know if they work . Even if they don't work just looking at 31 of them move together would be a joy :).
ksamay
Robot Builder
Robot Builder
Posts: 13
Joined: Tue Oct 28, 2008 5:55 am

Post by blug » Thu Nov 06, 2008 10:45 pm

Post by blug
Thu Nov 06, 2008 10:45 pm

Thx a lot for the info guys.

I suppose there is good and bad news in what you described. I would just have to use 2 controllers with 20 servo's on each, not that I am short of USB ports ..... ;)

With regards to the continious rotation. I would like to use it in a few configurations, one of which *IS* on a drive shaft. I suppose it is not dead important to be able to read position when it is in the "dead" zone and I dont have to count revolutions, but it would be handy if it could stop within the dead zone. I suspect from what you said this might not be possible. What about torque sensing in this dead zone?

Also, if servo is at position 300, and you instruct it to turn just past the 300, will it continue till it reaches 0?

This makes me wonder why servo designers face this limitation. Even if they are using analog pot feedback(i have no idea if this is the case with the ax), why have a 60 degree dead zone when you can reduce it to < 2 percent.... i wonder.

Anyway, I am daydreaming of hacking servos and building encoders when I should be focussing on getting my platform upgraded.

Thanks for the info.


Edit:
hmmm, seems like they do use a pot for position, still on such a quality servo, i would have thought optical is possible.
http://www.forestmoon.com/Projects/AX12 ... sp?Image=9
Thx a lot for the info guys.

I suppose there is good and bad news in what you described. I would just have to use 2 controllers with 20 servo's on each, not that I am short of USB ports ..... ;)

With regards to the continious rotation. I would like to use it in a few configurations, one of which *IS* on a drive shaft. I suppose it is not dead important to be able to read position when it is in the "dead" zone and I dont have to count revolutions, but it would be handy if it could stop within the dead zone. I suspect from what you said this might not be possible. What about torque sensing in this dead zone?

Also, if servo is at position 300, and you instruct it to turn just past the 300, will it continue till it reaches 0?

This makes me wonder why servo designers face this limitation. Even if they are using analog pot feedback(i have no idea if this is the case with the ax), why have a 60 degree dead zone when you can reduce it to < 2 percent.... i wonder.

Anyway, I am daydreaming of hacking servos and building encoders when I should be focussing on getting my platform upgraded.

Thanks for the info.


Edit:
hmmm, seems like they do use a pot for position, still on such a quality servo, i would have thought optical is possible.
http://www.forestmoon.com/Projects/AX12 ... sp?Image=9
blug
Newbie
Newbie
Posts: 3
Joined: Thu Nov 06, 2008 3:24 pm

Post by StuartL » Fri Nov 07, 2008 1:06 pm

Post by StuartL
Fri Nov 07, 2008 1:06 pm

blug wrote:With regards to the continious rotation. I would like to use it in a few configurations, one of which *IS* on a drive shaft. I suppose it is not dead important to be able to read position when it is in the "dead" zone and I dont have to count revolutions, but it would be handy if it could stop within the dead zone. I suspect from what you said this might not be possible. What about torque sensing in this dead zone?


As far as we've worked out the torque sensing is reliant on the position sensor, therefore you get no torque sensing in the dead zone.

Also, if servo is at position 300, and you instruct it to turn just past the 300, will it continue till it reaches 0?


It will ignore instructions telling it to move past its angle limits. As far as I know the servo stops you setting the angle limits beyond the hardware limit.

This makes me wonder why servo designers face this limitation. Even if they are using analog pot feedback(i have no idea if this is the case with the ax), why have a 60 degree dead zone when you can reduce it to < 2 percent.... i wonder.


Simple answer: Cost. For continuous rotation you'd need either an expensive pot or two cheaper ones. Digital position sensors are also very expensive at high resolutions.

Anyway, I am daydreaming of hacking servos and building encoders when I should be focussing on getting my platform upgraded.


We all spend every day daydreaming of improvements :D
blug wrote:With regards to the continious rotation. I would like to use it in a few configurations, one of which *IS* on a drive shaft. I suppose it is not dead important to be able to read position when it is in the "dead" zone and I dont have to count revolutions, but it would be handy if it could stop within the dead zone. I suspect from what you said this might not be possible. What about torque sensing in this dead zone?


As far as we've worked out the torque sensing is reliant on the position sensor, therefore you get no torque sensing in the dead zone.

Also, if servo is at position 300, and you instruct it to turn just past the 300, will it continue till it reaches 0?


It will ignore instructions telling it to move past its angle limits. As far as I know the servo stops you setting the angle limits beyond the hardware limit.

This makes me wonder why servo designers face this limitation. Even if they are using analog pot feedback(i have no idea if this is the case with the ax), why have a 60 degree dead zone when you can reduce it to < 2 percent.... i wonder.


Simple answer: Cost. For continuous rotation you'd need either an expensive pot or two cheaper ones. Digital position sensors are also very expensive at high resolutions.

Anyway, I am daydreaming of hacking servos and building encoders when I should be focussing on getting my platform upgraded.


We all spend every day daydreaming of improvements :D
StuartL
Savvy Roboteer
Savvy Roboteer
Posts: 350
Joined: Mon Jun 04, 2007 3:46 pm
Location: Thatcham, Berkshire, UK

Post by blug » Mon Nov 10, 2008 10:18 pm

Post by blug
Mon Nov 10, 2008 10:18 pm

Thx for all the info guys.
Thx for all the info guys.
blug
Newbie
Newbie
Posts: 3
Joined: Thu Nov 06, 2008 3:24 pm


7 postsPage 1 of 1
7 postsPage 1 of 1