Our final design consists of two open source haptic arms WoodenHaptics, co-developed by our sponsor Dr. Yip, that are oriented co-linearly opposite to each other. These arms alone provide three degrees of freedom.
WoodenHaptics
Each WoodenHaptics arm will be modified such that its terminal link has a universal joint attached at its tip. These universal joints are attached at separate points on a 3D-printed, cylindrical extension piece and allow the pitch and yaw motions.
Universal Joint
At the end of the extension piece, a 3D-printed laryngoscope handle that is compatible with an actual laryngoscope blade is connected by screws.The blade attachment point of the 3D-printed handle is universal; any laryngoscope blade is is able to fit onto it. The 3D-printed laryngoscope handle features a housing inside for a light source allowing trainees to be able to see inside the manekin's mouth as during the procedure. Since the extension piece and the laryngoscope handle are connected by screws, they can be easily taken apart to replace the batteries powering the light source.
3D-Printed Extension Piece (left) and laryngoscope handle (right)
CAD Design of Overall System
Final Design of Completed System
The software components are written in C++ using Chai3d, an open source, 3D simulation development tool specifically designed for haptic systems. Chai3D contains a framework for defining the behavior of haptic devices of multiple degrees of freedom as well as a multitude of mathematical functions to ease this implementation. It is also able to create a visual representation of the device in 3D space and apply forces and torques to the device.
Haptic Devices Interacting with Visual Objects
Another ability of Chai3D that is most important is to compute realistic interaction forces between the haptic device and visual objects when applied at a fast enough frequency. This interaction force is computed by applying spring force to the haptic device using the stiffness of the virtual object and the difference in position between the haptic device, and where it would be if it could not pass through the virtual object. This function, while not immediately useful in the scope of this project, will be useful our sponsors to develop a full virtual reality training environment.
Virtual Force Rendering Algorithm
The purpose of the software design is to display the position of the laryngoscope blade tip in a 3D virtual reality environment, as well as to create an expert trajectory for the installed blade, defining a boundary within which the tool will be free to move without any resistance. As the tool begins to move outside of the boundary, however, an increasing resistance will be applied to the tool, which is linearly proportional to the distance away from the expert trajectory.
The software design consists of two fundamental sections, the kinematics code to define how the mechanical system moves in the physical world, and the trajectory code to apply a resistant force proportional to deviation from the expert trajectory.
Circuit Board Layout
Encoder readings are collected at a rate of 1000Hz from an MBED LPC 1768 microcontroller. WoodenHaptics C++ objects then calculate the position of each arm using these readings. The code necessary to execute this function is available on the WoodenHaptics website for download.
Once the position of each arm is determined, the information is transferred to the Robotic Teaching Simulator C++ object, and is used to calculate the position and orientation of the laryngoscope tool. The trajectory code receives the positional and rotational data and returns forces and torques to steer the laryngoscope back on the expert trajectory. The forces necessary on each arm to produce the input forces and torques are sent to each arm. The WoodenHaptics C++ object reads the data, computes and sends the motors the torques necessary to create the desired force.
Software framework for trajectory tracking
Final Design of Software
The code for this project can be found at https://github.com/RoboticTrainingAdjunct