RML and waypoints

Typically: "How do I... ", "How can I... " questions
Post Reply
pr0t0z
Posts: 24
Joined: 21 Nov 2014, 17:29

RML and waypoints

Post by pr0t0z »

Dear community,

I have looked and used RML to implement a joint trajectory controller for a 7 DOF robotic manipulator based on their position-based algorithm. It works fine when generating and executing trajectories from an initial to a final set of joint positions, because the initial and target velocity are set to 0s.

However, when I try to introduce waypoints along my path, the arm stops at each waypoint if the TargetVelocityVector is set to 0s. I need the robotic arm to pass throught the assigned waypoints, while maintaining a fluid motion (avoid stopping). I tried calculating the joint velocity vector at the next motion segment and assign these values to the current TargetVelocityVector but the RMLPosition() method that computes the next motion state often returns a -100 Error code (Invalid input parameters).

Is there a way to achieve this behaviour with the Reflexxes motion library? Is my approach incorrect?
Thanks in advance for any response / feedback

Best regards.

coppelia
Site Admin
Posts: 10375
Joined: 14 Dec 2012, 00:25

Re: RML and waypoints

Post by coppelia »

Hello,

what you are trying to achieve is very complex: depending on the waypoints and the specified max. velocity/acceleration/jerk parameters, the motion will be accelerating, decelerating, etc., otherwise the constraints cannot be met. Or, there could be a fly-by parameter that allows for a specific precision threshold for simply passing close to the way-points.

Above is not meant to be done with the Reflexxes motion library. The library is meant for point-to-point motions.

Make sure you read this post too. There are some algorithms that handle above described motion, but they are very complex (and this is what each robot manufacturer uses inside of their controllers: but those manufacturer algorithms are not public).

A very simply approach would be to do following:

Imagine you have a trajectory with n way-points. Then compute the total length of the trajectory: D. You might have to apply a specific distance mertic for that. Then, simply use the RML library for a 1-dimensional path along that total length, and start at distance 0 with velocity 0, and end at distance D with velocity 0. In that case the max. velocity/acceleration/jerk for the individual joints cannot be respected. This approach is also described in the post mentioned above.

Cheers

Post Reply