Initial Position Orientation Tracking System (IPOTS) Group Members: Keiichi McGuire Henry Pham

Download Report

Transcript Initial Position Orientation Tracking System (IPOTS) Group Members: Keiichi McGuire Henry Pham

Initial Position Orientation
Tracking System (IPOTS)
Group Members:
Keiichi McGuire Henry Pham
Marc Takamori Scott Spiro
Outline






Problem Description
Approaches
How It Works
Test & Results
Current Status
Q&A
Problem Description



Design and implement a portable position
and orientation tracking system for a handheld device (such as a camcorder)
Records the position and orientation of the
device as it is carried by a person.
Transfer data via USB or external storage
media, to a personal computer for analysis
of the device’s motion.
Approaches

Method 1:

Electromagnetic Position Tracking System



Springs & Electricity
Magnetic Pulse Measurements
Method 2:

Single Purpose IC



Accelerometers
Gyroscopes
Analog Compass
Analysis of both approaches

E&M Position Tracking System




Sensitive to local magnetic fields
Lack of background in advanced physics
Costly
Single Purpose IC Chips


Feasible approach to solve problem
Easily attainable parts
How it Works





Measuring
movement (Inputs)
Microcontroller
Displaying live data
(LCD)
Storing and
transferring data
(MMC)
Analyzing data to
produce results
How It Works (Measurements)

Single Purpose IC Chips

3-D Accelerometer





3 Single rate Gyroscopes


Measures 3 accelerations (x,y,z) in voltages
Sensitivity of 800mV/g
Maximum of +/- 1.5g
1g = 9.81 m/s^2
Measures angular rate change in voltages from the
normal to the chip
1 Analog Compass

2 Sinusoidal waves offset to measure direction relative
magnetic North
Gyroscope
Analog Compass
How it Works (Schematic)
How it works (Microcontroller)

PIC18F4680 Microcontroller







40 pin
USART, SPI, I2C Interfaces built in
3328 Data Memory
64k bites PROM
Analog to digital converter
External 20MHz crystal (instruction cycle = 0.2us
per instruction)
And More!
How it Works (Firmware)



Used C programming with
Microchip C18 Compiler
Used modular programming
for better organization of
large program
Main functionality is
interrupt driven
How it Works (Firmware)
How it Works (LCD)




Asynchronous serial interface
Microcontroller will send ASCII
characters through USART
16 x 2 characters
19200 baud rate
How it Works (Sensor Interface)



Total of 8 different sensors multiplexed
into the analog to digital converter
Microcontroller steps through all select
line combinations to acquire all data
(appx 20us between each sample)
Delay is put in software to compensate
for the time taken to switch inputs
(appx 2us).
How it Works (MMC)

First Design



(MMC/SD Breakout Board)
Program FAT16 File System
Second Design



Use the uALFAT-SD Module
8 MB MMC card (compatible up to 512 MB)
SPI Mode (Serial Peripheral Interface)



Microcontroller (Master)
uALFAT (Slave)
FAT16 (also FAT12 and FAT32 compatible) File
System to Save Data
How it Works (μALFAT-SD)

Second Design (Continuation)


Send 1-byte Command to the Chip’s Firmware
to Control File Activities
RTC (Real Time Clock)




Capable of Running off External Battery
5V tolerant I/Os.
Requires regulated 3.3V.
Reliable FAT stack source code


$4,000 to $10,000
Take more than 6 months to program
How it Works (Sleep/Low
Voltage Detect Mode)


Both Functions use built in features of the PIC.
LVD mode works like interrupt



Sleep




Software programmable to desired voltage
Trigger interrupt
Software programmable – two step sleep
Turns off all oscillators
Goes to sleep after 2minutes of no use
Combined

At a lvd, a sleep timer is initiated to automatically put
device to sleep in 2 minutes
How it Works (Compiling Data)




Matlab 7.0 used as development tool to
create an executable file which will convert
raw data saved on MMC/SD develop data
Uses Rotation Transformation Matrices
Outputs tabulated data in a new text file in
meters and angles
Account for sensitivity and errors using
Kalman Filter
How It Works (Data Conversion Software)
Start
Get
Accelerometer
Data (x,y,z)
relative to ground
and compute roll
and tilt.
Can we use analog
compass? (+/- 10 from
vertical?)
Set angles of
Camera by
Accelerometer
Readings
NO
Get
Gyroscope
readings
(x,y,z)
Set compass and
accel. Readings to
set initial
coordinates
Perform Stabilized
Angle Calculations
YES
Get
Compass
Data
Add Initial Angles
Record position
and orientation
Rotation Matrices
B=R*A
ADC / LCD Test &
Implementation




Implemented software to dump live
data from sensors to LCD
Initially voltage regulator created
noise and made ADC unstable, so
decoupling capacitor was used to
filter out the noise
Currently there’s a bug from an
unknown cause that is making one
output unstable (floats around +/100mV)
Test points are made to probe to
see if interrupts are occurring at the
correct time for sampling and LCD
output
LVD & Sleep Mode Test &
Results




Testing was successful
Implemented Timer3 to be counter for
2minute delay
Used power supply and led’s to
successfully show that 2 minute
countdown was initiated
Microcontroller oscillators were
stopped in sleep mode.
FAT16/MMC Implementation &
Results

First Design


Looked for Sample FAT16 File System Code
Second Design

RS232 Serial Port / HyperTerminal Application


Checked to see if we are able to create directories,
files, and read files on the SD/MMC.
Microcontroller PIC18F4680


Wrote code that would initialize SPI mode and let us
be able to write to the SD/MMC card.
uALFAT is not being able to communicate with the
microcontroller. We believe through troubleshooting
that this problem is a hardware problem. Another
uALFAT is on order right now.
FAT16/MMC Implementation &
Results (RS232 & HyperTerminal)
FAT16/MMC Implementation &
Results (Microcontroller PIC18F4680)
Current Status









Sensor voltages can be captured and displayed on the LCD
Device can run off of 5 AAA batteries, however 30minute run
time not yet tested
Skeletal structure of hardware complete
Firmware mostly complete
Product casing design not started
Downloading data to the MMC card currently not working
(hardware issue, communicating with vendor)
Kalman Filter not implemented
Conversion software’s file i/o portion is working but conversion
math not implemented in software
Trying to figure out cause of floating voltage from one sensor
output
Q & A ??