Motion Planning using RML?
Posted: 10 Sep 2014, 17:20
I've been trying to make sense out of the motion of execution code in the motion and grasping demo (jaco and mico).
I've read up a little bit on the Reflexxes library before I run the demo and my expectations were a bit different, but so far I've been unable to make the code that matches my expectation to work in a reasonable way.
Once a safe path is calculated, I expected the code to run RML iteratively for 6 DOFs and change the target constraint and/or velocity constraints based on the path waypoints and the maximum velocities of each of the actual 6 DOFS. As per, Online Trajectory Generation: Basic Concepts for Instantaneous Reactions to Unforeseen Events, by Kroger, T. and Wahl, F.M. ( http://ieeexplore.ieee.org/xpl/articleD ... er=5350749 ).
Instead (and as far as I can tell) the code uses RML to first iterate through a motion of a single joint with some specified VMax, AccMax, etc. to see if the calculated trajectory ever has velocity higher than that of any of DOF and that it scales VMax based on the slowest joint. Then using this scaled value of VMax, AccMax, etc., it creates a new RML context and iterates through the motion, but this time it uses the calculated values for that single DOF to derive the next position of the actual 6 DOFs.
I've been unable to figure out how to extend this odd approach to take into account different characteristics of the DOFs or even to make sense of how projecting a velocity/acceleration profile of a single dof onto a trajectory for unrealated dofs with different targets, etc. makes sense mathematically. I'm clearly missing something.
When I try for the expected approach, the first problem to be addressed is the velocity of joint at each of the waypoints. Also, I have to call simRMLremove every time I set the new target per documentation which I'm not sure is what I actually want to get the desired effect. Anyway, I can set velocities to zero (totally not optimal) and while this works, path between points is totally random and odd for some reason ... If I set velocity a slightly higher value, I get an error -100 (which I cannot find explanation for), but I'm guessing that it means that the waypoint is not reachable because points are too close or something.
Any help or explanation of the RML usage in V-REP would be appreciated.
I've read up a little bit on the Reflexxes library before I run the demo and my expectations were a bit different, but so far I've been unable to make the code that matches my expectation to work in a reasonable way.
Once a safe path is calculated, I expected the code to run RML iteratively for 6 DOFs and change the target constraint and/or velocity constraints based on the path waypoints and the maximum velocities of each of the actual 6 DOFS. As per, Online Trajectory Generation: Basic Concepts for Instantaneous Reactions to Unforeseen Events, by Kroger, T. and Wahl, F.M. ( http://ieeexplore.ieee.org/xpl/articleD ... er=5350749 ).
Instead (and as far as I can tell) the code uses RML to first iterate through a motion of a single joint with some specified VMax, AccMax, etc. to see if the calculated trajectory ever has velocity higher than that of any of DOF and that it scales VMax based on the slowest joint. Then using this scaled value of VMax, AccMax, etc., it creates a new RML context and iterates through the motion, but this time it uses the calculated values for that single DOF to derive the next position of the actual 6 DOFs.
I've been unable to figure out how to extend this odd approach to take into account different characteristics of the DOFs or even to make sense of how projecting a velocity/acceleration profile of a single dof onto a trajectory for unrealated dofs with different targets, etc. makes sense mathematically. I'm clearly missing something.
When I try for the expected approach, the first problem to be addressed is the velocity of joint at each of the waypoints. Also, I have to call simRMLremove every time I set the new target per documentation which I'm not sure is what I actually want to get the desired effect. Anyway, I can set velocities to zero (totally not optimal) and while this works, path between points is totally random and odd for some reason ... If I set velocity a slightly higher value, I get an error -100 (which I cannot find explanation for), but I'm guessing that it means that the waypoint is not reachable because points are too close or something.
Any help or explanation of the RML usage in V-REP would be appreciated.