プランニングアルゴリズム基底クラス(PlannerManager)の仕様¶
クラス図¶
各プランニングアルゴリズムは、PlannerManagerおよびPlanningContextを基底クラスとして実装されており、自由に切り替えて利用できます。
既存のプランニングアルゴリズムを使うだけでなく、独自のアルゴリズムを実装することもできます。 MoveItでは、ROSのpluginlibの仕組みを使って独自アルゴリズムの既存システムへのプラグインを実現しています。 詳しい方法については、以下の外部ドキュメントを参照してください。
https://ros-planning.github.io/moveit_tutorials/doc/creating_moveit_plugins/plugin_tutorial.html
シーケンス図¶
アプリケーションプログラムは、pluginlibのClassLoaderを利用してPlannerManagerプラグインをロードします。
個々のプランニングは、PlannerManagerからPlanningContextを生成して実行されます。
コードサンプル¶
本文書では、クラスの仕様のみを記述します。コードサンプルについては、以下の外部ドキュメントを参照してください。
基底クラス¶
PlannerManager¶
-
class
planning_interface
::
PlannerManager
¶ MoveIt!プランナーの基底クラス。
Subclassed by chomp_interface::CHOMPPlannerManager, ompl_interface::OMPLPlannerManager
パブリック関数
-
bool
initialize
(const robot_model::RobotModelConstPtr &model, const std::string &ns)¶ プランナーを初期化します。この関数は、プラグインの読み込み後、他の関数呼び出しが行われる前に呼び出されます。model引数に指定されたロボットモデルに対してモーションプランが計算されます。ns引数は、ROS機能または必要なROSパラメータを読み込む際の名前空間として利用されます。
-
std::string
getDescription
() const¶ Get.
このプランニングインターフェースを識別する短い文字列を取得する。
-
void
getPlanningAlgorithms
(std::vector<std::string> &algs) const¶ 登録されたプランニングアルゴリズムの名前(プランニング要求でplanner_idとして入力できる値)を取得します
-
virtual PlanningContextPtr
getPlanningContext
(const planning_scene::PlanningSceneConstPtr &planning_scene, const MotionPlanRequest &req, moveit_msgs::MoveItErrorCodes &error_code) const = 0¶ planning sceneとプランニングリクエストを入力として、プランニングコンテキストを生成します。問題が発生した場合、エラーコードが設定され、空のポインタが返されます。返されるモーションプランナーコンテキストは初期化された状態です。モーションプランは、コンテキストが構築されるたびにゼロから開始します。
- パラメータ
planning_scene:プランニングに使用するplanning scene
req: プランニングリクエスト
error_code:プランニングコンテキストの構築が失敗した場合にエラーが設定される変数
-
PlanningContextPtr
getPlanningContext
(const planning_scene::PlanningSceneConstPtr &planning_scene, const MotionPlanRequest &req) const¶ 上記の関数を呼び出しますが、error_codeを無視します。
-
virtual bool
canServiceRequest
(const MotionPlanRequest &req) const = 0¶ このプラグインインスタンスが指定されたプランニングリクエストを扱うことができるか判定します。
-
void
setPlannerConfigurations
(const PlannerConfigurationMap &pcs)¶ このアルゴリズムに適用される設定を設定します。
-
const PlannerConfigurationMap &
getPlannerConfigurations
() const¶ このアルゴリズムに適用されている設定を取得します。
-
void
terminate
() const¶ solve関数が現在プランニングを計算している場合、中断を要求します。
-
bool
PlanningContext¶
-
class
planning_interface
::
PlanningContext
¶ プランニングコンテキスト。planning sceneとプランニングリクエストを入力として、解を計算するのがこのコンテキストの役割です。
Subclassed by chomp_interface::CHOMPPlanningContext, ompl_interface::ModelBasedPlanningContext
パブリック関数
-
PlanningContext
(const std::string &name, const std::string &group)¶ グループ名groupに対するnameという名前のプランニングコンテキストを生成します。
-
const std::string &
getGroupName
() const¶ このプランニングコンテキストの対象となるグループの名前を取得します。
-
const std::string &
getName
() const¶ このプランニングコンテキストの名前を取得します。
-
const planning_scene::PlanningSceneConstPtr &
getPlanningScene
() const¶ このプランニングコンテキストに関連付けられたplanning sceneを取得します。
-
const MotionPlanRequest &
getMotionPlanRequest
() const¶ このプランニングコンテキストに関連付けられているモーションプランリクエストを取得します。
-
void
setPlanningScene
(const planning_scene::PlanningSceneConstPtr &planning_scene)¶ このコンテキストのplanning sceneを設定します。
-
void
setMotionPlanRequest
(const MotionPlanRequest &request)¶ このコンテキストのプランニングリクエストを設定します。
-
virtual bool
solve
(MotionPlanResponse &res) = 0¶ モーションプランニングを実行し、結果をresに保存します。この関数は、計算の前にデータを初期化しません。データを初期化するには、コンストラクタかclear関数を使います。
-
virtual bool
solve
(MotionPlanDetailedResponse &res) = 0¶ モーションプランニングを実行し、結果をresに保存します。この関数は、計算の前にデータを初期化しません。データを初期化するには、コンストラクタかclear関数を使います。
-
virtual bool
terminate
() = 0¶ solve関数が実行中の場合、プランニングを中断します。終了できない場合はfalseを返します。 solve関数が実行されていない場合は何もしません(trueを返します)。
-
virtual void
clear
() = 0¶ プランナーが使用するデータ構造を初期化します。
-
OMPLプランナー¶
OMPLPlannerManager¶
-
class
ompl_interface
::
OMPLPlannerManager
¶ Inherits from planning_interface::PlannerManager
パブリック関数
-
bool
initialize
(const robot_model::RobotModelConstPtr &model, const std::string &ns)¶ プランナーを初期化します。この関数は、プラグインの読み込み後、他の関数呼び出しが行われる前に呼び出されます。model引数に指定されたロボットモデルに対してモーションプランが計算されます。ns引数は、ROS機能または必要なROSパラメータを読み込む際の名前空間として利用されます。
-
bool
canServiceRequest
(const moveit_msgs::MotionPlanRequest &req) const¶ このプラグインインスタンスが指定されたプランニングリクエストを扱うことができるか判定します。
-
std::string
getDescription
() const¶ Get.
このプランニングインターフェースを識別する短い文字列を取得する。
-
void
getPlanningAlgorithms
(std::vector<std::string> &algs) const¶ 登録されたプランニングアルゴリズムの名前(プランニング要求でplanner_idとして入力できる値)を取得します
-
void
setPlannerConfigurations
(const planning_interface::PlannerConfigurationMap &pcs)¶ このアルゴリズムに適用される設定を設定します。
-
planning_interface::PlanningContextPtr
getPlanningContext
(const planning_scene::PlanningSceneConstPtr &planning_scene, const planning_interface::MotionPlanRequest &req, moveit_msgs::MoveItErrorCodes &error_code) const¶ planning sceneとプランニングリクエストを入力として、プランニングコンテキストを生成します。問題が発生した場合、エラーコードが設定され、空のポインタが返されます。返されるモーションプランナーコンテキストは初期化された状態です。モーションプランは、コンテキストが構築されるたびにゼロから開始します。
- パラメータ
planning_scene:プランニングに使用するplanning scene
req: プランニングリクエスト
error_code:プランニングコンテキストの構築が失敗した場合にエラーが設定される変数
-
bool
ModelBasedPlanningContext¶
-
class
ompl_interface
::
ModelBasedPlanningContext
¶ Inherits from planning_interface::PlanningContext
パブリック関数
-
bool
solve
(planning_interface::MotionPlanResponse &res)¶ モーションプランニングを実行し、結果をresに保存します。この関数は、計算の前にデータを初期化しません。データを初期化するには、コンストラクタかclear関数を使います。
-
bool
solve
(planning_interface::MotionPlanDetailedResponse &res)¶ モーションプランニングを実行し、結果をresに保存します。この関数は、計算の前にデータを初期化しません。データを初期化するには、コンストラクタかclear関数を使います。
-
void
clear
()¶ プランナーが使用するデータ構造を初期化します。
-
bool
terminate
()¶ solve関数が実行中の場合、プランニングを中断します。終了できない場合はfalseを返します。 solve関数が実行されていない場合は何もしません(trueを返します)。
-
void
setMinimumWaypointCount
(unsigned int mwc)¶ Get the minimum number of waypoints along the solution path.
-
bool
CHOMPプランナー¶
CHOMPPlannerManager¶
-
class
chomp_interface
::
CHOMPPlannerManager
¶ Inherits from planning_interface::PlannerManager
パブリック関数
-
bool
initialize
(const robot_model::RobotModelConstPtr &model, const std::string &ns)¶ プランナーを初期化します。この関数は、プラグインの読み込み後、他の関数呼び出しが行われる前に呼び出されます。model引数に指定されたロボットモデルに対してモーションプランが計算されます。ns引数は、ROS機能または必要なROSパラメータを読み込む際の名前空間として利用されます。
-
planning_interface::PlanningContextPtr
getPlanningContext
(const planning_scene::PlanningSceneConstPtr &planning_scene, const planning_interface::MotionPlanRequest &req, moveit_msgs::MoveItErrorCodes &error_code) const¶ planning sceneとプランニングリクエストを入力として、プランニングコンテキストを生成します。問題が発生した場合、エラーコードが設定され、空のポインタが返されます。返されるモーションプランナーコンテキストは初期化された状態です。モーションプランは、コンテキストが構築されるたびにゼロから開始します。
- パラメータ
planning_scene:プランニングに使用するplanning scene
req: プランニングリクエスト
error_code:プランニングコンテキストの構築が失敗した場合にエラーが設定される変数
-
bool
canServiceRequest
(const planning_interface::MotionPlanRequest &req) const¶ このプラグインインスタンスが指定されたプランニングリクエストを扱うことができるか判定します。
-
std::string
getDescription
() const¶ Get.
このプランニングインターフェースを識別する短い文字列を取得する。
-
void
getPlanningAlgorithms
(std::vector<std::string> &algs) const¶ 登録されたプランニングアルゴリズムの名前(プランニング要求でplanner_idとして入力できる値)を取得します
-
bool
CHOMPPlanningContext¶
-
class
chomp_interface
::
CHOMPPlanningContext
¶ Inherits from planning_interface::PlanningContext
パブリック関数
-
bool
solve
(planning_interface::MotionPlanResponse &res)¶ モーションプランニングを実行し、結果をresに保存します。この関数は、計算の前にデータを初期化しません。データを初期化するには、コンストラクタかclear関数を使います。
-
bool
solve
(planning_interface::MotionPlanDetailedResponse &res)¶ モーションプランニングを実行し、結果をresに保存します。この関数は、計算の前にデータを初期化しません。データを初期化するには、コンストラクタかclear関数を使います。
-
void
clear
()¶ プランナーが使用するデータ構造を初期化します。
-
bool
terminate
()¶ solve関数が実行中の場合、プランニングを中断します。終了できない場合はfalseを返します。 solve関数が実行されていない場合は何もしません(trueを返します)。
-
bool