QUARC 2.1 QUARC 1.3 navigation bar

Table of Contents > QUARC > Release Notes

QUARC 2.0

These release notes describe the new features and changes introduced in QUARC 2.0. They are divided into the sections enumerated below.

New Software Compatibility

QUARC 2.0 has introduced compatibility with the following third-party software.

MATLAB R2009b
Compatibility with MATLAB, Simulink, and Real-Time Workshop R2009b has been added.

New Features

The new features introduced in QUARC 2.0 are mentioned below.

3D Visualization

QUARC now provides tools to create and animate 3D visualizations of your simulations or real-time code. Through the use of the Visualization blockset, as well as the included x3d plugins for Autodesk's 3ds Max and the open-source Blender 3D modelling software, you can create and animate your experiments. The blocks support multiple 3D viewer client connections, to local and remote targets including Windows, QNX and Gumstix targets. QUARC even includes a number of different meshes and textures to get you started, along with demonstrations to show you some of the interesting special effects you can achieve. The full set of blocks are enumerated below.

Screen shot of the visualization_airplane demo.

The Visualization blocks may be found in the

QUARC Targets/User Interface/Visualization

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/User Interface/Visualization')
library.

Bus Support for Stream Blocks

The Stream blocks now support bus signals. This feature allows mixed data types to be sent or received using a single block, and facilitates transferring complex data structures between a Simulink model and a user application or another model.

Homogeneous Transformation Blocks

Physical systems are often modelled using homogeneous transformations. These matrix representations of rotations, translations and scaling are common in graphics and robotics. QUARC now provides a set of blocks for composing a series of transformations. Starting with an Identity Transformation, the Homogeneous Transformation blocks may be chained together to compute complex transformations, greatly simplifying the computation of the plant kinematics.

The Visualization Set Variables block also directly supports a transformation matrix input to seamlessly tie your visualization to the mathematical basis for your system.

The Homogeneous Transformation blocks may be found in the

QUARC Targets/Math Operations/Homogeneous Transformations

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/Math Operations/Homogeneous Transformations')
library.

Vehicle Blockset

QUARC now provides tools to interface with unmanned vehicles made by Quanser and other third-party manufacturers. Quanser has developed the Vehicle Abstraction Layer (VAL) as a uniform, high-level mission development environment. Using the rapid controls technology developed for QUARC, the VAL allows mission developers to rapidly create multi-agent vehicle controllers. The VAL is comprised of a series of blocks that provide a set of high-level primitive commands to the mission designer, while underneath the VAL handles communication with the vehicle hardware. This allows operators to focus on high-level mission development rather than low-level vehicle stabilization. The VAL is extensible so that more vehicles and commands can be added. The VAL Initialize block creates a connection to a vehicle target, while the other blocks allow the vehicle to be controlled and monitored. Refer to the full Vehicle Blockset below for more information about this powerful blockset.

The Vehicle blocks may be found under the

QUARC Targets/Vehicles

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/Vehicles')
library.

Improved Features

Some of the features improved in QUARC 2.0 are enumerated below. There a great many miscellaneous bug fixes and improvements that have not been listed. Only some of the highlights are listed below.

New Default Sample Time

The default sample time for the Windows target has changed to 2ms rather than 1ms. The sample time jitter at 2ms using the system timer is consistently better than at 1ms on all platforms tested. Certain motherboards had poor jitter performance at 1ms when using the system timebase which affected the accuracy of derivatives in the model. The jitter was only an issue for the system timebase. Hardware timebases continue to be the recommended solution for sample times faster than 2ms due to their superior jitter performance over the system timebase.

Figure Blocks Preserve Position

The QUARC Figure blocks now preserve their position, size and visibility when the model is saved. Like Simulink Scopes, the Figure windows will appear with their previously saved position and size when the model is opened (unless the Figure was closed when the model was saved).

String Constant Supports MATLAB Workspace Variables

The String Constant block has been enhanced to support evaluation of the string value so that MATLAB workspace variables may be used to specify the constant value. This feature is useful for specifying a URI for communications from the MATLAB workspace. Simply add an external URI input to the Stream block and feed it using a String Constant block that evaluates its string expression.

MATLAB Expressions in MEX-File Arguments

The "%{expr}" format specifier may now be used in the model arguments entered in the MEX-file arguments in order to evaluate a MATLAB expression and substitute the result into the model arguments. For example, "-t %{qc_get_step_size}" in the model arguments would be replaced with the model sample time, such as "-t 0.002".

New Devices Supported

QUARC 2.0 may now interface to the devices listed below.

GPS NMEA

GPS devices that support the NMEA-0183 protocol are now supported. The GPS NMEA block reads NMEA sentences from the GPS device and outputs the GPS position, number of visible satellites, and dilution of precision. The communication channel is typically a serial connection to the GPS device, but any protocol supported by the Quanser Stream API can be used and is specified via the URI parameter of the block.

The GPS NMEA block may be found under the

QUARC Targets/Devices/Third-Party/NMEA/GPS

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/NMEA/GPS')
library.

KR 5 sixx R850

