Start of trail Kinova JACO Write navigation bar

Table of Contents

Kinova JACO Read

Deprecated

The Kinova JACO Read block has been deprecated and should not be used in new models.

Reads the JACO (Gen1) joint positions, current and states.

Library

QUARC Targets Beta/Devices/Third-Party/Kinova/Robots/JACO

Description

Kinova JACO Read

The Kinova JACO Read block can be used to read joint angles, currents, status, and error signals for the Kinova JACO 6 degree-of-freedom (DOF) robot.

Limitations

CAUTION: Open Architecture Robot!

Warning When using this block, the JACO robot becomes an open architecture system. This block is intended for mature and experienced engineers only! The user must understand the difference between an industrial controller and an open architecture controller. If it is unclear contact Quanser immediately at tech@quanser.com.

The user is solely responsible for the implementation of the open architecture controller! Quanser and Kinova are not responsible for any material or bodily damage that ensues from the use of this equipment.

Do not approach the robot when the arm or the controller are powered up! Install the robot in a safe location and ensure no personnel approaches the robot while it is in operation or while the arm is powered.

All software using this block supplied by Quanser is only to be considered a sample and should not be used on a regular basis. The user should write their own open architecture control software.

Fully read this document as well as the Kinova JACO Write block documentation before connecting the QUARC external PC to the JACO robot.

Operating Procedure

Warning The robot controller communicates with the QUARC external machine (i.e., the QUARC target machine which is running the QUARC model) via two Controller Area Network (CAN) bus links. The exchanged data are transmitted via the CANbus protocol and the QUARC target machine must have a CANbus connection to the robot.

Joint Rate Limitations

Warning The JACO robot is designed to operate within specific velocity and current limitations. The table below outlines the limitations of the JACO's joints for the Standard JACO robot. It is up to the user to regulate the rate of commands to the JACO in the user's controller.

Big Actuators (Joints 1, 2, and 3)

Small Actuators (Joints 4, 5, and 6)

Maximum RPM

8 RPM

10 RPM

Maximum Command/sec

48 deg/s

60 deg/s

Maximum repetitive current

4 A

2 A

The table below outlines the limitations of the JACO's joints for the Fast JACO robot.

Big Actuators (Joints 1, 2, and 3)

Small Actuators (Joints 4, 5, and 6)

Maximum RPM

16 RPM

16 RPM

Maximum Command/sec

90 deg/s

90 deg/s

Maximum repetitive current

4 A

2 A

Joint angle limitations

Warning The JACO robot's joints are designed to operate within minimum and maximum angle limits. The table below outlines the joint angle limits for the JACO robot.

Joint #

Minimum angle (degrees)

Maximum angle (degrees)

1

-360,000

360,000

2

42

318

3

17

343

4

-360,000

360,000

5

-360,000

360,000

6

-360,000

360,000

Finger position limits

Warning The JACO fingers are commanded using position command values, and to determine the minimum and maximum position commands the fingers must be calibrated. The fingers can only be calibrated once after the JACO is powered on and will not output the calibration limits again until the power is cycled to the robot. The JACO's finger calibration procedure outputs the minimum and maximum finger position limits that correspond to the fingers' fully open and fully closed positions, respectively. These minimum and maximum limits are output from the Kinova JACO Read block's fingers min and fingers max outputs, and the full range is approximately 60 counts for each finger (e.g., finger 1 ranges from -30 to +30, finger 2 ranges from -40 to +20, and finger 3 ranges from -10 to +50).

