読者です 読者をやめる 読者になる 読者になる

エヌがのロボット製作日記

どうも「エヌがの」です。主にマイクロマウスのことばかり書いているぶろぐです。とあるuniqueでexcitingな大学に在学中です。

2016年全日本大会前日

こんにちは。エヌがのです。

 

 今年はブログ全然更新しないまま全日本前日まで来てしまいました。地区大会は本拠地の東日本地区大会は参加できませんでしたが、中部地区、北信越、学生大会と参加しました。遠征した割りには北信越でやっと完走できただけという散々な結果です。

 とりあえず今年の全日本は予選突破と決勝迷路の最短走行の成功が目標ですが、なかなか厳しい・・・

 ただ、最近やっと斜め最短のコツがわかってきたのか成功率が急に上がりました。

www.youtube.com

 やっとここまで来れた感がありますが、もう全日本本番1本勝負しかない。探索も安定しないし外乱光にめっぽう弱いですが、精いっぱい頑張るしかないかな

 

自作光学式エンコーダ1

こんにちは。エヌがのです。
 
 ついに今年もマウスシーズン突入ですね。予定ならもうそこそこ迷路走っているはずなんですが、まだハード部分で苦戦中......
 とりあえず、自作の光学式エンコーダで距離と速度が取れるようになったのでブログに書くことにしました。とりあえず今の進捗報告ということですかね
 
 話の構成は以下になります
・ハードウェアの構成
・距離と速度取得
・速度補間

◯ハードウェアの構成
 手法は、穴の空いたホイールにフォトリフレクタで反射光を読む単純な方法です

f:id:megato:20160711011815p:plain:h200 f:id:megato:20160711011817p:plain:h200
ホイールの穴は10つ。穴数は特によく考えず決めた。きっとなんとかなるだろう

ホイール自体は分厚い歯車を購入してNC切削で追加工しました

◯距離と速度取得
 0.1ms毎にAD変換を行った時の波形が下のグラフの青線になります。光学式のエンコーダは通常、閾値を設けてこれを矩形波に変換しますが、見ての通り波形の平均値がぶれているためその方法は難しそう...ということで、波形のピークを検出することにしました。下のグラフの黄線はピーク検出時のものです

 f:id:megato:20160711012603p:plain:w400
そこそこ良い感じにとれている

 このピーク検出により距離が取得でき、さらにピーク検出間の時間を用いれば速度が取得できました

 これでエンコーダとしては十分なはずですが、実際の速度値が下のような波形となっており実用にはだいぶ厳しい
f:id:megato:20160711014608p:plain:w400

◯速度補間
 エンコーダから取得した速度情報だけではノイズがひどく更新も遅いため、加速度センサを用いてカルマンフィルタで補間してみました

f:id:megato:20160711015739p:plain:w400
黄線:エンコーダ速度 青線:補間後の速度

 やはりカルマンフィルタは強いですね。真値が出ているかどうかは別として。


まとめ
・フォトリフレクタでホイールの凹凸を読む
・ピーク検出で距離・速度を計測
・加速度を用いてカルマンフィルタ補間

を行いました。

 ここまで結構苦戦しましたがなんとか形になりました。迷路走りだすのはまだかかりそうです

2016年ハーフマウス

こんにちは。エヌがのです。

 お久しぶりです。約半年ぶりの更新になります。今年に入ってから卒研や新しい研究室での日々でついつい研究に熱をあげてマウスのモチベが上がってこなかったのですが、6月にあった理科大プチ大会でようやく火が付きました

 とりあえず、今年はハーフを頑張るということでハーフの製作を進め、ハードウェアがほぼ完成しました

f:id:megato:20160704183207j:plain:w400

基本的なスペックはこちらになります

名前 Merces Beat
サイズ 縦:43mm 横:37mm 高さ:15mm
重量 10.5g
電源 Lipo 1cell 50mAh
Motor didel Mk06-4.5
モータドライバ DRV8836
CPU RX631
壁センサ OSI5FU3A11C & LTR-4206
ジャイロ&加速度 MPU6500
足回り ホイール径:13mm ギア比:3.9

 前機体は3Dプリンタを使いましたが、やはり強度不足による破損と精度不足によるギアのかみ合わせへの不安、あとは摺動性がいまいちということで、今回は頑張って加工しギア周りはPOMで作成しました
 重量は、小さく作ろうと頑張ったかいがあり、かなり軽くなりました
f:id:megato:20160704183506j:plain:w400
 ただ最近のこじまうすが軽すぎてこれが軽い部類に入るのかもう感覚が麻痺してわかりませんね。まあ軽ければよいというわけではないのですが...

 前作と比べるとかなりのシェイプアップが図れたことがわかります
f:id:megato:20160704183434j:plain:w400

 基本的にパワーisジャスティスを謳っていましたが、結局電流とか電圧の関係上モータをでかくしても出力がちょっと上がったくらいで、それも結局制御がダメなせいで意味がなくなってしまったというのが去年の機体なので、今回はもう少し制御を詰められるように頑張りたいと思います。なにげに夏休み前に機体ができるのは初

 クラシックも鋭意製作中ですが今年はとりあえずハーフに注力ですかね。あと研究が結構楽しいので学会の締め切りの関係上夏休みは研究に捧げそう

2016年目標

マイクロマウス

こんにちは。エヌがのです。

 2016年の目標は、これらの3つです


・学生大会ハーフサイズ部門優勝
 去年運良く優勝しまして、折角なら連覇を狙ってやろうという意気込みです。なにやら某理科大m◯ceが怪しい動きをしていたり、去年のハーフフレッシュマン優勝者なんかも出てきそうなので去年のように運良くなんてのは通用しなさそう。


・ハーフ、クラシック共にフル迷路(16×16)での斜めの最短走行の成功
 今年でマウス歴が5年目になりますが、2年目の全日本のフレッシュマン以来、なんと2年間フル迷路での斜めの最短走行の成功が一度もない。これは走破性そっちのけで別の部分にこだわり続けた結果なのかなあと思います。今年はちゃんと走るマウスを作る。


・計画的なマウス製作
 課題を終わらせればよかった学部3年までとは違い、研究はなにかと長期的なタスクが多く、マウスと研究が両立できずに上手く行かないことが多々有りました。もともとスイッチの切り替えは下手なほうで、あっちをたてればこっちがたたずの状態でした。今年は月ごとの長期的な計画と、週ごとの短期的な計画を立てることを意識し、両立ができるようにしたいと思います。


 なんか去年よりハードル低くないかと思わなくはないのですが、まあ自分なりに自分のマウスが作れればいいと思います。かといって負けるつもりはさらさらありませんが。

2016年ハーフマウス(予定)

マイクロマウス

 新年明けましておめでとうございます。今年もよろしくお願いします

 マウスシーズンが終わってからというもの、研究研究の毎日でもう研究やりたくないモードに入ってます。現在は年末年始ということで、地元に帰省しています。もう東京に帰りたくないです


 今年のマウスのコンセプトは、ソフトウェア本格着手です。去年までは独自性を求めて、メカと回路にいろいろ手を加えましたが、そのせいでソフトウェアがずいぶんとおざなりになってしまいました。まあ具体的に何やるの?っていうのはあるんですが、とりあえず再現性を高めたいと思います

 というわけで、メカ回路共に従来のよく使用されているものを採用してさっさとハードを製作してソフトをいじる時間を確保しようと思います。現在の進捗はこんな感じ

f:id:megato:20160103135538p:plain:w400
モータを同軸にした変則4輪は初めて設計したのですが、いままで苦しんできただけあって楽に感じました

回路の方はこんな感じ
f:id:megato:20160103140033p:plain:w400
これは結構苦戦しました。どうにかして縦40mmに収めたかったのですが、1mmオーバーして、マウスのサイズは37×41mm

 このマウスでの個人的な挑戦は、エンコーダに磁気式ではなく自作の光学式を採用したところです。ここはいろいろ悩んだ結果挑戦することにしました。

 ここ2,3日の休日を使って頑張ってみましたが、ハンダ付けと加工はおそらく卒論が終ってからでしょう。今年はロボットグランプリにでない分、マウスは春休みには走ってる状態にしたいです。

磁気式エンコーダ その3

技術ネタ マイクロマウス

こんにちは。エヌがのです。

 磁気式エンコーダ第3回です。取得した速度データを滑らかに加工して制御をしやすくしたのが前回の記事です。今回は、取得した角度情報を使って補完した話を書こうと思います

 毎回ですが、モータに一定のdutyをかけ、空転させたとき取得したデータがこのようになっています
左:速度mm/s 右:取得角度(14bit/rot)
f:id:megato:20151129022235p:plain:w300 f:id:megato:20151129022248p:plain:w300
 ここから、磁石1回転分の角度情報を抜き出します。
