スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

まだまだ座標制御 

座標に基づく、マウスの軌跡制御の調整をずっとしてました。
でもまだ微妙な感じです。
連続でスラロームをすると少しずれてしまいます。
連続でしない方はこんな感じ。
動画はこちらへ
スラローム後に方向や位置が多少ずれていても無理やり補正します。
ずっと右のスラロームばっかし調整してたので、
左スラも調整しないと・・。
スポンサーサイト
[ 2006/09/30 06:21 ] マイクロマウス | TB(0) | CM(0)

math.h使えた 

座標のx、y座標を求めるために、
三角関数を使わないといけないんですけど、
それを使う関数があるmath.hがやっと使えるようになりました。
今までコサインとかを使うと、
math.hをインクルードしてあるんですけど、
なぜか関数が未定義みたいなエラーが出てたんです。
それで、math.hの中身を見てみたんですけど、
ちゃんと関数があり、何がいけないのかわからず、ほんとに悩みました。
それで開発ソフトであるHEWの初期設定に、
標準ライブラリ設定っていうのがあり、
そこでのmath.hの欄にチェックを入れてなかったことを思い出しました。
なんでこんなことに気づかなかったんだ~。
これで正確な座標が求められたので、これからやっと制御に入れます。
[ 2006/09/29 06:55 ] マイクロマウス | TB(0) | CM(0)

座標を使った制御 

今日は壁がなくてもマウスが迷路状を走れるように、
マウスの座標制御をしました。
座標制御はマウスの左右の回転差をとり、
それをもとにマウスの姿勢角度を求めて、
現在のマウスの速度のx成分とy成分を求めて、
それを随時足していくとx軸とy軸の座標がわかります。
精度が悪いかなと思いましたが、結構いい感じに
XY座標の値が求まっています。

これによりマウス自体がどこにいるのかがわかり、
壁補正なしでもある程度走れるようになるはずです。
でもまだ今の走行関数に座標補正を入れてないので、
使えるのかわかりませんが・・。
明日やってみよう。
[ 2006/09/26 03:26 ] マイクロマウス | TB(0) | CM(0)

スラローム一応走った? 

今日は昨日言っていた位置制御を直接dutyをPD制御してみました。
自分の場合速度制御が微妙なので、速度での位置制御はやりにくいです。
速度が理想どうりに動いてくれればいいのにな~。

それで走らせて見たらある程度目的地のところへ収束してるみたい。
動画はこちらへ

あとスラロームも調整して、コース周りを回らせて見ました。
動画はこちらへ
最後壁にぶち当たっています。
ぶつかってもPID制御の積分項に、リミッタをかけてあるので、
止まってくれてます。でもリミッタを超えるまでの少しの間は暴走しますけどねw。
[ 2006/09/25 05:46 ] マイクロマウス | TB(0) | CM(0)

位置補正はdutyで? 

CIMG0718.jpg

壁補正のパラメータを決めるために、実際に迷路状で何度か走らせて
みました。
壁補正は何とかできていますが、
指定の位置になかなか止まってくれません。
位置制御は目標スピードを変化させて指定位置に収束するようにしていますが、
それでは二度手間なのかな~。
直接dutyを変えてやることで収束させるのが普通なのかも。
明日やってみるか。

最近画像がないので、なんとなく実家の犬をUP。
CIMG0707.jpg

[ 2006/09/24 02:24 ] マイクロマウス | TB(0) | CM(0)

久しぶりにロボット始動 

実家から戻ってきたので久しぶりにロボットを動かしました。
速度制御のパラメータ設定をし直しました。
それでスラロームをやってみると積分項の影響か、
時々暴走してしまいます。
目標値に実測値が届いていない状態が長く続くからかな。
積分項を制限してもあまり直らず、
積分ゲインを下げたら直りますが、
スピードが目標値までいかないし・・。
どうにかならんのかな~。
まあとりあえず迷路上を走れるプログラムを書かないといけませんね。
[ 2006/09/22 23:37 ] マイクロマウス | TB(0) | CM(0)

実家に帰省中。 

実家に帰る予定はなかったんですけど、
気分転換にただ今帰省中です。
ロボットもそろそろさわってやらないといけないな~。
部員もがんばっているみたいだし。
家ではずっと寝てばっかしです。
かなりだらだらしすぎ。
夏休みが終わると忙しくなるんだろうな~。
終わる前に、ロボットがまともに走るようにはしたいです。
[ 2006/09/19 18:33 ] その他 | TB(0) | CM(0)

パラメータ設定 

エンコーダの付け方を変えて、分解能を高めてみたましたが、
反応の鈍さはほとんど直りませんでした。
マジでよくわからん。こんなもんなんかな~。
またパラメータを一から設定しなければならなくなり、
やる気が一気にダウン。
PID制御の各ゲインをもっと効率よく決定できないかな~。
いちいちグラフ化するの面倒くさいよ・・。
[ 2006/09/14 02:05 ] マイクロマウス | TB(0) | CM(0)

分解能低い 

