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

Dynamixel Instruction

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

Dynamixel Instruction

Post by ryann2k1 » Thu Sep 13, 2007 1:31 pm

Post by ryann2k1
Thu Sep 13, 2007 1:31 pm

Does anyone come across with REG_WRITE and ACTION?
How to implement these two command?
I try to use some gaits from motion editor, but once I try to use on C platform...my robot keeps falling down, :( (for example, motion address 13, wakeup front view)
I assume that it uses those both commands so the motion will commence at once.


cheers,

ryann2k1
Does anyone come across with REG_WRITE and ACTION?
How to implement these two command?
I try to use some gaits from motion editor, but once I try to use on C platform...my robot keeps falling down, :( (for example, motion address 13, wakeup front view)
I assume that it uses those both commands so the motion will commence at once.


cheers,

ryann2k1
ryann2k1
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 154
Joined: Thu Nov 16, 2006 1:00 am

Post by JonHylands » Thu Sep 13, 2007 3:37 pm

Post by JonHylands
Thu Sep 13, 2007 3:37 pm

I've never tried those commands - SYNC_WRITE is much better...

- Jon
I've never tried those commands - SYNC_WRITE is much better...

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

Post by Bullit » Thu Sep 13, 2007 10:22 pm

Post by Bullit
Thu Sep 13, 2007 10:22 pm

I've tried both but Jon is right the sync _write is better.
From C there is much more to consider then just having the servos start at the same time. They need to end at the same time too. Point to point motion. Each servo may have a different distance to travel but yet they should all finish the motion together and maintain torque along the way. The way the bioloid firmware accomplishes this is by generating s-curves in between each pose. This is critical for smooth motion.
I've tried both but Jon is right the sync _write is better.
From C there is much more to consider then just having the servos start at the same time. They need to end at the same time too. Point to point motion. Each servo may have a different distance to travel but yet they should all finish the motion together and maintain torque along the way. The way the bioloid firmware accomplishes this is by generating s-curves in between each pose. This is critical for smooth motion.
Bullit
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 291
Joined: Wed May 31, 2006 1:00 am
Location: Near robot

Post by ryann2k1 » Fri Sep 14, 2007 2:18 am

Post by ryann2k1
Fri Sep 14, 2007 2:18 am

Hi guys,

JonHylands wrote:I've never tried those commands - SYNC_WRITE is much better...

- Jon


for example Id 1
writeword(1, P_GOAL_POSITION_L, 235)
how to implement sync_write for 18 servos with different values?


cheers,

ryann2k1
Hi guys,

JonHylands wrote:I've never tried those commands - SYNC_WRITE is much better...

- Jon


for example Id 1
writeword(1, P_GOAL_POSITION_L, 235)
how to implement sync_write for 18 servos with different values?


cheers,

ryann2k1
ryann2k1
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 154
Joined: Thu Nov 16, 2006 1:00 am

Post by JonHylands » Fri Sep 14, 2007 2:57 am

Post by JonHylands
Fri Sep 14, 2007 2:57 am

SYNC_WRITE is designed to update any number of servos with different values, and you can set both the speed and position of each servo independently with only one command.

- Jon
SYNC_WRITE is designed to update any number of servos with different values, and you can set both the speed and position of each servo independently with only one command.

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

Post by Bullit » Fri Sep 14, 2007 3:02 am

Post by Bullit
Fri Sep 14, 2007 3:02 am

The AX-12 Manual
page 23 has an excellent sync_write example.
The AX-12 Manual
page 23 has an excellent sync_write example.
Bullit
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 291
Joined: Wed May 31, 2006 1:00 am
Location: Near robot

instruction

Post by ryann2k1 » Fri Sep 14, 2007 3:51 am

Post by ryann2k1
Fri Sep 14, 2007 3:51 am

I have read page 23 in AX-12 manual.
I'm not sure to implement since it is already integrated in libCM5.lib
I'm just trying to use the correct syntax since sometimes wrong command can make wrong motion to each motors. I'm worried to make my servos broken.
Thank you guys. :D

cheers,

ryann2k1
I have read page 23 in AX-12 manual.
I'm not sure to implement since it is already integrated in libCM5.lib
I'm just trying to use the correct syntax since sometimes wrong command can make wrong motion to each motors. I'm worried to make my servos broken.
Thank you guys. :D

cheers,

ryann2k1
ryann2k1
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 154
Joined: Thu Nov 16, 2006 1:00 am

Post by JonHylands » Fri Sep 14, 2007 5:01 am

Post by JonHylands
Fri Sep 14, 2007 5:01 am

The thing to do then is to remove 2 or 3 servos, and have then hooked up on the bench, but not connected to each other mechanically, so they can all swing freely throughout their 300 degree limits.

Then you can play until you get the commands right...

- Jon
The thing to do then is to remove 2 or 3 servos, and have then hooked up on the bench, but not connected to each other mechanically, so they can all swing freely throughout their 300 degree limits.

Then you can play until you get the commands right...

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

Instruction

Post by ryann2k1 » Fri Sep 14, 2007 5:13 am

Post by ryann2k1
Fri Sep 14, 2007 5:13 am

Thank you Jon, :D


cheers

ryann2k1
Thank you Jon, :D


cheers

ryann2k1
ryann2k1
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 154
Joined: Thu Nov 16, 2006 1:00 am

Post by ryann2k1 » Fri Sep 14, 2007 11:55 am

Post by ryann2k1
Fri Sep 14, 2007 11:55 am

JonHylands wrote:The thing to do then is to remove 2 or 3 servos, and have then hooked up on the bench, but not connected to each other mechanically, so they can all swing freely throughout their 300 degree limits.

Then you can play until you get the commands right...

- Jon

I only manage to use them in controlling my servos directly via Robot Terminal. Still find it difficult in implenting in C. Did you manage to use them?


cheers,

ryann2k1
JonHylands wrote:The thing to do then is to remove 2 or 3 servos, and have then hooked up on the bench, but not connected to each other mechanically, so they can all swing freely throughout their 300 degree limits.

Then you can play until you get the commands right...

- Jon

I only manage to use them in controlling my servos directly via Robot Terminal. Still find it difficult in implenting in C. Did you manage to use them?


cheers,

ryann2k1
ryann2k1
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 154
Joined: Thu Nov 16, 2006 1:00 am

Post by JonHylands » Fri Sep 14, 2007 12:48 pm

Post by JonHylands
Fri Sep 14, 2007 12:48 pm

I use SYNC_WRITE constantly with all my Bioloid stuff. All the walk sequences of MicroRaptor and BrainBot are all done strictly with SYNC_WRITE.

I call SYNC_WRITE about 30 times per second, to set the position and speed values of 20 servos at the same time. I do this through my USB bus interface from my PC - I don't use the CM-5 at all.

Is that what you were asking?

I have a SYNC_WRITE command object, which gets a collection of devices. It asks each device for its desired position and desired speed, and then builds up a command array of bytes to send. It also knows how to add the prefix bytes and the checksum. This is all written in Squeak Smalltalk.

- Jon
I use SYNC_WRITE constantly with all my Bioloid stuff. All the walk sequences of MicroRaptor and BrainBot are all done strictly with SYNC_WRITE.

I call SYNC_WRITE about 30 times per second, to set the position and speed values of 20 servos at the same time. I do this through my USB bus interface from my PC - I don't use the CM-5 at all.

Is that what you were asking?

I have a SYNC_WRITE command object, which gets a collection of devices. It asks each device for its desired position and desired speed, and then builds up a command array of bytes to send. It also knows how to add the prefix bytes and the checksum. This is all written in Squeak Smalltalk.

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

Instruction

Post by ryann2k1 » Fri Sep 14, 2007 1:13 pm

Post by ryann2k1
Fri Sep 14, 2007 1:13 pm

Yes Jon,
Now, I manage to use REG_WRITE + ACTION
Still thinking how to use SYNC_WRITE since all parameters must be in one line.
Thanks Jon,

Cheers,

ryann2k1
Yes Jon,
Now, I manage to use REG_WRITE + ACTION
Still thinking how to use SYNC_WRITE since all parameters must be in one line.
Thanks Jon,

Cheers,

ryann2k1
ryann2k1
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 154
Joined: Thu Nov 16, 2006 1:00 am

Instruction

Post by ryann2k1 » Fri Sep 14, 2007 2:06 pm

Post by ryann2k1
Fri Sep 14, 2007 2:06 pm

It is strange.. I have managed to send the parameter all at once, but still the gaits generated from motion editor can not be used in C style.(especially for page 11 and page 13, wake up pose)
I wondering what is the problem :roll:

ryann2k1
It is strange.. I have managed to send the parameter all at once, but still the gaits generated from motion editor can not be used in C style.(especially for page 11 and page 13, wake up pose)
I wondering what is the problem :roll:

ryann2k1
ryann2k1
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 154
Joined: Thu Nov 16, 2006 1:00 am

Post by JonHylands » Fri Sep 14, 2007 2:13 pm

Post by JonHylands
Fri Sep 14, 2007 2:13 pm

I don't know - I never tried to use any of the built-in gaits. It may be a timing thing - I guess it depends on how the gaits are stored. If they are only storing keyframes, and dynamically generating in between, then it wouldn't surprise me that they wouldn't work.

In my system, I set up keyframes, and then statically generate all the in-between frames, so that it runs at an even 30 frames per second. If I want to tweak something, I just go back to the keyframes, make the changes there, and re-generate the in-betweens.

- Jon
I don't know - I never tried to use any of the built-in gaits. It may be a timing thing - I guess it depends on how the gaits are stored. If they are only storing keyframes, and dynamically generating in between, then it wouldn't surprise me that they wouldn't work.

In my system, I set up keyframes, and then statically generate all the in-between frames, so that it runs at an even 30 frames per second. If I want to tweak something, I just go back to the keyframes, make the changes there, and re-generate the in-betweens.

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

Instruction...

Post by ryann2k1 » Sat Sep 15, 2007 4:37 am

Post by ryann2k1
Sat Sep 15, 2007 4:37 am

yep...
I might need to rework the built-in gaits in motion editor.
Thanks Jon.. :D

cheers,

ryann2k1
yep...
I might need to rework the built-in gaits in motion editor.
Thanks Jon.. :D

cheers,

ryann2k1
ryann2k1
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 154
Joined: Thu Nov 16, 2006 1:00 am

Next
17 postsPage 1 of 21, 2
17 postsPage 1 of 21, 2