Git Product home page Git Product logo

robotis-git / dynamixelsdk Goto Github PK

View Code? Open in Web Editor NEW
413.0 46.0 377.0 28.56 MB

ROBOTIS Dynamixel SDK (Protocol1.0/2.0)

Home Page: http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/overview/

License: Apache License 2.0

C++ 24.79% C 11.34% Makefile 13.73% C# 24.42% Java 6.73% MATLAB 7.64% Python 8.92% CMake 0.23% CSS 0.97% JavaScript 0.96% LabVIEW 0.27%
robotis robot dynamixel dynamixelsdk sdk arduino ros package c cpp

dynamixelsdk's People

Contributors

danielhou315 avatar de-vri-es avatar guichristmann avatar hancheol-cho avatar honghyun79 avatar jaehyunshim avatar kaym9n avatar kijonggil avatar kizitorashiro avatar leodog896 avatar leonjung avatar robotis-ashe avatar robotis-david avatar robotis-official avatar robotis-will avatar robotis-zerom avatar robotpilot avatar roncapat avatar thealakazam avatar toreno96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dynamixelsdk's Issues

[TxRxResult] There is no status packet! problem with RX-24F in ubuntu 14.04

Hi,

I am using RX-24F. I used 12V 2A regulated supply to run it. I checked with Dynamixel Wizard in windows and it shows all the details of the servo as shown in the wiki video. I attempted to run "read_write" function it in ubuntu as suggested in wiki video link. But it does not run. although it shows that the port is open. But it does not show that " dynamixel has been successfully connected".
I tried to run "ping" also and it shows the model number 3328, but [TxRxResult] There is no status packet! is still showing.

Please help me to fix the problem.

DynamixelSDK-341 dxl_x86_c COM Port Handling

Implemented the dxl_x86_c.dll driver on a 64-bit Windows 7 OS.

Was able to use the Roboplus Dynamixel Manager software to control my USB2Dynamixel,

Was NOT able to open communication using the dxl_x86_c.dll.

The issue was resolved by setting the USB2Dynamixel adapter COM Port number in Windows to a single digit address (e.g. COM12 DID NOT work, but COM9 DID work).

Please look into this to determine the root cause for future applications.

Thank you.

hi, i wanna control a servo motor using labview. give me some tip

안녕하세요 랩뷰를 이용해서 다이나믹 셀 서보모터를 제어해보고자 합니다.
hi, I wanna control a servo motor using Labview.

깃허브 위키에서 제공하는 예제에 랩뷰를 이용한 서보모터 제어 블록다이어그램 화면을 봤는데요.
I saw the labview code example to control servo motors provided from github wiki.

VI 파일이 제공되어있지 않아서 화면만 봐서는 잘 이해가 되지 않네요.
But, they don't share VI file, so it's difficult to understand to me.

코드 카테고리에서 이것저것 다운받아서 한번 코드를 참고해보고자 했는데 제가 가지고 있는 랩뷰 버전보다 상위 버전에서 만들어진 파일이라 열어보는게 불가능 했습니다.
I downloaded some file in code category, but it's impossible to open in my labview version because its version is upper than that of mine.

제가 가지고 있는 버전은 랩뷰2011 버전이에요.
Mine is Labview 2011.

혹시 제가 가진 버전에서 열어볼 수 있는 랩뷰 예제 VI 파일을 얻을 수 있을까요?
So may i get some VI file i can open?

참고로 제가 컨트롤해보고자 하는 모터는 다이나믹셀 MX-64 입니다.
The servo motor model which i want to control using labview is MX-64.

Control the position and the velocity simultaneously

Hi!
I want control two Dynamixel_pro actuators with goal positions and goal velocities simultaneously. Firstly, I use DynamixelSDK GroupSyncWrite to set the goal positions, then I use DynamixelSDK GroupSyncWrite to set the goal velocities. It seems that the velocity can be controlled. Just the goal positions is tracked.
How can control two Dynamixel_pro actuators with goal positions and goal velocities simultaneously?

SDK protocol 1.0 MX-64. read2ByteTxRx fails with Comm_RX_TIMEOUT or COMM_RX_CORRUPT

Hi,

I am using the SDK matlab code to control several MX-64. I wanted to use SYNC write to command motors to follow desired positions and use other read functions to read one motor position out. When I use read2ByteTXRX to read out the present position, it usually takes 1ms for a round trip. But occasionally it fails and takes 35ms with error code either COMM_RX_TIMEOUT or COMM_RX_Corrupt. Do you know how to fix this problem to make it reliable?

Dynamixel SDK for Phar lap ETS operating system (National Instruments PXI system)

Hi Guys,
I am having issues with library import to a National Instruments PXI system running on Phar lap ETS operating system. On a quick compatibility check using a DLL checker from NI yielded 5 bad imports and 18 stub imports: http://digital.ni.com/public.nsf/websearch/0BF52E6FAC0BF9C286256EDB00015230?OpenDocument
The intent is to use LabVIEW code deployed on the Real_time target and let the PXI 8840 controller control the servo's.

Any guidance as to how to proceed to fix the errors related to bad import and stub imports (see figures attached below)?

The Servo is connected to the RS-485 module, which is connected to the PXIe chassis 1078. The PXI 8840 Quadcore Real-Time controls the modules in the chassis. The PXI 8840 run on a Real Time Phar lap ETS operating system.

Any help or guidance with regards to this problem is much appreciated,
Thank you,
Sunil

Please fill out the questionnaire to give you the best support service.

  • Which DYNAMIXEL is it?
    DYNAMIXEL PRO H54-200-S500-R
  • Which CONTROLLER is it?
    PXI 8840 RT via RS485 Connection
  • Which VERSION of DynamixelSDK is it?
    Version 3, Protocol 2
  • Any PICTURES or VIDEOS?
    dllchecked1 1
    dllchecked2 1

Bug in XM430 firmware ?

Hi,

When using a XM430 in extended position mode, reading present position (register address 132) gives -4096 where position should be -1. Adjacent values are ok (0 and -2).

Position value / Bytes given by a bulk read command
0 -> 0 0 0 0
-1 -> 0 240 255 255 (should be 255 255 255 255)
-2 -> 254 255 255 255

Maybe I missed something. Thanks for helping.
Jacques

RX-24 F dynamixel servo connection with PC

Hi,

I have purchased a RX-24F dynamixel servo. I have USB-RS485 converter with me. I got to manage to power up the servo from a regulated supply. The red LED glowed for a moment and then turned off.
I used other dynamixel port for connecting with PC.
GND->GND
TX+(RS-485)->D+(PIN3 of Dynamixel)
TX-(RS-485)->D-(PIN4 of Dynamixel)

Then I opened Dynamixel wizard and as provided in https://www.youtube.com/watch?v=RLnpps8eh6U&list=PLEf1s0tzVSnSgVzf4AREpat_P_HRLSiDn&index=2 , I searched for servo. But it was not found. Can anybody help me to identify the problem?

thanks,

Diff between dynamixel_motor

I saw the 1st release of the software from this repo ros/rosdistro#12346 Congratulations!

It'd be great if you could clarify somewhere (e.g. personally I recommend at minimum the description tag in package.xml is the best since 1) that's the official package manifest 2) it'll be automatically propagated onto ROS wiki) how this software is different from dynamixel_motor package, which has been serving as the defacto option in ROS to interact Dynamixel motors (but the maintenance of it has been stale for awhile, so IMHO official package from the manufacturer should be very much welcomed from the community).

It'd be very nice also for the existing users who use Dynamixel via ROS that how APIs are different between yours ant dynamixel_motors. Maybe a table to compare the APIs would work just fine.

I don't really know if this package can replace dynamixel_motors or if this package is something with completely different purpose/features. But I believe the questions I've raised here are FAQ for ROS users.

Kamsahamnida!

RX-28 Servos: Running 2 Servos

I have been able to set the baudrate and the I.D's of both servos to 1 and 2 respectively with the Dynamixel Wizard on Robotplus. I tried running the read_write code in the linux64 directory to make sure that they both were working individually. First I had servo 1 plugged in and ran the code and it moved. After, I changed the id number to 2 in the code, and ran the code with servo 2 plugged in. The result was that the servo moved.

The strange thing I noticed was that I plugged in servo 1 and servo 2 into a 6 Port RX/EX Power Hub, and ran the code with the id number in the code set to 2 and both servos ended up moving. I'm very confused on why this is happening when I thought the code only runs for 1 servo which has the specific id. Only one of these servos has an id of 2, but why do both of them move?

Here is part of the output in the terminal:

[ID:001] GoalPos:1023 PresPos:956
[ID:001] GoalPos:1023 PresPos:956
[ID:001] GoalPos:1023 PresPos:956
[TxRxResult] Incorrect status packet!
[ID:001] GoalPos:1023 PresPos:000
[ID:001] GoalPos:1023 PresPos:60348
[ID:001] GoalPos:1023 PresPos:60348
[ID:001] GoalPos:1023 PresPos:60348
[ID:001] GoalPos:1023 PresPos:60348
[ID:001] GoalPos:1023 PresPos:60348
[ID:001] GoalPos:1023 PresPos:60348
[ID:001] GoalPos:1023 PresPos:60348
[ID:001] GoalPos:1023 PresPos:60348
[ID:001] GoalPos:1023 PresPos:60348
[ID:001] GoalPos:1023 PresPos:1018
Press any key to continue! (or press ESC to quit!)
[ID:001] GoalPos:000 PresPos:956
[ID:001] GoalPos:000 PresPos:1021
[ID:001] GoalPos:000 PresPos:956
[ID:001] GoalPos:000 PresPos:1021
[ID:001] GoalPos:000 PresPos:956
[ID:001] GoalPos:000 PresPos:1021
[ID:001] GoalPos:000 PresPos:956
[ID:001] GoalPos:000 PresPos:956
[ID:001] GoalPos:000 PresPos:1021
[ID:001] GoalPos:000 PresPos:956
[ID:001] GoalPos:000 PresPos:1021
[ID:001] GoalPos:000 PresPos:956
[ID:001] GoalPos:000 PresPos:1021
[ID:001] GoalPos:000 PresPos:956
[ID:001] GoalPos:000 PresPos:956
[ID:001] GoalPos:000 PresPos:1021
[ID:001] GoalPos:000 PresPos:1023
[ID:001] GoalPos:000 PresPos:956
[ID:001] GoalPos:000 PresPos:1021
[ID:001] GoalPos:000 PresPos:956
[TxRxResult] Incorrect status packet!
[ID:001] GoalPos:000 PresPos:000
Press any key to continue! (or press ESC to quit!)
[ID:001] GoalPos:1023 PresPos:43196
[ID:001] GoalPos:1023 PresPos:1021

Another question I had is why is it stating incorrect status packet?
Also is there a way to set an inital position for the servo to start at, such as the mid point?
In addition, I ran sync_write and I was wondering what does this code do?
Lastly, why do you need a Data Byte Length, when in the read_write code you didn't need it.

Thank you once again for all the help! We were able to at least get our RX-28 servos moving.

Linux, There is no status packet

Hi again,
I am currently using dynamixel sdk develop, and I tried running the ping.c for linux64 and got this ouput. In addition, when I run the read_write.c file I got this output.

Ping.c Output
Succeeded to open the port!
Succeeded to change the baudrate!
Now the controller baudrate is : 1000000
[ID:001] Try factoryreset : Aborted
[TxRxResult] There is no status packet!

Read_write.c Output
Succeeded to open the port!
Succeeded to change the baudrate!
[TxRxResult] There is no status packet!
Press any key to continue! (or press ESC to quit!)
[TxRxResult] There is no status packet!
[TxRxResult] There is no status packet!
[ID:001] GoalPos:000 PresPos:000
Press any key to continue! (or press ESC to quit!)

I am using the dynamixel2usb if that helps. My question is why isn't the servo I have connected moving by running read_write.c? Also why does it say there is no status packet, and how do I fix this issue?

I have the servo powered with the correct voltage source attached. Thank you for all the help!

Failed transmit instruction package

Hello,
I keep having an error pop up when I attempt to run the examples in the DynamixelSDK file. I've go a crustcrawler ax-18a smart arm and I'm trying to connect to it with a USB2Dynamixel hooked up to a jetson TK1 board with ubuntu tegra on it. I've tried running the Ping example and it outputs this: Succeeded to open the port!
Succeeded to change the baudrate!
[TxRxResult] Failed transmit instruction packet!
[ID:001] ping Succeeded. Dynamixel model number : 0
I'm still pretty new with UNIX coding and so I'm not sure what the failed transmit instruction packet is or how to fix it. Also I'm not sure if its the problem or not but to get the make file to work I had to comment out the Format: -m64 line.

Thanks

Linux Set up

I'm following the steps provided on this page, but I have reached a part that I'm stuck on. https://github.com/ROBOTIS-Leon/test2/wiki/3.2.2-Linux I navigated to the linux64 directory and typed the command "make" and received an error. I then typed "make clean" to try and fix the issue, but when I typed "make" again, the same error appeared.

Here is the error I have:
root@river-turtlesim:/home/christian/Downloads/DynamixelSDK-master/c/build/linux64# make
mkdir -p ./.objects/
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c ../../src/dynamixel_sdk/group_bulk_read.c -o .objects/group_bulk_read.o
In file included from ../../include/dynamixel_sdk/group_bulk_read.h:43:0,
from ../../src/dynamixel_sdk/group_bulk_read.c:44:
../../include/dynamixel_sdk/robotis_def.h:42:29: error: conflicting types for ‘int8_t’
typedef char int8_t;
^
In file included from /usr/include/stdlib.h:314:0,
from ../../src/dynamixel_sdk/group_bulk_read.c:43:
/usr/include/x86_64-linux-gnu/sys/types.h:194:1: note: previous declaration of ‘int8_t’ was here
intN_t (8, __QI);
^
make: *** [.objects/group_bulk_read.o] Error 1
root@river-turtlesim:/home/christian/Downloads/DynamixelSDK-master/c/build/linux64# make cleanrm -f ./.objects/group_bulk_read.o ./.objects/group_bulk_write.o ./.objects/group_sync_read.o ./.objects/group_sync_write.o ./.objects/packet_handler.o ./.objects/port_handler.o ./.objects/protocol1_packet_handler.o ./.objects/protocol2_packet_handler.o ./.objects/port_handler_linux.o ./libdxl_x64_c.so
root@river-turtlesim:/home/christian/Downloads/DynamixelSDK-master/c/build/linux64# make
mkdir -p ./.objects/
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c ../../src/dynamixel_sdk/group_bulk_read.c -o .objects/group_bulk_read.o
In file included from ../../include/dynamixel_sdk/group_bulk_read.h:43:0,
from ../../src/dynamixel_sdk/group_bulk_read.c:44:
../../include/dynamixel_sdk/robotis_def.h:42:29: error: conflicting types for ‘int8_t’
typedef char int8_t;
^
In file included from /usr/include/stdlib.h:314:0,
from ../../src/dynamixel_sdk/group_bulk_read.c:43:
/usr/include/x86_64-linux-gnu/sys/types.h:194:1: note: previous declaration of ‘int8_t’ was here
intN_t (8, __QI);
^
make: *** [.objects/group_bulk_read.o] Error 1
root@river-turtlesim:/home/christian/Downloads/DynamixelSDK-master/c/build/linux64#

Different return delay time

Hello!

I is probably not the problem of your package, but I thought maybe you have already faced similar situation in the past: I have AX-12A dynamixels and using your package and USB2DYNAMIXEL I've got back a frame from servo using Protocol1.0/Ping program, but the time between sent and received package is each time different. I use 1Mb/s and Return Delay Time of 0 (set in EEPROM area). 3 of 4 frames I've got something like 20us of delay:
good
But sumetimes I've got really long return delay time (about 150us or even 200us):
bad

Do you ever seen something like this? Do you have any idea what can cause this problem?
Best,
Daniel

NOTIFICATIONS

REFERENCE LIST

[2017.02.16] HOW TO WRITE THE ISSUE #55

[2017.02.10] DynamixelSDK for MATLAB - Quick Start Video uploaded #52

[2016.11.26] Upcoming DynamixelSDK 3.X for Arduino #41

DynamixelSDK for Windows 10 IoT Core

Hi guys!

I'm working with Dynamixel XM430 and USB2DYNAMIXEL.
At first I connect the USB2DYNAMIXEL through Windows x64 and I could run the example ReadWrite, then I connect the USB2DYNAMIXEL through my Raspberry PI 2 running Raspbian LINUX, and worked nicely, I could run the example ReadWrite without problems.

Now I want connect through Raspberry PI 2 running Windows IoT, I debugged and I could run the shell, but I just get Error when opening serial port, I tried several ports, but I don't know exactly where is the error.

Have you guys tried to run the SDK through Windows IoT?

Thanks,
Alex Duarte

Upcoming DynamixelSDK 3.X for Arduino

We are working on the OpenCR (the introduction film is here at 07:07), which is a board that can work with ROS Serial or Arduino between SBC (or Computer) and the Dynamixel now, and the DynamixelSDK 3.X for Arduino as a library file has been uploaded from few weeks ago.

If you have interested with your Arduino x Dynamixel issue, come here and get the temporary source.

The official library files (or package that is available through the Arduino IDE update, maybe) would be serviced soon.

Bulk_read with AX series

Referring to the documentation, the bulk_read function doesn't work with the AX series. However in protocol1.0 folder there is a bulk_read example what may suggest that it should work. Which information is true?

I’m trying to control over 20 servos from MatLab. Read_write functions work fine (except printTxRxResult and printRxPacketError functions, I also don’t know why) , sync_write also, but when I’m running bulk_read example I’m getting communication error (-3001 -> [TxRxResult] There is no status packet!) as a result of function write2ByteTxRx. I was trying to rebuilt library but it doesn’t help.

Anyone has the same problem and found any solution? Or maybe library is not supporting bulk functions with AX servos?

Problem with USB2Dynamixel

I used DC-DC LM2596 for power supply of motor MX-28T, perhaps one of the wires is disconnected and my computer is switched off. Thereafter USB2DYNAMIXEL ceased to detect the presence of motors via program RoboPlus. I tried to connect other motors, but nothing has changed. Could you tell me, it is possible to fix adapter USB2DYNAMIXEL or do I have to buy a new one?

Inconsistent results with python

