Iowa State University
Design Report
Senior Design Team May09-11
Humanoid Robot Head
College of Engineering
Department of Electrical and Computer Engineering
Advisor/Client / Alex Stoytchev
Team Leader / Dan Potratz
Communication Coordinator / Andrew Taylor
Members / Cody Genkinger
Tim Meer
Jason Pollard

1Disclaimer...... 6

2Problem/Needs Statements

2.1Problem Statement

2.2Needs Statement

3Concept, CAD and Final Design

3.1Client Concept

3.2CAD Designs

4System Design

4.1Requirements

4.1.1Functional Requirements

4.1.2Nonfunctional Requirements

4.2Functional Decomposition

4.3System Analysis

5Hardware Specification

5.1Microcontroller

5.1.1Overview

5.1.2Qualifications

5.1.2.1Selection

5.1.2.2Specifications

5.1.3Timing Diagram

5.1.4I/O Pins

5.1.5Electrical Layout

5.1.6Electrical Schematic

5.2Servomotors

5.2.1Overview

5.2.2Comparison

5.2.3Qualifications

5.2.3.1System Requirements

5.2.3.2Specifications

5.2.4Mechanical Schematic

5.3Neck Servomotors

5.3.1Overview

5.3.2Qualifications

5.3.2.1System Requirements

5.3.2.2Specifications

6Hardware Testing

6.1Pulse Width Modulation

6.2Microcontroller

6.2.1Overview

6.2.2Test Procedure

6.2.2.1Phase 1: Functionality

6.2.2.2Phase 2: System Integration

6.3Servomotors

6.3.1Overview

6.3.2Test Procedure

6.3.2.1Phase 1: Functionality

6.3.2.2Phase 2: System Integration

6.4Power Supply

6.4.1Overview

6.4.2Test Procedure

6.4.2.1Phase 1: Initial Requirements

6.4.2.2Phase 2: Implementation and Under Load

6.5Frame

6.5.1Overview

6.5.2Test Procedure

7Software Specification

7.1Introduction

7.1.1Purpose

7.1.2Scope

7.1.3Definitions, acronyms, abbreviations

7.1.4References

7.2Overall Description

7.2.1Product Perspective

7.2.1.1Concept of Operations

7.2.1.2Major User Interfaces

7.2.1.3Hardware Interfaces

7.2.1.4Communication Interfaces

7.2.1.5Hyperterminal Commands & Servo Relations

7.2.2User Characteristics

7.2.3Constraints

7.2.4Assumptions and Dependencies

7.3Specific Requirements

7.3.1External Interface Requirements

7.3.1.1User Interfaces

7.3.1.2Hardware Interfaces

7.3.1.3Communications Interfaces

7.3.2Features

7.3.2.1Select Communication Port

7.3.2.2Clear Sent Commands

7.3.2.3Receive Feedback

7.3.2.4Set Sampling Rate

7.3.2.5Rotate Head

7.3.2.6Tilt Head

7.3.2.7Move Left Brow

7.3.2.8Move Right Brow

7.3.2.9Move left/right Mouth

7.3.2.10Tilt Eyes

7.3.2.11Rotate Eyes

7.3.2.12Set Neutral

8Software Test

8.1External Interface Requirements

8.1.1User Interfaces

8.1.2Hardware Interfaces

8.1.3Communications Interfaces

8.2LIBRARY Test

8.3GUI Test

9User Interface Specification

9.1Introduction

9.1.1Purpose

9.1.2Scope

9.1.3Definitions, acronyms, abbreviations

9.2Overall Description

9.2.1Product Perspective

9.2.1.1Concept of Operations

9.2.1.2Major User Interfaces

9.2.1.3Hardware Interfaces

9.2.1.4Communication Interfaces

9.2.2User Characteristics

9.2.3Constraints

9.2.4Assumptions and Dependencies

9.3Specific Requirements

9.3.1External Interface Requirements

