9章環境の地図を作る
皆さんは今、ROSがどのように動作しているかを知り、ロボットを少しだけ操縦することもできました。それでは、次に、どうすればロボットが自律的に環境内を動き回ることができるようになるのかを見ていくことにしましょう。ロボットが自律的に動き回るためには、ロボットは自分自身がどこにいるのか、また、皆さんがどこに行かせようとしているかを知ることが必要になります。典型的には、これはロボットが周辺環境の地図を持っていて、自分がその地図の中のどこにいるかを知っている必要があることを意味します。本章では、皆さんのロボットに搭載されたセンサーのデータを使って、質の高い環境地図を作る方法について見ていくことにします。作成した地図は、次章でロボットを環境内のあちこちに移動させる方法について説明するときに利用します。
もし仮に、皆さんのロボットが完璧なセンサーを搭載していて、どこにいるかを完全に把握できているのであれば、地図を作るのは簡単です。センサーで物体を検出し、それらを(ロボットの位置といくつかの幾何学情報を使って)世界座標系に変換して、(その世界座標系の)地図に記録するだけです。残念ながら、現実の世界はそれほど簡単ではありません。ロボットは、不確かな環境と干渉し合っているので、自分自身がどこにいるかを完全に把握できているわけではありません。また、どんなセンサーも完璧ではないので、ノイズを含んだ観測をうまく扱わなければなりません。このエラーだらけの情報をどう組み合わせれば、使える地図を作ることができるのでしょうか?
幸運なことに、ROSには地図を作成するためのいろいろなツールがあります。かなり最先端の数学理論に基づいたツールですが、幸い、使うだけであれば内部で何が起きているかをすべて知っている必要はありません。これらのツール群について、本章で解説します。しかし、その前にまず、ここで言う「地図」が具体的に何を意味しているのかについて説明しておきましょう。 ...
Get プログラミングROS ―Pythonによるロボットアプリケーション開発 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.