Top Banner
AITCシニア会めがねチーム 加速度センターに挑戦 2016/6/23 近藤・吉⽥ 1
16

2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

Feb 14, 2017

Download

Internet

aitc_jp
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

AITCシニア会めがねチーム 加速度センターに挑戦

2016/6/23

近藤・吉⽥

1

Page 2: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

解決したい課題2

家の中のどこかにあるはずの眼鏡を 眼鏡をかけていなくでも

探せるようにしたい

Page 3: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

RFIDなど検討したが、発想の転換!´ 家の中ならば、『眼鏡の現在位置』ではなく、

『⾃分が昨夜どこにいたか』が分かればよい

スリッパに モーションセンサーを装着して 昨夜どこを歩いたかを記録する

X

Y

3

Page 4: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

Arduino 9軸モーションシールド3790円

4

x

y

Page 5: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

モーションシールドの仕様´ BOSCH製BNO055を搭載

´ 14bit精度の3軸加速度センサー (X,Y,Z)

´ 16bit精度の3軸⾓速度センサー (Ωx,Ωy,Ωz)

´ 16bit精度の3軸地磁気センサー (x,y,z)

5

Page 6: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

物理のおさらい´ 重⼒加速度9.8m/s2 ´ 地磁気0.45ガウス

-9.8m/s2

x

yz

センサーを⽔平に置いて静⽌した場合

0.45G

x

z

北磁極に向けて⽔平に置いた場合(東京)

北磁極(6°⻄) 49°

0.45✕cos49°≒0.32G

0.45✕sin49° ≒-0.37G

y

6

Page 7: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

BNO005ができること7

Page 8: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

⽤語解説´ Sensor Fusion

ある現象に対して、それを測定する複数のセンサーーの出⼒から、データ同⼠の処理を⾏い、1つの知覚を得ること(wikipediaより)

´ Absolute Orientation ⾓速度を積分して、絶対⽅位に対して回転⾓度(傾き)を求める

´ Relative Orientation ⾓速度を積分して、初期状態の向きに対して回転⾓度を求める

´ Linear Acceleration 重⼒加速度成分を除き、動きによる加速度のみ出⼒する

8

Page 9: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

ということは…

´ IMUモード(地磁気センサーを切る)にして

´ 最初にスリッパを⽔平にまっすぐ置き

´ Linear Acceleration (ax, ay, az)と

´ Relative Orientation (α、β、γ)を読んで

´ 座標変換(ax’, ay’, az’)し

´ ax’とay’を2回積分すればいい

´ まずは、センサーを回転させないように測ってみよう

9

う、それでもそこそこ⾯倒

Page 10: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

プログラムvoid setup() { Serial.begin(115200); I2C.begin(); mySensor.initSensor(); mySensor.setOperationMode(OPERATION_MODE_IMUPLUS); mySensor.updateAccelConfig(); void loop() { if ((millis() - lastStreamTime) >= streamPeriod) { lastStreamTime = millis(); Serial.print("Time: "); Serial.print(lastStreamTime); Serial.print("ms "); Serial.print(" a: "); Serial.print(mySensor.readLinearAccelX()); Serial.print(", "); Serial.print(mySensor.readLinearAccelY()); Serial.print(", "); Serial.print(mySensor.readLinearAccelZ()); Serial.print("m/s2 "); Serial.println(); }}

10

Page 11: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

では、早速やってみましょう!11

   1. 加速度センサーを静⽌状態で安定させる

   2. 実際に歩いて加速度を測定する

   3. 加速度を2回積分して移動距離を求める

Page 12: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

測定の概要´ 約4mの範囲で、歩いた軌跡を測定しました。

12

約4m

約4m

センサーの持ち⽅

X⽅向

Y⽅向①

向きを変えないように注意して

Page 13: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

1. 加速度センサーを静⽌状態で安定させる´ 静⽌状態でのセンサー値を測定 Time: 4591ms a: 0.00,0.03,0.10m/s2 Time: 4606ms a: -0.01,0.02,0.08m/s2 Time: 4625ms a: 0.00,0.03,0.08m/s2 Time: 4641ms a: 0.02,0.03,0.08m/s2 Time: 4657ms a: 0.00,0.03,0.08m/s2 Time: 4674ms a: -0.01,0.00,0.09m/s2

Time: 4690ms a: 0.01,0.01,0.08m/s2 Time: 4707ms a: 0.00,0.03,0.07m/s2 Time: 4724ms a: -0.02,0.01,0.08m/s2 Time: 4741ms a: 0.00,0.01,0.10m/s2

Time: 4757ms a: 0.00,0.01,0.08m/s2 Time: 4774ms a: 0.00,0.01,0.09m/s2

13

む〜ん、0.00にならない 少し振動してる…けど 許容できる誤差でしょう

Page 14: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

2. 実際に歩いて加速度を測定する´ 概ね①〜④の動きに合っている。

14

-6

-4

-2

0

2

4

6

8

1 12

23

34

45

56

67

78

89

100

111

122

133

144

155

166

177

188

199

210

221

232

243

254

265

276

287

298

309

320

331

342

353

364

375

386

397

408

419

430

441

452

463

474

485

496

507

518

529

540

551

X⽅向における移動時間と加速度の推移(時間(ミリ秒)/距離(m))

lX(m/s2)

① ② ③ ④

Page 15: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

3. 加速度を2回積分して移動距離を求める´ 約90m進んだようです。(あれ?・・・4mじゃ・・・ )

15

0

10

20

30

40

50

60

70

80

90

100

1 12

23

34

45

56

67

78

89

100

111

122

133

144

155

166

177

188

199

210

221

232

243

254

265

276

287

298

309

320

331

342

353

364

375

386

397

408

419

430

441

452

463

474

485

496

507

518

529

540

551

X⽅向における移動時間と距離の推移(時間(ミリ秒)/距離(m))

X

② ③

ここ!

Page 16: 2016年6月23日 デジタルガジェット祭り!「加速度センターに挑戦」

まとめ´ 加速度を扱うのは⾼度な専⾨技術が必要

´ 2回積分すると少しの誤差でも⼤幅なずれになる。´ 数値を取得できても、有効な値を抽出するのは困難。

´ キャリブレーション、ローパスフィルター、座標変換など勉強が必要。

´ プロが提供するフュージョン機能を使ってさえ充分な精度は得られない。

´ センサーの安定までに時間がかかる。

´ 加速度センサーでメガネを探すのはなかなか難しい ´ 平屋の前提でこの難易度⾼い。2階建てなら更にUP。

´ 考慮できていないことも多い。(向き、連続利⽤など)

16