To perform the finger calibration procedure, first ensure the JACO is powered off. Turn the JACO on. The fingers will all report positions equal to 0 when they are initially powered on. One finger at a time, use the JACO blocks to open each finger until it is fully open by slowly decreasing the command (typically the command does not need to be made less than -40, depending on the finger's initial position). When the finger is fully open, the Kinova JACO Read block will output that finger's minimum and maximum position limits. Proceed to calibrate each finger until all of the minimum and maximum limits are output. Since this procedure can only be performed once each time the JACO is turned on, save these limit values to a workspace variable or a MAT file so they can be used later. Once the JACO is turned off, the next time the JACO is turned on the calibration procedure must be performed again.

Sample Time Limitations

Warning The communication cycle of the JACO takes approximately 1.2ms. The Kinova JACO Read block parameter Use separate thread for read and write operations is enabled by default, which executes the JACO communication cycle in an asynchronous thread. If this option is not selected, it is recommended that the sample time of the JACO blocks be set to 2ms or slower to avoid sample delays.

Installation Requirements

Install The Kinova JACO Read block uses a specific CAN controller card to interface with the JACO. The CAN card used with the JACO is the Peak System PCAN-PCI Express Dual Channel opto-decoupled card (part number IPEH-003027). Note: PCAN PCI dual-channel cards may also be used. The JACO provides two CANbus cables labeled CAN 1 and CAN 2, which must be connected to the Peak CAN card channels 1 and 2, respectively.

In order to use the Kinova JACO Read block, the Peak CAN drivers and API files must be installed. The API used for the Kinova JACO Read block is the PCAN-Basic API (April 2011 or later), which can be downloaded from the PEAK-System website. First, follow the instructions to install the PCAN drivers that are included with the Peak CAN device. Next, navigate to the directory PCAN-Basic API on the installation disk and copy the PCAN-Basic API directory to the installation directory, e.g. C:\Program Files\PCAN. Finally, add the directory containing the PCANBasic.dll file to the system PATH environment variable, e.g. C:\Program Files\PCAN\PCAN-Basic API\Win32.

Input Ports

This block has no input ports.

Output Ports

jaco

A reference to the JACO robot that must be passed to the jaco input port of the Kinova JACO Write block. Failure to connect this signal to the Kinova JACO Write block will result in an error being generated.

angle

A 9-vector containing the six joint angles (in degrees) and three finger positions (in counts). Note: the finger actuators are presently disabled.

current

A 9-vector containing the joint control current in Amps.

fingers min

A 3-vector containing the minimum position limits for each of the three fingers, respectively. The minimum finger position corresponds to the fully open position. This output only shows the minimum limits after the JACO fingers have been calibrated, and outputs a value of [0, 0, 0] otherwise.

fingers max

A 3-vector containing the maximum position limits for each of the three fingers, respectively. The maximum finger position corresponds to the fully closed position. This output only shows the maximum limits after the JACO fingers have been calibrated, and outputs a value of [0, 0, 0] otherwise.

glitch

A 9-vector containing the per-axis status codes.

Error Code

Error

0

No error

1

Absolute position glitch

2

Relative position glitch

3

Command glitch

4

Current glitch

errors

A 9-vector containing the per-axis error codes.

Error Code

Error

0

No error

1

Temperature error

5

Absolute position error

6

Relative position error

7

Command error

8

Current error

new

A 9-vector containing a new data flag that indicates for each joint whether the measurement and status data for the joint is new (1 or true) or has not been updated this sample (0 or false). Note: if joint data is not updated it holds its previous value.

Parameters and Dialog Box

Kinova JACO Read

CAN card number

An integer indicating the PCAN dual-channel card number being used for this JACO. If there are multiple PCI/PCI-Express PCAN cards installed, you can connect multiple JACO robots and use this parameter to select the different CAN cards starting at 1.

Enable fingers

A checkbox that enables use of the JACO fingers. If this parameter is not selected, the JACO fingers are not initialized and no commands are sent to the fingers.

Sample time

The sample time of the block. A sample time of 0 indicates that the block will be treated as a continuous time block. A positive sample time indicates that the block is a discrete time block with the given sample time.

A sample time of -1 indicates that the block inherits its sample time. Since this is a source block, only inherent the sample time when it is placed in a conditionally executed subsystem, like a Triggered or Enabled Subsystem, or in a referenced model.

To use the fundamental sampling time of the model, set the sample time to qc_get_step_size, which is a QUARC function that returns the fundamental sampling time of the model.

Targets

Target Name

Compatible*

Model Referencing

Comments

QUARC Win32 Target

Yes

Not supported in a referenced model. Use in top-level model only.

Only one set of Jaco Read/Write blocks is allowed in a model.

QUARC Win64 Target

No

No

QUARC Linux Nvidia Target

No

No

QUARC Linux QBot Platform Target

No

No

QUARC Linux QCar 2 Target

No

No

QUARC Linux QDrone 2 Target

No

No

QUARC Linux Raspberry Pi 3 Target

No

No

QUARC Linux Raspberry Pi 4 Target

No

No

QUARC Linux RT ARMv7 Target

No

No

QUARC Linux x64 Target

No

No

QUARC Linux DuoVero Target

No

No

QUARC Linux DuoVero 2016 Target

No

No

QUARC Linux Verdex Target

No

No

QUARC QNX x86 Target

No

No

Last fully supported in QUARC 2018.

Rapid Simulation (RSIM) Target

No

No

S-Function Target

No

N/A

Old technology. Use model referencing instead.

Normal simulation

No

No

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

 

navigation bar