9.3.1.1Hardware Interfaces

9.3.1.2Communications Interfaces

9.3.2Features

9.3.2.1File Option: Save Script

9.3.2.2Tool Option: Select Communication Port

9.3.2.3Interface Element: Create Face Script

9.3.2.4Interface Element: Create .csv Script

9.3.2.5Interface Element: Add button

9.3.2.6Interface Element: Remove button

9.3.2.7Interface Element: Add Delay button

9.3.2.8Interface Element: Insert button

9.3.2.9Interface Element: Merge Scripts button

9.3.2.10Interface Element: Clear List button

9.3.2.11Interface Element: Play List button

9.3.2.12Interface Element: Loop List button

10Design Documents

10.1Overview

10.2Mechanical CAD

10.2.1Eye Tray

10.2.2Helmet

10.2.3Assembled Head

10.3Electrical CAD

10.3.1Electrical Connections Diagram

11Appendix A

1Disclaimer

This document was developed as part of the requirements of an electrical and computer engineering course at Iowa State University, Ames, Iowa. The document does not constitute a professional engineering design or a professional land surveying document. Although the information is intended to be accurate, the associated students, faculty, and Iowa State University make no claims, promises, or guarantees about the accuracy, completeness, quality, or adequacy of the information. Document users shall ensure that any such use does not violate any laws with regard to professional licensing and certification requirements. Such use includes any work resulting from this student-prepared document that is required to be under the responsible charge of a licensed engineer or surveyor. This document is copyrighted by the students who produced the document and the associated faculty advisors. No part may be reproduced without the written permission of the senior design course coordinator.

May09-11 Design ReportPage 1

2Problem/Needs Statements

2.1Problem Statement

Currently, Dr. Alexander Stoytchev of the Electrical/Computer Engineering Department of Iowa State University is working on assembling a humanoid robot. There is currently a pair of robotic arms that are fully functional, but lacking the means of showing emotion and fully interacting with humans.

Our funding consists of $150 provided by the Senior Design Program with larger purchases being financed by Dr. Stoytchev. Using this budget, we have two semesters to completely finish this project. All work was done by the five members of our senior design team, with direction provided by Dr. Stoytchev and additional interdisciplinary assistance.

2.2Needs Statement

Client: Our client is Dr. Alexander Stoytchevis an associate professor who works in the Human Robot Interaction department at Iowa State University.

Need: The need is for a humanoid robotic head that can be incorporated into the existing two-arm assembly. The main purpose of the head is to display emotion and make the robot more human-like.

Goal: It is our intention to create a robotic head and neck with the ability to display human-like emotions using a mouth, eyebrows, and head position. The device will incorporate a camera and microphone for environment interaction.

Approach: We have already begun research on servo motors and control systems that will fulfill the needs and requirements of this project. We hope to prototype the robotic head and develop our control protocol this semester and address any issues that may arise.

3Concept, CAD and Final Design

3.1Client Concept

Following are an artist’s renditions of the robotic head we used as a reference. Our final design is fairly consistent with these images.

3.2CAD Designs

May09-11 Design ReportPage 1

4System Design

4.1Requirements

4.1.1Functional Requirements

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.

4.1.2Nonfunctional Requirements

NF Req#001 – The head shall look clean and nonthreatening, while retaining human-like attributes.

NF Req#002 – API shall be done within C/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.

4.2Functional Decomposition

This chartdeconstructs how the robot head will function. User sends script through the user interface to the program library, which sends the signals to the micro-controller. From there, each servo is operated separately.

4.3System Analysis

  1. A single RS-232 Servo Controller will handle all pulse width control signals to all eight servos.
  2. A power supply will have enough power for all servos and controller.
  3. Programming will provide user communication to controller.

5Hardware Specification

5.1Microcontroller

5.1.1Overview

The microcontroller must be accurate, fast, and have the ability to control up to seven servomotors simultaneously, or near simultaneously. It also needs to be able to interface over a serial connection.

