さて、色々とトラブルがあって全然走れていなかったもちもち2号が、探索ができるようになりました。嬉しいです。その経緯を残しておきます。
今日、まずはアルゴリズムが問題か調整不足かを見極める為に左手法を入れてみました。それっぽい動きは調整していなくてもできていたので、とりあえずセンサの値を調整しました。思ったより壁判定の値が低くて驚きました。でも1区画が調整したはずなのに短い、何故…。値を5/4倍くらいにしてもあまり変化しない、というような現象が起こっていました。
何度も動かしてみると気付き始めました。最初の前進の距離は合っていて、そこからがずれているということがわかりました。では、それは何故?プログラムを何度か見直していると、記述のミスに気付きました。ステッパーの加速のところで変なspeedが最初に代入されていました。そこを直したら、上手くいきました。蛇足でしたね。
その後足立法を試してみていました。ただ、どうも上手くいかなく、また悩みました。壁があっても無視してしまいます。そしたらフレッシュマンらしい(?)ミスを見つけました。
方角を表す、headという変数があるのですが、それをchar型で定義していました。ですが、それを別のファイルで使おうとした時、うっかりextern intとint型になってしまっていたのです。前もinrofで似たことをやった気がします。
そこを直したら、動き出しました。まだまだ前壁補正や袋小路バック後のステップ数などの調整が甘く、安定してはいませんが3*3くらいならゴール出来るようになりました。わぁい。
また、去年も足立法は出来ていたわけですが、少なくともその時よりかはかなり綺麗なプログラムが書けてきた上、加減速をしっかり行っているので、大きな進歩だと思います。
とりあえず根幹が出来てきた(?)感じなので調整を積んでいこうと思います。少し東日本に、希望が見えてきました。上手くいくかはまだまだ分かりませんが、最善を尽くそうと思います。
今日はこの辺で。
0 件のコメント:
コメントを投稿