システムをレガーズに組み込んで、棒にくくりつけて、庭で振り回してデータをログしてみました。
●STA23のシステムとレガース実装
左:母艦MovingBase、中央:センサFUSION基板、右:RoverとBlueTooth用M5Atomです。
3体構造です。他に電池をどこに収納するか未だ決めてません。
6000mAhで、4時間持ちます。
これらをレガース(脛あて)に仕込んで、足の運動を測定できるのがSTA23の形態です。
センサFUSION基板は、足の甲部の裏クッションをカットして埋め込みました。
●ログコントロールの方法
BlueToothを採用しているのは、PCとかタブレットに直接接続できるからです。
過去のSTAシステムでは、マイコンにデータ処理をさせる部分が多かったのですが、
STA23は、過去システムの5倍くらいデータ量が多いのでとてもマイコンで処理しきれないので
WINDOWS タブレットで処理することにしました。
タブレットから、命令1文字を送信することで、コントロールできます。
①電源オン
SDカードのDIRを表示して、各デバイスの初期化をおこなって、指令待ち状態になってます。
最新の基準位置データをSDファイルから読み込んで、基準位置からの現在座標を表示します。 基準位置は、測定開始前に基準局からの基線長解析した場所を基準位置ゼロ点として
そこからの位置座標で、現在位置を測定します。
②スタートは、何かキーインすれば、測定モニターが走り出します。
■モニターの送信データ 6行ASCIIでBlueTooth経由で送信されてきます。
SDカードのバイナリデータを解読しなくても、スキー滑走に必要な情報が得られます。
しかし、BlueToothがこける可能性があるので、仮のモニターデータとして扱います。
Status行 | [md] | flagsB | flagsR | pdopB | pdopR | haccB | haccR | miscount0 | count_upB | count_upB0 | tp | tp0 |
Base行 | [Base] | itowB | NYB | EXB | DZB | gSpeedB | headMotB | |||||
Rover行 | [Rover] | itowR | NYR | EXR | DZR | gSpeedR | mHead | relLm | ||||
BN0行 | [BN0] | bnHosei+eX[0] (mHead比較) |
eX[0](yaw) | eY[0] (pitch) |
eZ[0] (roll) |
tst[0]) | ||||||
BN1行 | [BN1] | bnHosei+eX[1] | eX[1] | eY[1] | eZ[1] | tst[1]) | ||||||
BN2行 | [BN2] | bnHosei+eX[2] | eX[2] | eY[2] | eZ[2] | tst[2]) |
+は、ログ中、[s]は、Saveモード
+[s],131,131,106.00,129.00,14,14,6,2953,1170,419659,419219 [Base],369121320,19.15,38.90,-46.32,271,18954922, [Rover],369121320,70.58,120.21,-42.27,520,57.68,96.3 [BN0],56.7,249.5,-14.9,-170.0,419579, [BN1],55.4,248.2,-15.4,-170.1,419619, [BN2],53.5,246.3,-15.7,-170.2,419659, |
③送信文字リスト
送信文字 | |
p | Preprocess 基線長解析を1分間おこなって、統計値を計算して、測定精度を把握します。その場所が基準ゼロ点となって、SDに基準ファイルとしてログされます。 |
s | Save SDカードへログします。UBXファイルなので、バイナリです。 ■1エポック(1周期120msecのデータセット 752byte) Base:120msecNAV-PVT,RELPOSNED(172byte) Rover:120msecNAV-PVT,RELOPOSNED(172byte) M9N:NAV-PVT 40msec時点(100byte) M9N:NAV-PVT 80msec時点(100byte) M9N:NAV-PVT 120msec時点(100byte) BNO0:40msecHeader(4byte),Euler角(12byte)、Quarternion(16byte),時刻(4byte) BNO1:80msecHeader(4byte),Euler角(12byte)、Quarternion(16byte),時刻(4byte) BNO2:120msecHeader(4byte),Euler角(12byte)、Quarternion(16byte),時刻(4byte) |
d | プログラムをリセットして、SDカードのDIRECtoryを表示します。 一測定できたら、SDログファイルがきちんと保存されているかチェックできます |
●試運転
棒にアンテナ2個つけて、レガースをくくりつけて、庭で振り回してみました。
モニターは、WIN10タブレットで、Teratermを使いました。
C#のモニタープログラムが未だ、完全動作できてないので、しばらくは、Teratermログします。
タブレットのCPUが遅いので、自作のプログラムだとハングするリスクがあるので
高速で確実なTeratermでログして、後で、自作の解析プログラムでデータを見るようにします。
3月末くらいには、C#のプログラムを完成させたいと思ってます。
●データをEXCELで見てみた
試しにBNO055のQurternionから計算したYAW角とMovingBaseのアンテナ間の方位軸角度
の違いを見てみました。時間位相合わせ詰めてないので、ずれてますが、後日調整します。
折り返しが合ってないのは、プログラムの都合なので治します。
最初の部分を拡大してみると形状はほぼ同じですが、ピーク値が3度くらい低めにでてます。
最初に補正値を合わせるのですが、そこで、誤差が数度でてるかもしれません。
BNO055でもYAW角がそれなりに出ることが分かるので、スキー場でたくさんデータとる価値は
あると思います。
●以後
右側のシステムだけで来週スキー場で初測定実験をします。
右の調子がよかったら 左のシステムをBNO055とRTKだけのシンプルなものにしようと思ってます。MovingBaseだとアンテナ2本あって、スキーへのとりつけ、持ち運びが大変手間なので
できるなら、MovingBaseの代わりにBNO055を代用したいと思ってます。