スキューバダイビングを記録する
1. 緒言
スキューバダイビングの魅力は、中性浮力(重力と浮力が釣り合った状態)をとった時の無重力感である。いま自分が中性浮力をどのくらいの時間で維持できたかを記録できれば、ダイビング技術の向上に役立つだろう。
しかし、自分が所有するダイビング装備でその記録を行うことは困難であった。中性浮力をとれているかどうかを推測するデータとして、水深[m] (ダイビングコンピュータにより記録されたデータ) がある。ただ、水深[m]のみでは中性浮力を達成した時間を推測できない。また、サンプリング周期が粗いこともあり、自分に働く浮力を記録する装置が必要と判断。今回、浮力を記録する「浮力ロガー」を作成したので、その内容を共有する。
2. 全体像
図1に浮力ロガーの処理を示す。潜水中のダイバーのふるまいを9軸センサー内蔵の加速度センサーで記録し、地磁気を方位センサーで記録する。方位センサーの計測値に対してオフセット補正を行う。次に加速度センサーの計測値を基にCalc①を行い、Global座標系におけるダイバーの回転角(ロールr、ピッチp) を求める。さらにそれら回転角および地磁気の計測値を用いてCalc②を行い、回転角(ヨーy) を求める。最後にCalc③を行いダイバーに作用する浮力Fを出力する。
![](https://assets.st-note.com/img/1724457980810-PLAbKHmn2y.png?width=1200)
3. 機器構成
表1に浮力ロガーの機器構成を示す。
![](https://assets.st-note.com/img/1724458528231-P5EiZF314i.png)
4. 回路図
図2に回路図を示す。図2内のNo.は表1と対応。
![](https://assets.st-note.com/img/1724458178402-qBc6uG5rZf.png?width=1200)
5. 動作環境(RasberryPi zero WH)
・Description: Raspbian GNU/Linux 12 (bookworm)
・Python 3.11.2
6. 詳細
Calc①、Calc②
・9軸センサーに内蔵された加速度センサーを使用して、ダイバーの回転角(ロール・ピッチ・ヨー)を計算する。
・筆者は9軸センサーの使用方法を参考文献[1]で学習した。
・回転角は回転行列を使用して求められる。回転行列の考え方およびCalc①, Calc②を実施するためのプログラムは参考文献[2][3]を参照した。
オフセット補正
・回転角(ヨー)の算出に地磁気を利用する。方位センサーが計測した地磁気を使う場合、オフセットに注意する必要がある。オフセットに関する考え方は参考文献[4]を参照した。
Calc③
センサー座標系における加速度$${\boldsymbol a' = (a_x',a_y',a_z')}$$およびCalc①, Calc②で求めたGlobal座標系における回転角(ロール:r, ピッチ:p、ヨー:y)からGlobal座標系の加速度$${\boldsymbol a = (a_x, a_y, a_z)}$$を求め、ダイバーに作用する浮力$${\boldsymbol F=(0,0,F_z)}$$ を計算する。
図3にGlobal座標系およびセンサー座標系との関係を示す。
![](https://assets.st-note.com/img/1724467768973-Npzaz1S9Jv.png)
センサー座標系において、$${\boldsymbol a'}$$とz'軸がなす角度を$${φ_1}$$とすると、,Global座標系における$${a_z}$$は下記のように求められる。
$${a_z =}$$ $${\sqrt {(a_x')^2+(a_z')^2}}$$ $${\cos (p+φ_1)}$$
$${φ_1 =}$$ $${\arctan}$$ $${\frac {a_x'}{a_z'}}$$
次にz軸方向の力のつり合いを考える。ダイバーの質量をM,重力加速度を$${\boldsymbol g=(0,0,g_z)}$$とすれば、ダイバーの状態を下記のように表現できる。
$${M(a_z -g_z) < 0 :浮力不足}$$・・・式(1)
$${M(a_z -g_z) = 0 :中性浮力をとれた状態}$$・・・式(2)
$${M(a_z -g_z) > 0 :浮力過剰}$$・・・式(3)
これら3つの状態をRasberry Pi zero WH上で記録することで、中性浮力を達成した時間を計測できる。
7. 結果
計測結果のグラフを図4に示す。
式(2)が成立することが少なく、とある範囲で閾値を設けることにした(図凡例 「max」「min」)。時間11:46 ~ 11:56および 12:22~12:25に中性浮力をとれていたと推定。
「詳細」で記載した事項が本当に成立するかどうかは検証中のため、データ収集をしつつ精度を向上させたい。
![](https://assets.st-note.com/img/1724465815703-ZByUOuNd6s.png?width=1200)
参考文献
[1] ラズパイマガジン2022年春号 P.39, 日経BP
[2] Watako-Lab., 3次元ベクトルの回転「ロール・ピッチ・ヨー」http://watako-lab.com/2019/01/23/roll_pitch_yaw/,(参照日:2023年8月26日)
[3] 月刊Interface 24年4月度 「すぐに使える数式&プログラム付き!数学100」,P.75-81, CQ出版社
[4] Watako-Lab.,3軸方位センサを用いた姿勢推定
https://watako-lab.com/2019/02/20/3axis_cmps/, (参照日: 2023年8月23日)
免責事項
本記事の浮力ロガーは筆者が趣味で作成したものであり、本記事を利用した際に発生したトラブルについて筆者は一切責任を負いません。
最後までお読みいただきありがとうございました。
付録
・機器構成(表1) の詳細を有料部分に記載します。
・名称を日本語で記載しました。
・名称をWeb検索することで、部品探しの手間を省けます。
※内容は2024年8月23時点の情報。
機器構成表 詳細
ここから先は
¥ 300
この記事が気に入ったらサポートをしてみませんか?