vanadiumlabs / arbotix_ros

Arbotix ROS drivers repository
Other
75 stars 100 forks source link

Joint motions not synchronous during trajectory execution #20

Open pirobot opened 10 years ago

pirobot commented 10 years ago

I'm using arbotix_ros with a USB2Dynamixel controller (I fried my ArbotiX) and a 6-dof Dynamixel arm with two MX-28T's in the shoulder joints and AX-12s at the other joints. When I use MoveIt to plan and execute a trajectory, the motion of the arm is correct except the servos do not stop moving at the same time. For example, if I move the arm to the "resting" position with the arm hanging straight down, the shoulder servos can finish their motion before the elbow and wrist servos. Is this expected behavior? Or should all servos reach their target positions at the same time?

My setup: ROS Hydro Debian packages for arbotix and Ubuntu 12.04.

pirobot commented 10 years ago

I just ran the same MoveIt test using the dynamixel_motor trajectory controllers instead of the arbotix controllers and the servo movements all finish at the same time for a given trajectory execution. So I'm guessing that is the expected behavior.

pirobot commented 10 years ago

So I just double-checked my YAML file and made sure I was explicitly specifying the ticks (4096), neutral (2048), range (360) and max_speed (702) for the two MX-28T joints but it did not fix the timing problem. Looking at your servo.py code, it seems like you have already accounted for all the differences between AX/RX servos and the MX servos so I'm not sure why the MX-28s are finishing the trajectory before the AX-12s...