EasyNav Plugins
Loading...
Searching...
No Matches
FriendAMCLLocalizer Class Reference
Inheritance diagram for FriendAMCLLocalizer:
Collaboration diagram for FriendAMCLLocalizer:

Public Member Functions

void force_path (const std::string &path)
void force_path (const std::string &path)
void force_path (const std::string &path)
void force_path (const std::string &path)
Public Member Functions inherited from SimpleController
void on_initialize () override
 Initializes parameters and PID controllers.
 SimpleController ()
void update_rt (NavState &nav_state) override
 Updates the controller using the given NavState.
 ~SimpleController () override
 Destructor.
Public Member Functions inherited from AMCLLocalizer
 AMCLLocalizer ()
 Default constructor.
 AMCLLocalizer ()
 Default constructor.
nav_msgs::msg::Odometry get_pose ()
 Gets the current estimated pose as an Odometry message.
nav_msgs::msg::Odometry get_pose ()
 Gets the current estimated pose as an Odometry message.
tf2::Transform getEstimatedPose () const
 Gets the current estimated pose as a transform.
tf2::Transform getEstimatedPose () const
 Gets the current estimated pose as a transform.
virtual void on_initialize () override
 Initializes the localization method.
virtual void on_initialize () override
 Initializes the localization method.
void update (NavState &nav_state) override
 General update of the localization state.
void update (NavState &nav_state) override
 General update of the localization state.
void update_rt (NavState &nav_state) override
 Real-time update of the localization state.
void update_rt (NavState &nav_state) override
 Real-time update of the localization state.
 ~AMCLLocalizer ()
 Destructor.
 ~AMCLLocalizer ()
 Destructor.

Additional Inherited Members

Protected Member Functions inherited from SimpleController
double get_angle (const geometry_msgs::msg::Point &from, const geometry_msgs::msg::Point &to)
 Computes the angle between two points.
double get_diff_angle (const geometry_msgs::msg::Quaternion &a, const geometry_msgs::msg::Quaternion &b)
 Computes the angular difference between two quaternions (yaw).
double get_distance (const geometry_msgs::msg::Pose &a, const geometry_msgs::msg::Pose &b)
 Computes the Euclidean distance between two poses.
geometry_msgs::msg::Pose get_ref_pose (const nav_msgs::msg::Path &path, double look_ahead)
 Gets the reference pose at look-ahead distance on the path.
Protected Member Functions inherited from AMCLLocalizer
void correct (NavState &nav_state)
 Applies the sensor model to update particle weights.
void correct (NavState &nav_state)
 Applies the sensor model to update particle weights.
void init_pose_callback (geometry_msgs::msg::PoseWithCovarianceStamped::UniquePtr msg)
 Callback for receiving the initial pose.
void initializeParticles ()
 Initializes the set of particles.
void initializeParticles ()
 Initializes the set of particles.
void odom_callback (nav_msgs::msg::Odometry::UniquePtr msg)
 Callback for receiving odometry updates.
void odom_callback (nav_msgs::msg::Odometry::UniquePtr msg)
 Callback for receiving odometry updates.
void predict (NavState &nav_state)
 Applies the motion model to update particle poses.
void predict (NavState &nav_state)
 Applies the motion model to update particle poses.
void publishEstimatedPose (const tf2::Transform &est_pose)
 Publishes the estimated pose with covariance.
void publishEstimatedPose (const tf2::Transform &est_pose)
 Publishes the estimated pose with covariance.
void publishParticles ()
 Publishes the current set of particles.
void publishParticles ()
 Publishes the current set of particles.
void publishTF (const tf2::Transform &map2bf)
 Publishes a TF transform between map and base footprint.
void publishTF (const tf2::Transform &map2bf)
 Publishes a TF transform between map and base footprint.
void reseed ()
 Re-initializes the particle cloud if necessary.
void reseed ()
 Re-initializes the particle cloud if necessary.
void update_odom_from_tf ()
 Update odom from TFs instead of a odom topic.
Protected Attributes inherited from SimpleController
double angular_kd_ {0.08}
 Derivative gain for angular PID.
