35 #ifndef DWB_PLUGINS__XY_THETA_ITERATOR_HPP_
36 #define DWB_PLUGINS__XY_THETA_ITERATOR_HPP_
41 #include "dwb_plugins/velocity_iterator.hpp"
42 #include "dwb_plugins/one_d_velocity_iterator.hpp"
43 #include "nav2_ros_common/lifecycle_node.hpp"
51 : kinematics_handler_(
nullptr), x_it_(
nullptr), y_it_(
nullptr), th_it_(
nullptr) {}
53 const nav2::LifecycleNode::SharedPtr & nh,
54 KinematicsHandler::Ptr kinematics,
55 const std::string & plugin_name)
override;
56 void startNewIteration(
const nav_2d_msgs::msg::Twist2D & current_velocity,
double dt)
override;
57 bool hasMoreTwists()
override;
58 nav_2d_msgs::msg::Twist2D nextTwist()
override;
61 virtual bool isValidVelocity();
62 void iterateToValidVelocity();
63 int vx_samples_, vy_samples_, vtheta_samples_;
64 KinematicsHandler::Ptr kinematics_handler_;
66 std::shared_ptr<OneDVelocityIterator> x_it_, y_it_, th_it_;