arc(1)

NAME
arc -- A robotics oriented calculator.

SYNOPSIS
arc [-i <base>] [-o <base>]

DESCRIPTION
Arc is an infix calculator program that supports scalars and matrices, along with operations specific to robotics, such as creating 4X4 homogeneous transforms and mapping between them and other objects such as Euler angles, Euler parameters, and quaternions. Arc grew out of a simple desk calculator that I wrote a while ago, the principle motivation being to have something that makes it easy to analyze and manipulate all the numbers that are printed out by RCCL programs and their debugging messages. The result is something of a simple hybrid containing components of the old calculator, RCCL, and MATLAB.

The principle features are:

o   Evaluation of fairly general infix integer and floating point expressions.

o   Matrix and submatrix definition and subscripting (using a syntax taken pretty much directly from MATLAB).

o   Variable creation and assignment.

o   A large set of functions for scalar, matrix, and robot matrix operations (basic things like sin() and atan2() for scalars, inv() to invert matrices, and rpy() and eul() to create 4X4 transforms from <roll,pitch,yaw> and Euler angles).

o   Robot kinematic routines (forward, inverse, and Jacobian), plus access to the RCI robot position files (these options require that `arc' be compiled with RCI support).

o   Specification of different input and output bases for integers.

o   Utility functions for creating log files and saving and restoring variables.

Arc does not (yet?) support macro definition or looping/conditional constructs.

Arc lives in /local/bin. To get detailed help on how to use it, either look at /local/doc/arc.txt, or get into 'arc' and type "help". Help on a particular function may be obtained by typing "help <function>", and help on a specific keyword may be obtained by typing "help key <keyword>".

And, oh yes ... to get out of 'arc', type end-of-file.

OPTIONS

-i <base>
    This option allows a user to start up arc with a working input base (for integers) other than the default of 10. 'base' should be an integer from 2 to 16; the default reading of all integers (but not floats, which contain a decimal point) will be done by arc in that base, unless changed from within arc by the 'input()' function.

-o <base>
    Same as the -i option, only it sets the default output base for integers.

CAVEATS
The matrix inversion routine was culled from the source to MATLAB, which is written in Fortran. There is nothing really wrong with this, except that its seems to sometimes create a file 'fort.9' in the current directory.

AUTHOR
John Lloyd, Summer of 1987.