QUARC now supports and provides a open architecture interface to the KUKA 6-DOF KR 5 sixx R850 robot. Depending on the selected control mode, the KR 5 sixx R850 block sends Cartesian position correction, or Cartesian velocity, or joint position correction, or joint velocity commands to the 6-DOF KUKA KR 5 sixx R850 robot and outputs the robot actual Cartesian positions, joint angles and gear torques for each joint. (In later versions of QUARC, this block was replaced with the KUKA RSI block.)

The KUKA Robotics blocks may be found under the

QUARC Targets/Devices/Third-Party/KUKA/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/KUKA/Robots')
library.

NaturalPoint OptiTrack

NaturalPoint offers complete tracking solutions capable of full body motion capture. These powerful tools are now available in QUARC, with support for reading the 3D position of IR markers, as well as 6-DOF (position and orientation) tracking of multiple objects using the OptiTrack camera system! Refer to the NaturalPoint OptiTrack blocks below for more information.

The OptiTrack blocks may be found in the

QUARC Targets/Devices/Third-Party/NaturalPoint/OptiTrack

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/NaturalPoint/OptiTrack')
library.

Phantom

SensAble Phantom devices are now supported by and interfaced to QUARC. The Phantom block can be used to control a variety of Phantom devices provided by SensAble. The block sends Cartesian or joint level commands to the device and outputs the robot actual Cartesian positions, joint angles or encoder values for each joint.

The Phantom blocks may be found under the

QUARC Targets/Devices/Third-Party/SensAble/Phantom

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/SensAble/Phantom')
library.

Ublox GPS Devices

Ublox is a leading provider of embedded positioning and wireless communications solutions. The power of Ublox technology has now been brought to QUARC with support for Ublox GPS devices. The Ublox blockset may be found in the

QUARC Targets/Devices/Third-Party/Ublox/GPS

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/Ublox/GPS')
library. The full set of blocks is listed below.

New Demonstrations

The QUARC demonstrations added in QUARC 2.0 are listed below.

QUARC Basic Mixed Types Communications Demo
The QUARC Basic Mixed Types Communications Demo highlights the new support for bus signals in the basic communications blockset. It shows how to send mixed data types in a single atomic operation, as well as how to receive mixed data types atomically.
QUARC Intermediate Mixed Types Communications Demo
The QUARC Intermediate Mixed Types Communications Demo highlights the new support for bus signals in the intermediate communications blockset. It shows how to send mixed data types in a single atomic operation, as well as how to receive mixed data types atomically.
QUARC Advanced Blocking Mixed Types Communications Demo
The QUARC Advanced Blocking Mixed Types Communications Demo highlights the new support for bus signals in the advanced communications blockset. It shows how to send mixed data types in a single atomic operation, as well as how to receive mixed data types atomically. It also demonstrates the use of bus signals with the FIFO blocks.
QUARC Visualization Airplane Demo
The QUARC Visualization Airplane Demo provides a fun, advanced, example of the Quanser Visualization blockset in action, including infinite terrain, dummy actors, lighting effects, inheritance and fog.
QUARC Visualization Homogeneous Transform Demo
The QUARC Visualization Homogeneous Transform Demo drives an animation using a homogeneous transformation matrix rather than using the position, rotation and scale individually. Using a homogeneous transformation allows the order of operations to be changed from the ordering achieved using individual vector inputs.
QUARC Visualization Kuka KR 5 sixx R850 Robot Demo
The QUARC Visualization Kuka KR 5 sixx R850 Robot Demo demonstrates a typical industrial application of the QUARC Visualization blockset.
QUARC Visualization Material Properties Demo
The QUARC Visualization Material Properties Demo illustrates different material options available in the QUARC Visualization blockset.
QUARC Visualization Shadows Demo
The QUARC Visualization Shadows Demo demonstrates two different techniques for producing shadows in visualizations.
QUARC Visualization Texture Baking Demo
The QUARC Visualization Texture Baking Demo illustrates a specialized technique for producing very realistic lighting and shadows.
QUARC Visualization X-Ray Demo
The QUARC Visualization X-Ray Demo shows how to use render priorities in an unusual order to produce an X-ray effect.
QUARC Visualization Example Part I Demo
The QUARC Visualization Example Part I Demo demonstrates the loading of a mesh and texture and displaying it in the 3D viewer.
QUARC Visualization Example Part II Demo
The QUARC Visualization Example Part II Demo illustrates simple animation and creating a hierarchical relationship between the body and propeller of the airplane.
QUARC Visualization Example Part III Demo
The QUARC Visualization Example Part III Demo demonstrates how to use the QUARC Visualization blocks with dummy actors to simplify actor animation.
QUARC Visualization Example Part IV Demo
The QUARC Visualization Example Part IV Demo adds a skybox to the airplane scene from the QUARC Visualization Example Part II Demo in order to explore the use of selective inheritance.
QUARC Visualization Example Part V Demo
The QUARC Visualization Example Part V Demo builds on the QUARC Visualization Example Part IV Demo to explorer render priorities. This completed example allows you to look through the airplane canopy and see both the airplane propeller and skybox in behind.

