ECE 191: Design Project Group #9: Audio Navigation for Blind

advertisement

ECE 191: Design Project

Group #9: Audio Navigation for

Blind People and Rescue workers

Spring 04

Sponsor: California Institute for Telecommunications and

Information Cal(IT) 2

Mentor: Dr. John Miller

Members:Tony Cheung

Kin San Kung

Khanh Luu

I Chang Wu

URL: http://ece191-spring04-9.tripod.com/

Agenda

Gantt Chart

Tasks

Comparisons of different input methods

Java display program

Matlab location program

Plans for next week

Gantt chart

Research

Design

Order Device

Contruction

Test/Debug

Revise/Optimization

Demonstration

Documentation

Weeks

Tasks

Task1: Input waypoint data into our database

(Tony, Ken)

Task2: Implement java display program

(IChang)

Task3: Matlab location program and web documentation (Khanh)

Task4: Input the information of 10 waypoints with a laptop and a movable table (All of the members)

Input after collecting data

1.

2.

1.

2 minutes per waypoint to collect and input data + unknown time to correct mistake (recollect data)

Advantages:

Requires shorter time if there is no mistake

Flexible

Disadvantage:

Takes a lot of time to recollect data

1.

1.

2.

Input data in real time

3 minutes per waypoint

Advantage:

If we made mistake, we could correct it immediately.

Disadvantages:

Can not see the computer screen under sunlight.

Can not input data if the wireless network connection is not available.

A slide from last week

Java display program

For every waypoint, check how many times it appears in our database. If the waypoint appears more than once, it is an intersection waypoint.

for ( int i = 0; i < count; i++) {

Object tempWaypoint = warrenWaypoints.get(i); if ( refWaypoint.equals(tempWaypoint)) { if ( i + 1 < count) {

} // end if

} // end if

} // end for waypoints[j] = warrenWaypoints.get(i+1); j ++; // number of the appearance

Continue…

// no intersection if ( j == 1){ if ( refPathname.equals(nextPathname)) { double feet = ((Waypoint)nextWaypoint ).getFeet(); double inches = ((Waypoint)nextWaypoint ).getInches(); sum += 12*feet + inches;

System.out.println("Current location ----->\n"+ "\n" + nextWaypoint.toString() + "\n");

System.out.println("Total distance traveled: " + sum/12 + "feet " + sum%12 + "inches "

+ "\n");

} // end if

} // end if

Continue…

// encounter an intersection else{ System.out.println("-----> We are at "+j+ "-way " +"intersection\n");

System.out.println("Please choose one of the followings\n");

// print the intersection waypoints for( int i = 0; i < j; i ++) {

System.out.println("("+f+") "+ waypoints[i].toString() + "\n"); f++;

} // end for sUserInput = inFromUser.readLine(); int c = Integer.parseInt(sUserInput); c--;

System.out.println("Current location ----->\n"+"\n"+ waypoints[c].toString() +

"\n"); double feet = ((Waypoint)waypoints[c]).getFeet(); double inches = ((Waypoint)waypoints[c]).getInches(); sum += 12*feet + inches;

System.out.println("Total distance traveled: " + sum/12 + "feet " + sum%12 + "inches

" + "\n");

} // end else

Output of a normal waypoint

Current Location 

Path Name: PriceCenter_to_EBUI Waypoint ID:1 Waypoint Name: ATM

Total distance traveled : 20feet 10 inches

When the user encounters an intersection waypoint and wishes to continue,

The Output:

--> We are at 3-way intersection

Please choose one of the followings :

(1) Path name: PriceCenter_to_EBUI Waypoint ID: 3 Waypint name: tree

(2) Path name: PriceCenter_to_EBUII Waypoint ID: 5 Waypoint name: CMRR

If (2) is chosen,

Current Location 

Path Name: PriceCenter_to_EBUII Waypoint ID: 5 Waypoint name: CMRR

Total distance traveled : 125feet 9inches

Matlab location program

Three vertices and a point form four small triangles and compare the area of three vertices with other three triangles to determine a point inside or outside the triangle d1=sqrt((y2-y1)^2+(x2-x1)^2); d2=sqrt((y3-y2)^2+(x3-x2)^2); d3=sqrt((y3-y1)^2+(x3-x1)^2); d4=sqrt((y1-a2)^2+(x1-a1)^2); d5=sqrt((y2-a2)^2+(x2-a1)^2); d6=sqrt((y3-a2)^2+(x3-a1)^2); c1=0.5*(d3+d4+d6); c2=0.5*(d1+d4+d5); c3=0.5*(d1+d2+d3); c4=0.5*(d2+d5+d6); area1=sqrt(c1*(c1-d3)*(c1-d4)*(c1-d6)); area2=sqrt(c2*(c2-d1)*(c2-d4)*(c2-d5)); area3=sqrt(c3*(c3-d1)*(c3-d2)*(c3-d3)); area4=sqrt(c4*(c4-d2)*(c4-d5)*(c4-d6)); if (area1+area2+area4 <= area3) display ('The point is inside a triangle'); else display('The point is outside a triangle'); end

Decide if a point inside or outside a triangle

Summary

Java display program

Matlab location program

Experiment of inputting 10 waypoints

Plans for next week

Test the java display program

Come up some slides for the final presentation

Download