Skip to content

knagara/SLAMwithCameraIMUforAndroid

Repository files navigation

SLAM with Camera and IMU for Android

画像センサとIMUを用いたSLAMのためのAndroidアプリ(日本語説明は後半)

SLAM = Simultaneous Localization and Mapping

Overview

How to use

  1. Install OpenCV Manager from Google Play
  2. Download the app from here
  3. Install and launch the app
  4. Press the login button
  5. Fill in the form

[Recommended setting]

  1. Press the start button
  2. Now your smartphone is publishing sensor data to your MQTT server!
[Example of published sensor data (IMU)]
Topic: SLAM/input/all
Payload: 1452657360343&-0.039294902&-0.09044182&-0.06832063&-2.0395765&0.068644375&-3.0333138&-26.178856&-19.393106&-6.809244&0.026928991&0.018066406&-0.012341589
[Explanation of payload (IMU)]
Payload: timestamp&acceleration[x]&acceleration[y]&acceleration[z]&orientation[x]&orientation[y]&orientation[z]&magnet[x]&magnet[y]&magnet[z]&gyroscope[x]&gyroscope[y]&gyroscope[z]
[Example of published sensor data (Camera)]
Topic: SLAM/input/camera
Payload: 1452657480185$5:9:69.0:726.0:87.0:734.0&29:52:237.0:1177.0:249.0:1199.0&13:25:473.0:957.0:490.0:980.0&20:37:113.0:1013.0:126.0:1028.0&16:29:159.0:988.0:172.0:1002.0&
[Explanation of payload (Camera)]
Payload: timestamp$index_of_keypoint_on_previous_frame:index_of_keypoint_on_current_frame:image_coordinate[x]_on_previous_frame:image_coordinate[y]_on_previous_frame:image_coordinate[x]_on_current_frame:image_coordinate[y]_on_current_frame&...

8.Press anywhere on the display to stop publishing

Files

File name Explanation
Conf.java not important
DMatchComparator.java not important
LoginActivity.java Login page
MainActivity.java Top page
MqttClientService.java not important
MqttClientServiceEx.java not important
MqttTraceCallback.java not important
Preview.java Capture camera image
Extract keypoints
Publish sensor data (Camera)
ProcessingActivity.java Processing page
PublishSensorData.java Get sensor data
Calculate orientation
Publish sensor data (IMU)
QuickToastTask.java not important
Utils.java Calculation functions

概要

使い方

  1. OpenCV Managerをインストール → Google Play
  2. アプリをダウンロード → こちら
  3. アプリをインストールして起動
  4. Loginボタンを押下
  5. フォームに記入

[推奨設定]

  1. Startボタンを押下
  2. MQTTブローカーに対して、センサデータの送信が始まります。
[送信されるセンサデータの例(IMU)]
Topic: SLAM/input/all
Payload: 1452657360343&-0.039294902&-0.09044182&-0.06832063&-2.0395765&0.068644375&-3.0333138&-26.178856&-19.393106&-6.809244&0.026928991&0.018066406&-0.012341589
[Payloadの解説(IMU)]
Payload: タイムスタンプ&加速度[x]&加速度[y]&加速度[z]&角度[x]&角度[y]&角度[z]&地磁気[x]&地磁気[y]&地磁気[z]&角速度[x]&角速度[y]&角速度[z]
[送信されるセンサデータの例(画像センサ)]
Topic: SLAM/input/camera
Payload: 1452657480185$5:9:69.0:726.0:87.0:734.0&29:52:237.0:1177.0:249.0:1199.0&13:25:473.0:957.0:490.0:980.0&20:37:113.0:1013.0:126.0:1028.0&16:29:159.0:988.0:172.0:1002.0&
[Payloadの解説(画像センサ)]
Payload: タイムスタンプ$前フレームの特徴点のインデックス:現在フレームの特徴点のインデックス:前フレームの特徴点の画像座標[x]:前フレームの特徴点の画像座標[y]:現在フレームの特徴点の画像座標[x]:現在フレームの特徴点の画像座標[y]&...

8.画面をタップすると終了

ファイル

ファイル名 解説
Conf.java not important
DMatchComparator.java not important
LoginActivity.java Login画面
MainActivity.java TOP画面
MqttClientService.java not important
MqttClientServiceEx.java not important
MqttTraceCallback.java not important
Preview.java カメラ画像のキャプチャ
特徴点の抽出
センサデータの送信(画像)
ProcessingActivity.java 処理中画面
PublishSensorData.java センサデータ取得
角度の算出
センサデータの送信(IMU)
QuickToastTask.java not important
Utils.java 計算に使う関数

About

SLAM with Camera and IMU (Android App)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages