If you are a member or an alumnus of A.R.M.A. you may login to submit articles and contribute to the website.


When I was a third year student at University of Pisa, Italy I came to Columbia University as part of an internship related to my program of study.

My work at A.R.M.A. has been related to guided undergraduate reserach and study about kinematics modeling and control of robots.

My project focused on calibrating, studying the kinematic model  and implementing a real-time open-architecture controller on a PUMA 560, a 6-DOF serial manipulator produced by Unimation in the 80's.

An Inverse Dynamics control law, was implemented on the robot using the Matlab xPC platform and the PD controller was tuned experimentally by studying the responce of the robot to step and sinusoidal inputs. For the direct kinematics two different approaches were used: the classical passive Denavit-Hartenberg method and the Zero Reference Position Method, based on an active approach.

The inverse kinematic problem was solved by inverting the kinematic differential equation using a singularity robust solution. Then an algorithm ensuring the convergence to zero of the error between the desired and the computed poses of the end-effector was designed and implemented into the control system.

Two trajectory planners, for straight paths and circular paths respectively, were designed, using a quintic polynomial position profile, and were added to the control system.

Each joint of the PUMA 560 is equipped with two transducers: an incremental encoder and a potentiometer. The positions provided by the former are however relative to the position from which the PUMA starts his task: in fact, every time the robot gets turned on, the encoders give a signal which is equal to zero.

Thus each potentiometer was calibrated, determining experimentally a relationship between the output voltages and the joint positions, and the robot's home configuration was determined using a vision tracker.

Finally a Graphical User Interface was realized to easily use all the functions written.


The PUMA560 robot.


The Simulink blocks scheme of the control system.



The PUMA560 during a 3D simulation of the resolved rate alghoritm.



The PUMA560 during a 3d simulation of the circular paths planner.




The PUMA560 seen by the vision tracker during the registration experiment.