Page 2 of 2 FirstFirst 12
Results 11 to 14 of 14

Thread: Dynamixel Linux SDK

  1. #11
    Join Date
    Sep 2010
    Rep Power

    Re: Dynamixel Linux SDK

    It may just be that I am looking at old versions, but the windows version of "dxl_hal.c" has:
    gfRcvWaitTime = (float)(gfByteTransTime*(float)NumRcvByte + 2*LATENCY_TIME + 2.0f);
    where the linux version of "dxl_hal.c" has:
    gfRcvWaitTime = (float)(gfByteTransTime*(float)NumRcvByte + 5.0f);
    where LATENCY_TIME is 16ms, so a big friggin' difference.
    Please pardon the pedantry... and the profanity... and the convoluted speech pattern...
    "You have failed me, Brain!"
    gives free advice only on public threads

  2. Re: Dynamixel Linux SDK

    OK. I think I've figured out the problem. I've cut the return delay time down all the way, and I've bumped up the timeout formula from their original SDK. I'll keep testing it, but at this point, it appears to work for all of the test cases I've done (including read and writes).

  3. #13
    Join Date
    Dec 2012
    Los Angeles, CA
    Rep Power

    Re: Dynamixel Linux SDK

    When you have time could you go into a bit more detail on what you changed? I'm always tweaking the linux SDK to make it work better for my robot.

  4. Re: Dynamixel Linux SDK

    Hi Kevin,

    So, unfortunately, I didn't do anything eloquent. If you recall from the original SDK, there is the following function (mine is slightly edited for C++):

    void DynamixelCommunicator::HAL_SetTimeout( int ByteNum ) {
        StartTXTime = Clock();
        ReceiveWaitTime = (float)(ByteTXTime * (float)ByteNum * 5.0f);
    That constant of 5.0f, I changed to 25.0f when connected directly to my laptop and to 150.0f when connected directly to my desktop but going through a VM. That being said, ByteNum is always set to six, unless you enter a READ_DATA instruction, at which point it is set to 6 + the size of the parameter you are reading. Once I get some more time, I'm going to change it so that it actually has a better idea of how many bytes it is expecting (the SDK did that by default).

    Also, I had to set the return delay time to on the dynamixel AX-12 to 0. What I'd like to do, eventually, is make a transformation function that computes the timeout based on the return delay time. If I make any progress anytime soon, i'll post the information here.

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Dynamixel RX-24F and RS-485 Communication on Linux/Ubuntu
    By robot in forum Software and Programming
    Replies: 2
    Last Post: 09-06-2012, 04:25 AM
  2. Question(s) SSC32 in Linux C programming?
    By nik2031 in forum Software and Programming
    Replies: 2
    Last Post: 01-18-2009, 09:30 PM
  3. Linux install
    By sthmck in forum Off Topic
    Replies: 6
    Last Post: 09-02-2008, 09:05 PM
  4. Discussion Linux Robots
    By LinuxGuy in forum Robotics General Discussion
    Replies: 15
    Last Post: 04-02-2008, 09:32 AM
  5. Question(s) Linux and Phidgets
    By LinuxGuy in forum Sensors
    Replies: 1
    Last Post: 03-24-2008, 11:08 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