16
ECE 791/792 Progress Report Project Title: The Goddard Project Team Members: Robert Galli, Cassandra DeNunzio, Samuel Cordeiro, Kevin Tierney, Cameron Perl, Andrew Felicetti Faculty Advisor: Dr. Thomas Miller Courses Involved: CS 410, ECE 651, ECE 562, ECE 617, ECE 618, ECE 548, ECE 714, ECE 757 Project Completion Date: April, 2014

ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

ECE 791/792 Progress Report

Project Title: The Goddard Project

Team Members: Robert Galli, Cassandra DeNunzio, Samuel Cordeiro,

Kevin Tierney, Cameron Perl, Andrew Felicetti

Faculty Advisor: Dr. Thomas Miller

Courses Involved: CS 410, ECE 651, ECE 562, ECE 617, ECE 618, ECE 548,

ECE 714, ECE 757

Project Completion Date: April, 2014

Page 2: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

General Problem Definition:

The goal of this project is to design and build a robotic dog modeled after Goddard from the hit

90s TV series, The Adventures of Jimmy Neutron Boy Genius. Sheet metal will be used for the

body of the robot in order to keep the frame lightweight. The sheet metal will be welded together

for structural support. Goddard will travel on four wheels powered by DC motors using

positional feedback. The robot will use a Raspberry Pi as its master device in order to control the

robot, but there will most likely be other slave devices such as the Arduino that help command

the robot, as well. All circuitry, microcontrollers, and motors will be hidden in order to preserve

the integrity and appearance of Goddard. Essentially, Goddard will act and behave as an ordinary

dog from barking, to playing fetch, to being a great companion and friend. Fundamental goals for

the project include design, implementation and testing, and project evaluation due to the nature

of senior project. All members of the team will gain hands-on experience in mechanical design,

electrical design, motor execution, and programming. Successful project completion will yield a

fully functional robotic dog that will be presented and demonstrated at the 2014 University of

New Hampshire Undergraduate Research Conference.

Implementation and Testing:

In order to meet our goals for this project, our team will need to develop a comprehensive plan

and implement it with discipline. Our team has been meeting weekly since the beginning of

September and plans to continue this schedule for the rest of the academic year. It is important

with a large team of six members to meet frequently and discuss how our individual portions of

the project work together to form a greater whole. Meeting minutes are taken and uploaded to

SkyDrive as well as other research and documentation that are of interest. This process

concentrates the information related to the project for anyone on the team to access whenever it

is necessary. On top of weekly group meetings, sub-teams will also meet weekly and each

member will work on his or her own time to accomplish a distinctive function of the robot.

Goddard will need to receive, interpret, and act upon several different voice commands.

Additionally, our robot will need to perform functions autonomously without user interaction.

Page 3: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

Goddard will require sophisticated logic in order to meet these criteria. For this reason, our

group has opted to use a Raspberry Pi as the master device in our control system. The Raspberry

Pi is a fully functional Linux computer that can run various open source code libraries and has a

large support community. The Raspberry Pi has 26 GPIO pins that will be used to communicate

with the Arduino Uno as a slave device. The Arduino Uno will be connected to our sensor

network and motors. The Raspberry Pi has more processing power and memory than either of

these slave devices. Ideally most of the computation will be run on the Pi. When the

computation is done, the master device will send a command to the appropriate slave device.

The slave devices will also be able to interrupt the master device. In the case of the motors, the

master device will need positional feedback in order to determine future movements. In the case

of the sensor network, the master device will need to know the values of Photo diodes in order to

determine the distance Goddard is from potential obstacles.

The Arduino Uno will be used to control most of the functions and operations of Goddard. Some

of these functions include tail wagging, barking, LED lights and simulated brain activity. The

reason we are choosing the Arduino Uno is because it is easily programmable and there is a wide

range of open source libraries. Some other advantages of the Arduino Uno include several

input/output pins, low power consumption, and compact nature. The Arduino Uno will also be

used to control the motors using positional feedback.

Programming Software:

Our project relies on several free software components. We will be utilizing NodeJS which is a

public domain web server based on JavaScript which is often used in data intensive real-time

situations. NodeJS will allow us to communicate with Goddard quickly and efficiently. Wolfram

Alpha is a public web source advertised as a “computation knowledge engine” and will work to

provide an answer for just about any question ranging from mathematics to celebrities. Wolfram

