wangtong1122 / mobile-ar-sensor-logger

Camera and inertial measurement unit (IMU) data logger for Android and iOS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mobile AR Sensor (MARS) Logger

record camera frames at ~30Hz and inertial measurement unit (IMU) measurements at ~100Hz synced to one clock source on Android (API 21+) and iOS (SDK 8.0+) mobile devices.

Description

Android

The Android app is developed from the CameraCaptureActivity of the grafika project.

  • Camera frames are saved into H.264/MP4 videos by using the Camera2 API (setRepeatingRequest, onCaptureCompleted), OpenGL ES (GLSurfaceView and GLSurfaceView.Renderer), and MediaCodec and MediaMuxer.
  • The metadata for camera frames are saved to a csv.
  • The timestamps for each camera frame are saved to a txt.
  • Inertial data are recorded on a background HandlerThread.

iOS

The iOS app is developed from the rosywriter in objective C with iOS SDK 8.0 released by Apple.

  • Camera frames are saved into H.264/MP4 videos by using AVCaptureVideoDataOutput and AVAssetWriter.
  • Timestamps, camera projection intrinsic parameters, exposure duration of the camera frame are saved into a csv file.
  • Inertial data are saved into a csv by a background NSOperationQueue receiving data from the CMMotionManager.

For user guide, please visit the wiki.

Features

  • 25+ Hz camera frames and 100+ Hz IMU measurements for off-the-shelf smartphones priced $200+.
  • The visual and inertial data are synchronized to one clock.
  • The focal length in pixels and exposure duration are recorded.
  • Tap to lock auto focus and auto exposure so as to fix focus distance and exposure duration.

Get started

The installation, data format, recording and exporting data are explained in the following wiki pages.

Android

iOS

Citing

If you use the MARS logger for your research, please consider citing the paper.

@INPROCEEDINGS{huai2019mars, 
author={Jianzhu {Huai} and Yujia {Zhang} and Alper {Yilmaz}}, 
booktitle={2019 IEEE SENSORS}, 
title={The mobile AR sensor logger for Android and iOS devices}, 
year={2019}, 
volume={}, 
number={}, 
pages={},
ISSN={}, 
month={Oct},}

About

Camera and inertial measurement unit (IMU) data logger for Android and iOS

License:GNU General Public License v3.0


Languages

Language:Java 55.1%Language:Objective-C 40.9%Language:C 3.2%Language:Objective-C++ 0.7%Language:GLSL 0.1%