2010-11-01から1ヶ月間の記事一覧

スリップ角を意識したターンを実装

なんとなく、スリップ角の考え方はわかったような気がするので・・ スリップ角を意識した旋回開始位置の修正ができるようになりました。 トップクラスのターン速度で曲がれる事を確認。 車体のポテンシャルとしては、中々良い感じという事がわかって、ひと安…

スリップ角恐るべし

スリップ角について、シミュレートしてみました。第二弾。 ターン終了時に残っているスリップ角が一定以下になるまで。 相変わらず、kojimaさんの式を使わせてもらっています。 スリップ角1度以下になるまでで、こんな感じ。 緑→赤に変わる所で、角速度が0に…

MRAM

MRAMが、中々良い性能をしている気がします。 40MHzまでのSPI接続、書き込みディレイなしだそうで、無限に連続してWrite/Readできるようです。 1MbitでパッケージがDFN8pin。 この会社、前に調べた気がするのに・・・何で見落としていたんだろう。

さくらねずみ4のLED発光回路

さくらねずみ4では、発光回路にOPAMPを使った定電流回路を使っています。オーソドックスですが、結構良い感じです。 LEDに流れる電流の立ち上がりが1uSくらいで、オーバーシュートが収まるまでで、2uSくらいです。(この数字はOPAMPとFETの選択で相当変わる…

2010年度 全日本大会での反省&良かった事&もらった情報メモ

・ハード関連 悪かった事 モータマウントが貧弱すぎる→ギヤのかみ合わせ悪い L字のアルミアングルは固い材質 モータの根元で無理に配線を曲げる→断線する 車体がやわらかすぎる→加速度上げられない m0.3、1mm幅の適当なギヤを使う→ギヤがただの円盤になる 金…

2010年度 全日本大会

第31回全日本大会に出場してきました。 マイクロマウスクラシック エキスパートクラスにシードで出場し、 結果は(多分)7位でした。 走りこみをした期間が2,3日くらいしかない割にはそれなりに走ってくれたと思います。 シードでの出場だったので、最短走行が…

2010年度 試走会

朝、斜めでの制御を弄ってから、試走会に参加してきました。 やはり、大会で使われる迷路はグリップが良く、上から2番目のパラメータまで、それなりの迷路で走りました。 パラメータの調整はほとんどなしで走ってくれました。 でも、長めの斜めはあまり試せ…

とりあえずの所まで。

とりあえず走れそうな所までは持ってこれました。 去年の大会で走らせた最低パラメータくらい。 45度90度が1.3[m/s]で、他が1〜1.1[m/s]くらいです。 加速度も、車体がやわらかすぎて上げられず、6[m/s^2]に制限中。 ただ、去年のMAXに近いパラメータも入っ…

つかれた

モータが急に振動し始める現象があり、その原因を特定しました。 電源電圧を見るための分圧抵抗が剥がれかけていました。 時々電源電圧が0Vになり、Duty算出の時0除算でNaNになっていたらしい。 振動した時はDuty±100%で制御をかけようとするから、モータド…

走行パラメータの転送と新方式のターン実装

走行パラメータ(加減速、最高速)とターンパラメータの転送ができました。 あとはログ機能を実装すれば、かなり楽に調整できるはず。 ターンのパラメータも、完全に物理量依存になったので 車体のパラメータを除けば、パラメータは 使用する摩擦力 速度 突入…

へぇ・・・

今アツい話題の、スリップ角の考え方を新しく作っている走行軌跡ソフトに入れてみました。 といっても、自分では何も考えていなくて、kojimaさんの式をとりあえず入れてみただけ。感覚だけでも掴んでおきたい。 使うのは、ちゃんと理解してからにしよう。 こ…

走行パラメータ管理

ターン軌跡の計算は、何らかの関数で近似しようと思っていたけれど、元の形のまま計算するのが一番速くて、実装も楽そう。 sqrtはどれくらい時間を食うだろう? 既にsin,cosが回っているけれど・・・ そんな訳で走行パラメータを管理する部分を書き始めまし…

動き始めた。

何故か動かなかった壁切れ補正のバグを直して、やっと探索から最短走行までできるようになりました。 壁切れ補正ができなかった理由は結局、 if( (〜&2) == 1 ) なんていう絶対に入らない条件文があったり、 過去のセンサの値を使用するのに、値の保存をして…

新機能実装1/3完了

3つの新機能のうち、やっと1つの実装が終了。 不揮発メモリを使った各種データの保存 摩擦ベースの機動 ログ のうちの、不揮発メモリ関係が完成。 これで調整が楽になる・・・と良いな。 ログは良いとして、摩擦ベースの機動が中々難しい。 というか慣性モー…

C#でfloatをbit単位でアクセスする?

通信する時にfloatを一旦1byte単位で読みたかったのですが、簡単にはできないみたい。 以下のようなメソッドを作って対応しました。 private UInt32 FloatToByte(float f) { byte[] buf = new byte[4]; UInt32 returnval; MemoryStream mem = new MemoryStre…

ふと思った。

速度(モータ)制御のD成分、マウスでは一般には不要と言われていて、 実際の所、自分で試しても振動的になっただけだった記憶がある。 D制御の式は、 kd * (error - old_error) と書いていたけれど、加速運動をしている時は、適当に次元を合わせた加速度accel…

今年はハードウェア厄年らしい

ピニオンギヤを入手したので、足回りが本当に完成。噛みあいは言う事なし。 まだPWMの初期化は書いていないので、IOでDutyMAXでとりあえず回してみました。 右が回らないので、やれやれ、Sleepピンでも半田不良なのかなと思ったら、そうでもなさそう。 他も…