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