0% found this document useful (0 votes)
66 views20 pages

Robotics System Toolbox™ Release Notes

Uploaded by

teektak1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views20 pages

Robotics System Toolbox™ Release Notes

Uploaded by

teektak1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Robotics System Toolbox™ Release Notes

How to Contact MathWorks

Latest news: [Link]

Sales and services: [Link]/sales_and_services

User community: [Link]/matlabcentral

Technical support: [Link]/support/contact_us

Phone: 508-647-7000

The MathWorks, Inc.


3 Apple Hill Drive
Natick, MA 01760-2098
Robotics System Toolbox™ Release Notes
© COPYRIGHT 2015–2016 by The MathWorks, Inc.
The software described in this document is furnished under a license agreement. The software may be used
or copied only under the terms of the license agreement. No part of this manual may be photocopied or
reproduced in any form without prior written consent from The MathWorks, Inc.
FEDERAL ACQUISITION: This provision applies to all acquisitions of the Program and Documentation
by, for, or through the federal government of the United States. By accepting delivery of the Program
or Documentation, the government hereby agrees that this software or documentation qualifies as
commercial computer software or commercial computer software documentation as such terms are used
or defined in FAR 12.212, DFARS Part 227.72, and DFARS 252.227-7014. Accordingly, the terms and
conditions of this Agreement and only those rights specified in this Agreement, shall pertain to and
govern the use, modification, reproduction, release, performance, display, and disclosure of the Program
and Documentation by the federal government (or other entity acquiring for or through the federal
government) and shall supersede any conflicting contractual terms or conditions. If this License fails
to meet the government's needs or is inconsistent in any respect with federal procurement law, the
government agrees to return the Program and Documentation, unused, to The MathWorks, Inc.
Trademarks
MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See
[Link]/trademarks for a list of additional trademarks. Other product or brand
names may be trademarks or registered trademarks of their respective holders.
Patents
MathWorks products are protected by one or more U.S. patents. Please see
[Link]/patents for more information.
Contents

R2016b

Robotic Manipulator Algorithms: Represent robot


manipulators using a rigid body tree and calculate forward
and inverse kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2

Automated Deployment of ROS Nodes: Automatically deploy


ROS nodes to target hardware using Simulink Coder . . . 1-2

Occupancy Grid Class: Build a robot environment using a 2-D


occupancy map with probabilistic values . . . . . . . . . . . . . 1-2

Mobile Robot Algorithm Blocks: Perform obstacle avoidance


and path following in Simulink . . . . . . . . . . . . . . . . . . . . . . 1-2

ROS Action Client: Send action goals via a ROS network and
get feedback on their execution . . . . . . . . . . . . . . . . . . . . . 1-3

Buffered ROS tf2 Transformations: Access time-buffered


transformations from the ROS transformation tree . . . . . 1-3

Odometry Motion Model Class: Predict poses for a


differential drive robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3

ROS Time and Duration: Use mathematical operations on


ROS time and duration objects . . . . . . . . . . . . . . . . . . . . . . 1-4

Code Generation for Robotics Algorithms: Generate code for


select algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4

iii
R2016a

Monte Carlo Localization Algorithm: Estimate robot location


in a known map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

Particle Filter Algorithm: Estimate state for nonlinear


systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

Fixed-Rate Execution: Run MATLAB code at a constant


rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

Robotics System Toolbox Support Package for TurtleBot


based Robots: Connect to TurtleBot hardware . . . . . . . . . 2-2

String support for ROS parameters in Simulink . . . . . . . . . . 2-3

String array support for ROS messages in Simulink . . . . . . 2-3

Code generation from Simulink using Simulink Coder . . . . 2-3

roboticsSupportPackages function replaced with


roboticsAddons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3

R2015aSP1

Bug Fixes

R2015b

Vector Field Histogram Plus (VFH+) obstacle avoidance


algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2

Access to ROS parameters from Simulink . . . . . . . . . . . . . . . 4-2

iv Contents
Code generation for coordinate transforms and select
robotics algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2

R2015a

Path planning, path following, and map representation


algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

Functions for converting between different rotation and


translation representations . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

Bidirectional communication with live ROS-enabled


robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

Interface to Gazebo and other ROS-enabled simulators . . . . 5-2

Data import from rosbag log files . . . . . . . . . . . . . . . . . . . . . . 5-2

ROS node generation from Simulink models (with Embedded


Coder) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

v
R2016b
Version: 1.3

New Features

Bug Fixes

Compatibility Considerations
R2016b

Robotic Manipulator Algorithms: Represent robot manipulators using a


rigid body tree and calculate forward and inverse kinematics
The [Link] class enables you to build kinematic chains or trees using
rigid bodies to represent physical robots. You can add or modify bodies on a structure,
specify joint limits, and replace bodies or joints. In addition, you can use forward
kinematics to get transformations between two body frames and compute geometric
Jacobians for specified end effectors for a given robot configuration.

Inverse kinematics is available in the [Link] class. Use inverse


kinematics to calculate corresponding joint angles for desired end-effector positions.

Automated Deployment of ROS Nodes: Automatically deploy ROS nodes


to target hardware using Simulink Coder

You can now automatically deploy and run ROS nodes using Simulink® Coder™. Create
a Simulink model using Robotics System Toolbox™ blocks and deploy it to your target
Linux device that has ROS installed. You can use the rosdevice object to connect to the
target device and run or stop the deployed ROS nodes.

For more information, see “Generate a standalone ROS node from Simulink®”.

Occupancy Grid Class: Build a robot environment using a 2-D occupancy


map with probabilistic values
The [Link] class enables you to create 2-D occupancy maps
using probabilistic values. You can incorporate probabilistic sensor information
using Bayes’ rule. Also, you can use the occupancy grid with the [Link] and
[Link] classes for path planning and localization.

Mobile Robot Algorithm Blocks: Perform obstacle avoidance and path


following in Simulink
You can now use the Vector Field Histogram and Pure Pursuit algorithms with Simulink.
The Pure Pursuit block outputs a target direction, which you can feed directly into the
Vector Field Histogram block to perform obstacle avoidance with path following.

1-2
ROS Action Client: Send action goals via a ROS network and get
feedback on their execution
By setting up a simple action client using the rosactionclient function, you can
now perform predefined actions that are available on the ROS network. Once an action
is triggered, the client receives asynchronous feedback about a specified goal and can
preempt the execution of goals on the server.

Buffered ROS tf2 Transformations: Access time-buffered transformations


from the ROS transformation tree
The ROS transformation tree now supports time-buffered transformation. By default,
the TransformationTree object has a time buffer of 10 seconds. After creating a
transformation tree using rostf, transformations are saved based on the buffer time.
You can call getTransform or transform to access and apply the transformations
at a specified source time. A new function, canTransform, enables you to check if the
transformation is available.

Compatibility Considerations
waitForTransform will be removed in a future release. Use getTransform with a
specified timeout instead. To wait indefinitely, specify timeout as inf.

The behavior of getTransform will change in a future release. The function will
no longer return an empty transform when the transform is unavailable and no
sourcetime is specified. If getTransform waits for the specified timeout period and the
transform is still not available, the function returns an error. The timeout period is 0 by
default.

Odometry Motion Model Class: Predict poses for a differential drive robot
The [Link] class contains the equations of motion that govern a
differential drive robot. The odometry motion model predicts the motion of a robot based
on previous poses and noise parameters. You can tune the Noise property and see the
effect on particle distributions using the showNoiseDistribution function. You can
also use this motion model with [Link] to localize robots in a
known environment.

1-3
R2016b

ROS Time and Duration: Use mathematical operations on ROS time and
duration objects
In the rostime function, you can now specify second and nanosecond scalar inputs when
creating a ROS Time message object. You can also use the new rosduration function
to create a ROS Duration message object. Both message types support mathematical
operations and comparisons. For example:

Create a ROS Time and Duration object and add them together. Compare the two Time
objects.
time = rostime(5.54);
duration = rosduration(2);
time2 = time + duration

time2 =

ROS Time with properties:

Sec: 7
Nsec: 540000000

time2 <= time

ans =

Code Generation for Robotics Algorithms: Generate code for select


algorithms
Code generation with MATLAB® Coder is now available for the following algorithms:

• [Link]
• [Link]
• [Link]

• [Link] — The map input must be specified on creation of the PRM object.
• [Link]

For a full list of code generation support for Robotics System Toolbox, see “Code
Generation”.

1-4
R2016a
Version: 1.2

New Features

Compatibility Considerations
R2016a

Monte Carlo Localization Algorithm: Estimate robot location in a known


map
Monte Carlo Localization utilizes a particle filter to localize a robot in a known
environment. You can supply a BinaryOccupancyGrid object of your map and range
sensor data from the robot to the [Link] object to estimate
the pose (location and orientation) of the robot. You have the option of using global
localization or specifying an initial pose to improve performance. As sensor data is
supplied to the algorithm, particles converge on the best estimate of the robot location.

Particle Filter Algorithm: Estimate state for nonlinear systems


The [Link] class enables you to create a particle filter for state
estimation. The algorithm uses particles and sensor data to try to match the posterior
distribution of the current state. It first predicts the current state based on a given
system model and then corrects the estimate based on sensor data inputs. You can
specify a fixed number of particles to use, number of state variables to estimate, and
your method for final estimation based on the particle weights. You can customize your
particle filter by giving a state transition function and measurement likelihood model to
match your system.

Fixed-Rate Execution: Run MATLAB code at a constant rate


Execute loops at a constant rate based off either your system time or ROS time. By
creating a [Link] object, you can call waitfor to pause a loop until the next time
step. This feature ensures that loops are run at a fixed rate when accurate timing of
commands is required.

You can also use rosrate to base timing off the current time published in a ROS network.
Therefore, messages and control commands can be published at a fixed rate to a ROS-
enabled system.

Robotics System Toolbox Support Package for TurtleBot based Robots:


Connect to TurtleBot hardware
Robotics System Toolbox Support Package for TurtleBot®-Based Robots allows robotics
researchers to acquire sensor data from TurtleBot-based robots (either simulated or
physical robots). You can use the data for visualization and analysis, and send commands
to control the robots.

2-2
String support for ROS parameters in Simulink
Support for using strings as ROS parameters is now available in Simulink. When using
strings, they must be cast as a uint8 array of ASCII values. See ROS String Parameters
for more information.

String array support for ROS messages in Simulink


You can now use an array of strings when using the Publish, Subscribe, and Blank
Message blocks to create, send, and receive messages using a ROS network in Simulink.

Code generation from Simulink using Simulink Coder


You can now generate standalone ROS nodes from Simulink models with just Simulink
Coder. If you have Embedded Coder®, you can customize the generated code with
additional optimization, readability, and code configuration options.

roboticsSupportPackages function replaced with


roboticsAddons
The roboticsSupportPackages function is no longer available. Instead, use
roboticsAddOns to access Add-ons for Robotics System Toolbox.

2-3
R2015aSP1
Version: 1.0.1

Bug Fixes
R2015b
Version: 1.1

New Features
R2015b

Vector Field Histogram Plus (VFH+) obstacle avoidance algorithm


The VFH+ obstacle avoidance algorithm is a reactive algorithm that calculates obstacle-
free robot movements using range sensor information. You can use this algorithm to have
your robot avoid unknown obstacles while driving through dynamic or partially known
environments. See [Link] for more information.

Access to ROS parameters from Simulink


Simulink workflows now support ROS parameters. You can get and set parameter values
using the new Get Parameter and Set Parameter blocks.

Code generation for coordinate transforms and select robotics algorithms


For select Robotics System Toolbox algorithms, you can now generate C/C++ code
using MATLAB Coder. You can create MEX-files and shared libraries from your
MATLAB application. These code generation workflows are supported for the coordinate
transformation functions (Coordinate System Transformations), the VFH+ obstacle
avoidance algorithm, and the Pure Pursuit controller algorithm ([Link]).
See Code Generation for more information.

4-2
R2015a
Version: 1.0

New Features
R2015a

Path planning, path following, and map representation algorithms


The Robotics System Toolbox provides algorithms for path planning, path following, and
map representations. The support in this release includes classes for Binary Occupancy
Grids, Probabilistic Roadmaps (PRM), and a Pure Pursuit controller.

Functions for converting between different rotation and translation


representations
Coordinate system transformations are provided as functions for converting between
many different representations including quaternions, rotation matrices, homogeneous
transformation matrices, and Euler angles. Other functions are available for converting
between radians and degrees and for angle calculations. For more information, see
Coordinate System Transformations.

Bidirectional communication with live ROS-enabled robots


Communication with ROS using publishers and subscribers is available in MATLAB and
Simulink. Many message types are readily supported. Robotics System Toolbox can also
access ROS services, the parameter server, and the tf transformation tree in MATLAB.

Interface to Gazebo and other ROS-enabled simulators


ROS-enabled simulators allow prototyping of algorithms and testing systems developed
in MATLAB. Connection to a Gazebo simulator is supported with an example interacting
with the simulator shown here: Reading Model and Simulation Properties from Gazebo.

Data import from rosbag log files


This release of the Robotics System Toolbox includes the ability to access rosbags, which
are logfiles from ROS. You can access whole log files or portions and manipulate the data
as desired (see Working with rosbag Logfiles).

ROS node generation from Simulink models (with Embedded Coder)


This release includes ROS node generation using Simulink. You can use Simulink to
create models that exchange messages with a ROS network. Using Embedded Coder, you
can generate C++ code for standalone ROS nodes from these models.

5-2

You might also like