medical robotics applications & design considerations...

42
Medical Robotics Applications & Design Considerations (Part 1) Dr. James Smith

Upload: doanquynh

Post on 26-Apr-2018

215 views

Category:

Documents


2 download

TRANSCRIPT

Medical RoboticsApplications &

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 sketchesscattered and was forgotten about as an engineer until the1800’s

Built a programmable robotic knight toentertain visitors to a castle.

Built a programmable cart whichcarried 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 withTesla on all patent disputes

He demonstrated robotic radio-controlled boats in1898 at Madison Square Garden

Alan Turing (1912-1954)

• Englishman known as the “father of computer science”

• Invented the idea of a programmable computer (Universal TuringMachine) in 1936

• Built machines to break the German enigma code in WWII

• Proposed the Turing Test to establish whether a machine is intelligentor not in 1950

A turing machine made with Lego Mindstorms RCX

Famous Robots

• Unimate Puma 560– Widely used manipulator

• iRobot’s Roomba– Most successful home

vacuum robot

• Marc Raibert’s Hoppers– First successful running

robots @ MIT & CMU

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– Common

– Clean

– Compact

• Pneumatic– Fast

– Light

– Compressor needed

• Hydraulic– Powerful

– Dirty

– Pump needed

Sensors• 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

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 tothe motor

• Resulting displacementcorresponds to load on motorby the mass.

MotorMass

What is a good spring location?

Applying Hooke’s Law ForceControl: Sensing Motor Load

Motor Voltage & Speed

• Lego motors acceptvoltage commands viasoftware

• The motor speed varieswith applied voltage– Higher voltage batteries

also speed up the motors

• When motor is loadedyou need to apply alarger voltage to getenough current.

Force Control:Generate a Known Force

• Motors produceforces (torques)

• Attach a linear springto the motor shaft

• Send a voltage“command” to motor

• Motor shaft anglecorresponds to thespring force

Haptic Rendering Algorithm

• Collision detection & response

CollisionDetection

CollisionResponse

ObjectDatabase

(Geometry&

Material)

Position & Orientation

Force &Torque

ContactInfo

Design Considerations forRobots 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

Da Vinci Robot

• Teleoperation

– Non-autonomous

• $3000 + in “consumable” parts peroperation

– 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 exploremedical robotics?

It’s within reach!

Medical RobotDevelopment 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 Objectswith Prosthetic Hands

31

LEGO Mindstorms NXT

From:

http://sketchup.google.com/3dwarehouse

Lego Mindstorms NXT Components by paytonrwhite

Manipulating Everyday Objectswith Prosthetic Hands

32

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 / GUIprogramming

– Comes with LegoMindstorms

– Integrated debugging& downloading

– USB & Bluetooth

Manipulating Everyday Objectswith Prosthetic Hands

34

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 Objectswith Prosthetic Hands

35

NXT Buttons

• Centre Button (square)

On/Enter/Run

• Arrow Buttonsleft/right select

• Rectangular ButtonClear/Go Back/ exit

Manipulating Everyday Objectswith Prosthetic Hands

36

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 Objectswith Prosthetic Hands

37

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 Objectswith Prosthetic Hands

38

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 Objectswith Prosthetic Hands

39

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 Objectswith Prosthetic Hands

40

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 Objectswith Prosthetic Hands

41

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

RoboticsCompetition