# Robot2AT

## Robot2AT

From a robot model, compute homogeneous transformation matrices from each frame to base.

### Syntax

• [A,T,Tb,Tt] = Robot2AT(robot,q,options)

### Input Arguments

• robot –a robot model
• q –a 1 x nq vector of joint variable values, where nq = number of joint variables

### Output Arguments

• A — a 4 x 4 x nq homogeneous transformation matrix representing each frame w.r.t. frame below, where nq = number of joints
• T — a 4×4 homogeneous transformation matrix representing tool frame w.r.t base
• Tb — a 4×4 base transformation matrix
• Tt — a 4×4 tool transformation matrix

### Options

Note: options only affect homogeneous matrix T. A remains unchanged.

• ‘none’ — T =A1*A2* …*An
• ‘base’ — T = robot.base*A1*A2* … *An
• ‘tool’ — T = A1*A2* …*An*robot.tool
• ‘all’ — T=robot.base*A1*A2*…*An*robot.tool

### Description

Robot2AT( ) computes homogeneous transformation matrices that describe each joint coordinate frame A and T, where A(:,:,i) describes frame {i} w.r.t {i-1} and T describes {n} w.r.t {0}

### Examples

```exec('./models/mdl_puma560.sce',-1); p560 = AttachBase(p560,transl([1,1,2])); // add base transform p560 = AttachTool(p560,trotx(pi/2)); // add tool transform [A,T,Tb,Tt]=Robot2AT(p560,q_n); // base/tool are excluded from T [A,T]=Robot2AT(p560,q_n,'base'); // T = Tb*T [A,T]=Robot2AT(p560,q_n,'tool'); // T = T*Tt [A,T]=Robot2AT(p560,q_n,'all'); // T=Tb*T*Tt [A,T]=Robot2AT(p560,q_n,'base','tool'); // this is equivalent to 'all'```