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 <boost/shared_ptr.hpp>
00042 #include <moveit/robot_model/robot_model.h>
00043 #include <moveit/kinematics_base/kinematics_base.h>
00044
00045 namespace kinematics_plugin_loader
00046 {
00047
00049 class KinematicsPluginLoader
00050 {
00051 public:
00052
00058 KinematicsPluginLoader(const std::string &robot_description = "robot_description",
00059 double default_search_resolution = 0.0) :
00060 robot_description_(robot_description),
00061 default_search_resolution_(default_search_resolution)
00062 {
00063 }
00064
00072 KinematicsPluginLoader(const std::string &solver_plugin, double solve_timeout, unsigned int ik_attempts,
00073 const std::string &robot_description = "robot_description",
00074 double default_search_resolution = 0.0) :
00075 robot_description_(robot_description),
00076 default_search_resolution_(default_search_resolution),
00077 default_solver_plugin_(solver_plugin),
00078 default_solver_timeout_(solve_timeout),
00079 default_ik_attempts_(ik_attempts)
00080 {
00081 }
00082
00084 robot_model::SolverAllocatorFn getLoaderFunction();
00085
00087 robot_model::SolverAllocatorFn getLoaderFunction(const boost::shared_ptr<srdf::Model> &srdf_model);
00088
00090 const std::vector<std::string>& getKnownGroups() const
00091 {
00092 return groups_;
00093 }
00094
00096 const std::map<std::string, double>& getIKTimeout() const
00097 {
00098 return ik_timeout_;
00099 }
00100
00102 const std::map<std::string, unsigned int>& getIKAttempts() const
00103 {
00104 return ik_attempts_;
00105 }
00106
00107 void status() const;
00108
00109 private:
00110
00111 std::string robot_description_;
00112 double default_search_resolution_;
00113
00114 class KinematicsLoaderImpl;
00115 boost::shared_ptr<KinematicsLoaderImpl> 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 typedef boost::shared_ptr<KinematicsPluginLoader> KinematicsPluginLoaderPtr;
00128 typedef boost::shared_ptr<const KinematicsPluginLoader> KinematicsPluginLoaderConstPtr;
00129
00130 }
00131
00132 #endif