事前生成されたマップを使用した Turtlebot 探索
私は、既知の環境 (事前に構築されたマップの助けを借りて) をナビゲートし、オブジェクト (赤いボールなど) を検索することになっているタートルボットの探索戦略に取り組んでいます。
マップは gmapping を使用して生成されており、現在、既知のマップを探索するための戦略を実装しようとしています。マップ上にランダムなポイントを生成し、これらのポイントで 360° スキャンを実行することもできますが、オブジェクトが存在する場合にその位置が特定されるとは限らないため、私はこの方法にあまり熱心ではありません。
私が望むのは、これらすべてのポイントを訪問し、それらのポイントのそれぞれで 360° スキャンを実行した後、マップのアクセス可能/可視領域全体がロボットによってカバーされるような一連のポイントです。
アート ギャラリー アルゴリズム (ここで説明: http://cs.smith.edu/~orourke/books/ArtGalleryTheorems/Art_Gallery_Full_Book.pdf ) も同様のことを達成していると感じたので、私のシナリオでそれを実装しようとしました。
アート ギャラリーの問題にはポリゴンが必要であり、実際のロボットで gmapping によって生成されたマップからポリゴンを生成することは非常に困難であることがわかりました (単純なマップの場合は可能ですが)。
Python で三角形モジュールを使用して、オブジェクトのクラスターの凸包を作成しようとしましたが、以下にリンクされているようなノイズの多い環境ではあまり役に立ちません。(.pgm ファイルを障害点のみをプロットして .png に変換しました)
注:私のタートルボットにはレーザー スキャナーがありません。Asus Xtion Pro Live が搭載されているだけです。
次の点について、お役に立てれば幸いです。
- タートルボット (できれば ROS のパッケージ) で既知のマップを探索する簡単な方法はありますか?
- アート ギャラリー アルゴリズムが実行可能なオプションである場合、障害物のスキャン ポイントから正確なポリゴンを取得するにはどうすればよいですか?
前もって感謝します。