Alpha will essentially be Goddard’s brain and knowledge base. The open source software,

eSpeak is a speech synthesizer that will allow Goddard to speak. Google Translate is used in our

project to make Goddard even more intelligent by making him multilingual.

Page 4: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

Control System:

Figure 1. Control System Block Diagram

Structure: Sheet Metal

Main Controller: Raspberry Pi

Output Control: Arduino

LEDs

Motor Controller:

Arduino

Two DC Motors for Movement

Additional Movement

Motors

Misc. Action Control: Arduino

Fetch

Bark

Sensor/ Feedback

Control: Arduino

Sonar Range Finder

Photo Diode Sensors

Battery Source: Controllers,

Motors

Page 5: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

Figure 2. Raspberry Pi Model B

Figure 3. Arduino Uno

Page 6: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

Project Plan:

We have divided the building phases of the project up into tiers. The first tier includes the design

and construction of the robot’s exterior and also its general movement. It is important that the

first tier is completed before moving on to other development phases because it is the intrinsic

foundation of the project. Goddard's body must exist before it can be programmed to perform

actions and respond to commands. After the first tier is completed the following tiers involve

programming the microcontrollers and building the sensor network. Individual group members

working in parallel will do these tasks. Our team is rather large and thus will be broken into sub-

teams to carry out individual functions of the robot. For example, one sub-team will work on

programming Goddard to speak and play audio while another sub-team will work on processing

data from the sensor network. As long as the tasks are independent of each other, the project can

easily be broken up into parts that can be done in parallel.

Thorough testing of the robot will be conducted before moving to the next tier. Goddard’s

movement and motor controls will be tested and once he is able to travel smoothly and be

controlled then the first tier will achieve completion. Testing will include a power

characterization of the servo motors, analysis of positional feedback data and stress testing of the

frame and body. Subsequent tiers will be tested in a similar manner. Once the robot’s function

has been demonstrated for that tier, it will be granted success and the sub-team can move on to

completing another task. Also, when new tiers are completed our group will need to regression

test earlier tiers in order to ensure we haven't broken any of the core functionality.

Project Tiers:

Tier One:

CAD Drawing of Body

Completion of the Body Structure

Controlled Movement (Wired)

Basic Goddard Features

Page 7: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

Bark

Lights

Tier Two:

Basic Actions

General Acknowledgements

○ Stay

○ Come

○ Bark

Wireless Interface

Basic Proximity Awareness

Tier Three:

NodeJS Server

Voice Controls

Speech to Text Software

Text Parsing

WolframAlpha Integration

Text to Speech

Autonomous Movement

Tail Wag

Jaw Movement

Tier Four:

Fetch

Facial Recognition

Page 8: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

Projector

Project Roles:

Cassandra DeNunzio Executive Project Manager

Programming Specialist

Robert Galli Vice Project Manager

Pi Specialist

Head of IT

Kevin Tierney Motor Drive Architect

Electromechanical Process Manager

Andrew Felicetti Motor Drive Architect

Program Developer

Lead Project Aficionado

Samuel Cordeiro Electromechanical Process Manager

Mechanical Drafter

Cameron Perl Welding Expert

Mechanical Design Engineer

The mechanical processes of the project will be handled mostly by Cameron Perl and Samuel

Cordeiro. Samuel is in charge of creating all necessary CAD drawings and Cameron Perl will

work to turn those designs into fruition. They are both accountable for the foundation of the

robot and its main frame.

Andrew Felicetti and Kevin Tierney will be mostly responsible for motor control of the robot.

This includes movement, direction, and an autonomous drive feature. Both team members will

Page 9: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

work with the positional feedback of the motors and the Arduino to properly control Goddard’s

movement.

Cassandra DeNunzio and Bobby Galli will handle the majority of the programming and

microcontroller networking of the robot. They will both be liable for the functionality of

Goddard as a life-like dog and pet. They are in charge of Goddard’s ability to respond to voice

commands and carry out certain voice commands.

Once team members have achieved their main responsibilities listed above they will move into

programming the microprocessors to carry out other functions of the robot. The goal is to build

this project from the ground up and keep adding as many features that time allows to make

Goddard as functional as possible.

Revised Timeline:

5-Dec 25-Dec 14-Jan 3-Feb 23-Feb 15-Mar 4-Apr

