揺動治具を作って往復運動のデータをとってみると、今までの回転運動では、見えなかった現象が見えるようになりました。
●今回使ったRTKのPositionデータと速度データと角度データ備忘録
https://www.geosense.co.jp/download/product/f9px1/u-blox_ZED-F9P_InterfaceDescription_(UBX-18010854).pdf
採用パラメータ呼び | 出力デバイス | メッセージ | パラメータ名 |
RTK heading =MovingBaseのBaseLineの方位角 |
MovingBaseモード Rover |
UBX-NAV-RELPOSNED | relposHeading data:4byte符号付整数 単位:1e-5 deg範囲:0-360deg |
RTK headMot =Baseアンテナの速度ベクトルの方位角 |
Base | UBX-NAV-PVT | headMot data:4byte符号整数 単位:1e-5 deg 範囲:0-360 deg |
RTK Position =基準局からBaseアンテナまでの距離をN,E,Dで0.1mm分解能で表現 |
Base
Roverの場合は、 |
UBX-NAV-RELPOSNED | relPosN,relPosE,relPosD
data:4byte符号付整数 単位:cm relPosHPN,relPosHPE, |
RTK gSpeed =Base1アンテナの速度ベクトルの大きさ速度mm/sec |
Base | UBX-NAV-PVT | gSpeed data:4Byte符号整数 単位:mm/sec |
RTK velN velE =Baseアンテナの速度ベクトルのN成分とE成分 |
Base | UBX-NAV-PVT | velN velE velD data:4Byte 符号付整数 単位:mm/sec |
RTK itow | Base Rover | UBX-NAV-PVT UBX-NAV-RELPOSNED |
itow data:4Byte 符号無整数 単位:msec 週単位でUTC時刻を表現 |
●BNO055で使っているパラメータ
採用バラメータ呼び | ライブラリー名称 | |
Gyro x,y,z 角速度 |
bno.getEvent(&angVelocityData, Adafruit_BNO055::VECTOR_GYROSCOPE); | gyX[no]=angVelocityData.gyro.x; gyY[no]=angVelocityData.gyro.y; gyZ[no]=angVelocityData.gyro.z; 単位:rad/sec |
Gyro 積分値 | マイコンで計算 台形積分 約50Hz周期 |
gxsum=gxsum+(gyX[no]+gyX[no_1])/2*(double)(btime[no]-btime[no_1])/1000;//(btime[no]-btime[no_1)/1000; gysum=gysum+(gyY[no]+gyY[no_1])/2*(double)(btime[no]-btime[no_1])/1000;// gzsum=gzsum+(gyZ[no]+gyZ[no_1])/2*(double)(btime[no]-btime[no_1])/1000;// |
Lax Lay Laz
=リニア加速度 重力加速度成分を除去した運動の加速度 |
bno.getEvent(&linearAccelData, Adafruit_BNO055::VECTOR_LINEARACCEL); | laX[no] = linearAccelData.acceleration.x; laY[no] = linearAccelData.acceleration.y; laZ[no] = linearAccelData.acceleration.z; |
●上記パラメータをグラフプロット
①Positionデータをプロット横軸 E 東軸 縦軸N 北軸 BaseとRoverでBaseLine51cm対向し往復
揺動リンクを回して 15度から77度間を往復させている
headMotのあるべき姿として接線方向へ速度ベクトルがでるはず。
※位置のばらつきが通常より大きいのは、リンクを回してテーブルが大きく揺れているためとおもわれるので
テーブルを地面に直付けしてから本格的な実験を始める。
②上記往復運動の時系列グラフ
往復の反転ポイント(黒矢印)で、各パラメータの値の特徴が明白に表れていることが分かった。
1)Lax値がピークになるのは、反転ポイントの瞬間が最大加速度となる。
2)反転ポイントでHeadingがピークになる15度と77度
3)gSpeedがゼロにちかずくと反転ポイントとなる
4)velN velEがゼロになると反転ポイントとなる
5)headMotが反転ポイントで方位が大きく変化する285-347degから105-182degに変化
●考察
①往復運動の場合は、反転ポイントがキーポジションとなって、ここで各パラメータの関係のチェックができる
ここで、あるべき値になってない場合は、そのパラメータに何かあるとみることができる。
②headMotの角度とheading角が往復運動の場合ほぼ90度の関係があるが、反転ポイントで明確に比較できる
=>Roverがなくて、heading角が得られない場合でも反転ポイントでBNOのGYRO値とheadMotを比較することでHeading角を計算できる
●以後
庭の机を地面直付けの木製で製作します。回転治具を固定できて、常に基準点となる取り付け方を考えます。
運動の種類によって、キーポジションが変わってくる。スキーの場合Nutralポイントである。
キーポジションに注目することで、MovingBaseが無くてもHeading角を得ることができるアルゴリズムを
開発できる感触がでてきました。