The Freeform Manipulator Analysis Tool

Created by Lael Odhner and Aaron Dollar
Contact: lael.odhner@yale.edu

Introduction

This software is an object-oriented Matlab toolbox for analyzing serial manipulator mechanisms having arbitrary kinematics. Instead of limiting the user to a fixed set of mechanisms for motion, such as revolute and prismatic joints, arbitrary homogeneous transformations between joints can be specified in symbolic form. This enables more manipulators containing complex mechanisms, such as flexure hinges, to be analyzed using all of the tools developed for generalized coordinate manipulator models.

Getting the Toolbox

The latest version of FMAT can be downloaded here:

http://www.eng.yale.edu/grablab/fmat/fmat-20100902.zip

The Sep. 2 version now properly handles inequality constraints, including any active constraints in the vector of constraint forces and the matrix of constraint stiffnesses.

System Requirements

This package should run on Matlab r2009b or later. Matlab's symbolic math toolbox is in a state of flux as Maple is phased out and replaced by MuPAD. Although Maple is presently a superior product, we made the decision to support the newer versions of Matlab rather than tracking down all of the idiosyncracies between the two symbolic math engines.

Modification and Redistribution

The Freeform Manipulator Analysis Tool is freely available and redistributable under a BSD-style license (included below and in the source distribution). The toolbox was written to be extensible, so new classes of coordinate systems, energy storage modes and display objects can be created to extend the range of mechanisms that can be modeled. Authors interested in submitting modifications to be redistributed here can contact the authors at the email address at the top of the page.

Copyright 2010 Yale University. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY YALE UNIVERSITY ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL YALE UNIVERSITY OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Yale University.

Getting Started

A tutorial explaining the basic toolbox functions can be found here.

Examples: Reproducing Experiments from RSS 2010

Our paper from RSS 2010, "The smooth curvature model: an accurate, low-dimensional approach for robot analysis," used the Freeform Manipulator Analysis Tool to construct mathematical models of large-deformation flexure joints. In the toolbox root directory, there are several files, called Beam.m, Beam_FEM.m, and Beam_Polynomial.m. These files are macros that perform two major actions: First, they define the potential energy associated with the bending of a flexure hinge as a function of the flexure's generalized coordinates. Second, they construct a homogeneous transformation as a composite translation and rotation defining the relative position and orientation of the two ends of the flexure. This transformation is passed out as a transformation object (defined in HT.m). Because these transformations and energies are defined symbolically, the partial derivatives of the energy and the coordinate transformation can be computed automatically by the toolkit.

The scripts for reproducing the RSS paper results are located in the examples directory, under a subfolder called '2010 RSS'.

Figures 6 and 7: Elastica approximations

The script 'Elastica_Comparison.m' generates figures 6 and 7. This script calculates the Euler-Bernoulli large deformation solution to a flexure's deformation under the boundary conditions that the base of the flexure is horizontal (and at the origin), while the tip is bent to 90 degrees. The moment applied at the end of the beam is varied as described in the paper, and so is the angle at which force is applied to the tip of the flexure. The end load satisfying these boundary conditions is found iteratively. The results of this gold standard model are then compared by setting the 2 and 3 parameter smooth curvature flexure models in equilibrium based on those forces.

Table I: Results from FEM Comparisons of the SDM Finger

The scripts 'Finger_3_Param.m' and 'Finger_FEM.m' generate the table of comparisons for the deformed shape of the SDM finger under a tendon force and a load on the distal pad. These scripts also serve as a tutorial for how the display of VRML object can be incorporated into models with the toolbox.