2009年12月21日月曜日

タイムアタック

 中部地区の例会と忘年会に参加してきました.24日の関西支部試走会に参加できなくなったので,今年最後のマウスイベントとなりました.

 探索走行は最近ソフトをちょっと書き換えたせいで安定しない.なので全面探索もできず,結局迷路情報を与えて最短走行だけに集中する.不安定でも数うちゃ的に...
このあたりが今年の限界です.


 そして何回もクラッシュしているうちにホイールに接着していたギヤははがれておしまい.この機体もボロボロになってきてしまったな.


 来年はハーフもつくりたいと思っているが,やはりエンコーダをどうするかがポイントになる.結局選択肢はほとんどないので,エンコーダを使うかどうかから検討する.
 フルサイズは今よりも20%タイムを縮めることを考える.全くできる気はしないが,挑戦せずにはいられない.

2009年12月19日土曜日

バグ退治

 プログラム内の物理量を計算しているところをほとんど全て浮動小数点(float)を使って書き直した際に埋まったバグをひたすらつぶす.なんとかこの1週間で実際に走らせることなく気付くバグはつぶした.

 副産物として,最短経路計算ルーチンのバグを見つけた.5号機の最短経路計算ルーチンは十分とは言えないものの今までで最もよくできていたつもりだったが,全日本大会では予選,決勝とも遠い西回りのコースを選んでいた.バグを修正すると,少なくとも決勝の迷路では南回りを選ぶようになった.まあ競技内では最短走行できなかったわけだし関係ないが...

 ついでに仮想的に探索させてみて(タイヤ空転,ソフトから壁情報を与える)ログをとったものを貼りつけ.私のマウスは迷路に固定された座標系をもっているのでそのログから簡単にこんなグラフが描ける.


探索賞をもらったことだし,その軌跡を明らかにしておいたということにしておこうか.

2009年12月14日月曜日

float

 今年までは浮動小数点演算を一切使わないできたが,そろそろ整数を使ってオーバーフローに気を使いながら開発するのはしんどい.とりあえず5号機のプログラムをそのままfloatを使うように書き換え中...バグがなかなかとりきれずけっこう大変.計算時間も長くなるし.

 書き換えた状態で実際の迷路を走行して動作確認したいが...20日名古屋でタイムアタックか...24日にはNAISTで試走会か.タイミングはわりといいな.

 それまでには走らせなくてもわかる限りバグをとっておきたい.

2009年12月3日木曜日

関西支部復活

 ずっと前に活動が停止していたマイクロマウス関西支部ですが,アールティ中川さんの働きかけにNAISTと関西在住のマウサーが応じるかたちで活動再開できそうです.すばらしいですね.
実際にどの程度活動するかは未定ですが,現在以下の通り試走会を予定しています.

日時:12月24日,何時から何時までかはまだ未決定
場所:奈良先端科学技術大学院大学 情報科学研究科 システム制御・管理講座 B707
   アクセスはhttp://www.naist.jp/accessmap/index_j.htmlから.
内容:ハーフマウス試走(16x16,8x8,4x4迷路)
   クラシックマウス試走(手作り迷路8x8,4x4)
参加費:なし

参加希望の方がおられましたら,メール等で連絡していただくか当日直接会場にお越しください.
また,今後関西支部の活動に関して案内を希望される方も連絡ください.

> 福井さん
ここに記載の内容にまずい点がありましたらお知らせください.

2009年11月30日月曜日

これが機械研迷路だ

 タイトルはどうでもいいとして,今年はCASIOのデジカメEX-FC100がほんとに流行っていました.マウス優勝の副賞もこれでしたし,大会に来る途中に買ったという方もおられたようです.私も似たようなもんで,大会6日前にふとおもいたって検索をかけたら,最安値¥17,300.あれ?こんなに安かったっけ?後継機が出るから値崩れしているということで納得し,突如ものすごくほしくなる.思い立ってから買うまでがこんなに短いことはめったにないが,今年は自分のマウスが走れない予感がしていたので,それでも全日本大会を楽しめるようにと買ってしまった.

 まだマウスの挙動を解析するには至っていないが,試走会前日にこんなんが撮れました.というか前日はこんなレベルでした.壁が倒れるのは本当に間違った仕様です.


 あとは全日本大会決勝後に天井の照明を1000fpsで撮ってみた.これによれば,予想されるとおり100Hzで強度が変動している.


 まあ,解析できて遊べるカメラですね.ノートパソコンでは再生が苦しいHD動画も撮れますし.他のデジカメをほとんど知らないけど,このカメラのさらにすばらしいのはデジカメ本体に備えられた動画再生機能だと思います.解析する上でほしい機能,すなわち,コマ送り,コマ戻し,再生速度変更,巻き戻し,拡大などを備えているのがすばらしい.いちいちパソコンにデータを送らなくとも解析に使える.技術系の人にはヒットするカメラだと思いました.

2009年11月23日月曜日

全日本大会2009決勝

 まず,参加者,スタッフの方々,その他皆さんお疲れ様でした.今年は,結果こそ満足していないものの,例年以上に楽しめたように思います.

 自分のクラシック競技をちょっと振り返ってみる.
1回目 探索.ゴール前でふらついてゴールには入ったが,その直後走行中断.
2回目 重ね探索.ゴールまでいくもやはりふらついて走行中断.
3回目 最短走行後重ね探索のつもりだったが,壁に激突.なんかぶつかり方が変だった.
4回目 同様に最短走行.同じところでクラッシュ.これは迷路データがおかしいに違いない.
5回目 もういまさらどうしようもないので迷路データを消去して全面探索.ちょうど時間切れと同時に探索終了.

 結局最短走行はできなかったが,探索走行が安定しないことは知っていたし,今年はうまくいかない予感がしていたので予想通りでもある.5回目の探索は安定していたけど.

 ただ,1回目の探索でゴールまで到達するのに要した歩数が最も少なかったようで,探索賞をいただくことができた.今朝試走迷路で確認をしているときに探索ルーチンのバグを見つけたときは焦りましたが,まあ一つバグをとれたのでよかったかな.

 気になってまだ解決していないのは,上位マウスが軒並みセンサによると思われるトラブルに見舞われたこと.照明が特に明るくなったのは数年前であり,すでに対応済だと思うのだが,なぜだろうか.私のマウスは2年前に悔しい思いをしてちゃんと対策してきたつもりなので,単に調整不足で走れなかったのだと思う.ただ,迷路データが壊れていたらしいのでもしかしてセンサか?原因をはっきりさせないと次のマウスの設計がやりにくい.

2009年11月22日日曜日

全日本大会2009予選

 クラシック競技予選は,
・こじまうす5 6秒241で予選通過
・こじまうす2 7秒629

5号機はなんとかある程度走れるレベルになったことを確認できた.探索がかなりふらつくときがやはりあって,迷路との相性しだいではこける可能性がある.最短走行もそこそこのパラメータまでしか走らなかったので明日のパラメータ選びは迷うなあ.

 予選1位と2位は違うコースを選びながらタイムが近いあたり興味深い.こじまうすも2号機と5号機は違う経路を選択した.なかなかうまいこと迷路が考えられているんでしょう.

2009年11月21日土曜日

全日本大会試走会に参加

 明日はいよいよ全日本大会の決勝ですね.今日は忙しそうに準備をしてくださっている横でせっせと調整.

 まず機械研迷路で徹夜で必死に調整した結果,とりあえずこれくらいで走れそうなかんじになった.


 試走会で実際に使われる迷路上を走らせると,探索が安定しないものの,最短走行はなかなか高いパラメータでもふらふらしながら走りきれるようだ.不思議.


 特に斜め走行はありえないくらいふらつきながら走るときがある.そんな調整はしていないのに.

 とりあえず明日の予選を無難に走ってほしい.それより2号機を持っていくのを忘れないようにしないと.

調整中

去年の自分を越えられない.
そろそろ低速で確実に走れる手段を考えた方がいいかも.

2009年11月19日木曜日

あと3日

 予選まであと3日となってしまった.しかし,まだ斜め走行が安定せず(というか前の試走会からまだ迷路を走らせていないが),完成度は全然足りない.

 時間がほしいとは言わないが,迷路を広げる場所がほしい.明日からは作業できそうなので,予選突破を目指して詰めていく.

 しかし斜め走行中のこれだ!という制御方法がいまだに思いつかない.4000mm/sとか出てしまう長い斜めがあったらとか考えるからかもしれない.

2009年11月15日日曜日

試走会(中部地区月例会)

 名古屋に遠征して昨年の決勝迷路で試走.
探索はちょっと変なところもあるがだいたいOKに見えた.
最短走行は...何回走らせても,500mm/s定速まで落としても走れない.

 数時間後,昨日もげたセンサが反応していないことに気付く.気付くのが遅すぎた.いや,だって探索はできてたし.普通はセンサが反応しなくなったらスタート直後に壁に激突するのではないのか.

 今年はどうもうまくいかないがそんなときもあろう.

 とりあえず反応してないセンサは見ないことにして数打ちゃあたる的に走らせる.動画を撮っていただいたのでせっかくだから貼り付けておきます.

パラメータは中部地区大会のときとおなじで,今日の最高速.成功率は20%くらい.

追記:
確かにフォトダイオードからの線が切れていた.はんだづけして修復完了.

追記:
動画をyoutubeにアップしたものに変更しました.これで本来の解像度で見られるはず.

2009年11月14日土曜日

今日の調子

・二日連続でセンサがもげる
高速で壁に激突したのと,倒れた壁による上からのダメージ

・くしのはは探索すらできないかも
根本的解決はできなかったが,なんとか耐えられるレベルにはなったかも

・簡単な迷路なら昨年と同レベルの走行ができる
問題はくしのはとか長い斜めとか

・スタート直後の45度ターンで変な挙動
未だ原因不明

今年は,マウスが暴走するたびに迷路壁を立て直すのが異常に面倒に感じる.
最短走行でパタパタ迷路壁が倒れる,スタートへの帰還走行の前にササッと立て直す.
ちゃんとした迷路を製作していないのが悪いのだが.

フォトセンサ出力のリニアライズ

 フォトセンサ出力は一般に壁との距離とリニアな関係ではない.普通は壁が近づくにつれて急激に大きくなる.まあだからどうということはなく迷路中心における値だけわかっていればテキトーにゲインを調整すれば走れるとは思う.でもなんか嫌.

 私の場合は,フォトセンサ出力のAD変換値s0に壁の反射率Rを考慮して
    s1 = s0 / R
を計算し,あらかじめ作成しておいた,s1→壁との距離d のテーブルを使って距離に変換する.通常テーブルを使うと特定の壁に対してしか使えないが,反射率を考慮して補正した(正規化した)値s1を使っているから問題ない(と思う).大会に行ったときには反射率Rだけ迷路中心におけるセンサ値に基づいて計算すればOK.

 一応その効果を確認するために,学生大会のときの試走迷路で計測してみた.壁とやや傾きをもたせた状態で直進させ,1mmごとにセンサ値を取得した.sはAD変換値,dはテーブルを使って変換した距離.機械研の壁を使って作成したテーブルを使ってもそれなりにリニアライズされているようである.

 

 学生大会の帰りに新幹線の中で作ったグラフをいまごろになってようやく貼ることができた.

 ところで,15日は中部地区の月例会で試走会だと伺ったように思いますが,時間等の情報はありますでしょうか?

2009年11月8日日曜日

今日の調子

 学生大会の反省を踏まえて調整するも、むしろ不安定になっているような気がする.
・探索で壁の読み間違いが多い.(致命的)
・斜め走行はまるで走れない.

 中部地区大会のときがピークだったか?とりあえず後ろ向きのセンサを排除する.

 米さんのマウスが衝撃的な速さで走るらしい.こじまうすより10段階くらい上のパラメータ.それでいてなおかつ安定している.これはすごい.

こじまうす2@学生大会

 学生大会では2年前の全日本大会の予選で使ったプログラムをそのまま書き込んで出走させた.ある程度のパラメータまでは走った.さすがに長い斜め走行で柱に激突したが.走行終了後,いろいろ質問をいただいた.忘れないうちに2号機の情報をメモしておく.

 記録として認定された3回目の走行のパラメータは,
・加速度4m/s/s,最高速2.3m/s
なお,ステッパ駆動電圧は単四ニッケル水素(ENELOOP)8本の9.6Vから昇圧した30Vで,電流は相あたり650mAです.
質量は476g.重心高さはたぶん22mm程度.
ホイールにはエフテックのものを軽量化したもの,タイヤもそのホイール用のタイヤ.特殊なものは使っていない.というよりタイヤは柔らかいと制御が難しくなり,他のタイヤを使うのは諦めた.

 制御に関しては,
