[コンポーネント] omplオープン動作計画library1-基本的な理論
序文
- オープン動作計画ライブラリ、運動計画のオープンソースライブラリ、ベース主にサンプルベースの計画アルゴリズム
- 2つのコア・コンポーネント、OMPL、アルゴリズムライブラリ、及びOMPL.app、フロントエンドユーザインターフェイスを含みます
ディレクトリ
[コンポーネント] omplオープン動作計画は、基本的な理論のlibrary1-
はじめ
カタログ
参照
インストール
の実行のデモ
基礎
入門
サンプリングベースの動作計画
の計画理論の歴史的プロセス
に基づく動作計画は、サンプリングされた
いくつかの定義を
確率的ロードマップ(PRM)
、ツリーベースマップ(RRTクイックランダム木探索)
異なるPRMとRRTの
概要
サンプリング計画の基本的なコンポーネントに基づいて
障害物を検出するために
最も近い検索
OMPL
次の問題
はじめ
カタログ
参照
インストール
の実行のデモ
基礎
入門
サンプリングベースの動作計画
の計画理論の歴史的プロセス
に基づく動作計画は、サンプリングされた
いくつかの定義を
確率的ロードマップ(PRM)
、ツリーベースマップ(RRTクイックランダム木探索)
異なるPRMとRRTの
概要
サンプリング計画の基本的なコンポーネントに基づいて
障害物を検出するために
最も近い検索
OMPL
次の問題
参照
omplホームページの
デモ
チュートリアル
作品展示
intergratedビルドシステムと
計画algorithms.pdf
インストール
- あなたがompl.appを使用している場合、それはomplソースもインストールを示唆しています。そして、結合のpythonを開きます
sudo apt-get remove libompl7 libompl-dev
cd ./build/Release
cmake ../..
make update_bindings -j4
make -j4
sudo make install
sudo apt-get install libompl-dev ompl-demos
実行デモ
cmake_minimum_required(VERSION 2.8.3)
project(ompl_beginner)
SET(CMAKE_CXX_FLAGS "-std=c++11")
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
# find packages
find_package(OMPL)
# include dirs
include_directories(
${OMPL_INCLUDE_DIRS} )
add_executable(RigidBodyPlanning src/RigidBodyPlanning.cpp)
target_link_libraries(RigidBodyPlanning ${OMPL_LIBRARIES} )
基本
入門
- omplサンプルベースのモーションプランナー、プランナーや新しいツールセットを構築するなど、ユーザーも前段ツールompl.appを使用することができます。
- 熟練した使用は、使用者は、このようなサテサンプリング、衝突、最近傍検索のような、独自のプログラミングアルゴリズムの機能を開発するために、このフレームワークを使用することができます。
サンプリングベースのモーションプランニング
- ロボットはより多くの自由度を持っている場合、ソルバーは非常に困難になるだろう、「最初から終了位置まで姿勢のポーズ、およびすべての外部と内部の制約を満たす」:ロボット動作計画の目的です。
- ピアノを移動する古典的な運動計画問題は、例えば、この問題では、ピアノ自由(X、Y、Z、ロールの6度している 、ピッチ、ヨー)は、 この問題を理解するために考えられて、私たちはピアノを計算しなければならない6が含まれていますパラメータデータセット、データセットは、時間のパラメータであり、様々なパラメータの時間を変更することは、連続的であるべきです。(障害物回避の内部および外部の制約を満たしながら、他の(目標設定)に1つのコンフィギュレーション・スペース(コンフィギュレーションを開始する)コンフィギュレーション空間からの移行)、この問題があることが証明されたPSPACE-ハードソルバは非常に困難であるという問題。
計画理論の歴史的プロセス
- 正確な近似マップ単位分解(代わって:*アルゴリズム)(グラフ探索)
いくつかの例では、ロボットの作業領域は、分解としてモデル化することができるグリッドに分解バリアによる別個であってもよいです図(ロードマップまたはグラフ)。この図によると、問題は次のようになります。グリッドからポイント(ロボットからの抄録)(起点を含む)別のグリッド(エンドポイントを含む)へ。この計画の問題点は、ロボットが非線形ダイナミクスを持っている場合(ロボットが、それは問題ではありませんパイオニアロボットが所定の位置に回転させることができるので、車など、別のグリッドに1つのグリッドから移動する方法を知っていない)ということです経路計画は失敗です。そして、より多くの場合、状態空間は、自動車(車ターン過去の曲がりの多くを持っていない)など、ロボット内部の制約が存在する場合は特に、多次元です。ここでも、状態空間分解スペースの複雑さは非常に大きいです。 - (典型的には、フィードバックループ制御フィードバックループによって特徴付けられる)に基づいた制御方法は
、特定の軌跡に沿って移動するようにシステムを可能にする制御理論を用いて、制御方法に基づいてシステムをモデル化することを試みます。この連続空間での作業の方法、およびフィードバックループを持っています。この方法の利点は、非常に高速な制御に基づく、オンライン計画です。欠点には実現可能な解決策は、複雑な環境でよく、所望計算することが可能でないことです。(関節空間計画、デカルト空間計画、線形補間、円弧補間、スプライン補間) - 人工ポテンシャル場
の各点における典型的な人工ポテンシャル場は、作業スペースの機能、この反発(または魅力的)として計算した値として算出されます。ロボットが目標地点に図中ポテンシャル場の勾配降下方向におけるポイントとして抽象化。利点は、ロボット上の複数の点の動作は実際の良いともすることが可能です。欠点は、勾配降下プロセスで極小値に陥るのは簡単です。そして、理論的には、人工的なポテンシャル関数は、任意の次元の構成空間の状態で構成されており、(理想的にはフィールドがで構築されるようなので、元の問題を解決することができるシステムの状態空間が、これは、元の解決に相当します問題)。人工ポテンシャル場は、グローバルな最小値を有することを確認するために、ナビゲーション機能を使用して、いくつかの単純化された方法があります。 - ランダム/確率的計画アプローチ
このアプローチは非常に有用であることが判明しました。効果的に局所的最小の領域から逃れることができた人工ポテンシャル場でブラウン運動を追加します。
また、ベースの計画方法をサンプリング無作為化を使用し、確率サンプリング方法は、システムダイナミクスや複雑なシーンの自由度の高さに非常に有効です。そのようなライブラリですompl、およびROSとmoveItで展開!で。
動作計画のサンプリングに基づいて、
- ロボットプログラミングベースのサンプリング、要求計画、特に、複雑な制約システムに特に有用に迅速かつ効果的な対応の状態空間をサンプリング。従来の方法多くの場合、空間と時間の複雑さは、高次元空間で、非常に大きく、多くの場合、有用ではありません。配置空間ノードで可能ベースの検索状態をサンプリングする方法、および状態は、サンプリングポイントを介して接続され続けます。実現可能な解を生成するのに十分な、この柔軟、及び確率が完了すると、溶液が存在する場合、徐々にサンプルの数として増加することを完全手段の確率は、実現可能な解決策を見つけることができるようになります。しかし、サンプリング法に基づく解決策が存在しない問題を確認することができませんでした。
いくつかの定義
- 作業スペース:物理的な宇宙ロボット操作、障害物と見なされる境界ワークスペース
- 状態空間:パラメータ空間ロボット。ワークスペース構成のパラメータ空間ロボットの全ての状態を含む、状態空間内の点が状態で、注目は、多次元状態空間であってもよいです
- フリー状態空間:状態空間のサブセットで、アクセス可能であり、各状態のサブセットで
- パス:状態空間における連続状態点。パス内の各ポイントがアクセス可能である場合、そのパスが遮られていません。
だから、サンプリングの目標ベースの計画方法は次のとおりです。状態空間におけるバリアフリーパスを見つけます。次のサンプリングに基づく2つの主要な計画が付属しています。
確率的ロードマップ(PRM)
- PRMは、サンプルプランナーに基づいており、ロードマップ、都市の市街地図のように、このロードマップを構築する状態空間ランダムサンプリングでは、このメソッドを使用します。
- 均一サンプリング、およびグラフデータ構造に格納された接続、構成のロードマップ、。
- なお:状態空間を明示的に定義されることはありませんので、障害物検出モジュールがなければならない、サンプリングだけで保持することができるようにチェックした後、すべてのチェックを行うべきです
- サンプリングの多くの異なる方法がありますが、サンプリング戦略は、多くの場合、改善するのに便利です
- サンプルが一定数に達すると、彼らは建設側を開始し、標準のRPMは、各サンプリング点は、直接最短経路アクセシビリティ、地域計画を見つけるために、地元のプランナーを使用して、(前回のサンプリングポイントを見て)K点付近で周りの検索、意志障害物点が存在しない場合(例えば、直線補間)補間、これらのサンプリング点間の特定の解像度にこの行の障害物検出に続いて、側縁はロードマップに追加されるように修飾されます。
- ロードマップが完全に構築されたら、次にロードマップ計画は、目的地点への出発点となります。
- そして、ロードマップ図、最短経路探索の実行を検索
ツリーベースマップ(RRT、高速ランダム木探索)
- ツリー構造のサンプリングに基づいて、多くの従来の計画では、フリーの状態空間で構成されており、セクションに、このツリー構造は、ツリーだけPRM、図リングとPRM、のような話します。あまりにも多くのツリーベースのプランナー(RRT、EST、SBL、KPIECE)ので、ここでは特定の詳細にについて話されていませんが、一般的な枠組みについて話しています。
- ツリーとの間のノードがある場合、ツリー内のノードとしてルートランダムサンプリング点として、ロボットの出発点は、ヒューリスティックを使用してツリーの拡張方法は、ヒューリスティック検索条件は、多くの場合、この方法名前ジム、ツリーに組み込まれているノード。
- サンプリング処理は、ロボットのターゲットサンプリング状態に到達しない可能性がありますが、プランナーは、しばしばバイアス(偏り)とすぐに木に、目標状態とポイントなどの検索の拡張を提供します、経路計画は終わりました。
PRMと異なるRRT
- 図PRMが終了するまで、徐々にしか、スパニングツリーを全体ではなく、状態空間をカバーするために構成を必要とし、その後、開始と終了に接続され、RRT。
- それは木の別の、それも再拡大・成長への一点を必要とする場合であっても、他のターゲットポイントの情報ツリー構造が含まれていないためので、RRTは、要求の計画のために特に適しています。PRMは、一度だけ構築する必要があります。
- コントロールは、通常のコマンドを方向付け、そしてために、特定の前提条件を必要としている
有効であるために、特定の制御。ツリーベースの方法は、他の一方で、との計画に優れ
ため基礎となるデータ構造の有向非環式自然の複雑なダイナミクス。制御
情報は、ツリーの頂点が満足で、ツリーの各エッジに対して符号化することができる
有効なコントロールの前提条件。(没看懂)
概要
- これは、少ないメモリベースの計画方法のサンプリングが必要です
- それが明示的に状態空間で表現する必要がないため、
- 検索の効率と品質を守るために木やその他のデータ構造
サンプリング計画の基本的なコンポーネントに基づいて、
- サンプリング計画に、高次元空間と環境の複雑なダイナミクスに特に適した経路計画である基づき、さまざまな計画とその付属品はありますが、コアがある:単一の取得には、何が起こったのか?
障害物検出
- 障害物の検出は非常に便利です。遮るもののない経路を見つけるの局所プランナーは、(PRMを参照)を使用し、またサンプリング・プロセスで使用されます。障害物の検出は、障害物がない場合、この状態構成が正当なものである、この機能を実行するための複雑な高次元のシステムでは、状態空間の明示的な表現は、難しいだろうが、プランナーはそれを構築することができます行く必要はありません。
- (「障害」は、広いなければならない場合、それは、物理的障壁であるべきであるのみならず、既存の動的制約におけるロボットのステータス領域に到達することができない含める必要があります)
最寄りの検索
- 先に述べたように、計画アルゴリズムは、遮るもののない道を見つけるために、現在の状態から最も近い1つの状態を見つける必要があります。二つの状態は、ロボットの距離を決定する必要がある場合、この方法を使用することが必要です。
- しかし、高次元の空間に、ユークリッド距離は十分に計算することができません。KDツリーデータ構造は、方法が提供されます。
OMPL
- これらのOMPLコアアルゴリズムライブラリは達成しています!
次号
- ompl.app使用します