Start of trail Dynamixel OpenManipulatorX Write navigation bar

Table of Contents

Dynamixel OpenManipulatorX Read

Reads the Dynamixel OpenManipulator-X joint angular positions, velocities, PWM, loads/currents.

Library

QUARC Targets/Devices/Third-Party/Dynamixel/Robots

MATLAB Command Line

Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:

qc_open_library('quarc_library/Devices/Third-Party/Dynamixel/Robots')

Description

Dynamixel OpenManipulatorX Read

The Dynamixel OpenManipulatorX Read block is used to read the joint angles, velocities, PWM, and loads/currents from the Dynamixel OpenManipulator-X.

Limitations

CAUTION: Open Architecture Robot!

Warning When using this block, the Dynamixel OpenManipulator-X 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 Dynamixel 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 Dynamixel OpenManipulatorX Write block documentation before connecting the QUARC external PC to the Dynamixel OpenManipulator-X.

Robot Limitations

Warning The Dynamixel OpenManipulator-X is designed to operate within specific velocity and current limitations. When designing and implementing controllers, the user is responsible to properly generate and regulate the position setpoints and commands (and their rate of change) so that the Dynamixel OpenManipulator-X stays within its operational limits.

Serial Communication Rate Limitations

Warning The communication to the Dynamixel OpenManipulator-X is carried out via the Robotis U2D2 USB communication converter, which convert between USB and TTL. The communication cycle time (a.k.a., period) over the serial bus of the Dynamixel OpenManipulator-X takes approximately 7 ms. Thus the model sample time must be set bigger than that.

Input Ports

This block has no input ports.

Output Ports

open manipulator

A reference to the Dynamixel OpenManipulator-X that must be connected to the open manipulator input port of the Dynamixel OpenManipulatorX Write block. Failure to connect this signal to the Dynamixel OpenManipulatorX Write block will result in an error being generated.

position

A 5-element vector of double values containing the angular positions for the four (4) joints and gripper of the Dynamixel OpenManipulator-X. SI units are used the values are provided in radians (rad).

velocity

A 5-element vector of double values containing the angular velocities for the four (4) joints and gripper of the Dynamixel OpenManipulator-X. SI units are used and values are provided in radians per second (rad/s).

pwm

A 5-element vector of double values containing the PWM commands applied to the 4 joint and gripper motors of the Dynamixel OpenManipulator-X. The units are between 0 and 1.

load/current

A 5-element vector of double values containing the motor loads/currents for the 4 joint and gripper motors of the Dynamixel OpenManipulator-X. For the base and gripper motors, the values represent the load of the motor with units between 0 and 1. For the rest of the motors, the values represent the current applied to the motor with units in Amperes (A).

Parameters and Dialog Box

Dynamixel OpenManipulatorX Read

URI (tunable offline)

The URI indicating the protocol with which to communicate with the Dynamixel OpenManipulator-X. Refer to Universal Resource Identifiers for more information about URIs and the communications protocols supported by QUARC.

Suitable URIs for the Dynamixel OpenManipulator-X on the following platforms are listed below:

Platform

URI

QBot 4

serial://qbot3:0?baud=921600,device='/dev/qbot3_lcd'

QCar

i2c-cpu://localhost:8?address=0x3E,baud=400000

Enable Fingers

A checkbox that enables use of the Joint Control Robot - 4 DOF fingers. If this parameter is not selected (i.e., disabled), the Joint Control Robot - 4 DOF fingers are not initialized, no commands are sent to the fingers and no status data are read from them. Disabling the fingers reduces the communication load to the MICO robot and decreases the communication cycle time (a.k.a., period).

Enable Temperature Readings

A checkbox that enables reading the joint temperatures of the Joint Control Robot - 4 DOF. If this parameter is not selected (i.e., disabled), the Joint Control Robot - 4 DOF temperatures are not read. Disabling the temperature readings reduces the communication load to the MICO robot and decreases the communication cycle time (a.k.a., period).

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.

QUARC Win64 Target

Yes

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

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