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

Thread: Calculating Torque

  1. Calculating Torque

    Hi All...

    i have the MX64 and MX106 motror moving in certain position. from that movement i have a series of current reading from address 68. how can i convert it to the torque value as in N.m / Kg.cm as i need to know the torque for each goal position i had.

  2. #2

    Re: Calculating Torque

    There is no real torque sensor in the motor, so any reading you get is only approximate.

    If the motor has a data sheet, you could approximate the torque using the current-to-torque curve for the motor.

    If the motor does not have a data sheet, then you have to measure the current with a known torque (ideally several different values) and build your own curve.

    There is a curve documented in the manual from Robotis: http://support.robotis.com/en/produc...ries/mx-64.htm

    Again, this will be approximate, and I'd suggest several readings in a row after stabilizing in a position to get a better value.

  3. Re: Calculating Torque

    i found that current is proportional to torque in MX64 and MX106. i have taken the value form table address for current, voltage and speed. how can i use all these data to calculate torque?

    from the manual it stated
    This value is 10 times larger than the actual voltage. For example, when 10V is supplied, the data value is 100 (0x64)
    but, i am getting value of 9588, if using the example, the voltage is 958V which is seem a bit off.
    please help me.

  4. #4

    Re: Calculating Torque

    Quote Originally Posted by jek View Post
    but, i am getting value of 9588, if using the example, the voltage is 958V which is seem a bit off.
    please help me.
    That can not be, as the voltage is contained in one byte, so it can only have the values from 0 to 255.

    My Guess is you may have read a word in? Which would contain the values for present voltage and temp

    Your value of 9588, converts to two byte values of: 37(msb) and 116(lsb).

    So you have a voltage of 11.6V

  5. #5

    Re: Calculating Torque

    The voltage value is not useful for calculating torque. Only the current consumption is proportional to torque.
    (A higher voltage simply means you can let the motor draw a higher current, at the cost of more heat generated.)

    You want the graphs on this page, which is the online manual from Robotis for the MX-64 servo. (There's a similar page for MX-106):

    http://support.robotis.com/en/produc...ries/mx-64.htm

    The red curve shows torque (bottom scale) versus current (right scale.)
    Look for the "current" register (which is two bytes) to read the value. Register 44 is low byte, Register 45 is high byte:

    http://support.robotis.com/en/produc...tor_Address_44

  6. Re: Calculating Torque

    Thanks for the response

    i am using MAtlab to read the value from dynamixel table as

    PresentPos = int32(calllib('dynamixel','dxl_read_word',id,P_PRESENT_POSITION));
    while changing PresentPos, id andP_PRESENT_POSITION current(68), voltage(42) and speed(38). then is use the formula given in manual to find CURRENT,
    I = ( 4.5mA ) * (CURRENT – 2048 ) in amps unit (A).
    For example, 68 gives a value of 2148, which corresponds to 450mA of current flow.
    VOLTAGE
    This value is 10 times larger than the actual voltage. For example, when 10V is supplied, the data value is 100 (0x64)

    and SPEED
    The value unit is about 0.11rpm.
    For example, if it is set to 300 then the motor is moving to the CCW direction at a rate of about 34.33rpm.
    Am i doing the right thing? the current seems okay, when i convert it. but, the speed and voltage giving me confuse.
    how can you get these ?

    That can not be, as the voltage is contained in one byte, so it can only have the values from 0 to 255.

    My Guess is you may have read a word in? Which would contain the values for present voltage and temp

    Your value of 9588, converts to two byte values of: 37(msb) and 116(lsb).

    So you have a voltage of 11.6V
    may you guide me please, as i have a row of 100 to convert it. how can u get the 11.6V?

    Click image for larger version. 

Name:	product_dxl_mx-64atr.jpg 
Views:	159 
Size:	80.0 KB 
ID:	6389
    and from the green graph, showing the efficiency is max at 50% and dropping down.is it safe to assume the efficiency of this motor is 50%?

    i were using the formula below to get torque value

    τ = (I * V * E *60) / (rpm * 2π)
    when i'm plot using matlab, the graph seem similar to simulation i had done before.

    please guide me...
    thank you.

  7. #7

    Re: Calculating Torque

    Sorry, I have never used matlab, so hopefully someone like jwatte can give you better answer...

    But as for voltage, as I mentioned I think you are reading in word and not byte. Your code for voltage, should maybe look something like:
    Code:
    Voltage = int32(calllib('dynamixel','dxl_read_byte',id,P_VOLTAGE));
    Again I do not know matlab, nor your setup, so not sure if P_VOLTAGE is correct ID? Also not sure if I can simply divide by 10 here to give the value or need some form of type conversion...

  8. #8

    Re: Calculating Torque

    is it safe to assume the efficiency of this motor is 50%
    Depends what you mean by "safe." It's safe to assume that the motor will never be more than 50% efficient.
    However, depending on RPM and other parameters, you will get less efficiency under many conditions.

    τ = (I * V * E *60) / (rpm * 2π)
    I would not use that formula. I would approximate the curve that you can see in the graph (red) that shows "torque" versus "current." I would then calculate the torque generated by simply feeding current into that curve.
    It's an almost linear curve. so that should be easy (within this charted area -- once you stall the motor, or get near to doing that, bets are off!)

  9. Re: Calculating Torque

    my code for reading voltage is like :

    VoltageSeatC1(t) = int32(calllib('dynamixel','dxl_read_word',3,42));
    Speed:
    SpeedSeatC1(t) = int32(calllib('dynamixel','dxl_read_word',3,38));
    Current:
    CurrentSeatC1(t) = int32(calllib('dynamixel','dxl_read_word',3,68));
    as the number of the last is refering to the adress RAM in control table. i noticed that the code is same for all languages, C++,C#,and VB. if what i did is truly reading it in word, how can i change it to byte?

    and as for the graph, it might be a bit hard for me to feed the current into the graph, since i have 100 data to calculate the torque. .... so i might stick to the formula while adjusting for the best efficient.

    again... thank you very much

  10. #10

    Re: Calculating Torque

    it might be a bit hard for me to feed the current into the graph, since i have 100 data to calculate the torque.
    You will notice that I suggested you model the graph, and thus you feed the data into the model of the graph.
    It's pretty much linear, so a y = ax + b linear fit would do totally fine.

    VoltageSeatC1(t) = int32(calllib('dynamixel','dxl_read_word',3,42));
    KurtEck already suggested what was wrong with this line in post #7, and additionally provided another way of getting the right value in post #4.
    It sounds to me as if you're just copying and pasting code from somewhere, rather than understanding what the program is actually doing, and what the data representation values really are.
    I think everything will become clear if you learn the difference between a "byte" and a "word," and the difference between "big endian" and "little endian" data, and how to extract different byte values from a given word. That's basic programming knowledge that will serve you well in a future engineering career anyway!

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Question(s) Stall Torque
    By brennonwilliams in forum DYNAMIXEL & Robot Actuators
    Replies: 6
    Last Post: 02-20-2015, 06:47 AM
  2. Question(s) The dynamic torque of Ax-12A can take.
    By Aims Bot in forum DYNAMIXEL & Robot Actuators
    Replies: 0
    Last Post: 07-27-2014, 08:08 AM
  3. Question(s) RX-28 Holding Torque
    By karstetter in forum DYNAMIXEL & Robot Actuators
    Replies: 3
    Last Post: 09-12-2013, 11:35 PM
  4. Question(s) RX-28 Holding Torque
    By karstetter in forum Arbotix, Microcontrollers, Arduino
    Replies: 0
    Last Post: 09-12-2013, 10:24 AM
  5. Calculating frame rate and function time
    By TXBDan in forum Software and Programming
    Replies: 13
    Last Post: 05-22-2013, 03:05 PM

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
  •