・斜め走行中の補正は壁切れのタイミング差を検知して姿勢制御.
・横センサは真横から35度くらい傾けて配置.たぶん壁切れを読むタイミングの都合.
・ジャイロセンサは積んでいない.
・ステッパに送ったパルス数は数えていない.
ステッパではあるものの,DCマウスにかなり近い方法で制御しています.目標速度に応じた周期でパルスを送っており,目標速度=現在の速度としてフィードバックのいらないモータとして扱っているかんじでしょうか.

 動画についてはもし撮られた方がいらっしゃったらウェブ上の見られるところにアップしてもらえると共有できていいのではないかと思います.(理科大とかに期待してます)

2009年11月5日木曜日

全日本学生大会2009

 遅くなりましたが,参加者の皆さん,運営の方々お疲れ様でした.特に運営の方々は,一日で全競技ということだったのでかなり大変だったと思います.マウスクラシックの迷路は,写真のようなかんじで,長い斜めが多く,難易度はかなり高い.(
スタートは画像左端のちょっと欠けているところです.)


 こじまうすの結果は,
・マイクロマウスクラシック競技
こじまうす2 7秒990 準優勝
こじまうす5 37秒804 (探索だけ成功)

・サーキット競技
こじまうす2 11秒???
こじまうす5 リタイヤ

中部地区大会で走れなかった2号機が走れたのは満足.
しかし,わりと本気で調整した5号機がダメダメだった.探索は危なげながらも全面探索成功.最短走行では4回とも同じ場所で引っかかってリタイヤ.以下会場でのできごとを振り返る.

朝9時に会場到着.控え室に行くとまだ試走用迷路がセットされたばかりだった.センサのゼロ点をあわせて1番に試走を開始するも,探索がふらふら.壁を読み間違える.なんとかゴールまでいったので最短走行モードを試す.最低速モードでさえ柱に引っかかってゴールまで行けない.何回やっても行けない.焦る.

 原因を考える.探索,最短走行ともにスラロームで軌道がふくらんでいるのでスリップかな?探索の速度をちょっと落とす.少し安定するも全面探索できる安定度ではない.

 最短走行の調整をしている場合ではなくなったので探索に集中することにする.どうやら,ほんとに壁切れに問題があったらしく,変なところで壁切れを読んだあとにずれる.修正.

 本番.壁切れのバグを取り除いた分探索だけはできた.しかし最短走行はターン後に試走用迷路とおなじような引っかかり方をする.グリップだけのせいではないようである.

 サーキットもほとんど諦めモード.最低速でも走れない.

 その後は控え室の机,電源コンセント,試走用迷路が空いてきたので,調整開始.いつの大会も本番後が(も)勝負である.できるだけ本番壁のデータを持って帰らなければならない.調整というより基礎データの取得に専念する.その中で,ふと確認したくなったのでソースコードを確認.重大な事実に気付く.ジャイロの出力を使っていない.だから走れないのか.

 ここを修正して試走してみる.いままでどおりの安定度.グリップのよくない試走用迷路でも最短走行もちゃんとできる.

 調子にのって速度をあげると柱にクラッシュ.

フレームがかなり曲がっているのがわかりますかね?「アルミフレームって曲がったりしないんですか」って何人かに聞かれたが,曲がりますと言うしかなくなった.しかしこんな局所的に変形するとは思っていなかった.ただし,実はアルミだから変形しただけで済んだわけで,カーボンだったら割れていただろう.その点については狙いどおりである.

 結局,行きの新幹線の中で書き換えた部分のせいで走れなかった一方で,本気になって調整したおかげで自分のマウスの挙動が少しわかってきた.次は確実に5号機で決勝に出られるようにしよう.そのためにシードを棄権したわけだし.

2009年11月1日日曜日

学生大会前最終調整

 最終調整というほど調整をしてきたわけではないが.

 ターゲットは中部地区大会優勝マウスの速さ.ということは,
マウスクラシック・・・81%にタイム短縮
サーキット・・・83%にタイム短縮
土日の試走でこれがかなり厳しいことがわかった.10%ならともかく20%短縮はそう簡単にはいかない.

 しかし,それどころではないかもしれない.作業終了直前にバグを見つけてしまった.重ね探索ができない.探索が途中でこけなければ問題ないが,そこまで安定しているわけでもないし.原因はわかったが,今からソースを書き換えてバグを埋め込んだら余計に悪くなるかも.でもバックアップをとった上で書き換えるけど.

 以下どうでもいいけど土日のトラブルを記録.
・保管?していた迷路をとりだしてきたら,壁が脱落して泥だらけになっていた.汚れを拭き取るもちょっと黒い.
・迷路上にラインを引こうとおもって買ってきた修正液のインクが固まっていて出ない.先をとりはずして固まっている部分を掻き出した.ちなみに先端部分の部品は逆ネジになっていてとりはずしに手間取った.なぜ逆ネジになっているのだろうか.それ以前にMADEINJAPANで不良品はやめてほしい.

2009年10月31日土曜日

機械研迷路改良

 実際の迷路の路面状態に近づくことを期待して,機械研迷路の床を塗り直した.手伝っていただいた機械研メンバーのみなさん,ありがとうございました.これで土日はマウスの調整作業に入れるでしょう.

 また,やっつけ仕事的に全日本大会の正式エントリーが完了.学生大会と同じテクニカルシートを打ち直すのは大変面倒であった.もっと主催者側と参加者側双方の手間を省く登録方法があればいいんだけど.私の場合は2台だからまだましで,もっと何台もロボットを登録している人はさらに大変なんでしょうね.

 ついでにお願いを.先日の中部地区大会でこじまうすの動画を撮った方がおられましたら,せっかくなのでなんらかの形(youtubeとか)でウェブ上にアップしていただけるとうれしいです.

2009年10月30日金曜日

中部地区大会での収穫

 やはり実際に大会に参加するといろんな意味で収穫があるものである.

・実際の迷路を試走させていただいてわかったこと
機械研迷路とは異なり,粘着による摩擦は非常に小さい.調整をしてみると,モータのフィードバックのゲインが10倍ほど違う.話にならん.よって学生大会に向けてまずはじめに迷路の塗料を塗りなおさなければならない.

・参加者との情報交換で得たヒント
こちらで触れておられる,ADXRS300のselftestの話.もっと前に情報公開していただいていたらしいが,完全にスルーしていた.ドキュメントをよく読めば,ドリフトを劇的に抑えることができうるらしいです.

・貴重な休日として調整をしていて気づいたこと.
本番でもそうだったのだが,今年はなぜかブレーキが効かず,スラローム前に完全にスリップしてしまうことがたびたびあった.やや前重心とはいえ減速の加速度を落としても改善しないことから,簡単にスリップで片付けていい問題ではなさそう.どうも,タイヤ速度が落ちないもんだから,フィードバック制御で無理やり強いトルクをかけようとしたときにスリップすると考えられる.

 さらにログをみながら探っていくと,duty比50%で一定速度の状態からduty比60%とすると5m/s/sで加速するが,40%としても-5m/s/sでは減速しないことがわかった.なぜ?トルクの線形性はないということか?

 電流連続モードからかけはなれているからか?と思ってモータ制御のPWM周期は100kHzとしていたところを200kHzにしてみた.改善せず.20kHzにしてみた.改善した.そういうものなのか.なぜだろうか.MIN5では10kHzくらいと低いのが気になっていたが関係はあるのだろうか?

 理由はわからないながらも,問題のひとつは解決しそうである.毎年中部地区大会では重要な知見が多く得られるが今年も例外ではなかった.学生大会までにすべてを盛り込んで調整するのは困難かもしれない.なんせマウスだけでなく迷路の路面状態も調整する必要があるから.

2009年10月28日水曜日

学生大会にエントリー

間にあわないかと思ったがエントリー完了.昨年は参加できなかった(しなかった)が今年は参加します.

登録システムも進歩していて,ウェブ上でフォームに書き込む形式である.おそらく事務処理が楽になるのだろうと思う.
しかし,私は通学の時間くらいしかエントリーシートを書く時間がないのでちょっと焦った.ファイルをアップロードする形式の方が都合がいいが,主催者側の便宜のためならしかたがない.

次は全日本大会のテクニカルシートである.やはりウェブのフォームに書き込む形式である.参った.
まあ調整の時間を削れば間に合うけど.(違う.このブログを書く時間を削ればいい)

ミニモータのケーブル

こじまうす5では4号機から使いまわしたミニモータ社のモータ1331を使っているが,片方のモータのケーブルが長いので切った.

始めてこのコネクタを使ったころはこのコネクタがどうなっているのかわからず,新しくコネクタを準備する必要があるかと思ったが,実は中身はこんなふうになっている.

ふたをマイナスドライバーなどでこじあけ,ケーブルを必要な長さになるようにセットし直して閉じればよい.

ついでにケーブルの重さを測定.

40mmで0.42gである.想像以上に重たいことが判明.

LQFP64ピンの貼り替え

中部地区大会の2週間前,基板をつくってすぐさま部品の実装.
動作確認をしながらの実装だったが,その途中でマイコン(STM32)が反応しなくなった.
しまった.壊してしまった.VCCとGNDをテスターではかると5オームくらい.CMOSが壊れるとこんな値を示すな,確か.
よりによってマイコンか.64ピンもあるぞ.
予備の部品があればすべてニッパーで切ってはがして実装しなおせばいいが...在庫がない.
すぐさまデジキーに発注を考えたが時間がかかりすぎる.納期の早い国内のショップを探すが,1個5000円?納期1週間?論外である.
あきらめかけたが,横においてある試作機に同じ部品が実装されているのが気になる.これを剥がせば...
以下が剥がしたSTM32.パッケージはLQFP64ピンである.1本ずつ丁寧にはがす.

曲がったピンを折れないようにできるだけもとに戻し,新作に再実装.
動作は良好.1本だけピンが折れてしまったものの.他のピンで代用できたのでなんとか.

なんとかなったものの,やはりハンダ付け不良が何か所か生じたので新しいものを使うべきではある.

5号機のプリント基板

いまさらだけども,ねむっていた写真を公開.
エッチングによって自作したプリント基板.
コストを抑えられる上に納期を待つ必要もない.
本当は外注したい気もするが,自作することによって学生大会に参加する費用を確保できる.
・表面

・裏面

光源は太陽光.晴れないと作れないのが問題である.
最小線幅0.25mm,ホール0.4mm,ビアは1.0mmだったと思う.
表と裏の位置?本気になれば合う.

2009年10月25日日曜日

中部地区大会2009

 中部地区大会に参加してきました.大会運営の方々が各種工夫をされていたので競技数が多いにもかかわらずスムーズに進行していました.それで私のマウスの結果は,

・マイクロマウス競技
こじまうす57秒076
こじまうす257秒824




5号機は予期せぬ事態にはならなかったが,まだまだ速くはない.
2号機は...探索は全く問題なく完了したが,最短走行ができない.スタートしない.操作方法を忘れたかと思ったが,結局転送したプログラムがおかしかった.機械研では昔マイコンのROMにモニタプログラムを書き込み,RAMにユーザプログラムをロードして動作させていた.今回は,モニタプログラムとユーザプログラムを別のバージョンのコンパイラでコンパイルしたのがまずかったと思う.サーキットまでに両プログラムを書き込み直した.

・支部サーキット競技
こじまうす59秒287準優勝
こじまうす212秒144




・その他の参加者の結果

・支部サーキット


・デビュー戦を終えた新型こじまうす5

バッテリは70mAhのリポ2セル.フォトセンサが後ろ向きについているのはいろいろ意味はある(今から意味を持たす)が,斜め前のセンサと組み合わせてマウスの壁に対する傾きを精度よく計測するためにある.

調整二日目

でももう前日である.未解決問題山積み.メモしておく.
  • 壁の有無の検知方法.45度センサでは読みにくい.
  • タイヤの粘着度合いによる必要トルクの変化.機械研迷路の床を塗り直す必要あり.
  • 壁切れ.
  • ジャイロセンサ出力のノイズ
  • 左側ホイール.きれいにまわらずスリップする.

中でも特にタイヤの路面への粘着がどうにも制御しにくい.現在の迷路ではあまりにも摩擦が大きいが実際の迷路でどの程度の摩擦があるのかチェックするのが今年の中部地区大会での目的になりそう.

