Page 1 of 3 123 LastLast
Results 1 to 10 of 21

Thread: 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

  1. 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

    Hi everybody
    I'm a 17 years old student from Southtyrol/Italy and i'm going to build a 3DOF Hexapod with 18 Dynamixel AX-12A Servos. After the fixing of the mechanic "problems" to build the frame now I'm going to develop the Hard-/Software for my Hexapod. After some researches on the web I ended up with some several, fundamental problems that i need to fix before i start with the developing of the Hardware...

    1) I found out that many people out there use the ArbotiX-M Robocontroller to controller their Dynamixels, other people use an Arduino Board like the Mega2560. I at first thought to build my board completly myself with the help of my teacher, but the temptation to get a more or less completly board(LiPo under voltage protection, ...) on the ArbotiX or also on the Arduino Board where I would need to develop a additional board with the Tristate and output Drivers for the Dynamixel is pretty big, so that I'm sure that if (For sure..;D) I get problems I can say that this is only a Software and not Hardware problem... Anyone already had this question before the Developing of his Hardware and could give me some tips?

    2) Because my Hexapod is going to have 18 Dynamixel inside i have 3 options to link the Dynamixels...
    a) I put 6 together in one line (Is this fast enaugh? Voltage supply and current for the Output of the ArbotiX okay?)
    b) I multiplex 6 RX/TX Lines to the 3 RX/TX pins of the microcontroller like that ATmega2560.
    c) I "convert " the I/O Pins of the microcontroller with some
    converters into RX/TX Pins...

    Greetings Fabian







  2. Re: 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

    What's wrong with driving all 18 servos from a single Tx/Rx? Realistically, you're going to want to use some IK engine like NUKE, and it generates SYNC_WRITE commands, which means all 18 servos are driven from a single command. An 18-servo SYNC_WRITE command, where you're writing the position for each servo, is around 60 bytes of data, or 600 bits. You could theoretically send 1000 of those per second over the AX-12 bus. You can certainly practically send those at 100 Hz.

    Now, if you're determined that you want to get some feedback from the servos, that's a different story, but that requires either (a) slowing things down on a single bus so you have time to talk to each servo, or (b) breaking it up into sub-buses. Option (b) is probably the right way to handle that, but it requires some advanced programming skills to do it properly.

    Option (a) is much simpler. You can still run at 100 Hz if you want, but you'll have to be satisfied with only polling say 4-6 servos per cycle. You round-robin the servos on the read side, and you're good. Or you can slow things down to about 10 Hz, and have no issues polling all 18 servos every cycle.

    In reality, most hobby-level quads and hexes (including Roz, my quad) don't use servo feedback - there isn't much there that is useful, other than occasionally checking each servos temperature, and checking the bus voltage. On Roz, I round robin with one servo, checking the temperature of one each cycle in between SYNC_WRITE commands. Since it runs at ~33 Hz, it takes less than 1/2 a second to cycle through all 12 leg servos, so I get a pretty accurate picture of the servo temperature that way.

    - Jon
    "The best way to predict the future is to invent it." - Alan Kay, inventor of Smalltalk

  3. #3

    Re: 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

    Hi and welcome,

    I agree with Jon. But not sure what the fundimental problems are that you are trying to solve.

    Just to mention, for the actual processor, you have several options. As you mentioned, the Arbotix works well, likewise I have also experimented a little with Arduino Mega, connecting up the TX/RX lines to the data line for the AX-12 buss through a resistor and it was working.

    But in addition to these, you have the new controller from Robotis, likewise I am having some luck using the Teensy 3.1. Also several of us are also using different linux boxes (Raspberry Pi, BeagleBone Black, Odroid, ...), where you connect the servos up by using a USB to AX bus adapter, like the USB2Dynamixel or USB2AX or I hacked up a Sparkfun atmegea32u4 breakout board to work as well...

    Like Jon, I round robin checking voltages, and I time it to be in between when I am updating the servo positions. Although for that I personally prefer to have a voltage divider and analog input on my processor, where I can check it...

    But if the issues you are trying to solve is more complex, like for example getting force information back from the servos to use for Terrain Adaptation(TA), there are different approaches like you mentioned.
    1) Multiple AX buss - Issues already mentioned.
    2) Slow down cycle - ...

    3) Reduce the data you need back. Example for TA - only ask for information for important servos. That is if only one leg is up in the air and starting to come down, you maybe only need to check the force values on those servos. If moving forward, you may want to check forces on coxa servos to detect something blocking the forward motion. If necessary could potentially try to restrict to looking only at the legs closest to front in that direction...

    4) Reduce by trying to have the servos do some of the work for you. Example: experiment with setting things like the torque limits on the leg coming down, such that if it runs into something it stops. You can then if desired round robin check where the servo is and the like... I know that another member had some luck with this and I keep meaning to try it out.

    Not sure if my response is answering any of your question. If not sorry...
    Kurt

  4. #4

    Re: 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

    First, the power through the strings of servos is an actual concern. You don't want a string longer than about 4 servos. This means you should have two hubs in the middle, so you can connect each leg (3 or 4 servos) to its own strand, and power the hubs.

    Second, you don't need a tri-state buffer to talk the Dynamixel TTL UART protocol. Tie TX and RX both to the same output, with a 68 Ohm resistor for each. Then you can make it up in software -- turn off the receiver half when transmitting; turn off the transmitting part when receiving. However, if you can use the Arbotix-M or the OpenCM-9.04, they already solve this problem (with buffers) and you don't need to do anything special in software, so that may be simpler.

    Third, I set my servos to response mode 1. This means that they do not respond to write commands. Thus, I can send more write commands within the same time interval. Using SYNC_WRITE can accomplish much of the same thing. I also poll the servos in two "blocks" -- one set of registers is read for each servo between each cycle, another set is read only from one servo in a given cycle, reading the next servo the next cycle, ...
    I also set the servo response delay to zero -- you don't want to add any artificial delay.

    With 1 Mbps communication speed, you should be able to write position to 18 servos, read a block of 8 register bytes from each servo, and read another block of 8 register bytes from one servo, in less than 1/60th of a second. The main limitation is going to be the turn-around time at the servo; if each servo waits for 1 millisecond per command before responding, you're going to blow the 1/60th target.

  5. Re: 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

    Thanks for your answers..:)
    I think I'm going for the ArbotiX-M controller because I'm pretty sure i can safe a lot of time and nerves compared to develop a own controller(And also some money i think, $39,95 isn't that much).

    About the power problem through the strings of the servos: I found 3 6-Hubs on the trossenrobotics homepage but i think I'm going to make my own hubs(Are there some sockets for the 3-pin dynamixel cables available to buy? Found nothing on the trossenrobotics homepage :( I read something about max 900mA current of each servo, so 900mA * 6 (if i wan't use the hub) wouldn't be that nice..:D
    Also the reducing to only the most important feedback from the servos sounds great and i really don't need to develope a high-speed Hexapod to break world-records, so i think that's ok..

    Another question: Is the ArbotiX-M controller only available on the trossenrobotics homepage? Because i life in Europe..:(


    Last edited by Snuuq; 02-09-2014 at 09:19 AM.

  6. Re: 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

    The part is WM18887-ND at digikey

    - Jon

    "The best way to predict the future is to invent it." - Alan Kay, inventor of Smalltalk

  7. #7
    Join Date
    Apr 2013
    Location
    Boston, MA
    Posts
    260
    Images
    11
    Rep Power
    27

    Re: 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

    ^be careful when using digikey part numbers. They're not guaranteed to remain consistent with the manufacturer part number and do change. We had a couple snafus at work due to this.

  8. #8

    Re: 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

    Pretty sure it is the one I recently ordered for my teensey board,

  9. #9
    Join Date
    Apr 2013
    Location
    Boston, MA
    Posts
    260
    Images
    11
    Rep Power
    27

    Re: 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

    ^yes, its the correct part number now, but it may not be in a year. My point is that you should refer to manufacturer PNs and not rely on digikey PNs. In this case the manufacturer is Molex and the PN is 0022035035.

  10. Re: 18 Dynamixel Ax-12A with ArbotiX/Arduino - How to connect the dynamixel?

    In fact, 0022035035, 0099990987, 0353010310, 0353010350 (Right angle :0022057035) are some of the various options. Choose wisely your distributor and variant, as the price can be VERY different from one to the other.
    ---
    Personal blog: http://xevel.org
    USB2AX documentation: http://xevelabs.com

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Question(s) Dynamixel AX-12A, arbotix, xbee and LabView
    By kanuto in forum Humanoids, Walkers & Crawlers
    Replies: 3
    Last Post: 06-04-2013, 10:56 PM
  2. Question(s) Help with controlling an Dynamixel MX-28T with an Arduino Uno
    By beepboop in forum DYNAMIXEL & Robot Actuators
    Replies: 35
    Last Post: 11-30-2012, 02:29 PM
  3. Dynamixel vs. Hi-Tec
    By mblackwolf in forum DYNAMIXEL & Robot Actuators
    Replies: 3
    Last Post: 11-26-2011, 05:56 PM
  4. Question(s) Can you connect a roboturret to a arduino uno?
    By Jezzza777 in forum Software and Programming
    Replies: 4
    Last Post: 08-15-2011, 10:58 PM
  5. Question(s) Controlling Dynamixel with Arbotix Commander
    By Buell24 in forum Software and Programming
    Replies: 9
    Last Post: 01-04-2011, 12:47 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
  •