苦行記録

マイクロマウス関連の不定期な日記みたいなものです

2020年マイクロマウスクラシック機体紹介(試作段階)

後述の問題により試作段階であり,探索すらできないが紹介する.

f:id:nout:20200923195721j:plain

f:id:nout:20200923195750j:plain

機体名 20CL-02
全長 74.5 mm
50 mm
重量 約35 g
マイコン RX631 100pin
モータ

CL-0614×4

Hyperion 7x20 mm 11000 KV(吸引)

エンコーダ MA-700
モータドライバ

DRV8835×2

IMU MPU-6000
センサ ST-1KL3A+SFH4550
バッテリー JJRC 150mAh 30C 2Cell コレ
ギア

kkpmo M0.3 9T

ミスミ M0.3 36T

 <最大パラメータ>

Q.本当にこの速度で走る?

A.知らん(個々では出力の限界スレスレで走る)

直進速度 4.5 m/s~
斜め直進速度 4.5 m/s~
加速度 23 /m/s/s~
SS90 2.5 m/s
SS180 2.4 m/s
SD45 2.5 m/s
DS45 2.4 m/s
SD135 2.3 m/s
DS135 2.2 m/s
V90 2.3 m/s

<3DCAD>(ホイールのスポークの表示がバグっている)

<回路図>

f:id:nout:20200923202051p:plain

<AW>

f:id:nout:20211219172403p:plain

 

特徴

◎駆動モータを4個使用

前作はモータのパワーがあるとはいえ,機体自体が重かったため走行性能が低かった.

そこで,今作では小型・軽量化をすることで走行性能の向上を図った.

先駆者と同じものを作ってもその性能を超すことはできず,ただの劣化版になることは目に見えていたので,今作では駆動モータを合計で4個(片輪あたり2個並列)使用していることがポイントである.

不可を分散することでモータが燃えることを防ぎ,3セルでの駆動が可能になることや,期待してはいないが少しでもトルクが改善されればと考えた.

実際は,トルクに関しては2個と4個で比較をしていないため,4個使用したことによる恩恵を受けられているかは不明だが,前作よりはかなり改善されていることが分かった.

3セルでの駆動については問題なく,走行性能も悪くはなかったが,吸引モータの発熱が耐えられなかったため選定をしなおす必要がある.

 

ここまでは問題なさそうだが,再現性なく暴走するバグが発生した.

暴走時のログを解析すると角速度や速度は正常に記録されていそうであったが,駆動モータへ送るPWM信号が突然0になり,速度が急に上がっているなど,マイコンが正常に動作していない(まさしく暴走している)ことが判明した.

この現象は直進時,旋回時,超信地旋回時など決まってモータが回転しているときに起こり,当初はコンパイラによる最適化のバグかと考えたが,ハーフでも同じコンパイラ・ほぼ同じプログラムで正常に動いていたことから,モータを並列使用したことによる電源のリップルノイズ増大によるマイコンの誤作動であると結論付けた。

まだ定量的な検証ができていないため,言い切ることはできず,今後の課題とする.

 

◎ジャイロセンサ変更

ジャイロセンサを今まではMPU-6500を使っており,この機体でも最初は同じものを使用していた.

が,直進で速度2.5 m/s付近以上からジャイロの値が発振し,旋回方向の姿勢制御が十分に行えないことが分かった.

ハズレな個体を引いたと思い,同型番のものに張り替え直すが同じ現象に遭遇し,色々試した結果,ジャイロが載っている基板とモータ含む足回り一式を離すとその現象が起こらなかった.

ジャイロがモータが回転することで足回りの小刻みな振動を拾って発振していると考えられたため,MPU-6500からMPU-6000に変更したところ,そのような現象は起こらなくなった.

おそらく,今までも同様の現象が起こっており,そのために高速域の姿勢制御が乱れていたと考えられる.なぜ気づけなかったのか.

 

◎センサ配置

前作ではセンサを6個使用していたが45度に取り付けたセンサを一度も使うことがなかったので今作では廃止し,4個にした.

機体が小型になったことで半区画先を見る横センサの角度が鋭くなり,見たい壁や柱のエッジと異なるエッジを見てしまい,壁制御が難しくなった.

壁切れはあまり問題なく見れているが,同様の小型の機体を製作する場合はセンサ配置や角度を気を付けると幸せになれる.

 

◎吸引モータ変更

前作ではブラシレスモータを吸引ファンに埋め込む形で取り付けていたが,それだと吸引ファンの外形が大きくなることや空気の通り道が狭くなることなどでロスが多く感じられた.

そこで,今作ではモータをブラシモータに変更し,ファン径を小型にして羽の形状を変更した.(3DCAD参照)

前作よりもスカート面積が小さくなったが,2セルのフル回転で400g程度吸うことが可能になった.

もちろんそんなに吸ったらシャフトが変形しかねないので,走行時は5割程度に抑えている.

 

◎七色に光る

f:id:nout:20200923214355g:plain

3つの1×1 mmの角型フルカラーLEDを実装しており,ピン数の関係からLEDの点灯・消灯は個別で,色の指定は共有である.

点灯タイミングを変更すれば3個のLEDを別々の色で同時に光らせているように見せることが可能である.

これが本当のゲーミングマウス.(これがやりたかっただけかもしれない)

 

◎プログラムの変更(ハーフも同様)

今作はハードもソフトも今まで動けばOKだった箇所を見直した.

・並進方向と旋回方向にFF制御を導入し,モータに余計なトルクがかからないようにした.

FF制御のゲインは運動方程式から理論的に算出したものではなく,加速度項,速度項,摩擦項のそれぞれをログを取りながら自分で設定した.

コツを掴めばそれっぽくFF制御が可能だが,時間と根気のいる作業なのでどうにか精度良く定数を得る方法を考えたいと思う.

・角度の扱いに関して,今まで相対角度でしか扱っていなかった(旋回する度に角度はリセットしていた)が,リセットをせずに絶対角度で扱うことで前の動作による目標角度と機体角度のズレを考慮した旋回が可能になった.

旋回後の機体角度が壁制御がなくてもほぼ合うことで壁制御が困難な櫛区間などで効果的だった.

おそらくDCマウスでは絶対角度で扱うことが普通であり,多くの人がやっていることだと思う.

・センサ値の線形化を自然対数近似にしてセンサテーブルでROMに持つようにした.

それに伴ってコンパイラをCC-RXからGCC for RXに変更.(CC-RXの無償評価版ではプログラムサイズの制限があったため)

今まで割り込み関数内で多項式近似で逐次計算していたが割り込み時間を超えていたが,テーブル参照にすることでかなり処理時間を抑えられた.

 

総合評価

 見た目と走行性能は悪くないが致命的な問題があるのでNG.回路の見直しが必要.