いまさらになってエンコーダの分解能が低いことに気づきました。
今は軸に直付けになっているので、分解能が低いです。
ホイールがついているギヤに、
エンコーダに付けたギヤを噛み合わせることで、
分解能が現在の7.5倍になります。
大事なエンコーダ部分をあまり考えないで設計したのが失敗でした。
明日でも機体を分解して付けてみるか。
これで昨日書いた速度の追従がだいぶマシになると思います。

今日はちょこっとプログラミングして、
スラローム旋回を連続でしてみました。
果たして実際に迷路上で走るのだろうか・・。
動画はこちらへ
[ 2006/09/11 18:32 ] マイクロマウス | TB(0) | CM(0)

スラロームやってみた 

今日はスラロームのプログラムを書いてみました。
プログラムは左右の速度差が一定値になるようにPI制御してます。
走っているときの情報をグラフ化して、
どのようにロボットが動いているか細かく調べられるようにしています。
これはバグなどを見つけるのに非常に便利でかなり使えます。
実際速度制御のパラメータを決めるときに何度もグラフ化して、
収束具合をみて調節しました。
これがスラローム旋回時の右輪の速度と目標速度と左右のスピード差を
グラフ化したものです。
suradata.jpg

紫が目標速度、青が実際の速度、黄色が左右輪の回転スピードの差です。
結構目標速度と実際の速度が遅れて追従しています。
このぐらいは仕方ないのかな~。
これが実際に走る様子です。
動画はこちらへ
旋回半径がもっと小さい方が姿勢制御がしやすいみたいなのでまた調節し直します。

[ 2006/09/10 21:38 ] マイクロマウス | TB(0) | CM(0)

加速and減速 

スピード制御が大体完成したので(まだ調整が必要)、
加速テーブルを作って加速したり減速したりできるようになりました。
ちょうど180mmで止まることができます。
速度が0になると姿勢制御に入ります。
動画はこちらへ

PWMも割り込みからPWMモードに変え、また周期も20kHzに変えたので、モータ音がまったく聞こえなくなりました。
モータ音の原因はPWMの割り込みが他の割り込みに干渉されていたから。
割り込み優先順位を変えてやると直りますが、やはり割り込みではCPUに負荷が掛かると思って、MTUのPWMモードで出力するようにしました。

今度はターンでもしてみようかな。
[ 2006/09/08 20:31 ] マイクロマウス | TB(0) | CM(0)

速度制御完了。 

速度制御ができるようになった。
今までPWMを割り込みで出してたんですけど、
その割り込み優先順位が違う割り込み関数と同じであったために、
フィードバックしようとしたら変な挙動をしていました。
あとから優先順位を決めようとして、すべて優先順位を一緒にしていた自分がアホでした。
これが原因でモータが変な音をしていたんだろう。
PWM周期が多少小さくてもあんな音は出るはずないですもんね。
自分が勘違いしていました。
そこでPWMをSHのPWMモードで作ってフィードバックをかけてみると、
ちゃんと収束してくれました。
速度制御の場合残留偏差をなくすために積分制御が絶対に必要だと思います。
積分制御とは偏差を随時足していって、それに係数をかけたものを
制御量に加えるというものですが、今までPD制御しかしてこなかったために、
積分ゲインを決めるのに結構時間が掛かっちゃいました。
もっと効率の良い決め方とかないかな~。
[ 2006/09/08 02:41 ] マイクロマウス | TB(0) | CM(0)

速度制御できない? 

今日は夕方の4時ごろまでずっと寝てしまってました。
それから部室に行ってちょこっとプログラムをしたんですけど、
速度制御がなんかできない・・。
今までは調整の時間がなかったためにdutyだけの設定で、動かしてたんですけど、
それではいろいろと問題が出てきて、速度制御が必須になってきます。
それでPID制御で速度制御をしようとしたら、簡単にできると思ったのに、
へんな挙動をしてできませんでした。ぜんぜん収束してくれません。
ゲインの値がおかしいのか、そもそもエンコーダのカウントミスなのか、
調べてみる必要がありそうです。

[ 2006/09/07 00:16 ] マイクロマウス | TB(0) | CM(0)

初級者大会 

今日はマイクロマウス初級者大会がありました。
このごろ更新が少なかったのはこれに向けて部室にずっとこもっていたからです。

結果の方はマウスが6分とあり得なく遅いです。
完走できることが今回の目標だったので、その点で言うとちょっとうれしいです。
止まっている時間が長かったかな。
プログラム製作の期間が1週間と少なかったために、
探索走行しかできませんでした。
それとマウスが走っているときにピーピーとモーター音が鳴っているのを指摘されてしまいました。
やはりもっと高周期のPWMで動かすべきなんですけど、
モータードライブが危うい・・。

ロボトレースの結果は優勝しました。2位3位どちらも同じ大学の人でした。
加減速走行モードで走行が途中で止まるというバグが見つかったために探索走行だけにしました。最後に電池が切れてしまったために第3走行ができなかったですが、
できたらもっとタイムは上がっていたと思います。
次回はバグを見つけて加減速モードで行きたいと思ってます。
CIMG0685.jpg



その前に休息をとらなければ・・。

[ 2006/09/03 23:54 ] マイクロマウス | TB(0) | CM(0)






上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。