robotic hand in motion final paper.pdf

Upload: italoblb

Post on 02-Jun-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    1/13

    1

    Robotic Hand in Motion Using Arduino-

    Controlled Servos

    Nicholas Bonini Nithya Iyer

    [email protected] [email protected]

    David Kim Katherine Mathison Lauren [email protected] [email protected] [email protected]

    New Jersey Governors School of Engineering and Technology 2014

    AbstractAmputees often suffer from

    psychological and physical difficulties dueto their inability to use their extremities. Toaid the amputees in acquiring a functionalreplacement hand at a feasible cost, aprototype prosthetic was created utilizingFlexy Hand, a 3D printable hand model, andArduino, an open source microprocessor. Toavoid expensive and frustrating controlmethods associated with myoelectric

    prosthetics, an Android smartphoneapplication allows the user to select agesture that he wishes the hand to perform.The phone sends this information to theArduino, which powers certain servos toactuate each finger individually. The simpleconstruction and low cost of materials, aswell as the use of common devices such assmartphones, enables amputees to gainaccess to new prosthetics with ease.

    1. IntroductionWith 3D printed prosthetics gaining

    popularity with the advent of consumer level3D printers, practical applications of theseprosthetics have also been increasing.Online open source development hasallowed for printable hand models to bedownloaded for free within minutes from

    websites such as Thingiverse, a free, opensource 3D modeling site.

    Contrary to traditional prosthetics,which often cost tens of thousands ofdollars

    1 and are usually unaffordable to

    many, these alternatives provide a relativelyinexpensive option to the public. This allowsfor less expensive, yet effective prostheticsto be available to modern consumers, withincreased personalization for the user at aspeed unachievable by conventional

    methods.Besides cost, another prevalent issue

    in high-level prosthetics is ease of control.The most common control system in use iselectromyography, a medical technique inwhich electrical signals from the remainingmuscles in an amputees forearm are read bya device2 attached to the muscle and aremimicked by the prosthetic. While peoplewithout any functional forearm muscles, andeven those with intact forearm muscles can

    use this approach, electromyography can bedifficult to use and is often imprecise3.Therefore, developing a 3D printable handthat is easy to assemble and control in a non-professional setting with commonplaceproducts such as smartphones is vital for theaverage amputee. Smartphone basedcontrols are more portable and convenient

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    2/13

    2

    than traditional myoelectric or motionsensing control systems.

    Furthermore, the functionality andperformance of consumer level robotichands have advanced significantly in the

    past several years. Developments in the 3Dprinting industry have led to numerousdesigns of modeled hands from users allaround the world, which the public canaccess online. 3D printed prosthetics arefurther advantageous in that they are idealfor children and teenagers; when one handbecomes too small, another can be readilyprinted in a larger size and reintegrated intothe control system4.

    2. Background2.1 3D Printing

    Makerbot Replicator utilizes atechnology called Fused DepositionModeling (FDM), which involves theconstruction of parts in layers using high-grade thermoplastics5. To print a 3D model,an STL file of the design must be exportedinto the printer software. The Makerbot thencreates g-codes that determine a pathway forthe extruder. The extruder is the mobile headof the printer that first melts the filament andthen deposits the molten thermoplastic intothin layers until the model is fully printed.As needed, the 3D printer will providescaffolds for the design that act as supports.These are easily removed at the end6.

    Figure 1: Makerbot Replicator 3D Printer

    The most commonly used filamentsin consumer printing are acrylonitrilebutadiene styrene (ABS) and polylactic acid(PLA) thermoplastics. Each filament has itsown unique characteristics, lending to

    different usages. While ABS is tougher andmore flexible than PLA, due to the nature ofthe plastic, ABS requires a heated bed toprevent the outer layers from curling in orwarping; this guarantees an even distributionof heat to both the outer and inner layers.PLA, however, does not require a heatedbed and is more resistant to substances suchas acetone, which dissolves ABS filament.

    2.2 Arduino

    Arduino is a brand of open-sourcemicrocontrollers frequently used in at-home,do-it-yourself electronics projects7. It canbe programmed in a version of C, and theArduino website contains software forprogramming the device. There are also ahost of straightforward online tutorials thatmake it easy and quick to learn. A variety ofelectronic components can be connected viabreadboard as inputs and outputs for thecode, making Arduinos incrediblyversatile. Arduino microcontrollers areintuitive, inexpensive8, and readilyavailablethree factors critical toaccessible, easy-to-use prosthetics.

    2.3 ServosServos are small but powerful

    motors that can be used in a multitude ofproducts ranging from toy helicopters torobots. A servo consists of three basic parts:an electric motor, a feedback potentiometerthat connects to the output shaft, and acontroller. This allows the servo to rotate tospecific angles by keeping track of itscurrent angular position. The servo iscontrolled via Pulse-Width Modulation, orPWM. The motor aligns the shaft to aspecific angle depending on the duty cycleof the signal that is sent. The ability to

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    3/13

    3

    rotate to a certain position rather than at acertain speed makes servos very useful inprosthetic devices by making very precisemovements through the elimination of thetime variable. Normal DC motors require

    running the motor for a given amount oftime at a certain speed to derive a distance;servos can directly choose a position9.

    2.4 Bluetooth

    Using low-power radio waves,Bluetooth can connect up to eight devicessimultaneously10. Due to its strongconnectivity, this technology is preferredover other wireless communicationtechniques such as infrared networks. To

    achieve this, Bluetooth devices send outvery weak signals, preventing interferencewith other systems. Although this limits therange to about 10 meters, it provides enoughrange for a keyboard, computer, mouse, ordesktop printer. Furthermore, weaktransmissions reduce power consumptionand do not require a direct line of sightbetween the connected devices, allowing theuser to be in a separate room from thesecond device while still maintaining fullfunctionality11.

    2.5 Android Application

    MIT App Inventor 2 is the most idealplatform for developing an app to controlthe hand. This platform is free to use andsimple to learn, even for those with verylittle experience in programming. MIT AppInventor 2 is in the style of a blocks editor:rather than writing lines of code in thetraditional manner, the designer drags anddrops blocks to represent functions andvariables. Every segment of code beginswith a condition given by a when block,and continues with get blocks, or setblockswhat the application will do whenthe when condition is met. Each when,get, and set block is specific to eachcomponent; for example, a button has when

    Button1.Click, a when condition that istrue when the button is clicked12. The fullblock code can be viewed in Appendix B.

    2.6 Myoelectric Prosthetics

    Myoelectric prosthetics generallyweigh anywhere from 400 to 600 grams, canuse a combination of DC motors and servos,and have around 11 joints and 6 degrees offreedom. On the contrary, the human handhas an average weight of 400 g, taking up0.6 percent of the total body weight, and has27 degrees of freedom in terms of fingerfunctionality13. In 2007, results of a surveytaken by myoelectric prosthetic usersshowed that many consumers wanted better

    movement of the thumb, index finger, andwrist. Although they use one of the mostadvanced control methods on the market,new myoelectric devices are not respondingto users complications with fingerfunctionality by only having 6 degrees offreedom14.

    3. Methods/Experimental Design

    3.1 Hand Assembly

    The hand used in the prototype was a3D printed version of the Flexy Hand15. TheSTL file was exported into the Makerbotplatform and directly printed without anyscaling or modification. Taking into accountthe separate parts of the hand, printing tookabout eleven hours. The completed handwas strung with fishing line and a stretcheddisposable pipette. The pipette was used tobreak up any excess material from the 3Dprinting that would hinder the fishing linespath through the interior of the hand andfingers, and to help thread the line throughthe palm of the hand. Each finger was strungwith about two feet of fishing line to ensurethat there would be enough material to reachdown the length of the arm and attach to theservos.

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    4/13

    4

    Molds for the hinge joints (seeFigure 2) were downloaded from Github16and 3D printed.

    Figure 2: 3D Model of Joint Mold

    Various types of silicone were molded intojoints and placed in the joint slots in eachfinger to test their properties. GETMSupreme Silicone was selected to be the

    main material for joint casting. Using acaulk gun and the 3D printed molds, thesilicone was shaped into connectors thatcured in about 24 hours. These were then fitinto slots between each finger segment.

    3.2 Arm AssemblyA PVC pipe with an inner diameter

    of one and a half inches and a length oftwelve inches was used to house the servomotors. Rectangular holes three fourths of

    an inch wide by one and one half incheslong were cut into the PVC in a staggeredpattern down the tube, as shown in Figure 3.The holes were spaced a quarter of an inchapart. Five ! inch round holes were drilledinto the pipe at one end, one for eachfingers control string to enter the pipe andmeet the hand at its center.

    A plastic ring was 3D printed andattached to the end of the pipe withsuperglue in between the 1/8 inch holes andthe servos. The servo motors were placed intheir housing and superglued into place. Thefishing lines were run from the fingersthrough the interior of the PVC tube, out theholes drilled into the tube, through the 3Dprinted ring, and to the servos. They weretied to the prongs on the servos that werepointed directly toward the hand when in the

    zero position. Eyeglass screws were insertedinto the two prongs of each servo to the rightof the prong with the fishing line.

    Figure 3: PVC pipe with a staggered spiral motion

    Holes were drilled into the hand andthe sides of the PVC tube. L-brackets were

    fastened between the hand and the innerpipe by driving screws into these holes andreinforcing the connection with superglue.This holds the hand to the inner tube.

    3.3 CircuitryEach servo has three wires: a power

    wire, a ground wire, and a Pulse-WidthModulation (PWM) wire. The PWM wireenters one of the six PWM ports on theArduino Uno board. The power and ground

    of each servo were attached to the horizontalpositive and negative rows on thebreadboard, which were connected to the 6Vbattery pack. The battery pack housed four1.5V D size batteries. The Bluetoothmodules four pins were plugged intoadjacent columns on the breadboard. Thepower and ground pins connected to their

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    5/13

    5

    own power and ground ports in the Arduino.The other two pins are RXD and TXD, andconnected to the TX and RX ports on theArduino, respectively. These pins told theArduino what commands the phone was

    sending (see Figure 4).

    Figure 4: Arduino Servo Circuit Schematic

    3.4 Arduino ProgrammingThe Arduino was programmed using

    the development environment available onthe Arduino website. The most importantaspect of this projects code was setting theposition of the servos , which determined thefingers movement. The servo library,which contained functions for attaching theservos to pins and setting their angles,established fine control over the servopositioning. The attach() functionassociated a certain pin on the Arduino witheach servo, and the write() function set theangular position of the servo to a value

    between 0 and 180 degrees. The position ofthe servo determined how far the finger thatit controls would bend, with a lower angleleaving the finger more relaxed and a higherangle bending the finger in toward the palmof the hand. Gestures were made by settingeach servo to a specific angle thatcorresponded to how far the finger was bent

    when the hand made this gesture. Initially, apotentiometer was used to manually controlthe position of the fingers, and when eachgesture was made, the angles of the servoswere recorded and later configured as preset

    gestures. In the final design, gestures werecontrolled via an Android applicationconnected by Bluetooth to the Arduinoboard. When a gesture to be performed wasselected in the application, the Arduinoreceived an integer between zero and fiveand used this data to select which gesturefunction to run. The functions set theservos positions to match the data gatheredfor the selected gesture in the manualtests. The full programmed code can be

    viewed in Appendix A.

    3.5 Application DevelopmentThe application for this hand was a

    button-based application with only onescreen (see Figure 5). When a button waspressed for a gesture, one byte number wassent to the Bluetooth module. The Arduinoused this byte as a trigger to run the block ofcode that executes that gesture, setting theservo motors for the corresponding fingersto specific angles. When any button thatresults in a gesture was selected, the othergesture buttons became hidden until thereset button was pressed. Once the handreverted to its initial position, the otherbuttons became available again.

    Figure 5: Menu interface on the Samsung Nexus S

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    6/13

    6

    To connect to Bluetooth, a list pickerfunction was created as a connect toBluetooth button. When this button ispressed, a list of devices that have beenpaired with the phone materializes. Whenthe HC-06 Bluetooth module is selected, theAndroid phone establishes a connection anda green label appears that reads,Connected! This means that the device isready to receive orders from the phone. Ifthe Android phone cannot connect to theBluetooth device, the label appears red andreads, Not connected The applicationautomatically checks the phone forconnectivity every 50 milliseconds andupdates the label to the current status of theBluetooth connection.

    The Samsung Nexus S was selectedas the smartphone to be used with theprototype. To test the application, Androiddrivers were installed to download the apkfile to the phone. Once the drivers wereinstalled, the Android had to be opened as aUSB storage device. The application wasplaced into the phones folder, whichappeared when USB storage mode wasactivated. The file appeared in theapplication folder ES File Explorer on thephones display, where it could be selectedfor installation. Once the application wasinstalled and the phone connected to theBluetooth module, the flashing red light onthe module would stop blinking and stay lit.Once the Bluetooth was connected, eachservo was hooked up to the breadboard oneat a time and tested with the app.

    The second component of testinginvolved the applications performance to

    button response. First we tested how themenus would navigate; each gesture buttonwas pressed in turn and the result wasassessed. Asking random people to comparedifferent color schemes and button layoutssimulated user perception of the application.

    4. Results and Discussion

    4.1 Hand FunctionalityThe fully assembled hand can easily

    perform the everyday gestures of rock,

    paper, scissors, the OK sign, and thumbsup at the push of a button. The user interfaceis simple to use and easy to learn. Theapplication allows the user to control fivedifferent gestures via Bluetooth from anandroid smartphone. The fingers can beconfigured to a variety of gestures due to thestrings that are manipulated by the servos.Also, rubber bands superglued to the back ofthe fingers allow them to snap back intoplace when the servos release the pressure

    (see Figure 6).

    Figure 6: Hand with rubber bands attached

    This entire project can be easily builtwith commonly available materials at a lowcost of $475, and can be programmed usingthe open source Arduino with minimalexperience in programming. A smartphone

    application for controlling the hand can bedesigned by following the tutorials on theMIT App Inventor website. Although thedevice is simple and affordable, it cannotgrab things very easily or respond to stimuli,and it is heavy and bulky. Therefore ourdevice is easily reproducible but not robust.

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    7/13

    7

    4.2 DiscussionNew technological advancements in the

    field of myoelectric prosthetics have led todevelopment of hands with multiple degreesof freedom. Nonetheless, these devices are

    still inadequate in terms of performance,stability, aesthetics, and affordability.Anthropomorphic hands such as iLimbTMand BebionicTM have received mediaattentionyet, they are not as consumerfriendly as advertised.

    The use of servos, rather than DCmotors, in this new prototype proves to be amore viable option when controlling fingerkinematics. Servos are lighter than DCmotors and are more precise. Due to their

    simple, continuous rotation mechanisms, DCmotors are more commonly used inprosthetics, even though servos demonstratea higher degree of accuracy through propercontrol of angular displacement. Servos arealso much easier to program than DCmotors; a DC motors control is dependenton the time the action will take to complete,rather than the motors final position. Withthe use of servos, the time variable iseliminated along with any other factors forpossible error.

    Moreover, most myoelectric prostheticspossess six degrees of freedom in fingermovement as opposed to only five in thisparticular prototype. To negate thisdisadvantage, different hand designs can be3D printed to achieve this sixth degree, theTrapeziometacarpal joint. Because of timeconstraints, this joint was not added to theprototype due to the added complexity in theprogramming and assembly of the hand. Asa result, the fingers cannot move in a lateraldirection, lessening the number of degreesof freedom the prototype has overall. Thisjoint does play an imperative role in thefunctioning of a normal thumb, soalternative designs can be found to ensurethe thumb will be fully utilized. Thedexterity of the average human hand is far

    more intricate with 27 degrees of freedom.This new prototype and even themyoelectric devices are not advancedenough to reach that level, but with newdevelopments in the future, prosthetics could

    eventually replace the lost limb or handentirely.

    4.3 Problems EncounteredAlthough this project met most of its

    initial goals, there were several setbacks inthe process, which hindered overallproductivity. Small errors during handprinting were compounded by stress fromus, causing cracks to appear in thepalm. Acetone was used to soften excess

    ABS filament so that the filament could beplaced inside the cracks for restoration.In the initial tests, the fishing line would

    pass under the servo arms and through thediameter of the rotation. To achievemaximum distance with every rotation, theeyeglass screws were put into the holes inthe servo blades. This kept the lines withinthe circumference of the arms, which islonger than the diameter and could pull thefingers further. Then, the fishing line wouldoften wrap underneath the screws in theservo instead of around them so that the linewas not pulled the full length, preventing thehand from fully closing. To resolve this, aplastic ring was added to the internal pipe inthe arm. The fishing line was threadedthrough holes in the ring at the same heightas the screws.

    Another issue involved the inability ofthe hand to return to its initial restingposition. To correct for this flaw, rubberbands were attached to the back of thefingers. The first set of rubber bands was tooinelastic and prevented the servos frompulling the fingers in toward the palm.However, when the rubber bands werereplaced with longer, thinner elastic bands,the servos had enough power to move thefingers once more. This problem would not

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    8/13

    8

    have arisen had the hinge joints been printedwith strong, flexible nylon. The process formolding and curing silicone joints couldhave been completely avoided.

    Arm assembly also provided challenges:

    the original outer casing of the arm was justbig enough to fit the servos and allow themto function properly (see Figure 7). Carvingholes for the servos in the outer pipealleviated any casing issues.

    Figure 7: Full Hand and Arm Assembly

    One problem encountered during appdevelopment was that the Bluetooth devicewould become disconnected, but the

    connectivity light would stay green. Toremedy this, a clock timer was added toupdate the connectivity lights status every50 milliseconds. The reason the app makesthe user reset the hand before beginninganother gesture is to prevent confusion. Ifmore than one gesture button is pressed, theservos may receive more than one piece ofinformation, ultimately causing them to fail.

    Unfortunately, a system for turning thewrist using a DC motor and sprockets was in

    the initial stages of design, but could not beimplemented as a part of the arm due to timeconstraints.

    5. ConclusionSimple prosthetics have the potential

    to make a measurable impact in anamputees daily life. Since this particularprosthetic is controlled by an Android

    application, its use is straightforward anddoes not carry a steep learning curve, unlikemany of the more advanced prostheticswhich require an inordinate amount of timeto master. Construction and assembly of thehand calls for a short list of materials andtools that are easy to access. With theavailability of this technology, amputeeshave the necessary tools to manufacturetheir own personalized prosthetics that willimprove their quality of life in addition to

    the prevention of the mental degradation thatoftentimes comes with physicaldeformation17.

    The objective of this projectconsisted of the creation of an inexpensive3D-printed robotic prosthetic hand poweredby Arduino that could perform severalgestures. The proof-of-concept prototypeaccomplishes these tasks effectively with aneasy method of control. Severalenhancements to the design would boostfunctionality to the hand. Wrist actuation ofthe hand would prevent the amputee fromhaving to turn his shoulder to properly graspsomething; instead, the app would turn thehand to the desired setting. Further upgradeswould include more gestures and tactilefeedback. A bank of specialized gesturescould be programmed into the app, offeringthe user more flexibility with his fingers.Tactile feedback, on the other hand, wouldalert the amputee to the temperature andtexture of objects, establishing a naturalperception of touch. These ameliorationswould serve to create a product that couldrevolutionize the prosthetics industry.

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    9/13

    9

    6. Acknowledgments

    The authors would like toacknowledge our project mentors, MohitChaudhary, Dr. Kang Li, and Dr. WilliamCraelius for all of their help and guidance in

    planning and building our project, and ourassistant project mentor, Julian Hsu, for hisassistance in designing the Android app. Wewould also like to thank our RTA, Mary PatReiter, for her assistance with this paper,Director Dean Jean Patrick Antoine, and allour GSET sponsors for their support:Rutgers University; The State of NewJersey; Morgan Stanley; Lockheed Martin;Silverline Windows; South JerseyIndustries, Inc.; The Provident Bank

    Foundation; and Novo Nordisk. We wouldalso like to thank Steve Wood for his 3Dmodel of the Flexy Hand. Without thegenerous help and donation of these peopleand companies, our project would not havebeen possible. Our team expresses muchgratitude to everyone who contributed to thisproject.

    7. Notes:1W. Craelius, K. Li, I. Ali, A. Alvi, E. Chu,K. Lin, S. Nazare, N. Plichta, TranshumeralProsthesis with a Dexterous Hand, pp. 1-3,(unpublished).

    2Myoelectric Prosthetics 101, Ottobock,

    (19 July2014).

    3Joseph T. Belter, Jacob L. Segil, Aaron M.Dollar, Richard F. Weir, Mechanical designand performance specifications ofanthropomorphic prosthetic hands: Areview, JRRD, 50, p. 611, 2013.

    4John Hopkins and e-NABLE,Enablingthe Future, 17 July 2014,

    (19 July 2014).

    5FDM Thermoplastics, Stratasys,

    (19 July 2014).6Annelise, MakerBotting 101 - How Does ItWork,MakerBot, January 10, 2012, (23July 2014)

    7Frequently Asked Questions,Arduino, (19 July2014).

    8Arduino Uno-R3, Sparkfun, (19 July 2014).9Whats A Servo?, Seattle RoboticsSociety, (19 July 2014).

    10How It Works,Bluetooth, (19 July 2014).11How Bluetooth cuts the cord,TechTarget, March 2005,(19 July 2014).

    12MIT App Inventor,

    (19July 2014).

    13Pylatiuk C., Schulz S., Dderlein L.,Results of an Internet survey of myoelectricprosthetic hand users,PubMed, Dec. 2007, (19 July 2014).

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    10/13

    10

    14Flexy Hand, Thingiverse,(19 July 2014).

    15Flexy-Joint, GitHub,

    (19 July 2014).

    16Coping with Your Amputation, CapitalHealth,

    (19 July 2014)

    17

    Joseph T. Belter, Jacob L. Segil, Aaron M.Dollar, Richard F. Weir, Mechanical designand performance specifications ofanthropomorphic prosthetic hands: Areview, JRRD, 50, pp. 599-606, 611, 2013.

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    11/13

    1

    8. Appendix

    8.1 Appendix A: Arduino Code

    #include //Import servolibrary

    Servo thumb; //Initializefinger servosServo index;Servo middle;Servo ring;Servo pinky;

    byte serialA; //Input fromapp

    void reset() { //Resetsfingers to a naturalthumb.write(30); //relaxed

    positionindex.write(30);middle.write(30);ring.write(30);pinky.write(30);}

    void setup() {thumb.attach(3); //Sets eachservo to a pinindex.attach(5);middle.attach(6);ring.attach(9);pinky.attach(10);

    reset();Serial.begin(9600); //Can receiveinput via BT}

    /*void jelly() {//Jellyfish handfor(int i=0;i0;i--) {

    thumb.write(i);index.write(i);middle.write(i);ring.write(i);pinky.write(i);delay(8);

    }}*/

    void rock(){ //RPS rockthumb.write(180);

    index.write(180);middle.write(180);ring.write(180);pinky.write(180);

    }

    void paper() { //RPS paperthumb.write(0);index.write(0);middle.write(0);ring.write(0);pinky.write(0);}

    void scissors(){ //RPS scissorsthumb.write(180);index.write(0);middle.write(0);ring.write(180);pinky.write(180);}

    void thumbsUp() { //Thumbs upgesturethumb.write(0);index.write(180);middle.write(180);ring.write(180);pinky.write(180);}

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    12/13

    2

    void okay() { //Okay signthumb.write(60);index.write(150);middle.write(0);

    ring.write(0);pinky.write(0);}

    void loop() {if (Serial.available() > 0) { //Read valuefrom app via BT

    serialA = Serial.read();Serial.println(serialA);

    }switch(serialA) { //Input

    determines gesturecase 0:reset();

    break;case 1:

    rock();break;

    case 2:

    paper();break;case 3:

    scissors();break;

    case 4:thumbsUp();break;

    case 5:okay();break;

    }}

    8.2 Appendix B: MIT App Inventor Code

  • 8/11/2019 Robotic Hand in Motion Final Paper.pdf

    13/13

    2