Dr. William Craelius seems to have invented a fully-functional (though still primitive in comparison to the Real Thing (tm)) artificial hand. Yes, it actually uses a cyberware-style interface to activate the movements - though I`m not sure whether it`s true DNI or just EMG readings (probably the latter though it isn`t entirely clear), it`s still looking pretty good.
There are two articles below. The first is the official Rutgers uni mini-article on the artificial hand and the second seems to be some research student`s article on how he wrote a renderer for it - which calibrates the hand to the user`s "phantom limb syndrome" so as to learn the required movements.
Also the paper on the hand is here
Artificial Hand Technology
Typing and playing the piano will soon become a reality for amputees
who have lost a hand. William Craelius, associate professor of biomedical
engineering at Rutgers, and post-doctoral researcher Rochel "Ricki"
Abboudi, have developed an artificial prosthesis that allows people who
are missing a hand to control individual fingers using their original
nerve pathways.
The Tendon Activated Pneumatic
(TAP) artificial hand, pictured at right, uses an amputee`s ability to move "phantom fingers"
by harnessing the movement of the finger muscles and tendons that extend
up to the elbow. Sensors in the artificial hand pick up signals from these
muscles and tendons and transmit them to a computer that directs the hand.
This new prosthesis gives the
user natural control of up to five independent artificial fingers, enabling
subjects to type and even play the piano. Prior to this breakthrough,
existing technology only allowed the user to open and close a prosthesis
by flexing a muscle and did not allow individual finger control.
The work is a collaboration between
the Orthotics and Prosthetics Laboratory at Rutgers and Nian-Crae Inc.,
of Somerset, N.J.
The research is funded by grant
from the National Institutes of Health through its science and technology
transfer program and Nian-Crae Inc.
Current projects
My project this semester has been two-fold; one half of it in my aritificial intelligence course (taught by Dr. Matthew Stone) and the other half in my independant study course (taught by Dr. William Craelius). The whole thing is a the beginning of even more serious work to come next semester (see future projects). I heard of the robotic prosthetic hand project while participating at the DIMACS REU program (see past projects), and was instantly enamoured with the ideas presented: given any below-elbow amputee, in the residual limb, there still remain tendons and muscles which used to control the various fingers of the now severed hand. While patients sill have control of these muscles, the point is, naturally, that there is nothing left to move with them, and so they are allowed to atrophy. However, it was Dr. Craelius` brilliant idea to use input from these old tendons and muscles to control a robotic device calibrated to simulate the hand, from what the patient remembers; often, this involves calibration to what amputees have described over the years as phantom limb syndrome.
This semester, under Dr. Craelius, simulation and adaptation were the name of the game: it was my job to write an three dimensional renderer which would be capable of displaying simulated images of the hand in full detail at real time, suitable for animation. Also, to make this renderer modular enough and capable enough to adapt to software which drives the sensory array, in effect creating a software tool for outputting calibrated sensory information.
I accomplished this in two ways. First, after consulting several online resources, I purchased a book on OpenGL, an API for the development of three dimensional computer animation applications, and, after some amount of fuss and experiment, programmed by first renderer - a red square inside a blue background. Next began my investigation into a serious data structure for the hand itself; it needed to be flexible, and yet compact as well. Hence, I decided on a tree format, with a pointer from the original renderer to the rest of the limb; each limb had an array of up to five sublimbs, and also held information on how to draw itself. thus, drawlimb() could me made a recursive call that easily drew the entire thing, with little trouble. Indeed, the "hand" itself could be of numerous configurations, with less than or up to five fingers, and modeling other joints as well - indeed, the entire human body could be modeled inside the data structure, because at no point in the human body is there more than 5 "sublimbs" attached to the parent limb.
The next step was the ActiveX control class. here, I had to implement some information i found at the Microsoft MSDN webpage, where Microsoft keeps a large library of information on it`s technologies (like ActiveX) so that developers like me can access them. This was rather difficult, as it forced me to get acquinted with numerous custom classes made by microsoft, and specialized methods used by microsoft, but in the end, everything worked out well. I`m still ironing out some details with the control, but for the most part, it registers itself well, and easily calls it`s finger bending methods.
The other half of this semester took the form of an in class project, in my 400 level artificial intelligence course, taught by Dr. Matthew Stone. Here, we learned about aritificial intelligence agents in prolog, and how to implement them so that the various powers of prolog, especially search and logical reasoning, could be brought to bear on the problem of making intelligently behaving software. Here, I developed an agent for the diagnosis of physical problems detected by the user of the hand, and, using logical programming, was able to cause it to solve diagnosis problems by finding nearest match and close match criteria for the symptoms complained about by the user. This is still work in progress, and I intend to keep working on this agent in the future, because logical programming is quite interesting (despite it`s strange occasional eccentricities).