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


2 minutes per waypoint to collect and
input data + unknown time to correct
mistake (recollect data)
Advantages:
2.
Requires shorter time if there is no mistake
Flexible

Disadvantage:
1.
Takes a lot of time to recollect data
1.
Input data in real time


1.

1.
2.
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) {
waypoints[j] = warrenWaypoints.get(i+1);
j ++; // number of the appearance
} // end if
} // end if
} // end for
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 +
+ "\n");
} // end if
} // end if
"feet " + sum%12 + "inches "
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