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.
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.
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.
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.
A tutorial explaining the basic toolbox functions can be found here.
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'.
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.
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.