Page 1 of 2 12 LastLast
Results 1 to 10 of 12

Thread: Baudrate for dynamixels

  1. Baudrate for dynamixels

    Hi, it looks like some members in the forum use baud rate of 3M BPS. Is there a reason for that if 4M or 4.5M BPS are available? Is the higher the baud rate always the better since it allows higher communication speed and shorter control loop?

  2. #2

    Re: Baudrate for dynamixels

    The main issue, is the higher the baud rate, the shorter the bits are, so the more likely there will be errors... especially when you have a long wire... I usually have stuck with 1MBS, on some Teensy have gone up to 2...

  3. Re: Baudrate for dynamixels

    Quote Originally Posted by KurtEck View Post
    The main issue, is the higher the baud rate, the shorter the bits are, so the more likely there will be errors... especially when you have a long wire... I usually have stuck with 1MBS, on some Teensy have gone up to 2...
    Thanks KurtEck. By long wire, how long are you talking about?

  4. #4

    Re: Baudrate for dynamixels

    Sorry, I am not the EE type... Probably depends on what wires and the like. Also topography of it...
    Something like the resistance and impedance ... Again EEs can give move info.

    I just know from playing around, if you try to go too fast things don't work well...

    Also you can try searches on TTL and baud rates and distance and find things like:
    https://forum.allaboutcircuits.com/t...boards.160562/

  5. #5

    Re: Baudrate for dynamixels

    If you need to ask about signal quality, then it's unlikely that the added fragility of 4.5 Mbps will help you at all compared to something safer like 1 Mbps.

    To know what "too long" and "too branchy" and "too un-terminated" really means, you have to look at the drive strength of the transciever, and the full topology of the bus, and the load of each point connected to that bus. Not only does your controller need to drive the bus, but each of the servos has to do it, too, to send the data back to you.

    How many servos will you drive? What update rate do you need? I can drive and read back status from 14 servos at > 60 updates per second at 1 Mbps, and it's perfectly fine; update speed is not the limiting factor there.

    If you want to measure signal quality, there are high-performance frequency analyzers and oscilloscopes that can answer your questions, with sufficient care taken in measuring on the actual system in question.

  6. Re: Baudrate for dynamixels

    Thanks.

    I see many factors are involved. Is there a formula to calculate the recommended baud rate given the control loop frequency and the number of servos? Ideally I hope to get 1ms respond time.

  7. #7

    Re: Baudrate for dynamixels

    Sorry, again not sure if there is a straight forward answer to this one.

    Things like what servos? X Series would be my guess as AX for example does not go that fast. How many?
    Protocol 1 or Protocol 2?

    Have you properly configured the servos? Example most servos ship with a long delay time for response from a query:
    https://emanual.robotis.com/docs/en/...urn-delay-time

    What are you sending and what are you trying to receive? How are you sending and receiving the data? Are you using writes/reads from individual servos or are you using something like Sync reads and writes or bulk read and writes. Note If protocol 1 the only multi servo operation is the Sync Write.

    Is the data that you are trying to read or write contiguous in registers? ...

    But instead of just doing these theoretical questions, why not do a quick and dirty experiment. That is try doing the code for one control loop at 1mhz baud... See how long it takes, do you get all valid data? Now try it at 2mhz, how much time difference are you seeing? ...

    If you are not getting the speed per iteration you want, than maybe think of reducing what all you are sending/receiving. Example do you need the feedback from ALL servos each iteration or can you cycle through them such that each one is read on every third iteration. Could be hybrid version, again not knowing what you are doing or wanting, but example if running something like a hexapod, and you wish to get feedback when a leg hits something (obstical) or ground, than maybe you need to give higher priority to those servos that are working on legs that are coming down or that are moving forward... But again just throwing things out.

    Also another big influence is what are using to control the servos? If it is something that uses USB for communications, than you may want to look at ways to use the USB with minimum latency while still preserving as much throughput as possible.

    Again I know this is not giving you a simple answer. but instead saying that really the only way to know these answers it to experiment and figure it out, as each system is different.

  8. Re: Baudrate for dynamixels

    Thanks. These are all very good questions that I need to think about. I plan to use U2D2, XH series, Protocol 2.

    From the emanual you linked, the Return Delay Time "delays transmitting the Status Packet". Why such parameter is needed?

    Another parameter that I am puzzled with is the Moving Threshold. How does it work? How do I determine the best value to use? Its default value is 10. It seems to be used to check if if the dynamixel has reached the desired goal position and if the difference between the current and goal positions is less than this threshold, then one would consider that the motor has reached the desired position. Otherwise, the motor continues to move until the difference between target and present positions is within the threshold. Setting it to lower value 0 or 1 seems to make an unloaded, free turning motor to move closer to the desired target position but sometimes there is 1-2 different in position values that the motor cannot reach even the threshold is set to 0 or 1.

  9. #9

    Re: Baudrate for dynamixels

    Some microcontrollers need some time to turn around the RS-485 bus after sending the commands, so the return delay parameter makes sure the microcontroller has time to turn off the transciever and enter read mode on the UART. Generally I set it to some very low value (like, 1) and make sure my serial port code is high performance.

    Generally, unless you have a very steady load, you will see more jitter the more precisely you try to hold the joint. I think the default of 10 is probably too high, though. Also remember to tune the P, I, and D values for each joint based on its actual load, once you have the armature working!

    To know how long a "cycle" will take on the bus, you need to know how many bytes you write, how long it takes for the command to be interpreted by the servo(s), and how many bytes will be sent back. Each byte takes 10 bits (start/data/stop) and each packet takes additional begin and end setup overhead. Sending a command to each servo every millisecond and reading status back at the same rate is probably neither realistic, nor useful. Dynamixels don't start/stop moving that fast. (As jpieper would say, they don't have "high enough dynamics bandwidth.")

  10. Re: Baudrate for dynamixels

    Thanks jwatte. For Moving Threshold, what value do you recommend? Do you set the Moving Threshold and Return Delay Time of all motors within the same robot to the same respective values? Do you change these values depending on what baud rate is used?

    Am I correct that to tune the P, I and D values, it is better to do it after the entire robot is built?

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. How to test Dynamixels upon arrival
    By Snoopy in forum DYNAMIXEL & Robot Actuators
    Replies: 7
    Last Post: 06-15-2020, 12:29 PM
  2. Question(s) Bad luck with Dynamixels?
    By tigakub in forum Arbotix, Microcontrollers, Arduino
    Replies: 4
    Last Post: 05-30-2015, 07:35 PM
  3. Is there an HR-OS5 electronics kit for those who already own Dynamixels?
    By robot_yan in forum Humanoids, Walkers & Crawlers
    Replies: 2
    Last Post: 12-24-2014, 08:37 AM
  4. Question(s) TTL communication in Dynamixels?
    By Robotronn in forum Robotics General Discussion
    Replies: 1
    Last Post: 11-25-2014, 11:17 PM
  5. Question(s) Baudrate problem
    By ruo_2287 in forum Software and Programming
    Replies: 7
    Last Post: 12-14-2011, 09:20 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •