2010年5月31日月曜日

こじまうす6(ver1)

とにかくハーフマウスは作って走らせてみないと様子がわからないと思い,関西支部大会に間に合うように急いで作った新作6号機を紹介します.

size: 60mm x 40mm x 16mm
mass: 18g
battery: lipo 1cell 70mAh
cpu: STM32F103RET6
バッテリについては何も考えずに作ったので手持ちのものを使っていますが,決勝を走るにはおそらく容量が足りません.マイコンは少しパッケージが大きいですがRAM容量から64ピンのものを選択.


エンコーダは市販のものを使っていません.車軸に円板(ワッシャー)を偏心させて取り付け,それをはさむようにしてIR-LEDとフォトトラを対向して配置して透過光の強度からタイヤの位置(位相)を求めています.もちろん1つでは完全に位置が決定しないのでだいたい90度ずらして2セット配置しています.OSRAMのSFH3600とSFH4650.


こんな信号が出ます.この信号からテーブル参照によってタイヤの位相を出し,1ms間隔の差分から速度を計算します.ただし,精度はそれほどよくないと思います.スラローム探索とか斜め走行とかそれなりにはできるようですが.
上の平らになっているところで精度が出ないわけです.


基板はいつもどおりプリント基板をエッチングで製作.今回から抵抗とコンデンサは1005サイズ.ハンダ付けはもちろん全て自分で.はんだごては15Wのものを使用.先が細いものがほしかったのですが,近くで手に入らなかったのでこて先は普通のものを使いました.プリント基板自体はダメにしたものはなくこれ一枚だけですが,抵抗,FET,フォトトラかLEDはいくつか壊れました.

フォトセンサには小さいLEDとフォトトラを使ってみましたが,半値角が大きくかなり使いにくいです.前センサで横壁が見えます.

これものすごく低価格マウスではないかと思う.

2010年5月30日日曜日

関西支部復活記念大会

NAISTにて行われた大会にクラシック競技とハーフマウス競技に参加.朝早くから迷路の設営を手伝っていただいた方々ありがとうございました.本来は前日に完了しているべきなのですが.

私はどちらの競技の出走でもばたばたしてかなり焦りましたが,結果的にはちゃんと動いたのでよかった.

・クラシックマウス競技
1.探索,ゴール区画の段差にはまる.26.672s
2.アルミフレームを変形させて再び探索.やはり引っかかる.26.674s
3.どこが引っかかるかわかったので再度アルミフレームを変形させて探索.全面探索成功.26.673s
4.低めのパラメータで最短走行.6.402s
5.少し上げて最短走行.5.704s
最短走行が2回しかできなかったが,後で試走させるといずれにしてもこのあたりが限界らしい.それにしても探索時間の再現性がおかしい.順位は3位.

・ハーフマウス競技
1.全面スラローム探索.が,ゴール区画に入らない.袋小路カットしてしまったかと思ったが,ゴールはカットしないようにしていたはずなのでちょっと納得がいかない.R
2.一応最短走行にトライするもスタート直後で停止.やはり何かがおかしい?R
*.ここで関西支部ローカルルールを利用(プログラム書き換えOK,ただし持ち時間は減っていく).
パソコンをかばんにしまっていたのでかなり時間をロスしたが,ゴールを袋小路カットで仮想壁をたてているわけでもなく,原因不明.
3.再び最短走行.11.276s
4.さらにパラメータをあげて走行.失敗R
5.もう一度.時間切れ.(参考タイム7.661s)
なんと正式記録は最短走行のひとつだけということになってしまった.探索でゴールに入らなかったのは,ゴール区画まわりの壁が全部既知なのでその区画に入り込む必要なしと判断されたためらしい.これは修正しておかねば.4位.

今日の動画は今後の課題ということでふらふら最短走行するクラシックマウスを.というかこれしかないのですが.


今大会は運営を手伝う人の数が足りず終始ばたばたしていた印象だったかと思います.京大機械研からもっと人を確保しておくべきでした.すみません.
受領書にサインしてない...帰ってから要らなかったのかな?と気づいたがやはり必要だったか.

2010年5月28日金曜日

関西支部試走会

研究活動をさぼって試走会に参加しました.会場は大変きれいです.



クラシックサイズはとりあえず動くという程度.全然スピードにのりません.滑るのかな?
ハーフサイズははじめて床を走らせて1週間ですが,案外安定して動くような.
やはり迷路が自宅にあってかつ試走会に参加というのは大きい.


この動画,横がきれてますが...
参加人数もそれほどは多くなく,参加賞がたくさんということらしく豪華そうです.

2010年5月26日水曜日

シード権

 なんと今回の関西支部大会でもシード権が与えられるらしい.すごいな.ただ半年もすればマウスが新しくなってたりするような気もする.
まあ今回の参加メンバーを考えれば私には関係ないけど.

2010年5月25日火曜日

登録完了

 テクニカルデータを入力し,関西支部大会の登録を完了した.勢いで打ったので間違っているところも多い気がする.正式登録完了の確認メールが2通きたが,これってどのロボットのやつかわかりませんね.
今大会はある程度の参加者とかなりのレベルが確保できるようでとりあえず安心.自分のが動かなくても問題無し.

現状:
5号機(クラシック競技)・・・それらしいホイールを発見し,とりあえず見た目は元通りになる.しかし迷路が無いので走るのかどうか不明.

6号機(ハーフ競技)・・・迷路はあるが,1週間で走るようになるか?2次走行はかなり厳しい.5号機のアルゴリズムでは常に斜め走行になるから.探索はがんばり次第で...

2010年5月16日日曜日

コンストラクタ

C++の話.
グローバルなクラスのコンストラクタはスタートアップルーチン内で呼び出されるべきで,キーワードとして,
  • .ctorsセクション
  • __GLOBAL__I_???が実体?
などわかったが,もうちょっとどうやったらいいかわからないので諦めてmain内で初期化することとする.

リンク関係はやはり難しい.

リンクエラー

フォトセンサ用のテーブルを取り込むために以下の内容だけのソースファイルを作る.
他のソースからこれを読みにいくわけだが,リンカがシンボルがないと文句を言う.
コンパイルによって生成されたオブジェクトファイルは約700bytes.要するに最適化でカットされたということか?

const float table_photo[4][4096]={
    {
        #include "table0_ld.txt"
    },
    {
        #include "table1_rd.txt"
    },
    {
        #include "table2_lf.txt"
    },
    {
        #include "table3_rf.txt"
    }
};

先頭に
extern const float table_photo[4][4096];
と書いておけばOKだった.

2010年5月9日日曜日

3D配線

 プルダウンをさぼるとROMへ書き込んでいる途中モータが全力で回る.予想できていたはずなのだがなぜかさぼってしまいますね.抵抗を追加するスペースもないので,しかたなく上に逃げる.

フォトセンサまわりに問題点が残る.ちょっとまずいかもしれない.おそらく探索が安定しない.しかしまあとりあえず動くところまでもっていくことにする.

作業中2

フォトセンサがとりあえず1個動作するのを確認できたが,今日は少し問題点もでてきた.
  • LED駆動のFETが小さすぎてついているのか確認不能.(DMN2005LP4K)
  • LEDの極性を間違えてパターンをつくっていた.
  • 上から強烈に照らされると外乱光だけでサチる.
パターンのミスはやるだろうなあと思って何回も確認したつもりだが,結局最後の一回思い違いをしているとアウトなわけで...
外乱光はまあとりあえず気にしないことにする.

作業中

 関西支部大会に向けてハーフマウス制作中.大会準備の方も進んでいるようなので出場する側も動くものを持っていきたい.

とりあえずSTM32に書き込みはできた.1005部品を多用しているのでハンダ付けはかなり疲れる.肉眼とかルーペとかではよく見えないのでデジカメが活躍するわけだが,最近のはマクロが得意というわけでもないカメラでもわりときれいに写るんですね.画像は状態表示用のLEDと抵抗アレイ.細かい飛沫が飛んでいて汚い.

それでこのLEDたちは素直には光らなかった.使っているのがデバッグ用ポートで初期状態では入出力ポートとしては使えないからであるが,ライブラリを使っている場合は,
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
と一行書いておけばデバッグポートは全てoffになるらしい.昨年も同じとこで詰まったので短時間で解決した.というか詰まること自体どうかと思うが.