Go to the documentation of this file.00001
00028 #ifndef INDUSTRIAL_MOVEIT_STOMP_MOVEIT_INCLUDE_STOMP_MOVEIT_UPDATE_FILTERS_POLYNOMIAL_SMOOTHER_H_
00029 #define INDUSTRIAL_MOVEIT_STOMP_MOVEIT_INCLUDE_STOMP_MOVEIT_UPDATE_FILTERS_POLYNOMIAL_SMOOTHER_H_
00030
00031 #include <stomp_moveit/update_filters/stomp_update_filter.h>
00032
00033 namespace stomp_moveit
00034 {
00035 namespace update_filters
00036 {
00037
00059 class PolynomialSmoother : public StompUpdateFilter
00060 {
00061 public:
00062 PolynomialSmoother();
00063 virtual ~PolynomialSmoother();
00064
00066 virtual bool initialize(moveit::core::RobotModelConstPtr robot_model_ptr,
00067 const std::string& group_name,const XmlRpc::XmlRpcValue& config) override;
00068
00070 virtual bool configure(const XmlRpc::XmlRpcValue& config) override;
00071
00073 virtual bool setMotionPlanRequest(const planning_scene::PlanningSceneConstPtr& planning_scene,
00074 const moveit_msgs::MotionPlanRequest &req,
00075 const stomp_core::StompConfiguration &config,
00076 moveit_msgs::MoveItErrorCodes& error_code) override;
00077
00089 virtual bool filter(std::size_t start_timestep,
00090 std::size_t num_timesteps,
00091 int iteration_number,
00092 const Eigen::MatrixXd& parameters,
00093 Eigen::MatrixXd& updates,
00094 bool& filtered) override;
00095
00096 virtual std::string getGroupName() const
00097 {
00098 return group_name_;
00099 }
00100
00101 virtual std::string getName() const
00102 {
00103 return name_ + "/" + group_name_;
00104 }
00105
00106 protected:
00107
00108 std::string name_;
00109 std::string group_name_;
00110
00111
00112 unsigned int poly_order_;
00113
00114
00115 moveit::core::RobotModelConstPtr robot_model_;
00116 };
00117
00118 }
00119 }
00120
00121 #endif