I am using MX-106T (protocol 1) and MX-64T (protocol 1)servos to control a robotic arm. I am running ROS (1.0) on Ubuntu programming in C++ and using the dynamixel SDK. I’m communicating with the servos using a usb2dynamixel device.
I’ve written a ROS package that is able to change the position values of the servos, but I cannot find any example of how to set PID values and movement speed setting of the MX-106T while running on ROS.
I’ve attempted to change the PID settings and movement speed in the package but it causes the servo to stop working altogether.
I am using the following command to successfully set servo position but when I try using the same command to set moving speed or PID values, the values are not set and the servo stops working and needs to be reset.
dxl_comm_result=packetHandler->write4ByteTxRx(portHandler, servoID, Address, MovingSpeedValue, &dxl_error);
below is the actual line of code that I’m using: Servo ID =1 and the MovingSpeed Address = 32, Moving SpeedValue = 25;
dxl_comm_result=packetHandler->write4ByteTxRx(portHandler, 1, 32, 25, &dxl_error);
If anyone has successfully used write4ByteTxRx or any function to set PID values or moving speed in a C++ ROS package using dynaixelSDK or has an example of this I would greatly appreciate it.