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 #ifndef KATANA_TRAJECTORY_FILTER_H_
00026 #define KATANA_TRAJECTORY_FILTER_H_
00027
00028 #include <ros/ros.h>
00029
00030 #include <trajectory_msgs/JointTrajectory.h>
00031 #include <arm_navigation_msgs/JointTrajectoryWithLimits.h>
00032 #include <arm_navigation_msgs/JointLimits.h>
00033 #include <arm_navigation_msgs/FilterJointTrajectory.h>
00034 #include <arm_navigation_msgs/FilterJointTrajectoryWithConstraints.h>
00035
00036 #include <spline_smoother/spline_smoother.h>
00037 #include <pluginlib/class_list_macros.h>
00038
00039 #include <spline_smoother/spline_smoother_utils.h>
00040
00041 #include <vector>
00042 #include <set>
00043
00044 namespace katana_trajectory_filter
00045 {
00046
00050 template<typename T>
00051 class KatanaTrajectoryFilter : public spline_smoother::SplineSmoother<T>
00052 {
00053 public:
00054 KatanaTrajectoryFilter();
00055 virtual ~KatanaTrajectoryFilter();
00056
00057 virtual bool smooth(const T& trajectory_in, T& trajectory_out) const;
00058
00059 private:
00060 void remove_smallest_segments(const T& trajectory_in, T& trajectory_out, const size_t num_points_delete) const;
00061
00062 };
00063
00064 }
00065
00066 #endif