When I run the ping.py on my raspberry pi, I am getting inconsistent results.
Sometimes the dynamixel model number is returned, sometimes it is not.
The issue appears to correlate with whether there is a status packet or not.
As this is provided sample code I'm hoping there's some explanation for this.

I found that if I modify ping.py (see code below) to set the initial BAUD rate to 500K then immediately change it to 1m (and don't change anything else). I can run the ping code in a loop (as fast as it will run) and it will run 10k (or more) cycles before it does not get a status packet back.

The below is manual running of the ping.py code in terminal.
pi@srsVE1:~/DynamixelSDK-3.4.1/python/protocol1_0 $ python ping.py
Succeeded to open the port!
Succeeded to change the baudrate!
[ID:001] ping Succeeded. Dynamixel model number : 12

pi@srsVE1:~/DynamixelSDK-3.4.1/python/protocol1_0 $ python ping.py
Succeeded to open the port!
Succeeded to change the baudrate!
[ID:001] ping Succeeded. Dynamixel model number : 12

pi@srsVE1:~/DynamixelSDK-3.4.1/python/protocol1_0 $ python ping.py
Succeeded to open the port!
Succeeded to change the baudrate!
[ID:001] ping Succeeded. Dynamixel model number : 12

pi@srsVE1:~/DynamixelSDK-3.4.1/python/protocol1_0 $ python ping.py
Succeeded to open the port!
Succeeded to change the baudrate!
[TxRxResult] There is no status packet!
[ID:001] ping Succeeded. Dynamixel model number : 0

pi@srsVE1:~/DynamixelSDK-3.4.1/python/protocol1_0 $ python ping.py
Succeeded to open the port!
Succeeded to change the baudrate!
[TxRxResult] There is no status packet!
[ID:001] ping Succeeded. Dynamixel model number : 0

pi@srsVE1:~/DynamixelSDK-3.4.1/python/protocol1_0 $ python ping.py
Succeeded to open the port!
Succeeded to change the baudrate!
[TxRxResult] There is no status packet!
[ID:001] ping Succeeded. Dynamixel model number : 0

pi@srsVE1:~/DynamixelSDK-3.4.1/python/protocol1_0 $ python ping.py
Succeeded to open the port!
Succeeded to change the baudrate!
[TxRxResult] There is no status packet!
[ID:001] ping Succeeded. Dynamixel model number : 0

pi@srsVE1:~/DynamixelSDK-3.4.1/python/protocol1_0 $ python ping.py
Succeeded to open the port!
Succeeded to change the baudrate!
[ID:001] ping Succeeded. Dynamixel model number : 12

++++modified bits of ping.py+++++++++++++++++++++++

Set port baudrate to TEMP

if dynamixel.setBaudRate(port_num, BAUDRATE_TEMP):
print("Succeeded to change the TEMP baudrate!")
else:
print("Failed to change the baudrate!")
print("Press any key to terminate...")
getch()
quit()

Set port baudrate to PERM

if dynamixel.setBaudRate(port_num, BAUDRATE_PERM):
print("Succeeded to change the PERM baudrate!")
else:
print("Failed to change the baudrate!")
print("Press any key to terminate...")
getch()
quit()

Try to ping the Dynamixel

Get Dynamixel model number

count = 1

while True:
dxl_model_number = dynamixel.pingGetModelNum(port_num, PROTOCOL_VERSION, DXL_ID)
if dynamixel.getLastTxRxResult(port_num, PROTOCOL_VERSION) != COMM_SUCCESS:
dynamixel.printTxRxResult(PROTOCOL_VERSION, dynamixel.getLastTxRxResult(port_num, PROTOCOL_VERSION))
elif dynamixel.getLastRxPacketError(port_num, PROTOCOL_VERSION) != 0:
dynamixel.printRxPacketError(PROTOCOL_VERSION, dynamixel.getLastRxPacketError(port_num, PROTOCOL_VERSION))
if dxl_model_number == 12:
print("[ID:%03d] ping Succeeded. Dynamixel model number : %d" % (DXL_ID, dxl_model_number))
count = count + 1
else:
print "model number not returned"
print count
break

RX-28 Servos

Hi again, I have looked online and I think there is no Dynamixel Wizard for Linux. I am also using RX-28 servos.

I tried sudo su, and still got the same error. Also, I made sure that the slide witch is on RS485 and that the servos are properly powered with 12V, but still got the same error. I'm sorry, but I don't know how I should do number 4 from your response earlier?

Thank you (I'm not too sure whether you would of been able to see my comment since the issue is close, so I created a new issue)

Problem using MatLab with MX-28T

I am having trouble using matlab with the USB2Dynamixel and the MX-28T. I am using windows 10 and i have followed the steps to compile the library using Microsoft Visual Studio 2015 Express for Desktop. I have set all the paths according to the available tutorial. Unfortunately when i run the read_write.m file, i receive the following errors.

Index exceeds matrix dimensions.

Error in loadlibrary>getLoadlibraryCompilerConfiguration (line 497)
compilerConfiguration=compilerConfiguration(1); %unix machines return c and cpp compilers here

Error in loadlibrary (line 253)
[thunk_build_fn,preprocess_command]=getLoadlibraryCompilerConfiguration(ccinclude,header,headername,compilerConfiguration);

Error in read_write (line 60)
[notfound, warnings] = loadlibrary(lib_name, 'dynamixel_sdk.h', 'addheader', 'port_handler.h',
'addheader', 'packet_handler.h');

I am using Matlab 2014a. I appreciate any help you are able to provide.

Dynamixel MX-28 does not go to the exact goal position

Please fill out the questionaire to give you the best support service.

  • Which DYNAMIXEL is it?

    [ MX-28R ]

  • Which CONTROLLER is it?

    [ USB2Dynamixel  ]

  • Which VERSION of DynamixelSDK is it?

    [3.4.3]

  • Any SOURCE SAMPLES?

    [ read_write.py from the SDK example]

ISSUE: Dynamixel MX-28 does not go to the exact goal position

For example, when running the read_write.py from the SDK example, if set goal position to 100, the returned position will be 95, 104, something very close but not the exact position.

Is there anyway to make the returned position same as the goal exact position? Wait longer time, or fine tune the PID parameters?

printRxPacketError

Greetings,

it is not really an issue but I just wanted to mention, that in the API documentation printRXPacketError is not documented.

Sincerly Delet0r

potential out-of-bounds write in Protocol1PacketHandler::WriteTxRx

Hello,

I'm using the C++ sdk. I find that the method Protocol1PacketHandler::WriteTxRx only malloc(length+6) for txpacket (src/dynamixel_sdk/Protocol1PacketHandler.cpp:509), but rotocol1PacketHandler::TxPacket writes the checksum into txpacket[length+6] (length+3+4-1), causing a out-of-bounds write.

Instead, the method Protocol1PacketHandler::WriteTxOnly calls malloc(length+7) (src/dynamixel_sdk/Protocol1PacketHandler.cpp:485)

Did you note this difference between the two methods?

Thank you.

DynamixelSDK with Arbotix-M

Hello,

I am using an ArbotiX-M controller to communicate with an MX-servos. Can I use the DynamixelSDK library to control the motors? I installed everything, however when I run the read_write.py example, I get the message "There is no status packet". (In the long-run, I would like to give torque commands to the motor - MX-68).
Thank you.

Best Regards,
Chris

Maybe a bug ?

Hi,

In function port_handler_linux.c, this code seems strange to me:

  if (port_num == g_used_port_num)
{
  for (port_num = 0; port_num < g_used_port_num; port_num++)
  {
    if (portData[port_num].socket_fd != -1)
      break;
  }

  if (port_num == g_used_port_num)
  {
    g_used_port_num++;
    portData = (PortData*)realloc(portData, g_used_port_num * sizeof(PortData));
    g_is_using = (uint8_t*)realloc(g_is_using, g_used_port_num * sizeof(uint8_t));
  }
}

I think the test if (portData[port_num].socket_fd != -1) should be if (portData[port_num].socket_fd == -1) ?

Best,
Jacques

Problem with control of Dynamixel AX-12A by using MatLab

I plan to work with Dynamixel AX-12A, which is connected to computer (Win64) by USB2Dynamixel. I use information from Dynamixel SDK Manual (item 4.6) for adding libraries in MatLab R2014a (it's files for DynamixelSDK-3.4.1), but when I run file "read_write.m", I got error:

Index exceeds matrix dimensions.

Error in
loadlibrary>getLoadlibraryCompilerConfiguration
(line 497)
compilerConfiguration=compilerConfiguration(1);
%unix machines return c and cpp
compilers here

Error in loadlibrary (line 253)
[thunk_build_fn,preprocess_command]=getLoadlibraryCompilerConfiguration(ccinclude,header,headername,compilerConfiguration);

Error in read_write (line 60)
[notfound, warnings] =
loadlibrary(lib_name,
'dynamixel_sdk.h', 'addheader',
'port_handler.h', 'addheader',
'packet_handler.h');

Also I tried to add library as it's written in ROBOTIS e-Manual v1.24.00, but I have simular error.
Could you help me, what should I do?

dxl_monitor can't scan dynamixel pro, but sync_read_write can connect it

Please fill out the questionaire to give you the best support service.

  • Which DYNAMIXEL is it?

    [  PRO M42-10-S260-R ] ( ex: MX-64AT , XM430-350R , PRO H54-100-S500-R , ...)

  • Which CONTROLLER is it?

    [ USB2Dynamixel ] ( ex: OpenCM , OpenCR , Arduino Uno , PC via USB2Dynamixel , ... )

  • Which VERSION of DynamixelSDK is it?

    ([NOTE] DynamixelSDK Q&A is not available anymore if it is older than ver. 3.0.0, but feedback us)

    [3.4.3 ] ( ex: 3.4.2 , dxl_sdk_win32_v2_02.zip , ... )

  • Any PICTURES or VIDEOS?

    ![]( Link the PICTURES or VIDEOS here, if necessary )

  • Any SOURCE SAMPLES?

    []( Link the SOURCE SAMPLES here, if necessary )
    image
    image

Dynamixel Monitor

Hi again,
I'm currently trying to reset the dynamixel using the dynamixel monitor because I am running linux and there is not roboplus for linux yet. However, i tried inputting commands that did not work. I was wondering if there is a way to fix it. I have attached a picture of what I typed and the error.

Thank you!

screenshot from 2016-07-18 17 08 21

WORK SCHEDULE

Future works

  • (Recover) Check if the id of rxpacket is the same as the id of txpacket #82
  • DynamixelSDK Python - fully pythonize #93 #122 #147

Postponed

  • DynamixelSDK test on Windows 10 IoT Core #7

  • Example codes that run by getting input values (goal positions, led values, etc.)

  • Symlinks issue #89

  • Some works for USB2AX #106

  • Arbotix-M controller test #30

Ongoing

Finished

v3.5.4

  • Fixes : Error compiling SDK on Mac OSX: "use of undeclared identifier 'CLOCK_REALTIME'" #141 #144
  • Fixes : Truncated packet transmission on OSX #142 #143
  • Fixes : weird performance of 'Read' between Ubuntu 14.04 and Ubuntu 16.04 #146

v3.5.3

  • Fixes : DynamixelSDK ROS Kinetic Issue - ARM - Debian Jessie solved by replacing target_sources func in CMake to set_property #136

v3.5.2

  • Recover : Check if the id of rxpacket is the same as the id of txpacket (c++) #82
  • Changes : Ping examples now will not show Dynamixel model number when communication is failed

v3.5.1

  • DynamixelSDK for MacOSX #51
  • DynamixelSDK for Arduino #11 #34

v3.4.3

  • DynamixelSDK C++ ver. and ROS ver. in Windows platform now can use the port number of over then 10 #45

v3.4.2

  • MATLAB loadlibrary error #34 #36

v3.4.1

  • some modification in the ROS .xml file

v3.4.0

  • ROS enabled

v3.3.3

Dynamixel Monitor

Hi,
I'm currently trying to reset the dynamixel using the dynamixel monitor because I am running linux and there is no roboplus for linux yet. I tried inputting commands that did not work. I was wondering if there is a way to fix it. I have attached a picture of what I typed and the error. I was trying to see if the commands worked, and I am trying to factory reset the dynamixel.

Things I would like to do:

  1. Change ID of Dynamixel
  2. Factory Reset the Dynamixel

Thank you!

screenshot from 2016-07-18 17 08 21

I got this problem in MatLab ...dxl/DXL_SDK_LINUX_v1_01/src/dynamixel.so: clase ELF errónea: ELFCLASS32

Hi! I'm trying to run the dynamixel motors in MatLab on Linux so I download the SDK from this link support.robotis.com/en/baggage_files/dynamixel_sdk/dxl_sdk_linux_v1_01.zip

But when I try to load the library I get this error:
...dxl/DXL_SDK_LINUX_v1_01/src/dynamixel.so: clase ELF errónea: ELFCLASS32

What I understand is that this is only available for 32 bits and mine y 64 bits.

I have been looking for SDK for 64 bits but I don't fin it. Does someone knows where I can get it or maybe how to re compile this version. Or any other solution?

Thank you!!!

HOW TO WRITE THE ISSUE

To give our customers the best support services, we are asking detailed information that brings the issue, such as development environments and situations. Just fill out the questionaire.

[NOTE] Here only deals with the issues related with the DynamixelSDK sources, the situations occurred by using the Dynamixel with the DynamixelSDK. Some questions that can be seen as very hardware-dependent issues or too-much-customized source issues will make the answer be delayed or be linked to another customer service division, or even be ignored. The issue which is overlapped with another previous issues will be linked to the same previous issues, or even be ignored. Check if there are the same issues in the github issue or the FAQ before putting your issue.

If you have an idea related with the DynamixelSDK sources, please give it to us through Pull Requests

  • Which DYNAMIXEL is it?

    [ - ] ( ex: MX-64AT , XM430-350R , PRO H54-100-S500-R , ...)

    It means, Which Dynamixel do you use?.

  • Which CONTROLLER is it?

    [   ] ( ex: OpenCM , OpenCR , Arduino Uno , PC via USB2Dynamixel , ... )

    It means, Which controller or signal converter do you use?.

  • Which VERSION of DynamixelSDK is it?

    ([NOTE] DynamixelSDK Q&A is not available anymore if it is older than ver. 3.0.0, but feedback us)

    [   ] ( ex: 3.4.2 , dxl_sdk_win32_v2_02.zip , ... )

    It means which version of the DynamixelSDK do you use?. Previous versions of the DynamixelSDK, which is not belong to the DynamixelSDK 3.X, will not get the support, but only the issues around it will be asked of a feedback. Check list at hereSoftware HelpSoftware development kit and type the File name of what you are using now.

  • Any PICTURES or VIDEOS?

    ![](Link the PICTURES or VIDEOS here, if necessary)

    It means Do you have any pictures or videos that can show the situation? Please paste it here if you have.

  • Any SOURCE SAMPLES?

    [](Link the SOURCE SAMPLES here, if necessary)

    It means `Is there any additional description here? That will be great help to solve a puzzle.

port conneting problem

Hello! It's good material. thank you for making it.

anyway I'm using MATLAB R2016a on windows 10 and using Dynamixel MX-28.

I have a problem that failed to open the port with matlab.

whenever I run this program, it doesn't work with "Failed to open the port!"

however the dynamixel is normally connected to Dynamixel Wizard Roboplus.

also, I checked the comport number and edited it on mfile(read_write.m) of protocol1.0.

I want know why it doesn't work.

if you let me know, I will really appreciate it.

Very slow dynamixel read

Please fill out the questionaire to give you the best support service.

  • Which DYNAMIXEL is it? MX64,MX106
  • Which CONTROLLER is it? Ubuntu 16.04 via USB2Dynamixel
  • Which VERSION of DynamixelSDK is it? 3.4.3 in Ros kinetic

I have checkout the DynamixelSDK master branch. (last release note is dated 02.17.2017).
I copied the ros directory into my catkin workspace and ran catkin_make.

I am trying to control a set of dynamixel motors at 100 Hz.
Writing at that rate is no problem.

However, reading values is very slow.
Reading three fields (goal_position, present_position, present_load) takes 7 ms.
Therefore I have reduced the read rate to 10 Hz.

I use a read function which calls the read2ByteTxRx method of the packet_handler.
I use protocol version 1.0.

I can imagine that I am making a mistake somewhere.
Could anyone indicate what I might be doing wrong?

error by following tutorial example

Please fill out the questionaire to give you the best support service.

  • Which DYNAMIXEL is it?
    Dynamixel X 4p cable connector

  • Which CONTROLLER is it?
    USB2Dynamixel

  • Which VERSION of DynamixelSDK is it?
    3.4.3

I am using the example as shown in the tutorial to operate DynamixelX motor using Ubuntu 14.04, everything is going right until the last command to load the c++ example. it is returning : THERE IS NO STATUS PACKET!

I saw your comments on such pre-existing issue. I have followed all of the points that you suggested there, but still haven't been able to fix this error.

Velocity Mode Safety Concerns

Hi folks,
I would like to know if there is any possibility of shutting down the motor when it loses its communication, for example: I'm using usb2dynamixel and velocity mode on my motors, when I disconnect my usb2dynamixel from PC the motor keeps running, which is not good for what I'm using those motors.
Also I would like to ask if there's a shutting down in case my motor get stuck and increase the motor's current.

Thanks

Unclear tables in wiki

Hello! I am confused by all of your tables in the wiki, such as this one. Can you put a key somewhere (ideally on each table) saying what the X's, -'s, or O's mean? I am interested if this SDK works on the Raspberry Pi, but all I see are O's which might mean no. Thanks for the great work.

import header for c++

Greetings,

I would love to have a import header file to implictly import the dll in to my c++ project.
If there is one and I just have not found, would you be so kind as to tell me where it is.
Thanks in advance.

Sincerely,

Lucas

RxPacketError 문의

예제 코드 c++, matlab 모두 아래 에러가 발생합니다.
[RxPacketError] The data value is out of range!

오류 이후에 R+ manager 2.0으로 동작하는 것을 확인했고 펌웨어 복구후에도 같은 에러를 확인하였습니다. 또 확인할 것이 있을까요?

sync_write_read fails to get present_position

Hi,
The example sync_write_read is always terminated due to fail to get present_position.
Note that :
[TxRxResult] Incorrect status packet!
[ID:001] groupSyncRead getdata failed

How can I fix it ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.