この角度情報を無理やり理想的な形(1次線形)に線形変換します
f:id:megato:20151204032301p:plain:w400

変換した角度情報はこちらになります
f:id:megato:20151204032920p:plain:w400

線形変換は6次の線形近似を使用していますが、完全な近似ではないのでだいぶぶれています。おそらく他に方法はあると思いますが、思いつかなかったのでこれで良しとしました。単純に自分の知識不足なので、もっと良い方法はいくらでもあるでしょう

 気になる速度の情報はこちらになります
f:id:megato:20151204033204p:plain:w400
だいぶマシになったかなという程度です。線形変換のやり方を改善すればもっとよくなりそう
一応、1回転したときの整合性を合わせるために、1回転したときの角度値を変えております
 実装に関して、1ms毎に6次の近似方程式を2回解いていますが、問題なく動いています。さすがRX


 今回はここまでとします。磁気式エンコーダに関する記事はこれで最後にしようと思ったのですが、クラシックマウスでの体験談を後1回で書こうと思います。
 長文になりましたが、ここまで読んでくださり、ありがとうございました。

おまけ:
 これは全日本前あたりになって試みたことなのですが、かの有名なカルマンフィルタを使ってみました。
結果はこんなかんじ
f:id:megato:20151204033637p:plain:w400
 青線がフィルタを通さなかったデータで、黄線がカルマンフィルタを通した値です
 ものすごく改善した気がします。やはりカルマンさんは偉大。これで全日本決勝は走りました
 ただ、フィルタの設計や補正項など評価ができてないので詳しくは書きません(というか書けない)。見かけ上うまくいってるだけかも

 

磁気式エンコーダ その2

マイクロマウス 技術ネタ

こんにちは。エヌがのです。

 前回から引き続き、磁気式エンコーダについて書いていきたいと思います。
 エンコーダから角度を取得しグラフにしたところ、このような結果になったことを前回書きました
左:速度mm/s 右:取得角度(14bit/rot)
f:id:megato:20151129022235p:plain:w300 f:id:megato:20151129022248p:plain:w300
モータに一定のdutyをかけ、空転させたときのデータです
 速度がものすごくブレてます。理想的な状態ならば、速度が一定になるはず。角度から察するに、速度のブレの周期がおよそ磁石が1回転する周期と同等程度なのはわかります。どうしてこんなにぶれているかの原因を推測しますと、

・磁気式ICと磁石の並行がとれていない
・磁気式ICの計測中心と磁石の回転中心があっていない
・磁石の回転が偏心している
・磁石自体の精度が悪い
・SPI通信で値を取得しているため、時間の整合性が合ってない

 様々な原因がありますが、一番の原因は磁気式ICの計測中心と磁石の回転中心がずれていることだと考えました。そこで、再びばらばらにし磁気式エンコーダICを丁寧にはんだづけしましたが、機械的な基準も拘束もなかったため、肉眼で合わせるくらいしかできませんでした。
f:id:megato:20151128184427j:plain:w300 f:id:megato:20151128184417j:plain:w300
肉眼では合っているように見える。
 改善の結果としては、少しマシになった程度で、効果は薄かったです。

 機械的な原因はもう設計時点でのミスであり、どうすることができませんでしたので、次はソフトウェアで対処することにしました
 とりあえず適当にFF制御で動かしたマウスの速度データが以下になります。
f:id:megato:20151129162645p:plain:w400
これでは制御ができないのでなんとか使えるデータにしてみます
 
 方法としては、こちらで紹介されている方法を用いました。
 10,20,30回で平均をとったデータがこちらです
f:id:megato:20151129163623p:plain:w400
 10,20,30と増やしていくに連れて、データが平滑化されているのがわかります。これはローパスフィルタがかかっているものと同義と私は考えていて、ある程度は効果がありますが、平滑化しすぎると応答の遅れから発振しやすくなります。私は、どれくらい平滑化するかは完全に主観で決め、20回と設定しました。

 これでまともに制御できるくらいにはなりました。しかし、まだ振れが大きくゲインをあまり上げられないという問題があり、なんとかならないかと考えました。

 今回はここまでになります。この話題についてはあと1回ほど書こうと思っていますが、ほとんどおまけみたいなものです。
 長文になりましたがここまで読んで下さり、ありがとうございます。