SLIDE 1
Real-time Tracking of Human Arm Movements Jacob Phillips, Erik - - PowerPoint PPT Presentation
Real-time Tracking of Human Arm Movements Jacob Phillips, Erik - - PowerPoint PPT Presentation
Real-time Tracking of Human Arm Movements Jacob Phillips, Erik Guetz, Dr. Mohammad Imtiaz Project Overview Problem Be able to track, diplay, and predict human arm movements Provide a way to access the data for various applications
SLIDE 2
SLIDE 3
Problem
- Be able to track, diplay, and predict human arm movements
- Provide a way to access the data for various applications
SLIDE 4
Problem Overview
SLIDE 5
Project Goals
- Accurate arm motion tracking
– Filtering and prediction
- Long battery life
– Efficient embedded system
- Minimal human interference
– Easy to set up and run
- Easy to read and understandable display
– Mobile phone app with graphs and data readouts
SLIDE 6
Problem Solution
- Inertial Measurement Units (IMU)
– Three sensors on arm
- Embedded system
– Custom PCB with RTOS
- Mobile phone app
– Android application on smartphone
SLIDE 7
Problem Solution System Diagram
SLIDE 8
Functional Requirements
- Three IMU’s placed on arm
- Data streaming wirelessly
- Data storage facility
- Stream data for downstream systems
SLIDE 9
System Design Process
SLIDE 10
Embedded Systems Specifications
- 32-bit Atmel SAM4S32B Microcontroller
– Up to 120MHz, 2MB FLASH, 160KB SRAM
- 4Gbit NAND FLASH
- STC3100 battery “gas gauge”/Coulomb counter
- Sparkfun Bluetooth Mate Silver
– RN-42 Bluetooth module
- LSM6DS3 Inertial Measurement Unit
– Up to 6.6KHz and 8Kb on board FIFO
SLIDE 11
Custom PCBs
- Two boards
– IMU and main board
- Created in Eagle PCB
– Custom made libraries and parts
- Main board contains 32-bit ARM microcontroller
– FLASH memory, Bluetooth, battery charging
- IMU board designed as small as possible
– Final dimensions: 18.5x15.5 mm
SLIDE 12
IMUs
SLIDE 13
SLIDE 14
IMU
- Small, simple device
- Low power
- Fast communications
SLIDE 15
IMU PCB
- Kept as simple and small as possible
- Only four components total
SLIDE 16
SLIDE 17
Sensor Controller
SLIDE 18
SLIDE 19
Sensor Controller
- Low power
- Multi-day storage capability
- Wireless streaming
- On-board battery charging
SLIDE 20
Sensor Controller PCB
- Optimized for low power consumption
- Simple operation with only a single
hardware switch
- All control besides power-on handled
through app
SLIDE 21
Power and Charging Schematic
SLIDE 22
Connector Schematic
SLIDE 23
FLASH Memory Schematic
SLIDE 24
Embedded System Initialization
SLIDE 25
SLIDE 26
SLIDE 27
SLIDE 28
Application Interface System
SLIDE 29
SLIDE 30
Application Interface System
- Data port
- Application Program Interface (API)
- Sample Applications
– Predictive model
- LSTM Neural Network
– Visualization
SLIDE 31
SLIDE 32
Data Acquisition
SLIDE 33
Data Filtering and Estimation
SLIDE 34
Data Prediction
SLIDE 35
Data Visualization
SLIDE 36
Accomplishments to Date
SLIDE 37
Sensor Reading
- Only read data if sensor
gives proper “Who am I”
- Data is collected from
- n-board FIFO
- Sent to host over UART
using CMOS to RS232
SLIDE 38
Initial Sensor Measurement
- Used Realterm to save text files containing measurement data
- Used Python to interpret saved measurement files and convert them to a
MATLAB readable format
- Used MATLAB to visualize the data and estimate position
SLIDE 39
SLIDE 40
Work In Progress
SLIDE 41
Revised Sensor Measurements
- Used Python to read serial data from
COM port
- Used Python to estimate velocity and
position data from raw acceleration data
- Used Matplotlib to plot acceleration,
velocity, and position
SLIDE 42
Revised Sensor Measurements (Cont.)
Estimated Velocities Estimated Displacement
SLIDE 43
Kalman Filtering
- Also called Linear Quadratic Estimation
- Uses series of measurements containing errors and
statistical noise
- Produces estimates of unknown variables
- More accurate than filtering using one measurement by
using a joint probability distribution
SLIDE 44
Our Use of the Kalman Filter
- To estimate velocity and position of the IMU from the
acceleration given
- To remove any noise and error attached to the incoming
measurement data (i.e. sensor drift)
SLIDE 45
Future
SLIDE 46
RTOS
- Used to keep precision timing on IMU samples
- Will feature priority system and task scheduling
– IMU sampling is high priority, FLASH writes are medium priority, and battery status reads are low priority
- Allows better use of system resources
- Avoids wasting processor time in delays
- Also will feature a “diagnostic system” to alert host device
- f errors
SLIDE 47
Embedded Memory Controller
- FLASH memory requires 8-bit parallel writing
- SRAM FIFO used in combination with FLASH
– Allows bulk writes to FLASH – Minimize time writing to FLASH
- No hardware memory controller, must be created through
software
SLIDE 48
Position Prediction Neural Network
- Used to predict the next arm position based on past
positions
- A Recurrent Neural Network (RNN) with built-in long term
memory also known as a Long Short Term Memory network (LSTM)
SLIDE 49
Smartphone Application
- Receives streams of data
- Used to visualize data
- Used to send commands to the sensor controller
SLIDE 50
Jacob Erik
- Design PCBs
- Develop RTOS
- Develop embedded
subsystems (IMU, memory controller, etc)
- Adding components to the
IMU PCBs
- Developed Application
Interface
- Worked on Android app
development
Division of Labor
SLIDE 51
Timeline
SLIDE 52