つくチャレ用障害物検出#03

障害物の形状について

障害物の形状による影響

 大まかなクラスタリングで障害物の位置を判断しても,実際の形状は複雑なものも存在する.そのため,単純に障害物一つに対して処理を一つ(ポテンシャル場を生成など)では回避は不十分であると考えられる.しかし,形状をすべて考慮して処理を行う場合,逆に回避に関係ない点群の影響が出てしまうことが考えられる.図のような場合では障害物間を通過する場合,形状を考慮するとへこんだ部分に少し入ってから抜け出すようになってしまい,非効率的な動きになってしまう.よって,障害物の形状をより単純化し,計算を省略しつつ,よりスムーズな回避ができるように障害物を検出したい.

形状の単純化

 障害物を全点群見ることはできないため,最近点を利用し直線で表現する単純化を考えた.

最近点を通る自己位置に垂直な線
単純に表現された安全な領域

 まず,障害物ごとの最近点を記憶し,その点を通り,自己位置との直線に垂直な線を考える.この線を越えなければ障害物に衝突することはないため,完全に安全な領域を単純に表現できる.この範囲内については障害物について判定する必要がなく,計算を減らせるのではないだろうか.

直線部分判定


 次に,基本的に最近点は物体の角か,直線部分の自己位置を通る法線が交わる点に発生する.そのため,これを利用し障害物の直線部分を一部,判定できるのではないだろうか.クラスタリングの際,障害物ごとに点群を格納した配列を作成し,その要素内で最近点を通る自己位置との直線に垂直な直線に幅を持たせ,それに点群が含まれている範囲は直線と判定することで,全点群を一つの直線としてまとめることで単純化できるだろう.

実装について

今回の方法については,クラスタリングの際に障害物ごとに最近点を記録,点群を格納しておき,その点と自己位置を結ぶ直線と垂直な直線の傾きが計算でき,その直線の式から範囲を決めることで障害物の直線判定を実装可能だと考えられる.

LEAVE A COMMENT