Move manipulator on smooth trajectory
Posted: 07 May 2014, 14:58
Hi,
I currently try to move a 7DOF arm on a smooth trajectory consisting of several waypoints (joint values). The waypoints are computed with moveit and are sent to V-REP via a ROS service (using a v-rep plugin). I am able to retrieve the data in the LUA script in the simulator. For moving the arm to the target I use simRMLMoveToJointPositions(). My idea was to use the targetVelocity and currentVelocity fields to get a smooth movement by setting the targetVelocity to a velocity pointing into the direction of the second next waypoint and the currentVelocity to the value that is returned by simRMLMoveToJointPositions(). As long as I use a 0 table in the target velocity field everything is fine and moves as expected. However, due to the 0 target velocities the robot stops every few centimeters. If I set a target velocity != 0 a strange behaviour occurs - the arm is moving back and forth and will never reach the goal. Do you have an idea, why this happens or is there another way of doing it?
Cheers,
dknetz
I currently try to move a 7DOF arm on a smooth trajectory consisting of several waypoints (joint values). The waypoints are computed with moveit and are sent to V-REP via a ROS service (using a v-rep plugin). I am able to retrieve the data in the LUA script in the simulator. For moving the arm to the target I use simRMLMoveToJointPositions(). My idea was to use the targetVelocity and currentVelocity fields to get a smooth movement by setting the targetVelocity to a velocity pointing into the direction of the second next waypoint and the currentVelocity to the value that is returned by simRMLMoveToJointPositions(). As long as I use a 0 table in the target velocity field everything is fine and moves as expected. However, due to the 0 target velocities the robot stops every few centimeters. If I set a target velocity != 0 a strange behaviour occurs - the arm is moving back and forth and will never reach the goal. Do you have an idea, why this happens or is there another way of doing it?
Cheers,
dknetz