PHI System Description
The PHI (Pneumatic Haptic Interface) system is a master-slave type Haptic interface with two major components:
- The master arm
- Computer-generated slave manipulator and the remote environment
The system provides force-reflecting interaction between the human arm and a computer-generated world. It accepts the motion of the human arm with minimal resistance, communicates it to the virtual environment, and applies the virtual interaction forces to the arm of the human operator. The sensory feedback is implemented in the form of joint moments that result from a force vector at a "Hot Spot" located at the middle finger knuckle of the virtual hand. Specifically, the human operator feels the interaction only when the "Hot Spot" of the slave manipulator comes to a contact with an external virtual object.
Click here to watch PHI i action.
The master is a unilateral aluminum manipulator with four revolute joints. It tracks the shoulder-elbow motions of the right arm of the human operator. The manipulator is fixed at one end to the chair that PHI is mounted on. The other end of the manipulator is a handle that is grasped by the operator. The master is strapped to the right arm of the human operator by using a set of inflatable cushions and various length adjustments to accommodate different operators. The spherical joint of the shoulder is implemented by three cylindrical joints J1, J2, and J3, with orthogonal axes intersecting at the center of the shoulder. The elbow joint is implemented by the cylindrical joint J4.
The joint displacements are acquired by using linear position transducers mounted parallel to each cylinder. The signals from the transducers are sent to a custom built electronic board for analog differentiation. Then, the analog signals that represent the kinematic data for each piston are transmitted to A/D converters housed in a Power Macintosh 7100. The digital position and velocity data, are then transmitted and SGI Indigo2 workstation that implements the virtual slave and the environment.
The force feedback is realized by actuating the joints of the master manipulator by the pneumatic cylinders (P1, P2, P3, and P4). The stroke of the pistons and the connection points on the structure are chosen to provide the operator with a convenient range of motion. Each double-acting cylinder is connected to a pneumatic proportional valve. We have used electrically actuated 4-way valves with voice coils (Pneumatics Position X Valve). Pressure transducers are used as sensors in the control loop that is responsible for applying the desired forces at the actuators. The pressure signals are amplified and communicated to the A/D converters on the Mac that houses the force actuation controller.
Two control systems are developed and implemented on-line to perform the force actuation and gravity compensation that are needed by the master manipulator. The algorithms for both controllers reside in the Mac 7100 computer. The pneumatic force actuation controller is a modified PD (Proportional plus derivative) algorithm that includes specialized schemes to compensate for the aerodynamic effects in the pneumatic circuitry and the cylinders. The gravity compensation controller is a neural network based algorithm that can be trained on-line to compensate for the gravity vector of the master manipulator and provide transparent interface.
Virtual slave manipulator and environment
The slave/remote environment of the PHI system is generated by computer. We use an SGI Indigo2 machine running IRIX 5.3 operating system for this purpose. The choice of hardware (SGI Indigo2 machine) was primarily motivated by extensive graphical capabilities of Silicon Graphics machines. The SGI machine communicates with the master arm computer (Power Macintosh 7100) using an RS-232 serial line protocol at 38.4 Kbps. The data packet from the Macintosh to the SGI includes four joint rotations and four angular velocities of the joints of the master mechanism. The return data packet includes four sensory joint moments that are then used by the control system of the master arm as reference torque inputs.
The virtual or computer generated world consists of a variety of virtual objects. By a virtual object we mean either the slave or a virtual environment such as a wall, an obstacle, etc. Each virtual object consists of two parts:
- Its mathematical model
- Its graphical representation
The mathematical model is used for calculating the location, orientation, and motion of the virtual object in the Cartesian space (the object's kinematic state). In addition, the mathematical model implements the interaction among the virtual objects such as contact forces between the virtual slave and a virtual environment and collision detection among various objects. The graphical representation of the virtual object is what the human operator sees on the screen. Accordingly, the virtual world is implemented as two UNIX processes. The first process is responsible for mathematical modeling and communication with the master arm computer. The second process renders graphical representations of the slave manipulator and various virtual objects representing remote environments. The graphical process uses OpenGL graphics library by Silicon Graphics, Inc. All software was written using object-oriented approach in C++. The two processes communicate with each other using shared memory as a form of inter-process communication (IPC).
The master arm has anthropomorphic design with a kinematic structure that is similar to the kinematic structure of the human arm. This similarity is by design, since the objective of the interface is to emulate the shoulder-elbow motion the operator's arm. Accordingly, the kinematic state of the virtual slave is a vector of four joint rotations and angular velocities. The master arm mechanically tracks the motion of the operator whereas the slave kinematics are updated based on the information supplied by the master arm computer. Therefore, the graphical image of the slave manipulator repeats the motion of the master arm. Except when there are time delays in data transmission, the motion tracking does not introduce any errors nor does it require any additional information about the dynamic parameters of the master. Thus, in our case, the tracking process does not necessitate complex models of the master or slave arms. With sensory force feedback, we model the interaction between the virtual slave and virtual environments as a resultant force vector applied at the "Hot Spot" of the slave. Subsequently, we use the Jacobian matrix of the slave to represent the resultant force as four sensory torques applied at the joints of the slave. This torques is then sent back to the master arm computer as a reference input for its force control system. Therefore, computation of the sensory feedback is greatly simplified and requires only kinematic information.