Problem – At the beginning of the project there was a robotic frame with two mobile robotic arms, but a static shell for the head. Need – The head needs to be capable of showing human-like facial emotions and movements. › Smile, frown, frustration, etc; › Tilt and pan the head, eyes.
Provided by Isaak Moody
F Req#001 – The head shall move front to back within a 90° arc of motion with a velocity that will be equivalent to 90° per second F Req#002 – The head shall move left to right within a 90° arc of motion with a velocity that will be equivalent to 90° per second. F Req#003 – Mouth motions shall be handled by two servos, with a 180 degree arc of motion. F Req#004 – Eyebrows shall be handled by a single servo, with a 180 degree arc of motion. F Req#005 – A camera shall be implemented within the head or body to provide visual feedback for processing by the operator. F Req#006 – The eyes shall be able to move on two axes, with a 30 degree arc in each direction.
NF Req#001 – The head shall look clean and nonthreatening, while retaining human-like attributes. NF Req#002 – API shall be done within C#. Interfaces will be done in C#. NF Req#003 – Movement of the head shall be smooth and well transitioned. NF Req#004 – Motors shall be quiet and not distracting. NF Req#005 – API shall follow format of existing arm API. NF Req#006 – The microcontroller board shall be connected to our PC via serial or USB. NF Req#007 – Servo wiring shall be twisted pair to maintain low noise emission.
User-directed scripting for robot animations. › Record and playback scripts Manually adjust each facial and neck part. Adjust hardware related options.
To create animations for head To create a clean, easy to understand interface To create a stable interface with: › Proper error reporting › Feedback for the user › Crash acknowledgement
Technical: › Servo controller/motor malfunction. › Difficulties integrating serial interface. Financial: › Parts may exceed small budget. › Loss/denied funding for project/parts. Schedule: › Shipping delays › Course work delays project tasks Customer Acceptance › Not pleased with result/design and documentation › Solution might exceed budget
Specific to the design of our head, there are few similar projects. › MIT Mobile/Dexterous/Social “MDS” Nexi Leonardo Kismet › Philips Research iCat › University of Hertfordshire KASPAR
Two servos 0-180º < 1 second Two degrees of freedom Fits inside space provided on the chassis Supports up to 4kg Price: $299.88
Operating Voltage: Volts Operating Speed (6.0V): 0.16sec/60° at no load Stall Torque (6.0V): oz/in. (4.1kg.cm) Current Drain (6.0V): 8.8mA/idle and 180mA no load operating Dead Band Width: 8usec Motor Type: 3 Pole Ferrite Bearing Type: Dual Ball Bearing Gear Type: Nylon Weight: 1.6oz (45.5g)) Price: $15.00
Operating Voltage Range: Volts Operating Speed (6.0V): 0.15 sec/60° at no load Stall Torque (6.0V): 333oz/in. (24kg.cm) Idle Current Drain (6.0V): 3mA at stop Current Drain (6.0V): 240mA/idle and 3.0 amps at lock/stall Dead Band Width: 2usec Motor Type: Coreless Carbon Brush Bearing Type: Dual Ball Bearing MR106 Gear Type: Titanium Gears Dimensions: 40 x 20 x 37mm Weight: 2.29oz (65g) Price: $115.00
Operating Voltage Range: 4.8V to 6.0V Operating Speed (6.0V): 0.11sec / 60 deg Stall Torque (6.0V): 7.4kg / 112oz Bearing Type: Dual Ball Bearing Gear Type: Metal Dimensions: 42.0 x 21.5 x 22 Weight: 32.0g / 1.12oz Price: $20.00
Operating Voltage: Volts Operating Speed (6.0V): 0.09sec/60° at no load Stall Torque (6.0V): 23.5 oz/in. (1.7kg.cm) Motor Type: 3 Pole Ferrite Bearing Type: Top Ball Bearing Gear Type: All Nylon Gears Dimensions: 21.8 x 11 x 19.8mm Weight:.27oz. (7.8g) Price: $14.00 each
Max packet size: 59 bytes Max control rate: 15 instructions / second 74% available bandwidth used worst case 1 to 8 servos per board with 8-bit resolution <1° of servo position precision resolution Servo port can be reconfigured for digital output to drive on/off devices. Dimensions: 1.4 in X 1.7 in Price: $80.00
Video capture : › Up to 640 x 480 pixels (VGA CCD) Still image capture : › Up to 1280 x 960 pixels, 1.3 megapixels Frame rate : › Up to 30 frames per second Price: $50.00
Servos › Function Generator › Oscilloscope › Bench-Top DC Power Supply Microcontroller Board › Oscilloscope › Computer with serial connection › HyperTerminal Communication Software › Bench-Top DC Power Supply Power Supply › Bench-Top Multimeter › Bench-Top DC Power Supply
Software tools to allow for interaction with robotic head › RS-232 Instructions Broad library › Easy to develop scripts › Implementation Written in C#
Broad functions that allow for full movement control › Each servo is controlled and receives feedback from microcontroller. Descriptive functions › Anticipate future changes › Easy to read and use Command hierarchy › Reduce redundant code › Stable functions › Easy to create new functions.
Robot Head class › Provides functions for controlling each servo (face, eyes, neck) Graphical User Interface › Allow script building Listbox – easy to manage and build scripts Building facial positions (eyebrows and mouth) › Interface with controller Allow for direct control of head Mapping buttons to face emotions
Unit Testing: › Test each software component. › Ensure each component works to design. Software System Testing: › Manual test using HyperTerminal › Ensure system works to design. User Validation › Ensures design overall correctness.
Simulations run as head was constructed Several prototype versions › Plastic pieces not built to spec › Client’s desire to change final details
Head can operated for 4+ hours No program crashing in 4+ hours of continuous use No overheating during 4+ hours Some jitter still present in the eye tray When head reaches outer bounds, servos start to rubberband
Final Builds Complications & Conclusions Future Work
Servos › Overheating › Stalling out › Jumping gears Plastic › Not printed to spec Software › Cross-communication between microcontrollers › Communication blocking during transmission to serial board