5.1.2Qualifications

5.1.2.1Selection

The PV203 Servo Motor Controller Board developed by Pontech was selected based on its performance against similar models and recommendations from other customers who have used the board to great effect without complications.

5.1.2.2Specifications
  • 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.
  • Interface to PC through RS232 Serial port (2400 to 19200 baud).
  • User definable board ID number (allowing multiple boards to share same serial line).
  • 5-Ch, 8-bit A/D input port for reading 0 - 5 Volts. (Control servo positions via Joystick/Pot)
  • Dimensions: 1.4 in X 1.7 in
  • Servo Connectors: 3 pin J-type connectors.
  • Power supply: 7V-15V

5.1.3Timing Diagram

5.1.4I/O Pins

5.1.5Electrical Layout

5.1.6Electrical Schematic

5.2Servomotors

5.2.1Overview

The facial servomotors will only be driving small loads that epitomize various facial features—namely the mouth, eyes and eyebrows—so considerations were diverted from power and torque to speed and noise. The size of the servomotor is also important, since there is a limited amount of free space inside the head. The weight between each of the servos is negligible, and only marginally affects the servomotors that drive the neck apparatus.

5.2.2Comparison

Face Microservo Comparison
Model Number / Futaba S3114 / Futaba S3135 / Hi-Tec HS-55 / Hi-Tec HS-56B / Hi-Tec HS-81
Voltage (V) / 4.8-6.0 / 4.8-6.0 / 4.8-6.0 / 4.8-6.0 / 4.8-6.0
Speed (sec/60°) / 0.09 / 0.13 / 0.14 / 0.10 / 0.09
Volume (mm3) / 4748 / 8700 / 6348 / 6624 / 10585
Gear Type / Nylon / Metal / Nylon / Karbonite / Nylon
Bearing Type / Ball Bearing / Ball Bearing / None / Ball Bearing / None
Cost (USD) / $14 / $50 / $14 / $25 / $17.50

5.2.3Qualifications

5.2.3.1System Requirements

F Req#004 – Mouth motions shall be handled by two servos, with a 180 degree arc of motion.

F Req#005 – Eyebrows shall each be handled by a single servo, with a 180 degree arc of motion.

F Req#008 – The eyes shall be able to move on two axes, with a 30 degree arc in each direction.

NF Req#004 – Motors shall be quiet and not distracting.

5.2.3.2Specifications

As shown above, the Futaba S3114 is the smallest and the fastest, making it the superior servomotor. As such this is the servo we have selected to use inside the face. Below are the complete specifications for the servomotor.

Control System:+Pulse Width Control 1520usec Neutral
Required Pulse: 3-5 Volt Peak to Peak Square Wave
Operating Voltage: 4.8-6.0 Volts
Operating Temperature Range: -20 to +60 Degree C
Operating Speed (4.8V): 0.10sec/60 degrees at no load
Operating Speed (6.0V):0.09sec/60 degrees at no load
Stall Torque (4.8V): 20.8 oz/in. (1.5kg.cm)
Stall Torque (6.0V):23.5 oz/in. (1.7kg.cm)
Operating Angle: 45 Deg. one side pulse traveling 400usec
360 Modifiable: No
Direction: Counter Clockwise/Pulse Traveling 1520-1900usec
Motor Type: 3 Pole Ferrite
Potentiometer Drive: Indirect Drive
Bearing Type: Top Ball Bearing
Gear Type: All Nylon Gears
Connector Wire Length: 12"
Dimensions: .86" x 0.43"x .78" (21.8 x 11 x 19.8mm)
Weight: .27oz. (7.8g)

5.2.4Mechanical Schematic

5.3Neck Servomotors

5.3.1Overview

The neck servomotors will be driving the three degrees of freedom for the neck (pitch, pan and tilt). The important factors for the servos are that they can move from 0-180 degrees in less than a second, as well as easily fit inside the space provided on the chassis and support the weight of the head.