2009年10月24日土曜日

探索走行調整開始

 ようやく迷路上を走らせてバグ取りと調整を開始できた.しかし,まだ壁を読み間違える上に,壁をなぎたおしながら進む状態.というか壁が倒れる仕様はとても面倒である.あと一日でゴールまでたどり着けるようになるのだろうか.

2009年10月22日木曜日

エントリー完了

 中部地区大会のエントリー受付のメールが届いた.ちゃんと申込できているようなので安心しました.あとはマウスを動くようにするだけかな.

 勢いでこじまうす2もエントリーしたが,動作確認はいつするのか.それよりも充電器をどこに片付けてあるのかわからない...減りつつあるステッパなので遅くてもいいから走ってほしいのだが.

2009年10月21日水曜日

11月21日@つくば

は一体何があるのだろうか.私にとってはもちろんマウスの試走会なのだが,つくばの宿泊地(のうち比較的安いところ)がのきなみ予約で埋まっている.ただでさえ交通費とあわせて「もう1台マウス作れるんじゃ」と思うくらいかかるのに想定以上に宿泊費がかかってしまう.まあ仕方ないけども.

 ふと試走会に参加しなければいいんじゃと思ったが,2年前は試走会に参加しなかったからかどうかはわからないけどゴールまでたどりつけずリタイヤだった.なのでできれば試走会には参加したい.例年はフォトセンサの調整が主な目的だったが,今年は路面に合わせて最適化する必要がある気がしているのでなおさらである.

現状@中部地区大会前

 中部地区大会のエントリー票を書いた.あとは送るだけ.問題はマウスを動く状態までもっていけるかである.まだ迷路を走行させるに至っていない.平日は時間と場所の関係で迷路を広げられないとなると,あとは土曜日しかない.

 直進の様子を見ていて今年思うことは,清水レーシングのタイヤはごみがついていないときはグリップがいい.これは主に粘着による.摩擦が大きく,加速には予想以上にトルクを要する.タイヤの状態によって必要なトルクが大きく変わるが,これはフィードバックで丸め込めなければならない.路面によってゲインを変えなければならないような気がするも,機械研の迷路と中部地区の迷路の路面はまるで異なるので当日にならないと調整ができない.

 発想を変えれば,中部地区大会に参加することで全日本大会に向けて路面との相性や壁の反射率などの情報を入手できるともいえる.毎年そうして速くなってきたではないか.

2009年10月17日土曜日

接触不良

 AD変換した結果の精度が悪すぎる.ジャイロセンサに頼って走行できないどころかフォトセンサの出力も信用できない.ところが,精度がでてないもののそれらしい値を返すのでノイズが強すぎるのだと思っていた.ただ...基板に触れたり持ち上げたりしたときに特に値が変動する.

 以上のことを考えてみると接触不良である可能性が高い.しかし,あやしそうなところはすでにチェックしていたつもりだったので解決するのに時間がかかったが,結局マイコンのピンの接触不良だった.

 まあなあ,一度ひっぺがしたLQFP64ピンを使ってるしなあ.当然かなあ.

 いずれにせよ,接触不良はよく起こるわりにはそれが原因だと気づかないものである.

2009年10月13日火曜日

こじまうす2?

 毎年,まだ動くからと思って2号機を出しつづけてきたが,今年は新作に集中するため出さない.
と決めていたが,よそでステッパマウスを作っている人を見ると全日本には持って行こうかと思い出した.先日5号機だけと書いたが迷ってきてしまった.さてどうするかな.締切りまでまだある.

・・・

STM32が熱くなって動かなくなったとか,センサLEDをすべて極性を間違えたとか...
今年は大丈夫か.

2009年10月9日金曜日

全日本大会に登録

 全日本大会の登録をした.今年は,マイクロマウスクラシック競技エキスパートクラスに1台だけ(こじまうす5)エントリー.1つの競技,1台のマウスに絞る.(時間と予算の都合で?)

 今年は未だにシルバーウィークの2日間しか迷路を走らせていない.中部地区大会に間に合うかちょっと微妙になってきたが,いままでの経験でカバーしたい.

 ただ,やはり物事は思ったとおりには進まないもので,digikeyではSTM32F103RET6が在庫0で困った.納期は10月3日の納期遅延中となっている...

2009年9月30日水曜日

迷路規格

 クラシック競技の迷路は16×16,一区画は180mm四方.
16はまあ2bytesだろう.180mmっていうのがよくわからなかったが,正方形の対角線はおよそ10inchになる.なるほど.高さ50mmは2inchか.壁の厚さ12mmは0.5inch,ちょっと無理があるか.

 斜め方向の直線長さがどうも覚えられなかったが,これで考えやすくなるかな.

2009年9月29日火曜日

2輪タイプの弱点は?

 先日の中部地区初級者大会のレポートがUPされていると同時に次の中部地区大会の案内がでている.

 初級者大会の日はいろいろあって会場に到着したのがちょうどXT-1の走行後だった.部屋の前でアルコール消毒しているうちに走ってしまったわけだ.かなりショックだったが,こうして後から動画を見られたのでまあよしとする.

 それにしてもこの変則4輪タイプのマウスはなにを狙いにしたのかまだよくわからない.実際に相当速いのは確かなので,なにかあるとおもうのだけど.直進時はともかく旋回時に関してはグリップを狙ったものなのか安定性を狙ったものなのか.

 結局,2輪タイプの弱点がイマイチはっきりわかっていない,つまりいつどういうときにスリップが生じるかがよくわかっていないということだろう.

2009年9月21日月曜日

調整開始

 今日ようやく今年のマウス(こじまうす5)の調整を始められた.まず私が学部1回のときに数人の機械研メンバーで余っていた木材を使って製作した機械研迷路を取り出す.今年でこの迷路も6年目となるが,劣悪な環境下で放置されている(保管されている)にもかかわらず,まだ使えそうである.ただし,埃やちりが積層していた上にいろんな虫がはいまわっていた.ともかく今年もマウス活動していけることを確認できた(重要).

 マウスの方はタイヤの半径,トレッドの計測をして,たまに変な動きをしながらも探索ができそうなかんじ.調整をしていると,ピニオンギヤがモータ軸から離れて駆動力を伝えられなくなり暴走.接着剤の固定ではイマイチである.用途に合った接着剤を使うか,イモネジでしっかり固定する必要がある.

