android sensor progamming-compressed -...

72
Android Sensor Programming - Arindam Ghosh

Upload: others

Post on 07-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

AndroidSensorProgramming- ArindamGhosh

Page 2: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensingandSensors

• acapabilitythatcancapturemeasurementsaboutthedeviceanditsexternalenvironment

• Candetectsandrespondstosometypeofinputfromthephysicalenvironment.

• Thespecificinputcouldbelight,heat,motion,moisture,pressure,etc.

• Convertthemeasurementintoasignalthatcanberead.

Page 3: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

ExampleSensorData

1|MPU6500AccelerationSensor|[-1.6741456,9.370906,2.6886885]|1441670212915

1|MPU6500GyroscopeSensor|[-0.02263687,-0.016777916,-0.008788432]|1441670213508

1|AK09911CMagneticfieldSensor|[16.86,-64.26,-62.7]|1441670213400

1|GPS|{"mProvider":"fused","mResults":[0.0,0.0],"mAccuracy":29.0,"mAltitude":83.0,” ,"mLatitude":40.748431”,mLongitude":73.985741 …}|1441573552851

1|WiFi|{"BSSID":"00:21:6c:87:02:d1","SSID":"eduroam","capabilities":"[WPA2-EAP-CCMP]","frequency": 2462,"level":-82}|1392465248466

Page 4: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

AndroidOSFragmentation

http://opensignal.com/reports/2015/08/android-fragmentation/

Page 5: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

http://opensignal.com/reports/2015/08/android-fragmentation/

Page 6: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

http://opensignal.com/reports/2015/08/android-fragmentation/

Page 7: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorAvailability

• Variesfromdevicetodevice

• MayvarybetweenAndroidversions

Page 8: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

NewerSensorsOverTime

Page 9: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors
Page 10: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Sensors

• PositionsensorsGPS,orientationsensorsandmagnetometers.

• Motionsensorsaccelerometers,gravitysensors,gyroscopes,etc.

• Environmentalsensorsbarometers,photometers,andthermometers.

Page 11: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorFramework

Accesssensorsandandacquirerawsensordata.

• Determinewhichsensorsareavailableonadevice.• Determineanindividualsensor'scapabilities,suchasitsmaximumrange,manufacturer,powerrequirements,andresolution.• Acquirerawsensordataanddefinetheminimumrateatwhichyouacquiresensordata.• Registerandunregistersensoreventlistenersthatmonitorsensorchanges.

Page 12: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Sensors•Hardware-based orSoftware-based•Hardware-basedsensors- physicalcomponentsbuiltintoahandsetortabletdevice• directlymeasuringspecificenvironmentalproperties.• acceleration,geomagneticfieldstrength,orangularchange.

• Software-basedsensors- mimichardware-basedsensors• derivetheirdatafromoneormoreofthehardware-basedsensorsandaresometimescalledvirtualsensorsorsyntheticsensors.• Thelinearaccelerationsensorandthegravitysensor.

Page 13: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorFramework

Accesssensorsandandacquirerawsensordata.AndroidSensorFrameworkincludesthreeclassesandoneinterface.

• SensorManager• Sensor• SensorEvent• SensorEventListener

http://developer.android.com/guide/topics/sensors/sensors_overview.html

• Identifyingsensorsandsensorcapabilities• Monitorsensorevents

Page 14: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

1

2

3

4

5

Page 15: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorManager

• SystemServicethatmanagessensors

• FirsttheapplicationneedstogetareferencetotheSensorManager• getSystemService(SENSOR_SERVICE);

• Accessaspecificsensorwith• SensorManager.getDefaultSensor(int type)

Page 16: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Sensor

• Accelerometer• Sensor.TYPE_ACCELEROMETER

• MagneticField• Sensor.TYPE_MAGNETIC_FIELD

• Pressure• Sensor.TYPE_PRESSURE

Page 17: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

GetaListofAllSensors

Page 18: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorEventListener

• ForanapplicationtoreceiveinformationfromaSensor• ItneedstoimplementaSensorEventListener• BeforestartingtoreceivesensorEvents

• TypeofSensor• Delay

Page 19: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorEventListener

Page 20: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorDelay

Page 21: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorEventListener

Page 22: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorEventListener

Page 23: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorEventListener

• ForanapplicationtoreceiveinformationfromaSensor• ItneedstoimplementaSensorEventListener

• Invokedwhenaccuracyofasensorchanges• Whenthesensoracquiresanewreading

Page 24: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

onAccuracyChanged

• Accuracyisrepresentedbyoneoffourstatusconstants:• SENSOR_STATUS_UNRELIABLE• ConstantValue:0(0x00000000)

• SENSOR_STATUS_ACCURACY_LOW,• ConstantValue:1(0x00000001)

• SENSOR_STATUS_ACCURACY_MEDIUM,• ConstantValue:2(0x00000002)

• SENSOR_STATUS_ACCURACY_HIGH,• ConstantValue:3(0x00000003)

https://developer.android.com/reference/android/hardware/SensorManager.html

Page 25: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

onAccuracyChanged

Page 26: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

onSensorChanged

Page 27: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

onSensorChanged

Page 28: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorEventListener

• OnceyouaredoneUsingtheSensor

Page 29: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

1

2

3

4

5

Page 30: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorCoordinateSystem

• Thesensorframeworkusesastandard3-axiscoordinatesystemtoexpressdatavalues.• Xaxisishorizontalandpointstotheright• Yaxisisverticalandpointsup• Zaxispointstowardtheoutsideofthescreenface• coordinatesbehindthescreenhavenegativeZvalues

Page 31: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SensorCoordinateSystem

Suchacoordinatesystemisusedby:

• Accelerationsensor

• Gravitysensor

• Gyroscope

• Linearaccelerationsensor

• Geomagneticfieldsensor

Page 32: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

PointstoRemember

• Yourapplicationmustnotassumethatadevice'snatural(default)orientationisportrait.• Thesensorcoordinatesystemisalwaysbasedonthenaturalorientationofadevice.• Thenaturalorientationformanytabletdevicesislandscape.

• Verifysensorsbeforeyouusethem• Verifythatasensorexistsonadevicebeforeyouattempttoacquiredatafromit

Thesensor'scoordinatesystemneverchangesasthedevicemoves

• Youmusttestyoursensorcodeonaphysicaldevice.• Youcurrentlycan'ttestsensorcodeontheemulatorbecausetheemulatorcannotemulatesensors.

• Thereare,however,sensorsimulatorsthatyoucanusetosimulatesensoroutput.

Page 33: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Verifysensorsbeforeyouusethem

IfyouarepublishingyourapplicationonGooglePlayyoucanusethe <uses-feature> elementinyourmanifestfiletofilteryourapplicationfromdevicesthatdonothavetheappropriatesensorconfigurationforyourapplication.

Page 34: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

PointstoRemember• Unregistersensorlisteners

• whenyouaredoneusingthesensororwhenthesensoractivitypauses.• Ifasensorlistenerisregisteredanditsactivityispaused,thesensorwillcontinuetoacquiredataandusebatteryresourcesunlessyouunregisterthesensor.

• Don'tblocktheonSensorChanged()method• Sensordatacanchangeatahighrate- systemmaycalltheonSensorChanged(SensorEvent)methodquiteoften

• DoaslittleaspossiblewithintheonSensorChanged(SensorEvent)methodsoyoudon'tblockit

• Choosesensordelayswisely• Sensorscanprovidedataatveryhighrates.• Sendingextradatathatyoudon'tneedwastessystemresourcesandusesbatterypower.

Page 35: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

OrientationSensors

• TYPE_ACCELEROMETER usestheaccelerometerandonlytheaccelerometer.Itreturnsrawaccelerometerevents,withminimalornoprocessingatall.

• TYPE_LINEAR_ACCELERATION (ifpresent)usesthegyroscopeandonlythegyroscope.Likeabove,itreturnsrawevents(angularspeedunrad/s)withnoprocessingatall(nooffset/scalecompensation).

• TYPE_ORIENTATION isdeprecated.Itreturnstheorientationasyaw/pitch/rollindegrees.• Thissensorusesacombinationoftheaccelerometerandthemagnetometer.• MarginallybetterresultscanbeobtainedusingSensorManager's helpers.• Thissensorisheavily"processed".

Page 36: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Orientations

Accelerometer Gyroscope

Page 37: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

OrientationSensors

Page 38: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

OrientationSensors.• TYPE_LINEAR_ACCELERATION,TYPE_GRAVITY,TYPE_ROTATION_VECTOR are"fused"sensorswhichreturnrespectively• thelinearacceleration,• gravityand• rotationvector(aquaternion).• Onsomedevicestheyareimplementedinh/w,• Onsomedevicestheyusetheaccelerometer+themagnetometer• Onsomeotherdevicestheyusethegyro.

Page 39: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_ACCELEROMETER

• MEMSaccelerometersaretinymassesontinysprings.• Theycansense• Speedinguporslowingdowninastraightline• Shakingthedevice• Earth’sgravity,whichis1gdownward

Page 40: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_ACCELEROMETER

Page 41: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_LINEAR_ACCELERATION

Page 42: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_ACCELEROMETER

Page 43: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_GYROSCOPE

Measuresrateofrotation.Youcannotdirectlymeasureangleusingagyroscope.Youcanintegratetherateofrotationovertimetogetangle

Page 44: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

ActivityRecognition

Page 45: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Walking

45

Page 46: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Bus

46

Page 47: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Driving

47

Page 48: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Train

48

Page 49: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors
Page 50: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors
Page 51: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_MAGNETIC_FIELD

• HardwareSensor• MostlyHalleffectSensors• Androidreportsmagneticfieldsinmicrotesla.• Earth’smagneticfield canvaryfrom30microtesla to60microtesla• Uses• Compass• Themagneticfieldsensorcanbeinfluencedbynearbymetal,somepeoplehaveusedthesensortomakeanAndroiddeviceintoacrudemetaldetector• Duetoaneffectcalledhysteresis

Page 52: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_PROXIMITY•HardwareSensor•Letsyoudeterminehowfarawayanobjectisfromadevice• Someproximitysensorsprovideaboolean value(near/far).• Typically,thefarvalueisavalue>5cm,butthiscanvaryfromsensortosensor.

•Usuallyusedtodeterminehowfarawayaperson'sheadisfromthefaceofahandsetdevice• Tolockthescreenwhenauserisonacall

Page 53: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_PROXIMITY

Page 54: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_PROXIMITY

Page 55: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_STEP_COUNTER

• Returnsthenumberofstepstakenbytheusersincethelastrebootwhileactivated.• Resettozeroonlyonasystemreboot.• Thetimestampoftheeventissettothetimewhenthelaststepforthateventwastaken.• Thissensorisimplementedinhardwareandisexpectedtobelowpower.• Applicationneedstostayregisteredforthissensorbecausestepcounterdoesnotcountstepsifitisnotactivated.

Page 56: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_STEP_DETECTOR

• Triggersaneventeachtimeastepistakenbytheuser.• Theonlyallowedvaluetoreturnis1.0andaneventisgeneratedforeachstep.• Thetimestampindicateswhentheevent(herethestep)occurred•Whenthefoothitstheground- generatingahighvariationinacceleration.

Page 57: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

ENVIRONMENTSENSORS

• TheAndroidplatformprovidesfoursensorsthatletyoumonitorvariousenvironmentalproperties.• AmbientPressure

• MeasurestheambientairpressureinhPa ormbar.• AmbientHumidity

• Ambienthumiditynearthephone(expressedas%atmospherichumidity)• Illuminance

• Usedtocontrolscreenbrightness(measuredinlux)• Ambienttemperature

• Ambienthumiditynearthephone(measuredindegreecentigrade)

• Theyareallhardwaresensors.

Page 58: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

TYPE_HEART_RATE

• FoundinAndroidWearables.• Thereportedvalueistheheartrateinbeatsperminute.• Thissensorrequirespermissionandroid.permission.BODY_SENSORS• Itwillnotbereturned by SensorManager.getSensorsList orSensorManager.getDefaultSensor ifthepermissionismissing.

Page 59: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

HEARTRATESENSOR

• MeasuredusingaPhotoplethysmography (PPGsensor).• Measuresthedifferentialreflectionoflightby oxygenatedanddeoxygenatedblood

Page 60: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

HEARTRATESENSOR• Similartotheprincipleofandroidappstomeasureheartrateusingthecamera.

Page 61: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

• SensorMovementArtifact• NervousFidgetingArtifact

RemovalofLocalFidgeting

ChangesinWristbandAcc +Physiologicalsignal=YESChangesinSmartphoneAcc/Gyro =NO

Removenext30seconds61

ARTIFACTSINHEARTRATE

Page 62: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

ArtifactRemoval– ActivityRecognitionUseCase.

Page 63: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

RemovalArtifactsusingFiltering

• Twocommonfilteringtechniques• Low-passfilters• Passfrequencieslowerthancutofffrequency• Deemphasizetransientforcechange(vibrations)• Emphasizeconstantforcecomponents• e.g.,forabubblelevel

• High-passfilters• Passfrequencieshigherthancutofffrequency• Emphasizetransientforcechanges• Deemphasizeconstantforcecomponents(gravity)• e.g.,foragamecontroller

Page 64: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SignalPreprocessing

𝐺"#$% = 𝐺() + 𝐺+) + 𝐺,)

𝐴"#$% = 𝐴() +𝐴+) +𝐴,)

𝐴.

𝐴+

𝐴,

𝐺(

𝐺+

𝐺,

Accelerometer

Gyroscope

Audio

InputStreams Preprocessing64

Page 65: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SignalPreprocessing

𝐺"#$% = 𝐺() + 𝐺+) + 𝐺,)

𝐴"#$% = 𝐴() +𝐴+) +𝐴,)

𝐴.

𝐴+

𝐴,

𝐺(

𝐺+

𝐺,

Accelerometer

Gyroscope

Audio

InputStreams Preprocessing

Tseconds

Nsec Nsec

N=T/10ifN<300

N=30secsOtherwise

BoundaryRemoval

65

Page 66: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SignalPreprocessing

𝐺"#$% = 𝐺() + 𝐺+) + 𝐺,)

𝐴"#$% = 𝐴() +𝐴+) +𝐴,)

𝐴.

𝐴+

𝐴,

𝐺(

𝐺+

𝐺,

Accelerometer

Gyroscope

Audio

InputStreams Preprocessing

Screen-oncheckingandremoval

Forcontrolledscenario: Ifscreen-unlocked>10seconds

40Hz

40Hz

8KHz

66

Page 67: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SignalPreprocessing

𝐺"#$% = 𝐺() + 𝐺+) + 𝐺,)

𝐴"#$% = 𝐴() +𝐴+) +𝐴,)

𝐴.

𝐴+

𝐴,

𝐺(

𝐺+

𝐺,

Accelerometer

Gyroscope

Audio

Segm

entinto3se

condwindow

InputStreams Preprocessing Segmentation

BoundaryRemoval

AndFiltering

HumanAverageStride rateisbetween80-120stepsaminute

67

Page 68: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

𝐺"#$% = 𝐺() + 𝐺+) + 𝐺,)

𝐴"#$% = 𝐴() +𝐴+) +𝐴,)

𝐴.

𝐴+

𝐴,

𝐺(

𝐺+

𝐺,

Accelerometer

Gyroscope

Audio

Segm

entinto3se

condwindow

InputStreams Preprocessing Segmentation FeatureExtraction

ZeroCrossing rate

RMSEnergy

MFCCs

Mean

Standarddeviation

Numberofpeaks

Interpeakdistances

minimum

maximum

BoundaryRemoval

AndFiltering

SignalPreprocessing

68

Page 69: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

SignalPreprocessing

𝐺"#$% = 𝐺() + 𝐺+) + 𝐺,)

𝐴"#$% = 𝐴() +𝐴+) +𝐴,)

𝐴.

𝐴+

𝐴,

𝐺(

𝐺+

𝐺,

Accelerometer

Gyroscope

Audio

Segm

entinto3se

condwindow

InputStreams Preprocessing Segmentation FeatureExtraction

ZeroCrossing rate

RMSEnergy

MFCCs

Mean

Standarddeviation

Numberofpeaks

Interpeakdistances

minimum

maximum

Classification

RandomForestLOSO

ACCGYRO

ACC+GYROACC+GYRO+AUDIOBoundary

RemovalAndFiltering

69

Page 70: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Challenge

Highsamplingratedrainsbattery

70

Page 71: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

Effectsofloweringsamplingrates

71

Page 72: Android Sensor Progamming-compressed - UniTrentolatemar.science.unitn.it/segue_userFiles/2016Mobile... · Android OS Fragmentation ... • Choose sensor delays wisely • Sensors

PublicationRelatedtothissection

RecognizingHumanActivitiesfromSmartphoneSensorSignals.ACMMultimedia2014,Ghosh,Arindam ,andRiccardi,Giuseppe

72