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

Communication Speed

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

Communication Speed

Post by rikkov » Thu Jul 02, 2009 6:48 am

Post by rikkov
Thu Jul 02, 2009 6:48 am

Hi Guys,

I have a few questions about communicating with dynamixels.

I am able to write data into dynamixels pretty fast using the sync write command.I think it gets executed in 15-17 milli seconds.

But when it comes to read the servos things are very slow.

We are planning to make a bot with 20 -24 dynamixels and communicate with it using USB2Dynamixel and our own program. So the communication delays concern us. So it would be great if some one could advice me on the best way to communicate(read and write data continously).

It would also be great if someone could provide me the information on the time delays assosciated with dynamixels during communication so that we can do our calculations using it.

Thanks a lot,
Rikkov
Hi Guys,

I have a few questions about communicating with dynamixels.

I am able to write data into dynamixels pretty fast using the sync write command.I think it gets executed in 15-17 milli seconds.

But when it comes to read the servos things are very slow.

We are planning to make a bot with 20 -24 dynamixels and communicate with it using USB2Dynamixel and our own program. So the communication delays concern us. So it would be great if some one could advice me on the best way to communicate(read and write data continously).

It would also be great if someone could provide me the information on the time delays assosciated with dynamixels during communication so that we can do our calculations using it.

Thanks a lot,
Rikkov
rikkov
Robot Builder
Robot Builder
Posts: 15
Joined: Wed Aug 27, 2008 4:11 am

Post by Bullit » Thu Jul 02, 2009 12:11 pm

Post by Bullit
Thu Jul 02, 2009 12:11 pm

You can get latencies down to 2ms using the right windows FTDI driver for the usb2dynamixel. That's about the limit of what you do with USB. The good news is that you can write to all servos at once as you mentioned with sync_write. The bad news is that you are restricted to reading one servo at a time. In reality you probably don't need to read from the servos as often as you need to write to them and you probably don't need to read from or write to all of the servos all the time. There are a couple ways to improve latency below 2ms. You can use a small micro to communicate with the servos such as the ATMega it won't be restricted by USB latency. You can also split your robots bus into 2 of 4 limbs and communicate to all of them separately (bad news with this is synchronization becomes a problem).
You can get latencies down to 2ms using the right windows FTDI driver for the usb2dynamixel. That's about the limit of what you do with USB. The good news is that you can write to all servos at once as you mentioned with sync_write. The bad news is that you are restricted to reading one servo at a time. In reality you probably don't need to read from the servos as often as you need to write to them and you probably don't need to read from or write to all of the servos all the time. There are a couple ways to improve latency below 2ms. You can use a small micro to communicate with the servos such as the ATMega it won't be restricted by USB latency. You can also split your robots bus into 2 of 4 limbs and communicate to all of them separately (bad news with this is synchronization becomes a problem).
Bullit
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 291
Joined: Wed May 31, 2006 1:00 am
Location: Near robot

Post by clusher » Thu Jul 09, 2009 4:20 pm

Post by clusher
Thu Jul 09, 2009 4:20 pm

We're actually trying to split the BUS into five different buses using a AtXMega128 to deal with the communications and sending all the data to a GumStix, that will deal with learning and reacting. However, this is a work under progress (still) due to our lack of training with making circuits...

Other that that, is just like bullit said: you can write to all at once, but you can only read one at a time. Fortunately, reading isn't that necessary... unless you have a IMU or a gyro to improve balance information.

@Bullit: what do you mean by the "right windows FTDI driver"? My windows installed it automatically, where did you get yours?
We're actually trying to split the BUS into five different buses using a AtXMega128 to deal with the communications and sending all the data to a GumStix, that will deal with learning and reacting. However, this is a work under progress (still) due to our lack of training with making circuits...

Other that that, is just like bullit said: you can write to all at once, but you can only read one at a time. Fortunately, reading isn't that necessary... unless you have a IMU or a gyro to improve balance information.

@Bullit: what do you mean by the "right windows FTDI driver"? My windows installed it automatically, where did you get yours?
clusher
Savvy Roboteer
Savvy Roboteer
Posts: 57
Joined: Thu Jul 17, 2008 12:27 pm


3 postsPage 1 of 1
3 postsPage 1 of 1