next up previous contents
Next: ポールをかわす(結局採用になったのは…) Up: 走行アルゴリズム Previous: まずは、ポールを追跡する

Subsections

ポールをかわす(不採用だったアルゴリズム達)

はしご型走行



カメラにポールが写っていると仮定する。カメラの画像より次の ポールが赤なのか青なのかを判断し、赤であれば廊下の左側の壁からdr 離れたところに平行移動や、左右の超音波センサによるフィードバック制御 など適当な方法で移動する。青であれば、逆の壁に同じ制御方法で近づく。

左壁からdrの距離に近づいたら、その距離をdrに保ったまま 直進する。この制御はdrを目標値としたPD制御で行う。この時、カメラは 常にポールの方向をむき、ポールまでの距離を把握しておく。





\includegraphics {algorithm/hasigo1.eps}





ロボットがポールに近づいたら、1に戻る。
ここで、近づいたという事を具体的に考えると、 などが考えられる。




\includegraphics {algorithm/hasigo2.eps}



問題点

始めは、わりと簡単にできるのではないかと思われていたのだが、実際には なかなかうまく行かない。

1.
すばやく壁の近くへ移動することができない
YosaQがステアリング機構を採用したことから、その場での回転など というような小回りが利かないために、こうしたことが起きる。テストの結 果、もっともポールとポールの間が狭い部分(およそ2m)ではおそらく通 過は不可能という見込みだった。
2.
仮にすばやく壁の近くへ移動しても、態勢を廊下に対して平行に 立て直せない
前の問題に付随して、すばやく移動できたときはできたときで、今度は 廊下に対して真っ直ぐ走れずに壁に激突する。

ポールを見ずに目標をずらす

ここでの「ポールを見ない」とは「首(カメラ)を振らない」という意味 である。「目標をずらす」とは、koikoiプログラムのように単純にポール を追跡するのではなく、その間の少し横を目標値とするということである。
次に、図を用いて説明する。



図のような状況を考える。まず変数、定数の説明をする。図にはないが、 一番手前のポールまでの距離をd0とする。次に手前のポールと奥のポール の距離をdとする。画面上でのポールの中心から目標のラインまでの距離を r0,rとし、ポールを構成するドットの数をS0,Sとする。ここで、S0, r0は基準の定数として、カメラから1mのところにポールをおいてあらかじ め測定しておく。
また、前提条件として、カメラからの距離がn倍の位置にあるものは、 辺の長さが$\frac{1}{n}$、面積は$\frac{1}{n^2}$に見えるものとする。 以上の変数を用いて目標値の算出を行う。





\includegraphics {algorithm/zurasi1.eps}



まず、前提条件から、
\begin{displaymath}
S = \frac{S_0}{d^2}
 \end{displaymath} (1)
より、
\begin{displaymath}
d = \sqrt{\frac{S_0}{S}}
 \end{displaymath} (2)
となる。
再び前提条件より、
\begin{displaymath}
r = \frac{r_0}{d}
 \end{displaymath} (3)
上の式を代入すると、
\begin{displaymath}
r = \frac{r_0}{\sqrt{S_0}}\sqrt{S}
 \end{displaymath} (4)
となる。
結局、rSの関数になるので、Sをカウントすればkoikoiプログラムの ような目標値ではなく、画面の中心からrだけずれた点線のところを目標と することができる。

問題点

1.
目標値の揺らぎ
図では、さもポールがきっちりと画面内から切り出せているように見えるが 本当はそんなことはない。画像処理のところでも触れるが、なぜか色が揺ら ぐためにロボットの目にはポールはゆらゆらと揺れているように見える(ら しい)。画素の数にも揺らぎがあるためにポールの大きさが一定でなくなる。 目標値の算出にポールの大きさを用いるため、制御に支障をきたすようにな ってしまう。これは、色フィルタの性能を良くすれば直るのでは、とも思わ れたが結局、本質的解決には到らなかった。

2.
ポールの横を通りすぎる際の制御



ポールの横に近づいてくると、右図のようにポールが画面からはみ出してし まう。目標値は毎回ポールの画素数から算出しているので、画素数が 大幅に減少することにより目標値が非常にポールに近いところに設定されて しまう。つまり、ポールに向かって走ってしまうわけである。直前まではい いかんじで走って行っているにも関わらず、急にポールに向かって突っ込む 事になるわけだ。この問題は後々まで尾を引くことになる。




\includegraphics {algorithm/zurasi2.eps}




Takao NAKAI
1999年1月18日