RTSX Help: Compute sequence of homogeneous matrices from robot model
From a robot model and a sequence of joint variable values, compute homogeneous transformation matrices from each frame to base.
- [A,T] = Robot2hAT(robot,qs)
- robot –a robot model
- q –a ns x nq matrix of joint variable values, where ns = number of setpoints (move steps) and nq = number of joint variables
- A — a 4 x 4 x ns x (nq+2) homogeneous transformation hyper-matrix representing each frame w.r.t. frame below, where ns = number of setpoints (move steps) and nq = number of joint variables
- T — a 4×4 x ns x (nq+2) homogeneous transformation matrix representing each frame w.r.t base
Robot2hAT( ) can be thought of as an extension of Link2AT( ) to handle a sequence of joint variable values. The output matrices are now 4-dimensional. Another difference is Robot2hAT( ) accepts a robot model as input argument and takes into account the base and tool frame of the robot.
Frankly, Robot2hAT( ) is designed to support animation functions and is somewhat too complicated for direct use. To solve a standard forward kinematics problem with a single set of joint variables, FKine( ) or Link2AT( ) suffices.
The following example shows how to compute hyper-matrices A and T from a two-link manipulater with a sequence of joint vairables.
clear L; a1 = 1.2; a2 = 1; L(1)=Link([0 0 a1 0]); L(2)=Link([0 0 a2 0]); twolink=SerialLink(L); // a 2-link manipulator // generate simple setpoints // both joints move full circle t = [0:0.01:1]'; // "time" data qs = [2*pi*t 2*pi*t]; [A,T]=Robot2hAT(twolink, qs);