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

Thread: AX-12A Ping issue

  1. AX-12A Ping issue

    Hello,

    I was wondering if anyone else had run into an issue where the PING function is unreliable?

    Even though the actuators are active and receive packets correctly etc, the PING is so intermitten in its result that I cant really use it to verify. Does anyone have any recommendations or thoughts on this - or another way to simply check that an actuator is available?

    I am using:

    [CODE][

    this.DMX_Controller.ping(1);

    //Win 8.1 specific thread sleep... Delay is 100 msec
    await Task.Delay(TimeSpan.FromMilliseconds(PING_DELAY_PE RIOD));

    if (this.DMX_Controller.get_result() == this.DMX_Controller.COMM_RXSUCCESS)
    {
    ...
    }
    /CODE]

    Thanks for your help.

    Cheers

  2. Re: AX-12A Ping issue

    If ping has an issue, it's that something else in your system has an issue, and the rest of the communications risk to be as bad.
    Your best bet is to try to find and fix the root problem.

    You can get some ideas of all the things that can go wrong and that it is interesting to check in this thread, though it's not exhaustive...

    If you want more help, you might want to describe your system a little bit more (power, servos used, interface between the PC and the servos, OS, library used at least).
    ---
    Personal blog: http://xevel.org
    USB2AX documentation: http://xevelabs.com

  3. #3

    Re: AX-12A Ping issue

    Also, waiting 100 mililseconds for the response is probably not right. Try something in the 1-10 milliseconds rate (if you need to wait at all, and can't just trust the controller class to do the right thing.)

  4. Re: AX-12A Ping issue

    Hi Xevel,

    Thank you for your reply.

    At the moment I am running with 3-6 AX-12A. They are connected via USB2Dynamixel with a SMPS2Dynamixel power supply.

    Code wise, I am calling into the C# wrapper supplied by robotis with the "DXL_SDK_Win32_ v1_02". This is on a Win 8.1 store app, using a windows runtime component to access the dynamixel.dll

    As mentioned - I can execute the SyncWrite example no worries, but the ReadWrite does not end well.

    I am wanting to move onto one of your USB2AX dongles shortly - if I can get this working.

    I am also seeing issues with the position value coming back all over the place - i.e. on a timer polling every 500mS - the value will change rapidly even when the AX is not moving.

    Thanks for your help.

    Cheers

  5. Re: AX-12A Ping issue

    Are you on a Virtual Machine? This can make communication patchy sometimes (maybe some buffer effect or something).

    I would also check that the FTDI dfriver is configured for low latency: do this and also set the buffer sizes to the minimum size. In this case this setting won't hurt performance as it's not the bottleneck.

    Also make sure your servos have a Return Delay Time value of 0, otherwise they wait 1 ms (BTW the documentation is erroneous on that as it says 0.5ms) before responding, which cannot help here.

    What is the rating of the power supply plugged into the SMPS2Dynamixel?

    Can you test the return value? COMM_RXCORRUPT means it's incomplete packet, bad ID (=the ruturn packet is not the one currently being waited for, which can happen sometimes) or bad checksum and COMM_RXTIMEOUT that nothing has been received.

    Also, waiting 100 mililseconds for the response is probably not right. Try something in the 1-10 milliseconds rate (if you need to wait at all, and can't just trust the controller class to do the right thing.)
    You can simply remove that part. The Dynamixel SDK has its own internal timeout. It might be the problem by the way, IIRC some people used to increase this timeout (needs recompiling the dll), but I can't remember on which plateform (Linux or Windows? only one was affected). If the previous steps do not help, maybe we could try that.
    ---
    Personal blog: http://xevel.org
    USB2AX documentation: http://xevelabs.com

  6. Re: AX-12A Ping issue

    Also, check for patterns in which call fails. If it turns out that some servos always work and some work intermittently, then it could be a cabling problem, or a configuration problem (return delay time) of only some servos.
    Maybe try each one in isolation to see if a pattern emerges.
    ---
    Personal blog: http://xevel.org
    USB2AX documentation: http://xevelabs.com

  7. Re: AX-12A Ping issue

    Hi,

    Thanks for those helpful pieces of advice.

    I am not on a VM, so everything should be ok. I also had set up the FTDI correctly on first setup.

    What is interesting is that I found 2 of 3 actuators had a Return Delay Time set to 250. I changed that to 0 as you stated.

    What I now find is that when I use the Dynamixel Wizard, on a search - it rarely finds all 2 devices in the search pass. It might find 1 or two.

    I thought perhaps this was because the USB2Dynamixel was plugged into a usb hub, so went direct and no dice. Still the same.

    It is a USB 3.0 port. I also note that the AX-12 are only found on V1 of the SDK?

    I spoke to a really helpful guy at RoboSavy about the setup.

    I wanted to confirm something - picture the setup:
    USB cable -> USB2Dynamixel -> Device 1
    SMPS2Dynamixel -> Device 3

    Now according to him, if I plug the USB2Dynamixel into the SMPS2Dynamixel and then plug that into Device 1, the SMPS2Dynamixel does not have the ability to push the data across - but I have found that not to be the case and I am getting a connection either setup. What is the validated and correct method?

    Cheers

  8. #8

    Re: AX-12A Ping issue

    Xevel and others have a lot more experience with this, than I do. For the most part I have not used their SDK nor done much on a PC to talk to servos. I have done on a variety of Arduinos, including Arbotix, Teensy 3.1 and several linux boxes with USB2AX (and a little with USB2Dynamixel)...

    Things I would try: 1 at a time. Make sure that you can talk to each one and that no two have the same ID.

    Check power: Since you say they move, I assume this is OK, but I have seen too many power issues....

    Try something other than ping. Example I usually have some other debug code built into my robots. Often inside a debug terminal monitor I have built in. Something like:
    Code:
        for(int i=1;i<=NUMSERVOS;i++){
          word w;
          w = ax12GetRegister(i,AX_PRESENT_POSITION_L, 2);
          DBGSerial.print(i,DEC);
          DBGSerial.print("=");
          DBGSerial.println(w, DEC);
          delay(25);
        }
    Note: this is specific to my port of some of the libraries, but has helped me find issues when some servos are not responding (This is from an Intel Edison project)...

    Use a scope/logic Analyzer: I use Logic Analyzers by Saleae, which has helped find and fix issues like this.

    good luck

  9. Re: AX-12A Ping issue

    Quote Originally Posted by brennonwilliams View Post
    What I now find is that when I use the Dynamixel Wizard, on a search - it rarely finds all 2 devices in the search pass. It might find 1 or two.
    So the problem is most not limited to your own application.
    Is by any chance the computer running other very intensive processing?

    You did not answer about the power supply, what is it and what is its rating?
    And the patterns? are any servos more prone to not responding?

    I personally loath extension USB cables, I've had so many problem with them... Although it usually either works or completely fails (unidentified peripheral). If you can, try without it.

    After checking what KurtE mentions:

    What tools to you have access to?
    Multimeter:

    • check that DATA is 5V relative to ground (could be less if the USB2Dynamixel has been partially blown by an overvoltage on DATA). Check without anything connected to the USB2Dynamixel, then with only the SMPS2Dynamixel connected to it, then same with the servos, one after the other.
    • Check that power seen at the servos is what the power supply is supposed to deliver.

    Oscilloscope:
    • check that power is stable, that it does not have more than about 200mV of variations
    • (digital oscilloscope) check the bus when a communication directed at your servos is taking place and see if the signal is clean (post a pic if you're not certain)

    Logic Analyzer
    • record a set of data when ping commands (or others like KurtE says) are issued, and see what is going on. You can post the data if it's in a format others can read with a free (gratis) software. That's actually my go-to method just before firing up the oscilloscope, as it catches most problems.


    Quote Originally Posted by brennonwilliams View Post
    It is a USB 3.0 port. I also note that the AX-12 are only found on V1 of the SDK?
    Yes, AX-12 only talk Dynamixel Protocol 1.0, so you can stick with the Dynamixel SDK 1.
    Anyway, since the Dynamixel Wizard does not find the servos reliably, it's not your application (or at least not _only_).

    Try with another port (a USB 2.0 one) just in case but I doubt i would make any difference.

    Quote Originally Posted by brennonwilliams View Post
    I wanted to confirm something - picture the setup:
    USB cable -> USB2Dynamixel -> Device 1
    SMPS2Dynamixel -> Device 3

    Now according to him, if I plug the USB2Dynamixel into the SMPS2Dynamixel and then plug that into Device 1, the SMPS2Dynamixel does not have the ability to push the data across - but I have found that not to be the case and I am getting a connection either setup. What is the validated and correct method?
    I'm pretty sure that each pair of connector with the same number of pins is connected. But connectors with different number of pins are not connected to each other, it might be what he was talking about? I don't know if there are gotchas that would make using it in the middle of a chain undesirable for other reasons though.
    Last edited by Xevel; 02-05-2015 at 11:32 AM.
    ---
    Personal blog: http://xevel.org
    USB2AX documentation: http://xevelabs.com

  10. Re: AX-12A Ping issue

    Hi,

    Xevel and KurtEck, thank you both for your help and input.

    I have checked a number of areas now - stepped it down to a USB 2.0, as well as connected into a CM-530.

    Even in both RoboPlus manager and Dynamixel Wizard, I get the same scenario with the devices. The oddest thing being that when I detect a device and select it - I can literally scroll down and without changing the goal position, the current position just flickers and fluctuates.

    I have now tried this with each actuator individually as well as connected in the daisy chain.

    I tested my power supply which I think is either a problem - or the wall point is, and at the very least worth removing from the area of doubt. Voltage is steady at 12.1v but Amps are jumping from 4.8 - 6.7!

    Another area I wondered if anyone else has some thoughts was in the FTDI drivers. When I get the latest package from their site for Win 8.1 - instead of containing a driver folder, it contains an installer. When that is run, it says that it is installed correctly - but when I check the installed driver version - they are still the 12.10 drivers.

    KurtEck - I really like the Logic Analyzers by Saleae - Just put one on order ;-) Thanks for that.

    I will try and test against the data and USB2Dynamixel tomorrow as you suggest Xevel.

    Definitely much better performance when the Return Delay Timer was set back to 0 - but still not there yet.

    I am assuming that everyone else gets a perfect PING response and 0 fluctuation in the reading of the current position etc - every time on a normal solution?

    Cheers

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Question(s) Ping Dynamixels with a Broad Cast ID
    By dandbd in forum Software and Programming
    Replies: 3
    Last Post: 10-10-2012, 08:38 AM
  2. Replies: 4
    Last Post: 12-17-2010, 09:42 AM
  3. Replies: 7
    Last Post: 07-05-2008, 12:53 PM
  4. Ping Pong robot
    By stefano.antonelli in forum Arbotix, Microcontrollers, Arduino
    Replies: 7
    Last Post: 08-13-2007, 08:49 AM

Tags for this Thread

Posting Permissions

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