Robotics Toolbox for Matlab

# Release Notes & Version History

## Robotics Toolbox version 9

- Changes:

- The manual (robot.pdf) no longer contains a per function description. All documentation is now in the m-file, making maintenance and consistency easier.
- The Functions link from the Toolbox help browser lists all functions with hyperlinks to the indiviual help entries.
- The Robot class is now named SerialLink to be more specific.
- Almost all functions that operate on a SerialLink object are now methods rather than functions, for example plot() or fkine(). In practice this makes little difference to the user but operations can now be expressed as robot.plot(q) or plot(robot, q). Toolbox documentation now prefers the former convention which is more aligned with object-oriented practice.
- The parametrers to the Link object constructor are now in the order: theta, d, a, alpha. Why this order? It's the order in which the link transform is created: RZ(theta) TZ(d) TX(a) RX(alpha).
- All robot models now begin with the prefix mdl_, so puma560 is now mdl_puma560.
- The function drivebot is now the SerialLink method teach.
- The function ikine560 is now the SerialLink method ikine6s to indicate that it works for any 6-axis robot with a spherical wrist.
- The link class is now named Link to adhere to the convention that all classes begin with a capital letter.
- The quaternion class is now named Quaternion to adhere to the convention that all classes begin with a capital letter.
- A number of utility functions have been moved into the a directory common since they are not robot specific.
- skew no longer accepts a skew symmetric matrix as an argument and returns a 3-vector, this functionality is provided by the new function vex.
- tr2diff and diff2tr are now called tr2delta and delta2tr
- ctraj with a scalar argument now spaces the points according to a trapezoidal velocity profile (see lspb). To obtain even spacing provide a uniformly spaced vector as the third argument, eg. linspace(0, 1, N).

- New features:

- Model of a mobile robot, Vehicle, that has the "bicycle" kinematic model (car-like). For given inputs it updates the robot state and returns noise corrupted odometry measurements. This can be used in conjunction with a "driver" class such as RandomPath which drives the vehicle between random waypoints within a specified rectangular region.
- Model of a laser scanner RangeBearingSensor, subclass of Sensor, that works in conjunction with a Map object to return range and bearing to invariant point features in the environment.
- Extended Kalman filter EKF can be used to perform localization by dead reckoning or map featuers, map buildings and simultaneous localization and mapping.
- Path planning classes: distance transform DXform, D* lattice planner Dstar, probabilistic roadmap planner PRM, and rapidly exploring random tree RRT.
- The RPY functions tr2rpy and rpy2tr assume that the roll, pitch, yaw rotations are about the X, Y, Z axes which is consistent with common conventions for vehicles (planes, ships, ground vehicles). For some applications (eg. cameras) it useful to consider the rotations about the Z, Y, Z axes, and this behaviour can be obtained by using the option 'zyx' with these functions (note this is the pre release 8 behaviour).
- jsingu
- jsingu
- lspb
- tpoly
- qplot
- mtraj
- mstraj
- wtrans
- se2
- se3
- trprint compact display of a transform in various formats.
- trplot
- trplot2 as above but for SE(2)
- tranimate
- DHFactor a simple means to generate the Denavit-Hartenberg kinematic model of a robot from a sequence of elementary transforms.
- Monte Carlo estimator ParticleFilter.
- vex performs the inverse function to skew, it converts a skew-symmetric matrix to a 3-vector.
- Pgraph represents a non-directed embedded graph, supports plotting and minimum cost path finding.
- Polygon a generic 2D polygon class that supports plotting, intersectio/union/difference of polygons, line/polygon intersection, point/polygon containment.
- plot_box plot a box given TL/BR corners or center+WH, with options for edge color, fill color and transparency.
- plot_circle plot one or more circles, with options for edge color, fill color and transparency.
- plot_sphere plot a sphere, with options for edge color, fill color and transparency.
- plot_ellipse plot an ellipse, with options for edge color, fill color and transparency.
- plot_ellipsoid plot an ellipsoid, with options for edge color, fill color and transparency.
- plot_poly plot a polygon, with options for edge color, fill color and transparency.
- about one line summary of a matrix or class, compact version of whos
- tb_optparse general argument handler and options parser, used internally in many functions.

- Bugfixes:

- Improved error messages in many functions
- Removed trailing commas from if and for statements

- Known bugs and limitations:

- April, 2011

To see which version of the Robotics Toolbox is currently installed, you can type

        info = ver('robot')

The result should look like this:

    info =

           Name: 'Robotics Toolbox'
        Version: '9.0'
        Release: ''
           Date: '01-Apr-2011'

## Version History

### Robotics Toolbox version 8

- New Features:

- First toolbox version
- Functions features based on modules release-0.3.3 (October 7th, 2007)

- Files added:

- Files removed:

- Features added:

- Bugs fixed:

- October 7th, 2007