2015年クラシックマウス
こんにちは。エヌがのです。お久しぶりです
なんだかんだでもう11月になりました。シーズン中は時間が過ぎるのがはやいです。今年はずっとハーフにつきっきりでしたが一応クラシックにも出るつもりなので、新作を作成しました。
空中に浮遊して固定されているものはモータドライバです・・・。もともとのモータドライバは、機体作成後に動作させてみるといろいろ具合が悪かったため使用を断念し、別のものを無理やり増設させた結果、残念なことになってしまいました。繋がっている配線が細いため、壁にぶつかると即切れます。走らせるとヒヤヒヤします。ハンダごてが手放せない
機体スペックは以下になります
名前 | OpenerBurst |
サイズ | 縦:100mm 横:75mm 高さ:25mm |
重量 | 78.5g |
電源 | Hyperion Lipo 2cell 120mAh |
Motor | Maxon DCX10L |
モータドライバ | L6205 |
CPU | RX631 |
壁センサ | TPS601 & SFH4550 |
ジャイロ&加速度 | MPU6500 |
エンコーダIC | AS5047 |
足回り | ホイール径:22mm ギア比:3.46 |
今回のクラシックの特徴は低重心です。モータの径を小さくしさらに底に真鍮板を取り付けております
この真鍮板が10gほどあり、機体の総重量の1/8を占めています。このため、随分と重い機体になってます
重心が低くなることで、加減速時のピッチ回転方向の力や、旋回時のロール軸方向の力が抑えられるため、幾ばくか効果はあると思いますが、どの程度なのかがまだわかっていません。個人的に期待していますが、吸引勢に対抗できるほどではないだろうとは思ってます
一応いつ切れるかわからない配線のまま全日本には望みたくないので、ver2を作成中
初ハーフマウス完成
こんにちは。エヌがのです
8月こそはハーフ完成させるぞと意気込んだ矢先に艦これの夏イベントにかかりっきりになり、始動が遅れに遅れ、とうとう9月になってしまいましたが、とりあえずハーフマウスのハードが完成しました
名前 | MercesAgressive |
サイズ | 縦:60mm 横:37mm 高さ:13mm |
重量 | 17.5g |
電源 | Hyperion Lipo 1cell 70mAh |
Motor | Didel MK07-1.7 |
モータドライバ | DRV8836 |
CPU | RX631 |
壁センサ | SEP8705 & LTR-4206 |
ジャイロ&加速度 | MPU6500 |
エンコーダIC | AS5047 |
足回り | ホイール径:13mm ギア比:3.375 |
マウスの名前ですが、自分はスネークケース(get_valueみたいな表記)を好んで使っているのですが、今回の大会のテクニカルデータでは15文字制限がかかり、泣く泣くキャメルケース(GetValueみたいな表記)で書くということがありました
今回のテクニカルデータの登録は、気になってたセンサー辺りや開発者等の項目が改善されていて、すごく書きやすいと感じたのですが、文字制限だけは残念だと思いました
今回のハーフサイズマウスですが、初ということで目標は全日本の予選で完走です。なので、スペックはあまりこだわらず、とりあえず作りたいものを作ってみました。
やはりこだわりはこの足回りで、特に大きなメリットはでかいモータを使った変則4輪機構ができるということくらいですが、パワーisジャスティスという思想を掲げ、組み込みました
また、マウスの重心も少しばかり下げる努力をしてみました
↑裏面
重量は17.5gほど
ハーフマウスの中では重い部類でしょうか
重心はおおよそ真ん中くらいのようで、とりあえずまともなマウスになりそう。ソフトウェアは今からなので、9月後半の関西大会までにはなんとか探索ができれば良いなと思ってます
クラシックも製作予定なのですが、もう元気が残ってない・・・
迷路最短経路
こんにちは。エヌがのです。
とうとう今年度もマウスシーズンが始まりましたね。自分はというと、大学院試験に合格し、とりあえず一息しているところです。マウスの方は、ハーフのほうがそろそろ動くかなといったところです。現役時代とは違って手元に迷路が無いので調整をどうしようかと考えています
今回は、そろそろ本格的に最短経路について、距離ベースのものから離れようと考えまして、最短経路導出プログラムの改良を行いました
改良した結果がこちらです
これは去年の全日本のエキスパート決勝です
速度は、
直進:3500mm/s, 加速度12000mm/ss, Turn90: 1200mm/s, Turn180: 1200mm/s, Turn45: 1200mm/s, Turn135: 1200mm/s, Turn90V:1200mm/s
となってます
去年の迷路は右回りの経路が距離的に長く、右回りを選択している人はいなかった覚えがあるのですが、このシミュレータでも速度パラメータをどう変えても右回りに行くことはありませんでした。ルート的にはとてもおもしろいので少しもったいないと思いました
アルゴリズム自体ですが、ダイクストラ法を参考にして組んでみました。正直言いますと、ダイクストラ法自体理解できていないので、参考になっているのかどうか怪しいです。ただ、ノードとエッジとコストで色々管理するという手法をとっているだけです
最短経路導出の手法については、特にこれといって特別なことはしておらず、ただ、初期座標からゴール座標までエッジをつなげていって、最もコストが低いルートが最短であるとしているだけです
このアルゴリズム、ルートを作成する時点でかなりの計算量になるのですが、面白いことに、総計算時間はおよそ1秒程度となりました。
さらに、PCで1秒かかるのだからRXマイコンなら10秒ほどかかるのではないかと危惧していましたが、実際に実装して同じ迷路で最短導出の計算をさせるとPCと同じ1秒ほどで終わりました。PCの内部処理には疎いため理由はわかりませんが、PCのほうがきっと本気を出していなかったからではないかと(適当)。
ということで、実装には十分なアルゴリズムと分かったので、今シーズンはこれを使っていこうと思います
色々な迷路の最短経路を導出してみました
2013年度全日本大会クラシックエキスパート決勝
2012年度全日本大会クラシックエキスパート決勝
2011年度全日本大会クラシックエキスパート決勝
2014年度東日本大会クラシック
2013年度東日本大会クラシック
これを見ると、個人的には全日本の迷路より東日本の方がアルゴリズム的には面白いと思ってます。難易度は全日本のほうが高いのですが、東日本は距離が同程度のルートが多く、さらに斜めのルートが隠されていることが多いためシミュレートしがいがあって楽しい。
現在は各ターン等のコストが固定なので、これを実際の走行と同じようにコストもシミュレートしながら経路導出が出来ればと考えています。
FF制御パラメータの調整
こんにちは。エヌがのです。
やっと院試が一段落しまして、とりあえず今は結果待ちです。受験はいつも緊張しすぎて前日寝れませんね。あと、6月28日(日)に理科大でプチ大会が開かれるので、現在クラシックの方を調整中です。ハーフの新機体はあと組み立てだけなのですがなかなか進んでおりません。
今回はクラシックの調整でFF制御パラメータについて書こうと思います。
FF制御は去年、機体重量から慣性モーメントを計算して逆起電圧定数を・・・・なんてやってたんですが、パラメータが割りとあるし、上手くいかないし、直線で苦戦してるのに旋回方向もなんてとてもやってられず、適当&放置だったんですが、少し先輩に聞いた方法から試行錯誤した結果、簡単に、短時間で、そこそこ精度良く調整できました。
結果がこちらになります。
これは、直進時の結果で、上が速度、下が角速度、黄色が実値で青が目標値となっております。
さらに、スラローム時のものが下の図です。
これらは、FF制御のみの結果です。驚くことに、角速度については、台形加減速ではないにも関わらず、そこそこ追従してます。
調整方法については、少し長くなりますが、説明したいと思います。
まず始めに、マウスとモータのモデルから説明します。
(数式等面倒なのでwordで書いて画像を貼り付けました)
このようにして、誤差が少ないと思われる解を簡単に求めることができます。同様にして、旋回方向のパラメータも調整することが可能です。
擬似逆行列等の計算はすべてmatlabにやってもらいました。擬似逆行列自体そんなに難しいわけではないので、matlabを使わなくても実装可能です。やりたくありませんが。
やっと大学生っぽいことができて勝手に満足してますが、アイデア自体は先輩から教えてもらったもので自分は擬似逆行列使ってやってみただけですので大したことはできていない。基本的なところも含めて情報処理の勉強はもう少し進める必要があると考えています。
数式や手法など、気になる点がありましたらご連絡ください。
C#でソフトウェア作成
こんにちは。エヌがのです。
GWがとうとう終ってしまいました。私はというと、艦これの春イベントが始まり、提督業に勤しんでしまってマウスの方は進んでいません。ただ、基板や各種部品、加工物は揃ったのでここから徐々に進めたいと思います。
私は今まで、processingという言語(?)を使ってマウスに使うソフトを作ってました。例えば、
・迷路情報の可視化
・マイクロマウスのターン軌道の描写
・シリアル通信で取得したデータのグラフ化
などです。
自分はこれらのソフトウェアを結構重視しています。現在私のマウスはパラメータが数十にも及ぶため、効率的にかつ簡易的に調整することが必要不可欠です。
2,3日前にツイッターでVisualStudioのC#を使ってこのようなソフトを作っている方がいて、聞く限りなんだか面白そうなので、「シリアル通信でデータ取得」と「データのグラフ化」をやってみました。
作ったものが以下になります。
機能としては、
・シリアル通信(ボーレート変更可)
・CSVファイルへ書き出し
となります。
感想としては、とても作りやすく、今後他のソフトウェアもこちらで作りたくなったほどです。processingと比べると、少し手こずりましたが、実用性はこちらのほうが上だと思います。
自分なりにprocessingとこのC#を比較してみましたが、
○processing
・C言語に近いので、とっつきやすい
・関数がそれほど多くない(C#よりは少ない)ので初めは使いやすい。が、かゆいところに手が届かない。
・IDEがそれほど洗練されてないため、コーディングはしずらい。
○C#
・クラスなどがあり、比較的難しい。
・関数が多いので初めは大変だが、慣れれば色々できる。
・Visual Studio IDEなため、コーディングしやすい。
と、このような印象です。ちょっとしたことをやるならばProcessing。長く色々やりたいならば、C#を使うのがいいのではないでしょうか。あくまで私見ですので、参考程度に。マイクロマウスで使う分ならどちらでも対応可能だと思います。
2015年クラシックマウス案
こんにちは。エヌがのです。
今年のクラシックマウスのコンセプトを少し考えた結果、今年も吸引は諦めて吸引なしの変則4輪で行こうと思います。まだまだ吸引マウスを扱える自信がないので。
とりあえずCADで形にしてみましたが、描くのにかなり時間がかかりました。
これが今年のマウス(仮)
コンセプトはずばり「低重心」です。
昨年の機体では、奇妙な変則4輪マウスを作成しましたが、以下の様な欠点がありました。
・電圧が足りない。
トルクは有り余っていたのですが、電源電圧が足りなく回転数が稼げなかったようで、速度の頭打ちが早かった。ギア比も2.8:1とかなり下げていてもこの結果。モータの定格電圧が6Vだったので仕方ない?
・重心が高い
おそらく電池を縦置きにしていた事が影響していた模様。通常のモータ同軸の変則4輪機構であれば、後部の余剰空間が広く、電池を平置きにすることができるが、昨年の機構だと後部の余剰空間が狭く電池を縦置きにするしかなかった。試しに無理やりテープで固定して平置きにしたものと縦置きにしたもので比較してみた結果、走行性能に大きな差が見られた。
ということで、今年はこの二つを改善するべく、
・電池を何が何でも平置きにできるスペースを確保する。
・定格電圧が低いモータを選定する。机上の計算による安全率をもっととる。
・真鍮の底板を採用
という案を盛り込んだマウスにしようと思っております。
実はもう1,2つなにかしらを試みるつもりなので、目処が付き次第ブログにまとめようと思います。
今年もまたハードウェアの年になりそう・・・(嫌な予感)
2015年やっと始動!
こんにちは。エヌがのです。お久しぶりです。
去年11月に更新したっきり音沙汰なしでしたが、実は1月から艦これにドはまりしてしまいまして、提督業に勤しんでおりました。やっと艦これの熱が冷めてきたこともあり、ついに今年もマイクロマウス製作を始動しました。
今年の目標も全日本大会エキスパートクラスの決勝出場です。ただし、ハーフとクラシックでです。
というわけで、まずハーフマウス製作から始めてみました。
機構自体は去年のクラシックマウスで使用したもので、両刃歯車を用いた変則4輪です。モータはMK07を使用予定。MK06でもトルク不足にはならないかもしれませんが、ここらへんは私の趣味です。パワー is ジャスティス!!
去年のことを思い出すだけで加工のおぞましさで身体が震えてきますが、なんとかなるでしょう・・・またハード作るだけで時間がかかりそう。
とりあえず、研究室のほうが本格始動するGW後までには目処がたてばと考えています。クラシックのほうもいろいろ考えてますので、少しづつブログにもまとめたいと思います。