double angular_ki_ {0.03}
 Integral gain for angular PID.
double angular_kp_ {1.5}
 Proportional gain for angular PID.
std::shared_ptr< PIDControllerangular_pid_
 PID controller for angular velocity.
double final_goal_angle_tolerance_ {0.1}
 Angular tolerance at the final goal in radians.
double k_rot_ {0.5}
 Gain to reduce linear speed based on angular velocity.
rclcpp::Time last_update_ts_
 Timestamp of the last control update.
double last_vlin_ {0.0}
 Previous linear velocity for acceleration limiting.
double last_vrot_ {0.0}
 Previous angular velocity for acceleration limiting.
double linear_kd_ {0.08}
 Derivative gain for linear PID.
double linear_ki_ {0.03}
 Integral gain for linear PID.
double linear_kp_ {0.95}
 Proportional gain for linear PID.
std::shared_ptr< PIDControllerlinear_pid_
 PID controller for linear velocity.
double look_ahead_dist_ {1.0}
 Distance ahead of the robot to track in meters.
double max_angular_acc_ {0.3}
 Maximum angular acceleration in rad/s².
double max_angular_speed_ {1.0}
 Maximum angular speed in rad/s.
double max_linear_acc_ {0.3}
 Maximum linear acceleration in m/s².
double max_linear_speed_ {1.0}
 Maximum linear speed in m/s.
double tolerance_dist_ {0.05}
 Distance threshold to switch to orientation tracking.
geometry_msgs::msg::TwistStamped twist_stamped_
 Current velocity command.
Protected Attributes inherited from AMCLLocalizer
bool compute_odom_from_tf_ {false}
 Whether to use TFs to compute odom.
rclcpp::Publisher< geometry_msgs::msg::PoseWithCovarianceStamped >::SharedPtr estimate_pub_
 Publisher for the estimated robot pose with covariance.
rclcpp::Subscription< geometry_msgs::msg::PoseWithCovarianceStamped >::SharedPtr init_pose_sub_
 Subscriber for the initial pose.
bool initialized_odom_ = false
 Flag indicating if the odometry has been initialized.
rclcpp::Time last_input_time_
 Timestamp of the last input message (odometry or initial pose).
tf2::Transform last_odom_ {tf2::Transform::getIdentity()}
 Previous odometry transform (used to compute deltas).
rclcpp::Time last_reseed_
 Timestamp of the last reseed event.
double min_noise_xy_ {0.05}
 Minimum translation noise threshold.
double min_noise_yaw_ {0.05}
 Minimum yaw noise threshold.
double noise_rotation_ {0.01}
 Rotational noise standard deviation.
double noise_translation_ {0.01}
 Translational noise standard deviation.
double noise_translation_to_rotation_ {0.01}
 Coupling noise between translation and rotation.
tf2::Transform odom_ {tf2::Transform::getIdentity()}
 Last odometry transform received.
rclcpp::Subscription< nav_msgs::msg::Odometry >::SharedPtr odom_sub_
 Subscriber for odometry messages.
std::vector< Particleparticles_
 List of particles representing the belief distribution.
rclcpp::Publisher< geometry_msgs::msg::PoseArray >::SharedPtr particles_pub_
 Publisher for visualization of the particle cloud.
nav_msgs::msg::Odometry pose_
 Current estimated odometry-based pose.
double reseed_time_
 Time interval (in seconds) after which the particles should be reseeded.
std::mt19937 rng_
 Random number generator used for sampling noise.
std::default_random_engine rng_
 Random number generator used for sampling noise.
std::unique_ptr< tf2_ros::TransformBroadcaster > tf_broadcaster_
 TF broadcaster to publish map to base_footprint transform.

Member Function Documentation

◆ force_path() [1/4]

void force_path ( const std::string & path)

◆ force_path() [2/4]

void force_path ( const std::string & path)

◆ force_path() [3/4]

void force_path ( const std::string & path)

◆ force_path() [4/4]

void force_path ( const std::string & path)

The documentation for this class was generated from the following files: