Medical Robotics Applications &
Design Considerations (Part 1)
Dr. James Smith
A Short History of Robotics
Abu Al-Jazari (1136-1206) • Arabic scholar during the Islamic Golden Age. • Invented the crank-shaft and connecting rod • Invented an escapement mechanism and cogged gears – allowing
machines to be programmed • Called the “Father of Modern Engineering” and the “Father of Robotics”
A hydropowered water-raising machine
A valve-operated reciprocating suction piston pump
The elephant clock
Programmable humanoid robots.
Leonardo Da Vinci (1492-1519)
• Was an artist and military during the Italian Renaissance. • Designed and built programmable “automata”. • After his death his works were destroyed and sketches
scattered and was forgotten about as an engineer until the 1800’s
Built a programmable robotic knight to entertain visitors to a castle.
Built a programmable cart which carried a robotic lion that entertained
guests at a party.
Nikola Tesla (1856-1943) • Serbian who emigrated to the U.S. at 28 • Invented AC electricity generation, AC transmission,
AC motors, and radio. • “The man who invented the twentieth century” • Many people credited Marconi and Edison with many
of Tesla’s inventions (because he was not American) but the U.S. Supreme Court eventually sided with Tesla on all patent disputes
He demonstrated robotic radio-controlled boats in 1898 at Madison Square Garden
Famous Robots
• Unimate Puma 560 – Widely used manipulator
• iRobot’s Roomba – Most successful home
vacuum robot • Boston Dynamics
– Big Dog – Cheetah – PETMAN
Robot Manipulators
Electromechanical Arms
• Mech. Linkages • Motors
– Electrical – Pneumatic – Hydraulic
• Sensors – Angle – Vision – Force – Etc.
Mechanical Linkages: Kinematics
• Kinematic chains • Know lengths • Track angles • Need linear algebra
& matrices! – MTH 141 – PCS 211
Actuation Types • Electrical (EES612)
– Common – Clean – Compact
• Pneumatic – Fast – Light – Compressor needed
• Hydraulic – Powerful – Dirty – Pump needed
Sensors • EES 604 & 674 • Angle
– Potentiometers – Incremental Encoders
• Velocity – Tachometer – Derivative of Angle
• Force – Accelerometers – Strain Gauges
Sensors
• Ultrasound – Motion (Doppler) – Range (ToF)
• Vision – Visible – “Invisible”
• Electromagnetics – EMG – EKG – EES 674
3D Visual Target Tracking
Important Concepts
• Physical concepts – Hooke’s Law – Newton’s Second Law – Motor and Load interaction
Hooke’s Law • Force in a spring (F)
– Proportional to change in length (∆l) – Spring constant: k
€
F = k ⋅ Δl
• Don’t apply voltage to motor • Apply an unknown mass to
the motor • Resulting displacement
corresponds to load on motor by the mass.
Motor Mass
What is a good spring location?
Applying Hooke’s Law Force Control: Sensing Motor Load
Motor Voltage & Speed
Motor Speed vs. Voltage
0
100
200
300
0 5 10
Applied Voltage (Volts)
Mo
tor S
haft
Sp
eed
(R
PM
)
• Lego motors accept voltage commands via software
• The motor speed varies with applied voltage – Higher voltage batteries
also speed up the motors • When motor is loaded
you need to apply a larger voltage to get enough current.
Force Control: Generate a Known Force
• Motors produce forces (torques)
• Attach a linear spring to the motor shaft
• Send a voltage “command” to motor
• Motor shaft angle corresponds to the spring force
Haptic Rendering Algorithm • Collision detection & response
Collision Detection
Collision Response
Object Database
(Geometry &
Material)
Position & Orientation
Force & Torque
Contact Info
Design Considerations for Robots in Medicine
System Selection
• Function • Safety • User Interface • Cost
Categories
• Manipulation type – Teleoperation – Autonomous
• Control Mode – Admittance
• Measure force & produce displacement
– Impedance • Measure displacement & produce force
Robots in Surgery
• 1985 - Puma 560 – Needle in brain biopsy
• 1992 - Robodoc – Milling in femur for hip replacement
• 2000 - da Vinci Surgical System – Laparoscopic procedures"– Cardiac valve repair & others – St. Mike’s has one
Da Vinci Robot
• Teleoperation – Non-autonomous
• $3000 + in “consumable” parts per operation – Very expensive
Surgical Robotics in Action
Surgical Robots in Action
Haptics: Enhancing Surgical Robots
• Relating to sense of touch • As opposed to optic (sight) • Why?
– Simulation – Human performance studies
How can YOU explore medical robotics?
It’s within reach!
Medical Robot Development Process
• Identification of pathology or ablation – What needs fixing?
• Identification of affordable technology – What motors and sensors? At what cost?
• Determine level of functional replacement – What is possible? – Keep it simple & effective!
• Risk evaluation – Never underestimate what can go wrong! – Failures always occur. What is the acceptable risk level?
• Prototype device, test & start again • Test on larger population set • International certification • Manufacture & distribute device • Long process: up to 15 years!
– Otto-Bock C-leg development began in the 1980s; released in 1999
Start
End
Manufacture
Prototype
Test
Commercial Toolkits
• Commercial Off-the-Shelf – Cheap ($300 - $700) – Easy to obtain – Refined user interfaces
• Examples – Lego Mindstorms – Vex – Fischer Technik
Manipulating Everyday Objects with Prosthetic Hands
30
LEGO Mindstorms NXT
From: http://sketchup.google.com/3dwarehouse Lego Mindstorms NXT Components by paytonrwhite
Manipulating Everyday Objects with Prosthetic Hands
31
NXT BRICK • 32-bit ARM Processor - 256 KB Flash
- 64 KB RAM • 4 button user interface • 100 x 64 LCD Display • Speaker • A/B/C Output Ports – Motors • 1/2/3/4 Input Ports – Sensors • USB download interface
NXT Programming: Option 1 • NXT-G
– Visual / GUI programming
– Comes with Lego Mindstorms
– Integrated debugging & downloading
– USB & Bluetooth
Manipulating Everyday Objects with Prosthetic Hands
33
NXT Programming: Option 2 • C-like progamming language
– Harder, but more powerful & flexible than NXT-G • Use Bricx interface in Windows or Text Editor in Unix
– http://bricxcc.sourceforge.net • Use “Not eXactly C” compiler
– http://bricxcc.sourceforge.net/nbc/nxcdoc/NXC_Guide.pdf • NXT Brick executes resulting “Byte Code” (NBC)
– http://bricxcc.sourceforge.net/nbc
• Download programs using USB - linxt (Linux) or BricxCC (Windows)
Manipulating Everyday Objects with Prosthetic Hands
34
NXT Buttons • Centre Button (square)
On/Enter/Run • Arrow Buttons
left/right select • Rectangular Button
Clear/Go Back/ exit
Manipulating Everyday Objects with Prosthetic Hands
35
Not eXactly C Program: btn.nxc
// NXC LCD Button Demo // Task main() { Int count = 0; TextOut(0,LCD_LINE1,”LCD > ButtonDemo”); while(count < 5) { count = ButtonCount(BTNRIGHT,false); NumOut(0,LCD_LINE2,count); } }
Manipulating Everyday Objects with Prosthetic Hands
36
Compile – Upload – Run File NXCdefs.h must be in the directory
• Compile: nbc –I=. btn.nxc -O=btn.rxe • Upload: linxt –u btn.rxe • Run: My Files/Software Files/btn
Manipulating Everyday Objects with Prosthetic Hands
37
NXT Sensors • Ultrasonic Sensor - detect objects - measure distance to object • Touch Sensor - touch / no touch (on/off) • Light Sensor - distinguish light/dark - measure light intensity • Sound Sensor - ~3 – 6 KHz - measure sound level (dB/dBA)
Manipulating Everyday Objects with Prosthetic Hands
38
NXT Servo Motor • Connect to Outputs A/B/C • Built-in rotation sensor - Measure angle - Measure # of rotations - Motor may be off • Continuous rotation - Fwd/Rev Power/Speed • Rotate (Servo Mode) - Fwd/Rev # of degrees - PID control
Manipulating Everyday Objects with Prosthetic Hands
39
NXT View – Test Sensors • Sensors connect to inputs 1/2/3/4 • NXT program “View” used to test sensors • Select View / Sensor Type / Run - Use to verify sensor operation - Display sensor measurement value
• Motors connect to outputs A/B/C • Motors include a rotation sensor - Display motor rotation angle - Display # of rotations
Manipulating Everyday Objects with Prosthetic Hands
40
NXC Documentation / Examples
• Next Byte Codes & Not eXactly C – http://bricxcc.sourceforge.net/nbc
• NXC documentation – Programmers guide – http://bricxcc.sourceforge.net/nbc/nxcdoc
• NXC Examples – http://bricxcc.sourceforge.net/nbc/nxcsamples – see: nxcsamples.zip
Robotics Competition
Alan Turing (1912-1954) • Englishman known as the “father of computer science” • Invented the idea of a programmable computer (Universal Turing
Machine) in 1936 • Built machines to break the German enigma code in WWII • Proposed the Turing Test to establish whether a machine is intelligent
or not in 1950
A turing machine made with Lego Mindstorms RCX