2009年9月16日水曜日

高加速度化

 最近マイクロマウスの加速・減速が鋭くなってきている.今年は1gを超えるのが普通になるかもしれない.そうすると確かにこういう話がでてくる.今までは旋回半径は制御可能な限り大きくとる方針で良く,どれだけ大きな半径で安定に走行できるかがポイントであった.一方,直進の加速度が大きい場合には最適な旋回半径が存在して,それより大きくても小さくても全体の走行時間は長くなる.かもしれない.

 まあこの問題については数ヶ月前に考察した.従来の考え方の方が都合がいいなあと思いながらいい加減に考えただけだが,たしかまだ最適な旋回半径を考える必要は無かった.確実ではないが.しかし,15m/s^2とかになると考え直す必要があるかも.

 5号機は思いっきり旋回半径拡大の方向で進んでいるので考え直したくはない.

2009年9月11日金曜日

DCモータの制御(フィードバック)

 マウスではよく,目標のタイヤ速度を設定して(計算して)それに追従するようにフィードバックをかけて速度制御する方法が用いられる.このとき,目標速度v_tarとエンコーダ出力から求めたタイヤ速度vの差を埋めるために,
    r_duty = - P * (v - v_tar) - I * Σ(v - v_tar)
で計算されるduty比を以前に書いたフィードフォワードのdutyに加えてモータにかける.PとIの値は実際に走らせてみて最も追従性がよくなるように調整する.

ログをとってみると,ある程度ゲインを調整すれば目標値にはそれなりに追従するようになる.しかし,タイヤがスリップなどしているときにはエンコーダから求めた速度は実際の速度ではない.高い加速度で加速するとそうしたことが実際に起こっているようで,nakashimaさんによれば減速時にはエンコーダから求めた速度より実際の速度は大きいのでオーバースピードでターンに突っ込んでしまう.それを防止するためにターン前に一定速度の区間を設けるのが広く使われているテクニックだと思うが,この区間は無駄なのでできるだけ短くしたい.(関連するやりとりをメモ)

 最近はますます加速度が高くなっているので,こうした細かいこともよく考察しておきたいところである.

2009年9月6日日曜日

中部地区初級者大会2009

 3年ぶりに中部地区の初級者大会に行ってきました.試走するつもりでいたが,ソフトが間に合わず本当に見ているだけになってしまった.例年どおり参加者の多くは学生で,夏休みを有効に使ってものづくりをしているのがわかる.それに比べてウチのサークルは...

 以下はマウスとサーキット競技の結果です.なんか5秒とか6秒とかいった極端に良い記録がありますが,学生や社会人によるデモ走行です.(本人にとってはデモというより試走かタイムアタックのつもりでしょうが)
サーキットに関しても7秒台という信じられんタイムが...ちなみにこじまうすは10秒を切ったことがありません.


 最後にちょっと調整しようかと思って自分のマウスも取り出してみたものの,センサまわりのソフトで決定的に足りない部分があったのであきらめた.10月末の中部地区大会に焦点を合わせて開発を続ける.

2009年9月3日木曜日

プログラムの巨大化

 5年もマウスをやっているとプログラムがどんどん大きくなってくる.とくにひどいのが迷路解析の部分.探索と最短経路計算のために現状ではRAMを50kByteも占める.何も考えずに32*32の迷路に対応しようとしたからであるが,予想以上にひどい.なんとか20kByteくらいにおさめなければ.

2009年8月31日月曜日

迷路解析ルーチン

 中部地区初級者大会で試走できることを期待して,とりあえず迷路を走れる状態にすることを目指している.今年はハーフには出場しないものの,32*32の迷路に対応した探索ルーチンと経路計算ルーチンを半年前くらいにつくったのだが...半年も経つと自分で書いたソースを読んでもよくわからない.参った.

 確か,大きな変更点は最短経路計算のときに,「ターンでは重みを大きくする」というターンに対してペナルティを与えるという考え方から,「直進は長いほど加速できるから時間距離が短くなる」という考え方に変更した.計算時間が長くなるかもしれないが.

 でも結局最後は迷路との相性になるし,賢いアルゴリズムを考えてもそれほど大きく変わるとは思えないし(既にある程度の水準に達しているし),見ている人からはよくわからない部分というのが悲しいかな.

2009年8月30日日曜日

DCモータの制御(フィードフォワード)

 マウスにおいて最大のパフォーマンスを発揮するためには等加速度の加減速をすることが必要.わりときっちり制御しないと,過剰なトルクがかかってスリップなんてことになってしまう.

今,加速度aで加速(もしくは減速)したいとすると,必要なタイヤのトルクT_tireは
   T_tire = a /2 * d
   T_tire = m * a / 2 * r_tire
となる.mは機体質量,r_tireはタイヤ半径であり,2で割っているのはタイヤが左右で2つある場合を考えているから.モータが出力すべきトルクT_motorはギヤ比をr_gearとして,
   T_motor = T_tire / r_gear.
モータのカタログにのっているトルク定数k_mを用いれば,モータに流すべき電流Iは
   I = T_motor / k_m.
そのために必要なモータの両端の電圧Vは
   V = R * I + V_r
である.Rはモータの巻線抵抗,V_rはモータに発生する逆起電力で,カタログの発生電圧定数k_eを用いれば,
   V_r = k_e * n
となる.ただし,nはモータの回転数であり,一定時間のエンコーダのカウント値からわかる.
実際にモータを制御する際にはPWM波のduty比r_dutyを変化させる.電源電圧をVsとして,
   r_duty = V / Vs
である.これで今モータに与えるべきduty比を計算することができる.

 以上はフィードフォワード制御をする場合に役に立つ.というかこれなしではレスポンスが遅すぎて制御しにくいと思う.実際にはこれに加えて目標値とのずれを埋めるためにフィードバック制御もする.

2009年8月26日水曜日

いわゆるシミズのタイヤ

 マイクロマウスではいつからか有名になったシミズ金型のミニッツレーサー用のタイヤ.特にKiatさんが長く使っているというPS-300.ここ数年製造中止になって入手できなかったが,ここを見て販売が再開されているのを知る.さっそく売り切れる前に(売り切れるか?)発注.もちろん5000円を超えるようにたくさん...

 さてこれでようやくずっと気になっていた,タイヤのグリップの差を確認できる.

 また,今年はグリップ剤の使用が禁止されることもあり,グリップに関する条件の都合がいい.トップ層との差をつくるものが減った.