5.3.2Qualifications

5.3.2.1System Requirements

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.

NF Req#003 – Movement of the head shall be smooth and well transitioned.

NF Req#004 –Motors shall be quiet and not distracting.

5.3.2.2Specifications

The HiTec HS-645MG is a superior servomotor which fits in the required chassis. As such this is the servo we have selected to use inside the face. Below are the complete specifications for the servomotor.

Control System:+Pulse Width Control 1500usec Neutral
Required Pulse: 3-5 Volt Peak to Peak Square Wave
Operating Voltage: 4.8-6.0 Volts
Operating Temperature Range: -20 to +60 Degree C
Operating Speed (4.8V): 0.24sec/60 degrees at no load
Operating Speed (6.0V):0.20sec/60 degrees at no load
Stall Torque (4.8V): 106.93 oz/in. (7.7kg.cm)
Stall Torque (6.0V):133.31 oz/in. (9.6kg.cm)
Operating Angle: 45 Deg. one side pulse traveling 400usec
360 Modifiable: Yes
Direction: Clockwise/Pulse Traveling 1500-1900usec
Motor Type: 3 Pole Ferrite
Potentiometer Drive: Indirect Drive
Bearing Type: Dual Ball Bearing
Gear Type: 3 Nylon Gears and 1 Resin Metal Gear
Connector Wire Length: 11.81" (300mm)
Dimensions: 40.6 x 19.8 x 37.8mm
Weight: 1.94oz. (55.2g)

6Hardware Testing

6.1Pulse Width Modulation

Pulse width modulation is the fundamental and industry wide standard for servomotor control. This protocol operates by varying the duty cycle of a control signal square wave. While the spacing between the rising slope of the pulses (period) remains constant, the amount of time that the signal is at its high level is changed. See the diagram below.

In the realm of servo control, there is a linear relationship between the width of the positive pulse and the position of the servo. For example, while the width is 1500 μsec, the servo would be at its maximum position counterclockwise. As the pulse is made longer, the servomotor moves clockwise until it reaches its max position in that direction at 1900 μsec. In our case the microcontroller board is capable of defining 254 intermediary positions in this 400 μsec range, resulting in excellent position resolution.

6.2Microcontroller

6.2.1Overview

The Pontech SV 203 servo controller board is the most complicated hardware component in this project. It gives us the ability to simultaneously control all head and face servos with a single serial connection. The main point that needs to be tested for this device is that it has not been damaged during shipping and that it is fully functional. There will also be a large portion of software testing related to the microcontroller at which time we will verify our ability to fully control its servo output from a computer terminal.

6.2.2Test Procedure

6.2.2.1Phase 1: Functionality

For the first round of tests on the microcontroller, we will supply the device with power from a bench-top DC power supply. With the servo control signal will be connected to an oscilloscope and we will check to signal for the correct voltage, pulse width, and frequency as outlined below. We will also verify that the board is within the manufacturer defined power consumption limits.

Signal Requirements:

  • Voltage – 0 VDC (Off state), 3-5 VDC (On state)
  • Pulse Width – 0.6 msec – 2.4 msec possible (1.5 msec – 1.9 msec used for selected servos)
  • Frequency – 14 msec – 20 msec (variability due to pulse width modulation)

Power Consumption Requirements:

  • Power – < 1.8 W (< 300 mA @ 6 VDC)
6.2.2.2Phase 2: System Integration

For phase 2 of microcontroller testing, we will be using selected servos as well as the AC-DC power supply and regulator circuit as part of a partial system mockup. An ammeter will be hooked up in series with the power supply so that we can monitor power usage. Using a serial connection and Windows HyperTerminal software, we will test for servo control according to the following specifications.

Board Control:

  • Range of Motion – Move a servo throughout its full range
  • Speed – Speed of movement must be variable
  • Multiple Commands – Control multiple servos simultaneously

