2週間もかかってしまいましたが、ようやく磁気エンコーダー基準で、RTK Heading角とBNO055の回転治具基準位置での絶対位置精度測定試運転やってみました。
●回転治具へ磁気エンコーダーの組込み
工夫点1:Ublox MB-00パッチアンテナが強力な磁石付なので、磁気センサに悪影響があるので、磁石の付いてないヘリカルアンテナに変更した。
工夫点2:エンコーダー用のネオジ磁石が強力なので、BNO055の磁気方位センサに影響がないようにエンコーダー磁気センサの180度対向位置にBNO055を設置して、なおかつ、ネオジ磁石から最近接距離を15cmまで離して、ほぼ影響がでないようにした。
写真 左側にBNOo55 右側に磁気エンコーダーセンサ
基準点を繰り返し通過させてみた時のBNO055の波形は大きな乱れはないが、ゆがみっぽい部分もある。更に、この場所のデータは精度比較に採用してないので、精度測定に影響はでない。
工夫点3:エンコーダーの磁石を4cm離して2個だけ設置した。
たくさん並べると基準位置がわからなくなるので、2個だけで、基準位置と速度がわかるようにしてある。
●精度確認
磁気エンコーダー基準位置でセンサを往復させてみた時のRTK Heading角とBNOyaw角の精度をみた。
結果1:RTKHeading角は、サンプリングは120msecと粗いが、グラフの線で補間して目視してみると、基準位置通過エッジ時点で、誤差がほとんどでてないことがわかる。
結果2:BNOのyaw角は、ときどき1.5度ほどずれてしまっている。
●プログラム備忘録
BNOのタイマー割り込みと磁気エンコーダーのピン割り込みがはいってます。
磁気エンコーダーのピン割り込みが不規則にはいるので、配列でエッジ時刻を保存して、
RTKの周期で一挙に出力します。磁気エンコーダーの時刻もTIMEPULSE基準の正確なitow時間で表現してあります。
https://gist.github.com/dj1711572002/3039175973ee0f4845fb3682d412fd7f
●以後
回転速度差におけるRTKとBNOの誤差精度の実験をおこなって、BNOの実力を検証する。