2009年8月24日月曜日

数学関数

 こじまうすでは今まで浮動小数点を使ってこなかった.今年もつかうつもりはない.

 それはまあどうでもいいとして,少数ながら数学関数を使いたくなることがある.絶対値をとるABS(x)や符号をとるSIGN(x)はマクロで実装している.それ以外ではデッドレコニングなどに三角関数を使うので,sine(x),cosine(x),tangent(x),cotangent(x)の関数を定義している.
sineについてはuradの単位で角度を受け取り,テーブルを参照してsin(x)の1000倍の値を返す.cosineは角度をπ/2ずらしてsineのテーブルを参照.tangentとcotangentはsineとcosineの割り算の結果を返す.

 整数演算だけだと精度の確保とオーバーフローの回避のために掛け算と割り算が計算式の中にたくさんはいってくる.使う単位はなるべくミリやマイクロといった指数が3の倍数となるようにしてバグが埋まるのを回避しているが,それでもたまに桁を1000倍間違ってとんでもない動きをする.

2009年8月23日日曜日

ジャイロ出力から角速度

 ジャイロセンサはドリフトがあり,ゼロ点がきっちり決まらないという点でやや使いにくい.角速度が知りたいだけなら問題にならなくても本当にほしい情報はその積分値である角度なので,ゼロ点のずれはわりと効いてくる.
 電圧出力のジャイロの場合,AD変換によって得られた値sから角速度ωを計算するには,
   ω = k * (s - s0)
となる.kは比例定数,s0はω=0(マウスが停止している状態)におけるAD変換値.10bit分解能のAD変換器を使うとs0は500程度の値を示すが,真の値が499.8だった場合0.2の誤差が生じ,積分すると相当な大きさになることがある.
 この場合には,
   ω = k/10 * (s*10 - 4998)
とするなどして十分な精度を確保する.

 これはジャイロセンサに限った話ではないが,エンコーダの場合は速度0でカウント0を示すし,積分しなければちょっとずれていても問題にならないからジャイロ特有といってしまってもよく,わりと見落としがちかもしれない.

バグとり

 5号機のソフトもなんとなくかたちができてきた.というよりも4号機から整理しつつ移植する作業が進んでいる.そうするとひたすらバグをとる時期が来る.ほんの数週間前に自分で書いた計算式の意味がわからない.ソフトは書いたらすぐに動作確認するのが理想的だが,特殊な場合しか実行されないコードのバグは発見が遅れる.

2009年8月21日金曜日

ジャイロ

 こじまうすでは,3号機からジャイロセンサを搭載している.実際に有効に使えたのは4号機からで,4号機では探索,最短走行ともにスラローム旋回と直進走行両方の安定度が増した.

 ただし,優秀なジャイロを使わないとあまり効果は得られないらしい.要求されるのは,
  • レンジが広い(1000deg/sくらい)
  • 応答が速い
  • 比例係数の経時変化が小さい
などだろうか.こうしたことを考えると使える素子は決まってきて結局みんなADXRS300もしくは同等品を使うことになる.優秀だから.高価だけども.

 しかし,思ったほど簡単には使えず効果を発揮するには時間がかかった.

2009年8月20日木曜日

壁切れは必須か

 高速でスラローム旋回するためには旋回半径を大きくするのが有効な手段の1つであろう.しかし,旋回半径が大きいと制御が難しくなるうえに,旋回開始のタイミングをはやくすると壁切れを読む前に旋回しはじめなければならないという問題に気づいた.前回書いたように壁切れなしでは安定して走れないと思う.さてどうしようか.壁切れなしでどれくらいずれるのだろうか.

2009年8月17日月曜日

壁切れ補正

 マイクロマウスの制御において極めて重要だと思っている位置情報の補正方法に壁切れがある.特に高速でターンをするようになると壁切れ補正なしではまるで走れない.シンガポールのマウスなんかはその動きを見ていると壁切れを読み取りにいっているのがよくわかる.

 読み取りに必要なのは,
  • 都合のよいセンサの向き
  • 確実な読み取り方法
である.
 センサの向きについてはkatoさんが書かれているような方針であらゆるターンに対応できるようにすればよい.
 読み取り方法は確実に毎回読めるようにしようと思うとかなり難しいが,サンプリング周期を短くして,外乱,特にフラッシュ撮影があることを考慮してその方法を考える必要がある.

 厄介なのは,マウスが横にずれていたり,進行方向に対して傾いていたりすると読み取りタイミングが変わってくることだろう.

2009年8月13日木曜日

太陽光の強度

 最近の迷いに決着をつけるために以下の回路を組んで実際にいろいろ計測してみた.

TPS601Aだけを使って太陽光のもとで出力を見ると,
  • 太陽が雲に隠れているとき1~1.5Vくらい
  • 太陽光が壁に当たっていると少なくとも3.8V
ということがわかった.1kの抵抗では太陽光のもとでは飽和してしまう.

 また,SFH4550に100mAくらい流して計測すると,壁との距離が100mmで0.5Vくらい,近づけると3Vくらいとkatoさんのコメントとほぼ一致する.さらに外乱光が1V分くらいのってようと減算によってほぼ完全に除去でき,TPS601Aは線形性に大変優れていることがわかった.

 ちなみにこじまうす4は直射日光が壁に当たっている条件でも問題なく計測できた.さて,実際の会場が太陽が照ってるときほど明るいわけでもなく,結局どうしようか.

2009年8月12日水曜日

フォトセンサ再考が必要か

 先日の記事の(たぶん)続きの考察をこちらでされている.太陽光相手に計算してもLEDの発光量が十分あることがわかった.直感的には信じられないけど計算は合ってるように思う.

 こじまうすでこれを検討すらしなかったのはおそらく,
  • 最大サンプリング周期200usを実現したい
  • 迷路のかなり偏ったところを走っていても距離測定をしたい
  • 斜め走行時など壁が近い状態でも飽和しない
などと考えていたからだろう.

 最近LEDとセンサが重すぎるように感じてきたので方針転換を視野にいれておく必要があるかも.

