A465 Stance End of trail navigation bar

Table of Contents

A465 World Coordinates to Joint Angles

Deprecated

The A465 World Coordinates to Joint Angles block has been deprecated and should not be used in new models.

Converts cartesian world coordinates to joint angles for the CRS A465 robot.

Library

QUARC Targets Deprecated/Devices/Third-Party/CRS/Robots/A465

Description

A465 World Coordinates to Joint Angles

The A465 World Coordinates to Joint Angles block computes the joint angles that place the robot end-effector at the given position and orientation for the CRS A465 robot. Since this mapping is not unique, additional information must be supplied to indicate which of the eight possible solutions (in general) is desired. The block uses the previous joint angles and the desired stance to arrive at a suitable configuration. If there is no solution because a joint is out of range, or the given stance cannot achieve the requested wrench, or the world coordinates are out of the robot workspace, then the error output will be non-zero to indicate the error. Typically, the stance supplied by the A465 Forward Kinematics block is used for the stance input.

Note that the A465 Inverse Kinematics block block is generally easier to use because it keeps track of the previous joint angles automatically. The reference frame is shown below:

A465 Reference Frame

Input Ports

World Coordinates

A 6-vector containing the position and orientation of the robot end-effector. The vector elements represent the X, Y, and Z cartesian coordinates of the end-effector in millimeters, followed by the yaw, pitch, and roll, respectively, in radians. Note that yaw is the rotation about the Z-axis, pitch is the rotation about the Y-axis and roll is the rotation about the X-axis.

Stance

A 3-vector representing the desired stance of the robot. The elements and their possible values are defined in the table below:

Element

Stance = 0

Stance = 1

Stance = -1

1

reaching backward

reaching forward

let inverse kinematics choose reach configuration

2

elbow down

elbow up

let inverse kinematics choose elbow configuration

3

wrist flipped

wrist not flipped

let inverse kinematics choose wrist configuration

Previous Joint Angles

The previous joint angles (in radians) for the six A465 joints. The joint angles should be supplied as a 6-vector in order of the joints, i.e., base, shoulder, elbow, forearm roll, wrist pitch and wrist roll.

Output Ports

Joint Angles

The joint angles (in radians) for the six A465 joints. The joint angles should be supplied as a 6-vector in order of the joints, i.e., base, shoulder, elbow, forearm roll, wrist pitch and wrist roll.

Error

A vector denoting whether a solution could be found. The first element of the vector is an error code. An error code of zero indicates that a solution was found. The possible error codes and their meaning are listed in the table below. The second element is a joint number indicating which joint is out of range if the error is an "out of range" error. A joint number of 1 indicates the base joint, 2 denotes the shoulder joint, 3 is the elbow joint, 4 is the forearm roll joint, 5 is the wrist pitch joint and 6 is the wrist roll joint. If no error occurred then the joint number element is zero.

Code

Error

0

No error. A solution was found.

1

Out of range error. One or more joints have exceeded their positive or negative joint limits.

2

Illegal transform. No valid inverse kinematics solution was found that satisfied the stance constraints and fell within the joint limits.

3

Out of reach. The given location is outside the workspace of the robot.

Data Type Support

This block supports inputs and outputs of type double.

Parameters and Dialog Box

A465 World Coordinates to Joint Angles

The A465 World Coordinates to Joint Angles block has no parameters.

Targets

Target Name

Compatible*

Model Referencing

Comments

QUARC Win32 Target

Yes

Yes

QUARC Win64 Target

Yes

Yes

QUARC Linux Nvidia Target

Yes

Yes

QUARC Linux QBot Platform Target

Yes

Yes

QUARC Linux QCar 2 Target

Yes

Yes

QUARC Linux QDrone 2 Target

Yes

Yes

QUARC Linux Raspberry Pi 3 Target

Yes

Yes

QUARC Linux Raspberry Pi 4 Target

Yes

Yes

QUARC Linux RT ARMv7 Target

Yes

Yes

QUARC Linux x64 Target

Yes

Yes

QUARC Linux DuoVero Target

Yes

Yes

QUARC Linux DuoVero 2016 Target

Yes

Yes

QUARC Linux Verdex Target

Yes

Yes

QUARC QNX x86 Target

Yes

Yes

Last fully supported in QUARC 2018.

Rapid Simulation (RSIM) Target

Yes

Yes

S-Function Target

No

N/A

Old technology. Use model referencing instead.

Normal simulation

Yes

Yes

* Compatible means that the block can be compiled for the target.

See Also

 

navigation bar