Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #ifndef MOVEIT_KINEMATICS_PLUGIN_LOADER_
00038 #define MOVEIT_KINEMATICS_PLUGIN_LOADER_
00039
00040 #include <boost/function.hpp>
00041 #include <moveit/macros/class_forward.h>
00042 #include <moveit/robot_model/robot_model.h>
00043 #include <moveit/kinematics_base/kinematics_base.h>
00044
00045 namespace kinematics_plugin_loader
00046 {
00047 MOVEIT_CLASS_FORWARD(KinematicsPluginLoader);
00048
00050 class KinematicsPluginLoader
00051 {
00052 public:
00058 KinematicsPluginLoader(const std::string& robot_description = "robot_description",
00059 double default_search_resolution = 0.0)
00060 : robot_description_(robot_description), default_search_resolution_(default_search_resolution)
00061 {
00062 }
00063
00071 KinematicsPluginLoader(const std::string& solver_plugin, double solve_timeout, unsigned int ik_attempts,
00072 const std::string& robot_description = "robot_description",
00073 double default_search_resolution = 0.0)
00074 : robot_description_(robot_description)
00075 , default_search_resolution_(default_search_resolution)
00076 , default_solver_plugin_(solver_plugin)
00077 , default_solver_timeout_(solve_timeout)
00078 , default_ik_attempts_(ik_attempts)
00079 {
00080 }
00081
00084 robot_model::SolverAllocatorFn getLoaderFunction();
00085
00088 robot_model::SolverAllocatorFn getLoaderFunction(const boost::shared_ptr<srdf::Model>& srdf_model);
00089
00091 const std::vector<std::string>& getKnownGroups() const
00092 {
00093 return groups_;
00094 }
00095
00097 const std::map<std::string, double>& getIKTimeout() const
00098 {
00099 return ik_timeout_;
00100 }
00101
00103 const std::map<std::string, unsigned int>& getIKAttempts() const
00104 {
00105 return ik_attempts_;
00106 }
00107
00108 void status() const;
00109
00110 private:
00111 std::string robot_description_;
00112 double default_search_resolution_;
00113
00114 MOVEIT_CLASS_FORWARD(KinematicsLoaderImpl);
00115 KinematicsLoaderImplPtr loader_;
00116
00117 std::vector<std::string> groups_;
00118 std::map<std::string, double> ik_timeout_;
00119 std::map<std::string, unsigned int> ik_attempts_;
00120
00121
00122 std::string default_solver_plugin_;
00123 double default_solver_timeout_;
00124 unsigned int default_ik_attempts_;
00125 };
00126 }
00127
00128 #endif