harattaMouseの小部屋

組み込みプログラミングが趣味な人のブログ

マイクロマウス導入技術~磁気式エンコーダ~

「harattamouseの小部屋」は移転しました。新ページは 「Haratta-Tech-Lab」です。


 

 

 

こんにちは。ブログ主のharattaMouseです。

 

本記事では、2019年に設計した機体(白いハラシーマウス.ver3.00)に導入した技術を公開していきます。今回は個人的に新しく取り入れた磁気エンコーダの評価方法と反省点についてお話できればと思います。

※機体の基本スペックは前回の記事で説明しています。読まれていない方は先にこちらの記事を読むとイメージしやすいと思います。

harattamouse.hatenablog.com

 

 

ロータリーエンコーダとは

マイクロマウスだけでなく、他のロボットコンテストでも広く利用されているロータリーエンコーダ。こちらの記事を参考にする方のほとんどは理解されている気がしますが念のためどんなものか説明しておきます。

ロータリーエンコーダとは、回転するもの(具体的にはモータや回転軸)に設置し、回転量を検知して電気信号を出力する部品になります。名前のとおり、回転量(ロータリー)を検知し、検知した角度情報を電気信号に変換(エンコード)して出力します。

ロータリーエンコーダには、光学式と磁気式が存在し、 マイクロマウス界隈では、省スペース化や省コスト化を目的に磁気式エンコーダを利用するケースが主流になっています。

磁気式エンコーダについて

特にマイクロマウス競技では、1区画 90mm x 90mm サイズの迷路を走り回れる機体を設計する必要がありますので、省スペース化に貢献できる磁気式エンコーダの採用は理にかなっていると言えます。

f:id:harattaMouse:20200208160500p:plain

(AM4096 datasheet より)

磁気式エンコーダの特徴として、磁気式エンコーダICと磁石をセットにして利用します。つまり、回転体に磁石、傍にエンコーダICを設置という構成になります磁気式エンコーダは 省スペース化や軽量化できるメリットがある反面、加工精度を求め、磁石とエンコーダICの位置を精度よく出さなければなりません。

採用した磁気エンコーダIC MA702

2019年度の本設計では、MPS製のMA702を採用しました。小型なパッケージ(QFN)が気に入り採用しています。このICは出力方式を選択でき、ABZ方式とSPI方式になります。出力方式によって分解能が異なり注意が必要です。スペック紹介の記事でも話した通り、今回はABZ方式を利用する配線になっており、一回転で256パルス、つまり、エッジカウントで分解能が10bit = 1024になっています。

f:id:harattaMouse:20200208135336p:plain

(MPS702 datasheetより)

磁気エンコーダの線形性評価

白いハラシーマウス.Ver3.00 組み立て後、MA702の動作確認を行いました。定速にモータを回転させ、線形性評価を行っています。

評価方法 (線形性の実験)

今回の実験では、定速 600mm/sで回転させたときの値を測定しています。MA702のABZ出力では分解能は1024になるので、一回転分、つまり、カウント数が1024まででプロットしました。

f:id:harattaMouse:20200119131736p:plain

理想的には、磁気エンコーダのゆがみがなければ カウント数は線形に上がっていくはずです。しかし、今回の実験結果では、計測時間40~60msのあたりで大きくゆがんでいることがわかります。また、左右のモータは同速度で回転しているはずなのですが、左右でゆがみの差があることもわかります。

出力値歪みの原因

磁気式エンコーダの角度情報を精度よく出力させるためには、回転体に取り付ける磁石をエンコーダICと垂直に配置させる必要があります。エンコーダICは磁力強弱によって角度情報を算出しているため、加工精度の悪いと、磁石の傾きによる磁力強弱も検知して、正確な角度情報を得られないといったことが懸念されます。

f:id:harattaMouse:20200208154958p:plain

↑こちらは、定速で回転させたときの磁気式エンコーダの出力になります。

1024カウント毎にマーカーを入れているので、一回転で周期的に歪んでいることが良くわかると思います。

 

結果、磁気エンコーダ出力のゆがみにより、機体の走行速度を正確に得ることができなくなり、旧機体よりも 距離の精度が求められる箇所の調整に苦しめられました。(旧機体は高精度な光学式エンコーダ採用だったので、調整にかなりギャップを感じました。)

 

余談

別に考えられる要因としては、磁気エンコーダIC自身の精度の問題です。データシートにも出力精度について記載があり、INL(integral non-linearity)という指標があります。INLは磁束密度80mT以上の使用条件下で INL=0.7deg になります。

f:id:harattaMouse:20200208141543p:plain

(MA702 datasheet より)

INLは、機械式高精度エンコーダが出力する角度情報と比較してどれくらいの誤差が発生してしまうか示したものです。MA702から0.7degの誤差が発生していると仮定すると、分解能値で換算して 0.7/360*1024≒1.9911...  約2分解能分になります。そのため、2分解能分は誤差の範囲になります。(本当ですかね?詳しい方、ご意見ください。)

こちらの場合は対処の施しようがないので、これぐらいの精度であるという認識だけでいいのかもしれません。

磁気式エンコーダの測定精度

さて、ここからは趣向を変えて、机上で測定精度を計算してみます。磁気式エンコーダが測定できる最小距離を計算してみます。

測定距離(精度)の机上計算

計算条件は タイヤ半径7.5mm、サンプリング周期1ms として計算しました。結果は下記になります。

f:id:harattaMouse:20200202154113p:plain

結果、計算する前から分かることではありますが、エンコーダの分解能が2bit違うだけで4倍細かい速度を測定できます。私の場合、いままで利用してきた光学式エンコーダの分解能が500pulse/回転で運用していたため、"2倍の分解能"と"エンコーダ出力の歪み"がかなり走行調整に悪影響を及ぼした印象です。

2019年度 設計の反省点

磁気エンコーダIC MA702には、ABZ出力(インクリメンタル方式)とSPI出力(アブソリュート方式)が配線で選択できるようになっています。ゆがみの原因が物理的なものであると仮定した場合、アブソリュート方式の場合は絶対角度(位相)が分かるため、絶対角度(位相)に対応した補正をかけることができると思います。そのため、SPI出力のほうが良いと今回の設計を通して感じました

また、本設計では考慮不足でしたが、設計する際はエンコーダの分解能から検知できる最小速度を計算して、これぐらいの精度で問題ないか確認しておく必要があると思いました。

まとめ

今回は磁気式エンコーダの特性の評価を行いました。少しでも評価や設計の参考にしていただけたらと幸いです。個人的には、少し設計の手間が増えても 分解能は多いほうが良いと思います。

 

それでは、次回の記事も要チューモクです!