13 #ifndef YUJIN_OCS_VELOCITY_SMOOTHER_HPP_    14 #define YUJIN_OCS_VELOCITY_SMOOTHER_HPP_    21 #include <nav_msgs/Odometry.h>    80   void velocityCB(
const geometry_msgs::Twist::ConstPtr& msg);
    81   void robotVelCB(
const geometry_msgs::Twist::ConstPtr& msg);
    82   void odometryCB(
const nav_msgs::Odometry::ConstPtr& msg);
    84   double sign(
double x)  { 
return x < 0.0 ? -1.0 : +1.0; };
    86   double median(std::vector<double> values) {
    88     nth_element(values.begin(), values.begin() + values.size()/2, values.end());
    89     return values[values.size()/2];
    97   void reconfigCB(yocs_velocity_smoother::paramsConfig &config, uint32_t unused_level);
 
ros::Publisher smooth_vel_pub
void robotVelCB(const geometry_msgs::Twist::ConstPtr &msg)
ros::Subscriber raw_in_vel_sub
void velocityCB(const geometry_msgs::Twist::ConstPtr &msg)
enum yocs_velocity_smoother::VelocitySmoother::RobotFeedbackType robot_feedback
std::vector< double > period_record
geometry_msgs::Twist target_vel
VelocitySmoother(const std::string &name)
void odometryCB(const nav_msgs::Odometry::ConstPtr &msg)
ros::Subscriber odometry_sub
void reconfigCB(yocs_velocity_smoother::paramsConfig &config, uint32_t unused_level)
bool init(ros::NodeHandle &nh)
geometry_msgs::Twist last_cmd_vel
dynamic_reconfigure::Server< yocs_velocity_smoother::paramsConfig >::CallbackType dynamic_reconfigure_callback
dynamic_reconfigure::Server< yocs_velocity_smoother::paramsConfig > * dynamic_reconfigure_server
geometry_msgs::Twist current_vel
double median(std::vector< double > values)
ros::Subscriber current_vel_sub