General Acknowledgements

Wireless Interface

Proximity Awareness

NodeJS Server

Voice Controls

Autonomous Movement

Fetch

Facial Recognition

Projector

Body Assembly

Page 10: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

Revised Budget:

Item Quantity Price

8 ft2 Sheet Metal 22 gauge

1 $32.00

2 ft2 Sheet Metal 16 gauge

1 $18.00

3 ft x 3/16'' Round Stock 12 $30.00

4 ft2 Sheet Metal 16 gauge

1 $18.00

Arduino Uno 2 Donated

Maestro Mini 1 $39.95

Raspberry Pi 1 Donated

PiHub 1 Donated

Battery 2 $200.00

Battery Charger 1 $30.00

Motors, Driver, and Encoder

4 $150.00

Wheels 4 $50.00

Jumper Wires 1(50pc) $10.95

Sonar Range Finders 4 $20.00

IR LED 1(20pc) $7.87

IR Beacon Transceiver 1 $27.95

AA Batteries and Charger 1(5pc) $13.99

Voltage Regulator 3 $3.75

Logic Level Converter 2 $16.00

Microphone 1 $30.00

Speakers 1 $15.00

Acrylic Dome 1 $10.00

LEDs 9 Donated

Total: $723.46

Movement Progress:

Modifications have been made from the original proposal after further research into the torque

and power the motors propelling Goddard would need to have. Originally, Servo motors were

Page 11: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

selected as the driving motors for Goddard for the ease of use and compatibility with the mini

maestro and it’s built in software. However, servo-motors did not meet the new minimum power

requirements. It was determined that a brushed DC motor with an encoder for feedback would

be the best choice to drive Goddard. The 12 volt DC Metal Gearmotor with a 64 CPR Encoder

with a 29:1 gear ratio was selected as the best motor use. At 12 volts the motor operates at 350

RPM with a 300mA free run. Two of these motors have been ordered and are currently being

programmed for desired use and bench tested. In addition to the two motors, several parts have

been purchased to make the motors compatible for Goddard. These parts include two Aluminum

L-Brackets for mounting the motors, two Aluminum Mounting Hubs to allow tires to be attached

to the motors, two 90x10mm black wheels and a Dual MC33926 Motor Driver. The purpose of

the motor driver is to provide protection for the motors while delivering power from the battery

and interpreting logic commands from the microcontroller. The motor driver allows for more

accuracy and customization for controlling motor speed and direction. The Mini Maestro will no

longer be used to control the driving motors because it only is used as a servo motor controller.

Instead, we will use the Arduino Uno to control the DC driving motors. The Arduino Uno is

compatible with the motor driver and together they will be used to control Goddard’s movement.

Currently, the motors are connected to the motor driver and using a function generator as a

source for power. All the motor driver’s pins have been soldered allowing the motor driver to be

connected to the Arduino.

Figure 4. DC Motor with Encoder Figure 5. 90x10mm Black Wheel

Page 12: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

Figure 6. Dual Motor Driver

Programming Progress:

We have configured a Raspberry Pi with SSH so it can be programmed remotely. Next, we set

up a NodeJS server. This enables us to control Goddard remotely through any device with a web

browser and microphone. The server was tested by configuring a web page and proving that if

text is typed, the Raspberry Pi will receive it and parse it to determine which command has been

issued. We also created an HTML page that launches the microphone app on Android phones.

This will eventually replace the text input that is currently on the website.

The NodeJS app on the Pi connects to Wolfram Alpha giving Goddard the ability to think. We

wrote a shell script to do text to speech conversion using Google's translation engine.

Unfortunately, the voice was female so the shell script was reconfigured to use eSpeak instead of

Google.

We ran into several problems configuring Audio on the Pi. The Pi defaults to outputting audio

via HDMI. A long time was spent changing this to default to the headphone jack so that we

could use text to speech with speakers. The next issue was was that although we could play .mp3

files, we could not hear any audio with the .mp3 file received from Google translate. The issue

was either a PulseAudio or bad MPEG decoders (specifically ffmpeg). Now, we can run "node

Page 13: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

prompt.js", type in any question, and the Pi will read back the answer returned from

WolframAlpha. This works on almost every query attempted.

We have also done extensive research on Arduino programming, NodeJS, HTTP, Wolfram API,

