Neil T. Dantam – Code

Home Research Publications Code Lab

Table of Contents

1 Downloading

1.1 Tarballs

1.2 Git

1.3 Apt

If you're using Debian or Ubuntu i386/amd64, you can install packages from our apt repository.

  1. Add this line to /etc/apt/sources.list:

    deb squeeze

    (Replace "squeeze" with the codename for your distribution, ie "sid", "lucid", "precise", etc.)

  2. # apt-get update
  3. # apt-get install libach0 libach-dev (or whatever)

2 Research Code

2.1 Motion Grammar Kit

Formal Language tools for robots.

2.2 Ach: Real-Time IPC

Message passing IPC implemented over circular buffers in shared memory. Appropriate for real-time control because it does not suffer from head-of line blocking. Library has been verified with a SPIN model. More info on its wiki page.

2.3 Amino: Utilities for real-time robotics

2.4 Reflex: Real-time robot control


  • A linear workspace (Cartesian) controller for robot arms that uses the Jacobian Damped Least Squares.
  • Linear Quadratic Gaussian Filtering (Kalman Filter) and Control (LQR) for continuous and discrete time models.
  • Trajectory generator for workspace trapezoidal velocity profiles, giving smooth straight-line motion of the arm.

2.5 Somatic: Robotics message definitions and process management

3 Other Projects


S-PROTOBUF, provides a Common Lisp implementation for the Protocol Buffers data encoding format, created by Google.


Functions for numerical computation in lisp. Includes bindings for the more useful BLAS/LAPACK functions via CFFI. Unlike some other approaches, I use lisp-native arrays for our storage – on SBCL, allocating a lisp array is 10 times faster than allocating foreign storage. I've also avoided CLOS in an effort to reduce necessary overhead, doing some dynamic dispatching (if you want it) the old-fashioned (etypecase) way, which, with the right inlines and declarations, should be free.

Author: Neil T. Dantam <>

Date: 2014-07-01 17:01:00 EDT

HTML generated by org-mode 6.33x in emacs 23