Real-time Tracking of Human Arm Movements Jacob Phillips, Erik - - PowerPoint PPT Presentation

real time tracking of human arm movements
SMART_READER_LITE
LIVE PREVIEW

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-1
SLIDE 1

Real-time Tracking of Human Arm Movements

Jacob Phillips, Erik Guetz, Dr. Mohammad Imtiaz

slide-2
SLIDE 2

Project Overview

slide-3
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
SLIDE 4

Problem Overview

slide-5
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
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
SLIDE 7

Problem Solution System Diagram

slide-8
SLIDE 8

Functional Requirements

  • Three IMU’s placed on arm
  • Data streaming wirelessly
  • Data storage facility
  • Stream data for downstream systems
slide-9
SLIDE 9

System Design Process

slide-10
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
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
SLIDE 12

IMUs

slide-13
SLIDE 13
slide-14
SLIDE 14

IMU

  • Small, simple device
  • Low power
  • Fast communications
slide-15
SLIDE 15

IMU PCB

  • Kept as simple and small as possible
  • Only four components total
slide-16
SLIDE 16
slide-17
SLIDE 17

Sensor Controller

slide-18
SLIDE 18
slide-19
SLIDE 19

Sensor Controller

  • Low power
  • Multi-day storage capability
  • Wireless streaming
  • On-board battery charging
slide-20
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
SLIDE 21

Power and Charging Schematic

slide-22
SLIDE 22

Connector Schematic

slide-23
SLIDE 23

FLASH Memory Schematic

slide-24
SLIDE 24

Embedded System Initialization

slide-25
SLIDE 25
slide-26
SLIDE 26
slide-27
SLIDE 27
slide-28
SLIDE 28

Application Interface System

slide-29
SLIDE 29
slide-30
SLIDE 30

Application Interface System

  • Data port
  • Application Program Interface (API)
  • Sample Applications

– Predictive model

  • LSTM Neural Network

– Visualization

slide-31
SLIDE 31
slide-32
SLIDE 32

Data Acquisition

slide-33
SLIDE 33

Data Filtering and Estimation

slide-34
SLIDE 34

Data Prediction

slide-35
SLIDE 35

Data Visualization

slide-36
SLIDE 36

Accomplishments to Date

slide-37
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
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 39
slide-40
SLIDE 40

Work In Progress

slide-41
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
SLIDE 42

Revised Sensor Measurements (Cont.)

Estimated Velocities Estimated Displacement

slide-43
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
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
SLIDE 45

Future

slide-46
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
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
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
SLIDE 49

Smartphone Application

  • Receives streams of data
  • Used to visualize data
  • Used to send commands to the sensor controller
slide-50
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
SLIDE 51

Timeline

slide-52
SLIDE 52

Questions?