Raspberry Pi/Arduino interfacing, infrared beacons, HTML 5 (microphone input), speech to text

and text to speech conversion.

While most of our accomplishments in programming so far are tier 3 goals, we found it

important to first configure the Raspberry Pi as it is essentially Goddard’s brain. Also, we intend

to have Goddard carry out commands via voice communication, so we figured we would start

directly at the point of execution to begin tackling our goals and objectives.

The next steps as far as programming involve remotely triggering Goddard to talk, coding speech

to text, and focusing heavily on interfacing the Arduino Uno with the Raspberry Pi. We have

already begun learning how to use the Arduino Uno with various practice examples and will

soon be ready to integrate our master and slave devices together.

The Arduino Uno is primarily responsible for operating Goddard’s sensor network, and over the

Winter Break Cassie and Bobby will work to order sensors, incorporate them into the design, and

program decision making actions based on Goddard’s external environment.

Structural Progress:

For the structure of Goddard the group had decided on using light weight steel sheet metal.

Using this material meant that the finish product would be light enough to be powered by small

DC motors but would also be sturdy enough to easily contain all of the components necessary for

Goddard’s functions, including the heaviest component, the batteries. In the proposed budget the

team had set aside approximately one hundred dollars to structural material cost, however a

small stock pile of sheet metal was recovered in the workshop of Cameron Perl. This extra metal

reduced the amount of money needed for the body of Goddard to approximately twenty five

dollars, freeing up funds for use in other technologies. Along with the MIG welder being used a

new spot welder will be used for the joints that will be seen from the outside as it produces a

much cleaner looking weld with no extra metal being added to add to the total weight.

Page 14: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

The current progress of the body is close to completed. The major part being the body is

finished. It is a rectangular prism measuring 18x12x8 in. with a hinged top for access to the

internal components. The head, because of its complex shape is in the process of being shaped

using a variety of tools including an English wheel and planishing hammer. Also in the head

needs to be space left for; an acrylic dome to showcase Goddard’s brain, an array of LED’s, eye

stocks which is where the forward facing sensors will be placed, and a tongue.

The other smaller pieces of Goddard that still need to be completed are his tail, foot cups, legs

and neck. The legs and neck will be made of a simple and lightweight round stock structure

covered by expandable rubber tubing for the realistic look. This design will allow for a sturdy

base while concealing the wires running to Goddard’s feet and head. The tail is a simple bent

cone shape that will contain a mechanism to allow for wagging. The foot cups needed to be held

off until the motor and wheel dimensions were confirmed so that the motors and wheels will be

contained within the foot cups. The parts have been ordered and arrived so the construction of

the feet will be soon to come. Also the feet will be easily lifted off the motor/wheel assembly,

thanks to the rubber tubing to allow for access to the driving assembly.

Now that the driving parts have been ordered the completion of the body will soon follow and

the plan is to combine the wheel assemblies with the body and have Goddard moving over the

break. Once the structure is complete and no more welds need to be made, Goddard will adorn a

new paint job making him look exactly like the iconic dog from TV, as shown in Figure 7.

Page 15: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

Figure 7. Goddard, from Jimmy Neutron Boy Genius

Summary of Future Plans:

Kevin and Andrew will continue coding the Arduino to deliver appropriate commands to control

the motors and work on analyzing the encoder’s signals to eventually provide positional

feedback from the motors.

We plan to focus on interfacing the Arduino and Raspberry Pi over Winter Break. Bobby will

continue to work on text to voice and voice to text conversion and Cassie will design and build

the sensor network that Goddard will use to navigate.

Sam will spend his future efforts making sure all devices receive the right level of power and

designing circuitry with voltage regulation to ensure that this happens. He will also assist in

equipping Goddard with the appropriate sensors.

We plan to meet as a group at least twice over break, as it is paramount that a large group

remains focused on the same goal. At the group meeting Cam will be able to make sure that the

body fits well with the motors. Bobby and Cassie will also be able to test the microcontrollers

and sensors out with Goddard’s body. We will validate that the motors work well with the

Page 16: ECE 791/792 Progress Report Project Title: The Goddard Projectunh.edu/ece/Department/Senior Projects/ECE792_2014/progress rep… · ECE 791/792 Progress Report Project Title: The

sensors for proper navigation and environment awareness. These meetings will be concentrated

on bringing the various components of our sub-projects together into a single, smart robot.