how to obtain joint velocities for a given path with a given tool tip velocity

627 views
Skip to first unread message

Joe M

unread,
Mar 22, 2014, 6:59:50 PM3/22/14
to robotics...@googlegroups.com
I have come across two functions jtraj() and mstraj() which both provide parts of what I need, but is there a function in between :-s

Basically this is what I am trying to do:

I know the transformations for points 1 and 2: T1 and T2

I want a straight line path between the two points (in future I may require other types of paths).

I want to set a maximum speed Vmax that the tool tip should achieve while traveling between points 1 and 2.

So how do I generate the path and most importantly obtain the required joint velocities at each time step to apply to the robot?

P.s I'm quite new to this so please try to use lay mans terms whenever possible.

Thanks very much,
Joe.

Peter Corke

unread,
Mar 22, 2014, 10:04:34 PM3/22/14
to robotics...@googlegroups.com
Are you considering that the robot tool is changing orientation while it's moving?  ie.  is it pure translation between two points, or general motion between two poses?

peter

Joe M

unread,
Mar 23, 2014, 11:53:18 AM3/23/14
to robotics...@googlegroups.com
Thanks for the reply,
The orientation of the tool remains the same throughout the motion; so it would be pure translation I believe. Quite like the example here (at 40s): https://www.youtube.com/watch?v=R1t3Ydcz6cQ&index=7&list=PLF58C18380E9B356F
except I need to be able to specify the max speed the tool should attain along the path, and then I need to obtain the joint speeds instead of just the joint angles.

Also, if you've worked with real robots would you mind telling me what exactly we are able to control? My original question is based on the assumption that in order to control a real robot, you have to provide it with the speed of the joints (motors). If it is possible to just provide it with different angles at different time steps then my guess would be to implement something like:
-define two points.
-use mstraj() function to create a trajectory of points
-convert these points into transformation matrices
-use ikine() function to find the joint angles at each time step
-and apply the joint angles to the robot.

But anyways, if this is wrong please ignore it so as not to stray from the original question.

Thanks.

Joe M

unread,
Mar 23, 2014, 3:31:05 PM3/23/14
to robotics...@googlegroups.com
Maybe it's better if I put this into context.

If you have a cnc milling machine and you need to mill from point A to B. One important parameter you need to set is the feed rate i.e. the speed at which the cutter should move from point A to B. But now imagine the cutter is instead attached as a tool on the robot and the robot needs to perform this same cut from A to B.

Hope this shines a bit more light on the problem.

Joe M

unread,
Mar 24, 2014, 8:29:52 PM3/24/14
to robotics...@googlegroups.com
Sorry Peter, did you manage to look at this again? I have been trying things with lspb() and mstraj() functions which seem useful because they allow me to set a speed of a trajectory but I don't really know what I'm doing. I'm not even sure if maybe I have to get involved with jacobians. I'll keep trying anyways and probably learn about how to use the jacobian matrix as well to see if it's needed.


Thanks.


On Sunday, March 23, 2014 2:04:34 AM UTC, Peter Corke wrote:

Wang Yuchi

unread,
Mar 24, 2014, 8:56:29 PM3/24/14
to robotics...@googlegroups.com
Well, in my opinion, you should know how to plan good trajectory for a robot at first, you can just find a method which can be used for your purpose, e.g. lspb or something else. You should spend some time in trajectory planning first. Then you should pay attention to robot force control which is necessary for a robot to do works as a tranditional CNC machine does (dynamic contact with the environment, not just point to point control).

Wang Yuchi

unread,
Mar 24, 2014, 8:59:12 PM3/24/14
to robotics...@googlegroups.com
not just in free space.

Joe M

unread,
Mar 25, 2014, 8:50:56 PM3/25/14
to robotics...@googlegroups.com
Thanks for your input Wang. I will not be doing the dynamics in matlab. I am using Adams software. I only need to define the kinematics and trajectory in matlab, then the result will be passed to Adams for dynamics analysis. The actual path taken by the tooltip is not so important; the important thing is the speed at which the tooltip is moving because it is a parameter that is used to determine the cutting force at the tooltip.

It seems there are not many experts in the robotics toolbox apart from Peter. So if I manage to get it all to work I will post it here in case anyone else is trying to do something similar.


On Tuesday, March 25, 2014 12:59:12 AM UTC, Wang Yuchi wrote:
not just in free space.

Yigit Cokay

unread,
Mar 27, 2014, 4:31:13 PM3/27/14
to robotics...@googlegroups.com
Dear Joe, 

If I understood your question correctly, I may suggest a method. 
You may try the inverse differential kinematics algorithm, which utilizes the analytical Jacobian. In case of pure translation it is even simpler you can use the geometrical Jacobian as well. This approach also deals with the inverse kinematics problem, if you also need the joint variables. The general structure of the problem resembles a simple feedback control loop. Note that you don't need to implement the inverse kinematics if you only need the joint velocities, just try the inverse differential kinematics.
The method is present in robotics text books, the one I use is this by Siciliano: http://www.springer.com/engineering/robotics/book/978-1-84628-641-4
I hope Prof. Corke can correct me if I am mistaken.

Regards, 

Peter Corke

unread,
Apr 1, 2014, 2:35:16 AM4/1/14
to robotics...@googlegroups.com
It seems you want to control the maximum speed of the tool tip along the path, and RTB doesn't have a function to do this.

Do you need to do a path with via points, or simply start at point A, move to point B then stop kind of motion?

peter

Joe M

unread,
Apr 18, 2014, 10:46:28 PM4/18/14
to robotics...@googlegroups.com
Thanks for all your replies. I think for joint trajectories I can do as Yigit suggested; basically define the cartesian velocity and use the jacobian matrix to obtain the required joint velocity and then set this as a boundary in the jtraj function in rtb. For Cartesian trajectories, I'm still not sure how this can be done using the ctraj function, but never mind. I have a new question which I will post as a new topic.

Thanks!
Reply all
Reply to author
Forward
0 new messages