New Blocks

New blocks have been added to the QUARC Targets library in QUARC 2.0. The new blocks are listed below.

GPS NMEA Blocks

GPS NMEA

The GPS NMEA block reads NMEA sentences from any GPS device supporting the NMEA-0183 protocol and outputs the GPS position, number of visible satellites, and dilution of precision. The communication channel is typically a serial connection to the GPS device, but any protocol supported by the Quanser Stream API can be used and is specified via the URI parameter of the block.

Homogeneous Transformations

Identity Transformation
The Identity Transformation block has been added to the Math Operations/Homogeneous Transformations blockset. It outputs a homogeneous transformation matrix with representing zero translation, rotation and unit scale. It is typically placed at the start of a homogeneous transformation chain to create a transformation matrix.
Rotation Transformation
The Rotation Transformation block has been added to the Math Operations/Homogeneous Transformations blockset. It multiplies a homogeneous transformation matrix by a rotation matrix.
Translation Transformation
The Translation Transformation block has been added to the Math Operations/Homogeneous Transformations blockset. It multiplies a homogeneous transformation matrix by a translation matrix.
Scale Transformation
The Scale Transformation block has been added to the Math Operations/Homogeneous Transformations blockset. It multiplies a homogeneous transformation matrix by a scaling matrix.
Vector Rotation
The Vector Rotation block has been added to the Math Operations/Vector Transformations blockset. It rotates an input 3-vector by a given angle about an arbitrary axis. This block is a superset of the Fixed Rotation and Variable Rotation blocks and replaces them both.

KUKA Robotics Blocks

KR 5 sixx R850

The KR 5 sixx R850 block provides an open architecture interface to the KUKA 6-DOF KR 5 sixx R850 robot. Depending on the selected control mode, sends Cartesian position correction, or Cartesian velocity, or joint position correction, or joint velocity commands to the 6-DOF KUKA KR 5 sixx R850 robot and outputs the robot actual Cartesian positions, joint angles and gear torques for each joint. (In later versions of QUARC, this block was replaced with the KUKA RSI block.)

NaturalPoint OptiTrack Blocks

OptiTrack Point Cloud

OptiTrack Point Cloud block reads the 3-dimensional position of IR markers detected by the OptiTrack camera system. The OptiTrack system can be used for localization and tracking.

OptiTrack Trackables

The OptiTrack Trackables block reads the 6 degree-of-freedom (6-DOF) position and orientation of trackable objects defined through the OptiTrack Tracking Tools software. The OptiTrack system can be used for localization and tracking.

Sensable Phantom Blocks

Phantom

The Phantom block can be used to control a variety of Phantom devices provided by SensAble. The block sends Cartesian or joint level commands to the device and outputs the robot actual Cartesian positions, joint angles or encoder values for each joint.

Ublox (GPS) Blocks

Ublox Initialize
The Ublox Initialize block establishes a serial connection to a Ublox unit.
Ublox Access Data
The Ublox Access Data block provides the value of the specified data field of Ublox GPS data structure.
Ublox Data Accuracy
The Ublox Data Accuracy block provides the values of Horizontal Dilution of Precision (HDOP), Vertical Dilution of Precision (VDOP), Position Dilution of Precision (PDOP), Position Fix flag, the number of satellites used in the solution, and the number of satellites in view obtained from GPS data structure.
Ublox Get Lat Lon Alt
The Ublox Get Lat Lon Alt block provides lattitude, longitude, and altitude data fields of Ublox GPS data structure at the specified sampling rate.
Ublox Get Speed
The Ublox Get Speed block provides the values of Speed and Course data fields obtained from GPS data structure.
Ublox Get XYZ
The Ublox Get XYZ block provides the values of x (x_utm), y (y_utm), and z (altitude) data fields of Ublox GPS data structure at the specified sampling rate. The values are measured in meters.

Vehicle Abstraction Layer (VAL) Blocks

VAL Initialize
The VAL Initialize block establishes the connection to the vehicle hardware or simulation. It is the only block where the actual vehicle is defined, so changing vehicles is as simple as modifying the parameters of a single block!
VAL Command
The VAL Command block allows commands to be sent to the vehicle, such as "Drive", "Direct Drive" or "Set Roll, Pitch, Yaw".
VAL Read Sensors
The VAL Read Sensors block allows the sensors on the vehicle to be read, such as inertial measurement unit data, sonar inputs, magnetometer measurements, and more.

Virtual Plant Blocks

SRV-02 Self-Erecting Inverted Pendulum
The SRV-02 Self-Erecting Inverted Pendulum block computes the dynamics of the SRV02 Self-Erecting Inverted Pendulum.

Visualization Blocks

Visualization Initialize
The Visualization Initialize block defines the 3D scene and listens for connections from 3D Viewer clients.
Visualization Set Variables
Scenes consist of a set of hierarchically-organized "actors". The Visualization Set Variables block allows these actors to be animated to create dynamic, immersive and interactive visualizations.

 

navigation bar