Power Consumption Requirements:

  • Power – < 300 mA (Corresponding to < 1.8 W from phase 1)

May09-11 Design ReportPage 1

6.3Servomotors

6.3.1Overview

We must test the each servo prior to implementation to ensure functionality and reduce the risk of component failure. This process will consist of three phases: functionality, integration, and load testing. In addition to the electrical and mechanical tests described below, we will also give a close visual examination upon receiving these parts to verify that they are in good working condition prior to using them.

6.3.2Test Procedure

6.3.2.1Phase 1: Functionality

We will be checking range of motion, speed of movement, and power consumption as outlined below. This will ensure that these servos will in fact be able to fulfill the functional requirements set forth in our project plan. For these tests, we hook up the function generator to the signal pin of each servo individually. Using a square wave (max=5VDC, min=0VDC) we will vary the pulse width, checking for the corresponding movement of the servo. We will also check the unloaded power consumption of each device using the bench-top power supply.

Servo Motion Requirements:

  • Speed of Motion – 90°/sec
  • Range of Motion(neck) – 90°
  • Range of Motion(face) – 180°

Control Signal/Position Relationship:

  • Minimum Position – @ 1520 μsec
  • Maximum Position – @ 1900 μsec
  • Center Position – @ 1710 μsec

Power Consumption Requirements (Unloaded):

  • Neck – < 450 mA
  • Face – No manufacturer specification, expected to be less than that of the neck servos.
6.3.2.2Phase 2: System Integration

For this phase, we will bring together the various components of the system to verify that there are no glitches which prevent them from operating as planned. The systems power supply will power the microcontroller as well as the servos and we will check for the ability to control servo movement as expected.

Servo Control:

  • Range of Motion – Move servos through full range
  • Absolute Position – Move servos to arbitrary preselected positions

Power Consumption Requirements:

  • Total System – < 3.75 A of draw (no more than 3 servos operating simultaneously)

6.4Power Supply

6.4.1Overview

Our current power supply is laptop regulated supply providing 13.3 VDC with a maximum current of 3.75 A. A constant voltage regulator will be employed to ensure our equipment is supplied with 6 VDC under varying load conditions.

6.4.2Test Procedure

6.4.2.1Phase 1: Initial Requirements

First, we will be checking our power supply to verify that we have the correct voltage at the output as well as ensuring that the ripple is within an operational range. A multimeter will be able to make all measurements necessary.

Output (Unloaded):

  • Voltage – 6 VDC
  • Ripple – < 250 mV peak above average
6.4.2.2Phase 2: Implementation and Under Load

This will be among the final testing stages for this project. We will be examining the supply’s ability to fulfill the power requirements of the completed system. We will also be checking heat generation during high load situations.

Output (Loaded):

  • Voltage – 5.5 - 6 VDC
  • Current – < 3.75 A

Heat Generation:

  • If prolonged use creates enough heat so that it is uncomfortable to hold ones hand against the supply for 10 sec, we will explore cooling options or possibly get another supply and run them in parallel.

6.5Frame

6.5.1Overview

The frame design has been done in SolidWorks with the drafting assistance of Robert Peck of the Mechanical Engineering Department. Mr. Peck will also help us with simulation testing of our design before fabrication.

6.5.2Test Procedure

Using the ability in SolidWorks to define the range of motion for a given part, we will check for any mechanical interference between parts as well as clearances within the head. This should allow us to reduce multiple prototyping of the same part by eliminating any issues before fabrication.SolidWorks allowed us to see that the eye tray below would not properly fit our needs, and we needed to redesign. The redesign follows our original concept. This process can be seen below.

Rear of original concept for eye tray with eyes at neutral position. Drawn by Robert Peck

Original concept eye tray with eyes looking right. Drawn by Robert Peck

Original concept eye tray with eyes crossed. Drawn by Robert Peck