Results 1 to 2 of 2

Thread: Position Feedback

  1. Position Feedback

    Hello,

    I am using an MX-64 TTL servo along with the OpenCM9.04 board,which is being powered directly by a DC power supply at 12 V. When I read the Present Position of the servo using Dxl.readWord while in “Wheel Mode”, I randomly get a position of 65535. The valid range is 0 to 4095. The same issue has occurred when reading other values, such as Present Load. As far as I can tell, it appears that it is the servo returning this value rather than an issue with SerialUSB. I have multiple MX-64 servos and OpenCM9.04 boards and the issue occurs in all cases. It has also been replicated with the IDE running in both Windows 8.1 and OS X 10.9.4. I’m using Robotis_OpenCM_1.02 as my IDE.

    Is this this a known issue? Is there a fix other than the obvious one of ignoring the bad values? Here is simple code that demonstrates the issue:


    #define DXL_BUS_SERIAL1 1

    #define ID_NUM 2

    #define CW_Angle_Limit 6
    #define CCW_Angle_Limit 8
    #define GOAL_SPEED 32
    #define PRESENT_POS 36

    Dynamixel Dxl(DXL_BUS_SERIAL1);

    void setup() {
    Dxl.begin(3);

    delay(3000);

    Dxl.writeWord(ID_NUM, CW_Angle_Limit, 0); // Set wheel mode
    Dxl.writeWord(ID_NUM, CCW_Angle_Limit, 0); // Set wheel mode

    Dxl.writeWord(ID_NUM, GOAL_SPEED, 100); // Set speed, issue doesn’t seem to depend on speed
    }

    void loop() {
    int pos;

    pos = Dxl.readWord(ID_NUM, PRESENT_POS); // Read present position
    SerialUSB.print("Present Position: ");
    SerialUSB.println(pos);
    delay(500);
    }

    Thanks in advance.
    Last edited by kandhariakhil; 08-20-2014 at 04:31 PM.

  2. #2
    Join Date
    Aug 2014
    Location
    Cleveland, OH
    Posts
    3
    Rep Power
    0

    Re: Position Feedback

    I had this same issue and was able to replicate your results exactly with multiple OpenCM9.04 microcontrollers and MX-64 servos on OS X using the ROBOTIS_OpenCM_1.0.2 software. After some debugging and digging I think I found the cause: a checksum bug in Dynamixel.cpp. I'm surprised that I haven't seen mention of this issue elsewhere online as the bug can affect the reading of any data from servos that spans more than one byte. I've provided further details and offered instructions on how users can fix the issue in a comment to your similar post on ROBOTIS' forums. Hopefully we'll see updated software that fixes this soon. Let me know if this does indeed solve your problem.

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. USB2AX v3.0a feedback
    By Xevel in forum Arbotix, Microcontrollers, Arduino
    Replies: 65
    Last Post: 11-15-2013, 05:49 PM
  2. Servo reading position and lock position CW
    By mkanon in forum DYNAMIXEL & Robot Actuators
    Replies: 5
    Last Post: 03-30-2013, 04:10 PM
  3. Question(s) Dynamixel MX-64T current feedback
    By LuPalm in forum DYNAMIXEL & Robot Actuators
    Replies: 1
    Last Post: 01-23-2013, 11: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
  •