CONTROL SYSTEM FOR
ROBOTIC PROSTHETIC SHOULDER
|SW concept||Alessandro Tasora|
|Software developement||Luca Bacchi|
|Device designers||Federico Casolo & his team at the Politecnico di Milano, Alessandro Tasora and Luca Bacchi at University of Parma|
The 3-DOF prosthetic shoulder developed at the Politecnico di Milano by the team of Prof.Federico Casolo is a motorized robotic device which exploits autonomous motion.
Since the user can't control the prosthetic arm using the usual methods which can be adopted for devices with fewer DOFs (elbows, hands), we studied a control scheme which will use the sight of the user. An on-board controller acquires the user's head position and moves the hand end effector where the user is looking at.
This apporach implies that we had to develop a robust and predictable way to control the hand via head's movement.
The hand is moved with a target-following inverse-kinematic procedure, paying special care in avoiding singularities and discontinuities in motor speeds/torques. We tested IIR / FIR 3D filters for this purpose.
The proposed control technique has been implemented on a simulator software, entirely written in C++ language, which shows the motion in a virtual-reality environment (using the 3D realtime rendering engine "Irrlicht"), so that the control system can be tuned easily. Meanwhile, users can be trained with virtual reality even before endorsing the true robotic device.
Thank to a reusable, encapsulated OOP technique, C++ classes for the control algorithm will be easily embedded in the GUI-less on-board controller, on the shoulder.
The prosthetic arm, prototype n.2, at the Politecnico di Milano. I suggested the idea of a Cardanic suspension with differential gears as a spherical joint for the motorized shoulder.
The simulation software, written by Luca Bacchi, provides a visual feedback of the proposed control method. The real-time rendering is based on the Irrlicht library.
The simulation software provides instant torques, speeds and rotations of the three motors, as shown in the example above.