170 likes | 298 Views
BUNI (Bluetooth Universal Navigation Interface). Design Team : Ben Doherty (Manager) Jeremy Gummeson Chris Campetti Phil Murray. Faculty Advisor : Lixin Gao. What is BUNI?. BUNI is the B luetooth U niversal N avigation I nterface
E N D
BUNI(Bluetooth Universal Navigation Interface) Design Team: Ben Doherty (Manager) Jeremy Gummeson Chris Campetti Phil Murray Faculty Advisor: Lixin Gao
What is BUNI? • BUNI is the Bluetooth Universal Navigation Interface • A system intended to bring 2-dimensional navigation to a wide array of devices • RC Cars, Boats, Tanks, Vacuum Cleaners, Etc.
Why BUNI? • Bluetooth is an emerging wireless standard • No generic protocol exists for 2-dimensional navigation • Interoperability: Many types of devices can operate many types of vehicles
Implementations • Programmable lawnmowers, vacuum cleaners • Rescue vehicles • Surveillance • Mine sweepers
Why Java? • Write once, run everywhere • J2ME for portable devices • Enables cell phones, PDA’s, and other portable devices to run the same code • Simple Bluetooth API (JSR-82)
Why Bluetooth? • Emerging Wireless Standard • Low-power, reliable • Enables link transparency (By emulating serial ports) • Inexpensive hardware
Curve Fitting • By nature, vehicles will not be able to follow arbitrary curves: • Angle might exceed vehicle capabilities • Steering control might only allow discrete angles • To compensate, curve input must be modified to fit vehicle parameters • Meet maximum turning angle • Use only allowed angles
Curve Fitting Continued • A few examples of level 0 (point-to-point) curve fitting using bezier curves • Bezier curves use start and end points, as well as 2 “control points” to direct the curve • Still a very preliminary algorithm Legend: Black – Original Curve Input Blue / Red points – Control points Red Line – Guiding triangle Orange – Fitted Curve
Communications Protocol • Communication between vehicle and Bluetooth device over Bluetooth serial emulation • Simple byte-based protocol • Client/Server model: Portable Bluetooth device as client, vehicle as server
Vehicle Program • Vehicle controlled by a RabbitCORE 3100 Microcontroller with eb506 Bluetooth Module • Written with Dynamic C language
Portable Device Program • 6 Major Steps • Connect to vehicle and authorize • Receive vehicle parameters • Receive curve input from user (via stylus) • Fit curve to vehicle parameters • Encode fitted curve to command data • Send move command
PD Program Possibilities • Multiple queued paths • Terminate current path (stop) • Scalable map sizes • Multiple vehicle control • Speed control
Deliverables for MDR • Java Program with stylus input and basic curve fitting (Point A to point B) • RC Car with microcontroller • Working movement from point A to point B
In the future… possibilities • Stored, bookmarked paths • Environment maps • Environmental feedback, i.e. obstacles, relative position, terrain