2009年8月8日土曜日

フォトセンサ回路の部品点数

前回のBasicMouseのセンサ回路につづいてフォトセンサ回路について考察.
フォトセンサ回路を作るときに考慮することは
  • 外乱光をカットして周囲の明るさに関係なく壁との距離を計測できること
  • S/N比を高くとること
  • 十分な分解能の確保
などを考えるかと思う.
その結果BasicMouseのようなセンサ回路に行き着くわけだが,もっと部品点数を減らせればと思う.
  • シンガポール勢が使っている増幅器つきの受光素子を使えばオペアンプまわりの回路を省ける.
  • さらにソフトウェア側で定常光成分をカットすればハイパスフィルタも省ける.
  • 発光からAD変換までの時間を毎回一定にすればピークホールドも省ける.
かもしれないが,全日本大会決勝の強烈な照明環境を考えると,どうも「十分な分解能の確保」をできる気がしない.
なぜシンガポール勢はちゃんと走れているのだろうか?
もっと明るくなればいいのに.

こうゆう回路を見ると気になってしかたがない.
実際にフル迷路を走れているようなのでもしかしてこれで十分なのか?
ただ,3号機ではセンサで失敗したのであまり攻める気がしない.

2009年8月7日金曜日

BasicMouseのセンサ回路概説

今サークルでは後輩がマウスを製作している.そのついでに基本的なことをメモしておく.こういうベーシックなこともたまにはよく考えておかなければ.
森永さんのBasicMouseのセンサ回路を示す.

まず発光側はコンデンサC2に蓄えた電力で瞬間的に強く発光させる.発光量をかせぎつつLEDが焼けるのを防止できるという点で優れている.
壁からの反射光はTPS601で電流に変換する.フォトトランジスタには光強度に比例した電流が流れる.その電流を抵抗R2に流すと点Bの電位は光の強さに比例した電位になる.
次に,部屋の照明などの定常光成分をカットしてLEDの反射光だけを取り出すためにC3とR4で構成されるハイパスフィルタを通す.時定数は,
CR = 0.01uF × 10kΩ = 0.1ms
この時点(点E)の電圧は大変小さいのでオペアンプで増幅する.この回路の場合増幅率は11倍でC4のコンデンサがあるためここでもハイパスフィルタが構成される.
結局ハイパスフィルタを2回通すためにかなりシャープに定常成分がカットされる.
最後にD1とC5で構成される簡易型のピークホールド回路で信号の最大値を取得する.
これをAD変換器で変換すればよい.
なお,ホールドされた電荷はLEDをOFFにしたときにD2を通して解放される.

また,センサの向きや壁との距離に応じて抵抗値を変更する必要があるが,その場合R2もしくはR5を変更するのがよいかと思う.R2を大きくすると出力は大きくなるが,フォトトラの反応は遅くなる.R5を大きくするとやはり出力は大きくなるがやりすぎるとオペアンプが発振するかも.
ちなみに普通のオペアンプは電源電圧いっぱいまで出力できない.この回路の場合はオペアンプの出力が最大3.5VくらいでD1を通過するときに0.5Vくらい降下して結局3Vくらいまでしか得られない.

・・・長くて自分でも読む気しないな.

2009年8月6日木曜日

0.01g分解能のスケール

R/C Web Shop Kbにてリポを購入した.リポが安いためそれだけでは送料がもったいないと思い,半分思いつきでスケールも買った.0.01gの分解能をもちながら3000円をきっているのには驚いた.正確に量れるのか?

それよりも驚いたのは,24時くらいにネットで注文したら在庫確保のメールが3時間後に来たこと.速い.深夜に(も)仕事されているのだろうか.

2009年8月2日日曜日

STM32のFLASH ROM

こじまうす5で使うマイコンはSTM32F103RE(64ピン)である.
今まで使っていたH8系のものに比べてROMが512kB,RAMが64kBと多くROMの書き換え回数も10k回と十分あるので,外付けのSRAMとEEPROMをのせなくていいのがうれしい.
RAMにログを書き込んでおいてPCに転送して見るのが基本スタイルなので,これよりピン数が少ないものを選ぶとRAMサイズが足りない.

各種パラメータや迷路データはROMに書き込んでおきたい.そこで内蔵ROMの一部を記録用に使う.一見問題なく書き込めたように思えたが,消去中および書き込み中にはDMACが動作せず,ADのサンプリングで予期しないことが起こってしまった.サンプリング毎にDMACでデータ転送しているのだが,転送されずに次のサンプリングが始まってしまうようである.

データシートによればword(4bytes)書き込みに最大70us,消去に最大40msかかるらしい.時間がかかるのは仕方ないがその間ペリフェラルとRAMでDMA転送ができないとは.

ところで,STM32は今後流行りそうな気がするが,これにいち早く着目し導入を検討されたのはおそらく綿谷さんであろう.そのブログの情報は大変参考になります.katoさんはそれにつづいてSTM32を採用し,相当な速度での走行を実現するに至っている.今年の大会までにはもっと増えるのだろうか.

マイクロマウス2008(サイエンスチャンネル)

サイエンスチャンネルにて昨年の大会の番組が配信された.
確かに優勝マウスのMIN5はものすごく速いが,他にもっとターン速度が速く"見える"マウスがいたように思う.思い込みかもしれないが.
旋回半径を大きくとると速度が大きくてもそれほど速く見えないことがあるがその影響だろうか.

そういえば昨年の迷路は走行の難易度はそれほど高くないものの,最短経路計算は極めて難しく,明らかに最短でない経路をとってしまったマウスが多かった.こじまうす4もその1つかもしれない.特に予選の迷路では最適な経路を選んだマウスはほぼ皆無だったのではないだろうか.

2009年8月1日土曜日

ARM用GCCのコンパイル

5号機ではマイコンにSTM32を採用する.コンパイラにはgccを使う.以前にgccのクロスコンパイルをしてなんとなく動作していたが,ライブラリが浮動小数点演算ユニットを使うコードしか持ってなく,ライブラリのリンクができないことに気づいたので再コンパイルした.

コンパイルは検索で引っかかったここここの内容にしたがって行った.

総合開発環境を使えばこんな苦労は必要ないのだろう.
windows上では多くの開発環境があるらしいが,制限が無く無料なものとしてRaisonance社のRIDEがいいかと思う.