## Mathematica^{®} packages for simple mechanical control
systems

### Francesco Bullo and Andrew D. Lewis

The Mathematica^{®} packages here have been developed along the
lines of the book *Geometric Control of Mechanical
Systems*. These packages are offered freely under the provisions of
the GNU Public License. The authors are
not professional, or even very knowledgeable, Mathematica^{®}
programmers. We therefore encourage development of these packages, provided
these activities are as authorized by the license (e.g., do not develop
these, and then commercialize the result).
While we encourage feedback concerning these packages, and will do our best
to fix errors and/or improve the code, we make no guarantees that we will be
able to respond to all feedback in a timely and/or useful manner. Having
said that, do feel free to contact us:

- Francesco Bullo:
`bullo` at `engineering.ucsb.edu`;
- Andrew Lewis:
`andrew` at `mast.queensu.ca`.

The packages are:

[Affine.m]
[DerivativeOptions.m]
[SMCS.m]
[Tensors.m]

(The package DerivativeOptions is loaded by Tensors, but has no function
worth documenting.)

There are also Mathematica^{®} notebooks that have been
developed to illustrate how the packages are to be used:

[affine.nb]
[SMCS.nb]
[snakeboard.nb]
[tensors.nb]

The notebooks have LaTeX commands in the text, and some of these are macros
that are special to the book. However, these should be sufficiently
transparent that they will cause no confusion.

The manual (i.e., a concatenation of the above notebooks, converted to LaTeX)
is included in the supplementary
material for the book *Geometric Control of Mechanical
Systems*.