Nav2 Navigation Stack - rolling
main
ROS 2 Navigation Stack
|
Default control law for approaching a dock target. More...
#include <nav2_docking/opennav_docking/include/opennav_docking/controller.hpp>
Public Member Functions | |
Controller (const nav2::LifecycleNode::SharedPtr &node, std::shared_ptr< tf2_ros::Buffer > tf, std::string fixed_frame, std::string base_frame) | |
Create a controller instance. Configure ROS 2 parameters. More... | |
~Controller () | |
A destructor for opennav_docking::Controller. | |
bool | computeVelocityCommand (const geometry_msgs::msg::Pose &pose, geometry_msgs::msg::Twist &cmd, bool is_docking, bool backward=false) |
Compute a velocity command using control law. More... | |
geometry_msgs::msg::Twist | computeRotateToHeadingCommand (const double &angular_distance_to_heading, const geometry_msgs::msg::Twist ¤t_velocity, const double &dt) |
Perform a command for in-place rotation. More... | |
Protected Member Functions | |
bool | isTrajectoryCollisionFree (const geometry_msgs::msg::Pose &target_pose, bool is_docking, bool backward=false) |
Check if a trajectory is collision free. More... | |
rcl_interfaces::msg::SetParametersResult | dynamicParametersCallback (std::vector< rclcpp::Parameter > parameters) |
Callback executed when a parameter change is detected. More... | |
void | configureCollisionChecker (const nav2::LifecycleNode::SharedPtr &node, std::string costmap_topic, std::string footprint_topic, double transform_tolerance) |
Configure the collision checker. More... | |
Protected Attributes | |
rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr | dyn_params_handler_ |
std::mutex | dynamic_params_lock_ |
rclcpp::Logger | logger_ {rclcpp::get_logger("Controller")} |
rclcpp::Clock::SharedPtr | clock_ |
std::unique_ptr< nav2_graceful_controller::SmoothControlLaw > | control_law_ |
double | k_phi_ |
double | k_delta_ |
double | beta_ |
double | lambda_ |
double | slowdown_radius_ |
double | v_linear_min_ |
double | v_linear_max_ |
double | v_angular_max_ |
double | rotate_to_heading_angular_vel_ |
double | rotate_to_heading_max_angular_accel_ |
rclcpp::Publisher< nav_msgs::msg::Path >::SharedPtr | trajectory_pub_ |
bool | use_collision_detection_ |
double | projection_time_ |
double | simulation_time_step_ |
double | dock_collision_threshold_ |
double | transform_tolerance_ |
std::shared_ptr< tf2_ros::Buffer > | tf2_buffer_ |
std::unique_ptr< nav2_costmap_2d::CostmapSubscriber > | costmap_sub_ |
std::unique_ptr< nav2_costmap_2d::FootprintSubscriber > | footprint_sub_ |
std::shared_ptr< nav2_costmap_2d::CostmapTopicCollisionChecker > | collision_checker_ |
std::string | fixed_frame_ |
std::string | base_frame_ |
Default control law for approaching a dock target.
Definition at line 38 of file controller.hpp.
opennav_docking::Controller::Controller | ( | const nav2::LifecycleNode::SharedPtr & | node, |
std::shared_ptr< tf2_ros::Buffer > | tf, | ||
std::string | fixed_frame, | ||
std::string | base_frame | ||
) |
Create a controller instance. Configure ROS 2 parameters.
node | Lifecycle node |
tf | tf2_ros TF buffer |
fixed_frame | Fixed frame |
base_frame | Robot base frame |
Definition at line 27 of file controller.cpp.
References configureCollisionChecker(), and dynamicParametersCallback().
geometry_msgs::msg::Twist opennav_docking::Controller::computeRotateToHeadingCommand | ( | const double & | angular_distance_to_heading, |
const geometry_msgs::msg::Twist & | current_velocity, | ||
const double & | dt | ||
) |
Perform a command for in-place rotation.
angular_distance_to_heading | Angular distance to goal. |
current_velocity | Current angular velocity. |
dt | Control loop duration [s]. |
Definition at line 127 of file controller.cpp.
bool opennav_docking::Controller::computeVelocityCommand | ( | const geometry_msgs::msg::Pose & | pose, |
geometry_msgs::msg::Twist & | cmd, | ||
bool | is_docking, | ||
bool | backward = false |
||
) |
Compute a velocity command using control law.
pose | Target pose, in robot centric coordinates. |
cmd | Command velocity. |
is_docking | If true, robot is docking. If false, robot is undocking. |
backward | If true, robot will drive backwards to goal. |
Definition at line 118 of file controller.cpp.
References isTrajectoryCollisionFree().
|
protected |
Configure the collision checker.
node | Lifecycle node |
costmap_topic | Costmap topic |
footprint_topic | Footprint topic |
transform_tolerance | Transform tolerance |
Definition at line 225 of file controller.cpp.
Referenced by Controller().
|
protected |
Callback executed when a parameter change is detected.
event | ParameterEvent message |
Definition at line 237 of file controller.cpp.
Referenced by Controller().
|
protected |
Check if a trajectory is collision free.
target_pose | Target pose, in robot centric coordinates. |
is_docking | If true, robot is docking. If false, robot is undocking. |
backward | If true, robot will drive backwards to goal. |
Definition at line 152 of file controller.cpp.
Referenced by computeVelocityCommand().