RoboCup Junior Japan Rescue Kanto OB
2005~2013
2005~2013
最後にまともにロボットの記事を書いてから、
なんと2年以上経過していることが最近発覚しました。
未だにこのサイトはロボカップと検索して訪問される方が大半を占める中、
これでは、殆どロボカップ詐欺のような状態なのではないかと。そう思ったので。
極一部から公開を散々要求されて結局放置したネタを今のうちにやっておこうと思います。
というのは、Lα+のライントレースプログラムです。
まず、Lα+って何?という話ですが、
Lα+というのは現在のレスキューAセカンダリで活躍している、ケルベロスGの2階担当が
まだ1年生だった頃、ロボカップを初めてやった時のチーム名です。
その時に「ライントレース担当のプログラムがちょっと気になる」と言う意見が何件が寄せられていました。
という訳で、意見が来てから2年以上経ってるような気もしますが、
今回、ライントレース担当の方にプログラム掲載の許可がとれたので、プログラムを一部公開することになりました。
ライントレースやってた人はそんなプログラム得意な人ではないらしいので
参考になるかどうかは微妙ですが、まぁ一応ということで。
まず、Lα+のロボットってどんなの?という話ですが、
こんなのです。因みに2年前に解体された模様
下から見るとこんな感じ
NXTのロボットですね。ラインセンサーはRCX用の光センサーが3つついてます。
交差点は存在しない時代ですので、これでライントレースを行ってました。
それで、本題のライントレースプログラムですが、こんな感じになってます。
元々150行近くあったのですが、分かりやすくするために、色々ややこしい箇所を削った結果こうなりました。
基本的にはこんなアルゴリズム。真ん中のセンサーが黒の間ずっと前進して、
真ん中が白になるか、タッチセンサーが押されると前進を中断して旋回などを行うという感じです。
あとは長いので切りましたが、左右に回転した量を常に保持しておいて、
そのデータを元にカーブしている部分のラインの曲線の角度を検出しているっぽいです。
ジャイロセンサーやコンパスセンサーを使わずとも
カーブ後のギャップやら坂やらで進行方向に正しく向くようになっているようでした。
ジャイロもコンパスも搭載しているけど細かいことは気にしない
プログラムの紹介はこんな感じです。原本のプログラム上げておこうかとも思ったけど
たくさんある過去のプログラムの中で、どれが角度検出がうまくいっているプログラムなのか判断できなかったので
とりあえず今回は紹介だけということで。
そんな感じで、今日の記事はこの辺で。
今日は久しぶりにロボット関連の記事でした。次はいつやるのかな。
2012年かぁ。僕は神奈川西東京のスタッフとかやってたなぁ・・・()
(^・ω・)ノ RadiumProduction at curonet
なんと2年以上経過していることが最近発覚しました。
未だにこのサイトはロボカップと検索して訪問される方が大半を占める中、
これでは、殆どロボカップ詐欺のような状態なのではないかと。そう思ったので。
極一部から公開を散々要求されて結局放置したネタを今のうちにやっておこうと思います。
というのは、Lα+のライントレースプログラムです。
まず、Lα+って何?という話ですが、
Lα+というのは現在のレスキューAセカンダリで活躍している、ケルベロスGの2階担当が
まだ1年生だった頃、ロボカップを初めてやった時のチーム名です。
その時に「ライントレース担当のプログラムがちょっと気になる」と言う意見が何件が寄せられていました。
という訳で、意見が来てから2年以上経ってるような気もしますが、
今回、ライントレース担当の方にプログラム掲載の許可がとれたので、プログラムを一部公開することになりました。
ライントレースやってた人はそんなプログラム得意な人ではないらしいので
参考になるかどうかは微妙ですが、まぁ一応ということで。
まず、Lα+のロボットってどんなの?という話ですが、
こんなのです。因みに2年前に解体された模様
下から見るとこんな感じ
NXTのロボットですね。ラインセンサーはRCX用の光センサーが3つついてます。
交差点は存在しない時代ですので、これでライントレースを行ってました。
それで、本題のライントレースプログラムですが、こんな感じになってます。
while(1)
{
if(中央センサーが黒)
{
前進
while((中央センサーが黒) && (!左タッチ) && (!右タッチ));
}
if(左センサーが白)
{
if(右センサーが白)
{
ギャップ;
}
else
{
右旋回
}
}
else
{
左旋回
}
}//while(1)
{
if(中央センサーが黒)
{
前進
while((中央センサーが黒) && (!左タッチ) && (!右タッチ));
}
if(左センサーが白)
{
if(右センサーが白)
{
ギャップ;
}
else
{
右旋回
}
}
else
{
左旋回
}
}//while(1)
元々150行近くあったのですが、分かりやすくするために、色々ややこしい箇所を削った結果こうなりました。
基本的にはこんなアルゴリズム。真ん中のセンサーが黒の間ずっと前進して、
真ん中が白になるか、タッチセンサーが押されると前進を中断して旋回などを行うという感じです。
あとは長いので切りましたが、左右に回転した量を常に保持しておいて、
そのデータを元にカーブしている部分のラインの曲線の角度を検出しているっぽいです。
ジャイロセンサーやコンパスセンサーを使わずとも
カーブ後のギャップやら坂やらで進行方向に正しく向くようになっているようでした。
ジャイロもコンパスも搭載しているけど細かいことは気にしない
プログラムの紹介はこんな感じです。原本のプログラム上げておこうかとも思ったけど
たくさんある過去のプログラムの中で、どれが角度検出がうまくいっているプログラムなのか判断できなかったので
とりあえず今回は紹介だけということで。
そんな感じで、今日の記事はこの辺で。
今日は久しぶりにロボット関連の記事でした。次はいつやるのかな。
2012年かぁ。僕は神奈川西東京のスタッフとかやってたなぁ・・・()
(^・ω・)ノ RadiumProduction at curonet
カレンダー
最新CM
カテゴリー
らじぷろ目次
らじぷろ検索機
最新記事
(01/01)
(08/27)
(04/29)
(01/01)
(11/20)
(09/06)
(09/04)
(08/09)
(08/06)
(07/27)
(05/29)
(03/15)
(01/01)
(05/07)
(01/11)
プロフィール
HN:
Luz
性別:
男性
アーカイブ