Team GRA・CHAN!

Robocup Junior サッカーに挑戦しているTeam”GRA・CHAN!”ロボ日記

Entries

スポンサーサイト

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

GRA・CHAN!ロボ技術公開  コートにおける位置把握方法?

こんにちは、GRA父です。

めっきり寒くなってきましたね~。
暑がりの私ですが、うれしくない季節になりつつあります(笑)

前回”アウトオブバウンズ対策?の雑談”という記事を書いたと思いますが、2番目の超音波とかで位置を~というの書いたときに、まだ使えるんじゃねぇ?と思いましたものですから、今回、記事にしてみました。

そして、ちょっと前まで、超音波センサとは?というものも記事にしていましたので、せっかくですから、初心者チームの方を対象にして、超音波センサを使ったコート上の位置把握の制御の仕方について書きたいと思います。

多分、過去の技術公開でも、近いことは書いてあったと思います。

ですが、ここまで特化してなかったと思うので、今更ながらになりますが書きたいと思います。

これは記事のカテゴリの通り、当方チームのGRA・CHAN!が実際に行っていた把握方法です。

あくまでAコートでの位置把握を書きます(ウチはオープンB未経験チームなので)が、恐らくコートがBになっても、まだまだ使える制御方法だと思うので、皆さんのご参考になれば幸いです。

それでは。

超音波センサを使った位置把握のやり方ですが、まずPING)))の左右の超音波センサを1個ずつ動かして、壁からの距離を各々の距離を計測します。

仮に計測結果がでた右の超音波センサの壁からの距離を”A”、左の超音波センサの壁から距離を”B”とします。
その次に自分のロボットのサイズを”C”(仮に220mmとか)とします。

2013年ジャパンまでのAオープンやライトウエイトリーグのコートの横幅は、1,220mmですよね。

距離の考え1

普通に考えると、コート横幅”D”(1,220mm)=A+B+Cとなります。

しかし、なぜか総合計は、コートサイズの”D”にはなりません。
つまり、D-(A+B+C)=0ではないのです、なぜか?

超音波センサの誤差というか、デットゾ-ンがあるといか、そういう要素によりAとBには誤差が生じます。
この為、差が出ます。
また、自分のロボットのサイズが正確でないことも要因の一つですよね。

ここで注意することは、差は一定ではないのです。
位置関係によって範囲できてしまいます。

つまり、コート横幅のサイズになるべきなのにが、場所によりA+B+C=93cmとか、98cm、110cmとか、いろんな合計値が出てきます。

この点は、いろいろな位置で実測データを取って、この範囲をだすしかないですね。

まずは頑張って、いろいろと調べて見て、その実測データの中から一番最小のA+B+Cを求めます。

次に壁とロボットを斜めに置き、その状態でも超音波センサのAとBの計測距離が、ほぼ正確な計測ができている角度を調べて、その角度までロボットを傾けます。

距離の考え2

距離が計測できるロボットの角度から考えると、既にコート横幅よりも長くなりますよね。
その角度で、いろんな位置にロボットを置いてみて実験すると、A+B+Cは130cm以上とかになると思います。

先程の最小値を求めた時と同じように、またしても頑張って、実測データの中から一番最大のA+B+Cを求めます。

こうすることで、実際に動いているロボットが計測したA+B+Cの値が最小値~最大値の範囲にいるのであれば、計測結果は正常、つまりコートサイズ内にいることにします。

範囲外ならば、横にボールとかロボットがいるという風に考えて割り切りましょう。

範囲内にいる!ということが判ったら、次に超音波センサの右または左の計測データの誤差が少なく、信頼できる方を基準にして、コート横上で位置把握をしたいグループを決めて、分割していきます。

当方チームの場合は以前、技術情報公開でも書いたとおり、実際に使用する・しないに関わらず、9分割にしていました。

位置分割の例

まぁ、正直、ここまで細かくしても使ってなかったと思うので、4~5分割程度でいいんじゃないでしょうかね?

例えばですが、左の超音波センサを基準とした場合、計測データが”5”(=5cm)だったとします。予め、コート分割範囲が決めてあり、仮に0cm~10cmの範囲が位置”9”としている場合には、今回”5”だったので、コート横は”9”の位置にいるというようなやり方です。

こうすることでロボットの横位置が、1~9のいずれかにいることが判るので、その位置次第で、走行プログラムをどう動かすかとか考えれば良くなりますよね。

Bコートならば、1とか9はラインアウトしているとか・・・。

さて、次に縦軸(=相手ゴール)方向の場合ですが、2011年では前後に超音波センサを付けて、横位置把と同じ方法をしていましたが、結局、バックアップとして、後ろの超音波センサだけで位置把握ができるようにしていました。

縦軸の場合、A+B+C方式での位置把握は、相手ロボットとかがいることで、結局ほとんど使いものにならず、バックアップであった後ろの超音波センサだけで位置把握をしていたようで、すでに昨シーズンとなってしまった2013年大会では、後ろだけで位置把握をしていました。

まぁ、少し考えれば当たり前なんですが・・・。

従って、縦軸は単純に後ろの超音波センサの計測距離で3~4段階ぐらいの位置把握しかしていませんでした。
つまり自陣壁からの距離が、140cmなら敵陣ペナルティエリア付近とか、40cm以下なら自陣ゴール前とかです。

また、先程の横軸把握と複合利用して、同じ40cmでも、図でいう横位置”4~6”の範囲にいるのであればゴール前なので、実際のゴール内の壁から超音波が反射していると考え、ー10cmして、30cm付近にいるとかにしていたようですね。

このようにして、位置の把握をしていたようです。

ここで、メンターとしての意見ですが、この位置把握方法を活用する場合、相当量のデータ取りが必要です。

横軸のデータ取りだけで、丸1日かかると思って下さい。
かなり細かく、細かくいろんな位置でデータ取りをするようにしないと、このやり方は試合には向かないです。

また、コンパスセンサのによる方位制御、つまり必ず敵陣の方向に向くを細かく制御できないと、使い物になりません。

ちなみに当方チームのコンパスセンサを使った制御方法は、GRA・CHAN!ロボ 技術公開 コンパスセンサ制御?に書いてありますので、参考にして下さい。

実際に当方チームの場合には、以下のようなプログラムの流れをしています。

1.コンパスセンサで方位をチェックする。
2.敵陣方向に向きを整えるプログラム(=当方チームでは、回転プログラムと
  いっている)をする。
3.順次、超音波センサを動かす。
4.計測結果から、現在位置を求めるプログラムを動かす。
5.実機の位置を把握。
6.現在位置に沿った走行プログラム(=ボールを追うとか、バックするとか・・・。)を実施する。

ご参考になりましたでしょうか?

恐らく、今回で当方チームが行っている情報を公開できる、といいますか、他のチームにも有益だと思われる情報は以上だと思います。

まぁ、当方チームがやっていて、他のチームでも使えそうな情報がありましたら、公開をしたいとは思いますが、もうないでしょうね(笑)

以上、GRA父でした~。
スポンサーサイト

Comment

Comment_form

管理者のみ表示。 | 非公開コメント投稿可能です。

左サイドMenu

黒ねこ時計 くろック

最新記事

最近のコメント

データ取得中...

右サイドメニュー

アクセス カウンター

検索フォーム

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