dynamixel-workbench icon indicating copy to clipboard operation
dynamixel-workbench copied to clipboard

2XL430-W250-T - Able to ping but not to write...

Open swinterbotix opened this issue 5 years ago • 13 comments

  1. Setup was done using a U2D2

  2. Which Dynamixel have you used? and how many? (Please describe below format to all connected Dynamixels)

    • Model Name: 2XL430-W250-T (a.k.a 1090)

    • ID: 8 and 9

    • Baud Rate of Dynamixels: 1000000

    • Protocol Version: 2.0

  3. Write down the commands you used in order

Using the 'itemWrite' function that is part of the dynamixel_toolbox (the dynamixel_toolbox version that I'm using is the one that comes when you do 'sudo apt install ros-kinetic-dynamixel-workbench-toolbox' from the command line). Specifically...

const char* log; itemWrite(8, "Drive_Mode", 0, &log);

  1. Copy and Paste your error message on terminal

[DynamixelDriver] Failed to get the Tool Failed to write value[0] on items[Drive_Mode] to [ID : 8]

  1. Please, describe detailedly what difficulty you are in

    • If I try using the itemWrite function to write to the servo (model shown above), I get the above error when there should be no error. Note that I am able to ping the motor successfully - but seem to have trouble writing to the registers with the itemWrite function. Also note that when using two separate XL430 servos, the same code works just fine.

swinterbotix avatar Dec 11 '19 00:12 swinterbotix

@swinterbotix Thank you for reporting the issue. I'll test and look into the code and get back to you.

ROBOTIS-Will avatar Jan 03 '20 00:01 ROBOTIS-Will

Thanks!

swinterbotix avatar Jan 03 '20 00:01 swinterbotix

@swinterbotix I've just tested with 2XL430-W250-T(ID 1 & 2, 1Mbps) + U2D2(/dev/ttyUSB0) on Linux. I modified the example dynamixel_workbench_toolbox/examples/src/k_Read_Write.cpp to change the "Drive_Mode" instead of turning on the LED. After running the code for ID 1 and 2, I checked the modified value from DYNAMIXEL Wizard 2.0 without any problem. In case of 2XL430-W250-T, two actuators are connected internally, therefore, if one of them is in Torque On state, the other will also be in the same status that will not accept any change in EEPROM. Please try changing the Drive_Mode under Torque Off state. Thank you.

ROBOTIS-Will avatar Jan 03 '20 01:01 ROBOTIS-Will

@ROBOTIS-Will I made sure to torque off both actuators before writing to the EEPROM, but I'm still getting the error message. I'll try running the example cpp file you mentioned though and see if I have any luck with that.

swinterbotix avatar Jan 03 '20 01:01 swinterbotix

@swinterbotix Below is the source code that I modified and used to test the DYNAMIXEL. k_Read_Write.cpp.zip

ROBOTIS-Will avatar Jan 03 '20 04:01 ROBOTIS-Will

Hi @ROBOTIS-Will,

I downloaded your zip file and tested it out. As you mentioned, the code was able to run successfully. However, that was only when running the master branch of the dynamixel_workbench repository. Afterwards, I switched to the kinetic-devel branch (which I assume contains the current version of the code available via apt-get) and recompiled the code in the dynamixel_workbench. When running the same cpp file, I got an error message ONLY when working with the 2XL430-W250-T servos. The other servos had no issue. Also, with the kinetic-devel branch code, the pinging was successful for the 2XL430-W250_T servos - but read/writing resulted in the error message 'Failed to get the Tool'. So it looks like you might have to reupdate the 'dynamixel_workbench_toolbox' code available on apt-get to your most recent version.

swinterbotix avatar Jan 05 '20 05:01 swinterbotix

@swinterbotix

Dynamixel workbench does not support the 2xl series. Please use DynamixelSDK

Regards, Ryan

JaehyunShim avatar Jan 08 '20 01:01 JaehyunShim

@rjshim,

I'm a bit confused. The Dynamixel workbench seems to work with the 2xl series assuming ROS is not used. Are you saying that the dynamixel_workbench ROS metapackage does not support the 2xl series?

swinterbotix avatar Jan 08 '20 17:01 swinterbotix

@swinterbotix

The 2XL and 2XC models are not compatible with the current version of DXLWB. It might be updated in the future but we do not have any concrete plans about it.

Ryan

JaehyunShim avatar Jan 09 '20 00:01 JaehyunShim

@swinterbotix We apologize that some of the recent DYNAMIXEL had not been updated to the Kinetic branch of DYNAMIXEL Workbench. As master branch already supports 2XL and recent products, it will soon be merged into Kinetic branch as well. Once it is completed, we'll give you a notification. Thank you very much for your patience.

ROBOTIS-Will avatar Jan 09 '20 02:01 ROBOTIS-Will

Thank you! I really appreciate this! Do you think it would be possible to also merge the master branch into the Melodic one as well? My company plans to use the 2XL servos in a new line of robot platforms and the sooner we can get working ROS wrappers for the melodic version of the dynamixel workbench, the sooner we can complete development.

Thanks, Solomon

swinterbotix avatar Jan 09 '20 19:01 swinterbotix

@swinterbotix I believe merging the source code into the Melodic wouldn't be a much trouble once we complete the Kinetic version. However, due to the characteristics of 2XL hardware configuration, some features may not work as other single axle DYNAMIXEL products (such as modifying EEPROM of ID A while ID B is in Torque on status). Thank you.

ROBOTIS-Will avatar Jan 10 '20 02:01 ROBOTIS-Will

That's fine. I can always check for that in my code

swinterbotix avatar Jan 10 '20 03:01 swinterbotix