Nav2 Navigation Stack - kilted  kilted
ROS 2 Navigation Stack
Classes | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
nav2_amcl::AmclNode Class Reference
Inheritance diagram for nav2_amcl::AmclNode:
Inheritance graph
[legend]
Collaboration diagram for nav2_amcl::AmclNode:
Collaboration graph
[legend]

Classes

struct  amcl_hyp_t
 
struct  Point2D
 

Public Member Functions

 AmclNode (const rclcpp::NodeOptions &options=rclcpp::NodeOptions())
 
- Public Member Functions inherited from nav2_util::LifecycleNode
 LifecycleNode (const std::string &node_name, const std::string &ns="", const rclcpp::NodeOptions &options=rclcpp::NodeOptions())
 A lifecycle node constructor. More...
 
void add_parameter (const std::string &name, const rclcpp::ParameterValue &default_value, const std::string &description="", const std::string &additional_constraints="", bool read_only=false)
 Declare a parameter that has no integer or floating point range constraints. More...
 
void add_parameter (const std::string &name, const rclcpp::ParameterValue &default_value, const floating_point_range fp_range, const std::string &description="", const std::string &additional_constraints="", bool read_only=false)
 Declare a parameter that has a floating point range constraint. More...
 
void add_parameter (const std::string &name, const rclcpp::ParameterValue &default_value, const integer_range int_range, const std::string &description="", const std::string &additional_constraints="", bool read_only=false)
 Declare a parameter that has an integer range constraint. More...
 
std::shared_ptr< nav2_util::LifecycleNodeshared_from_this ()
 Get a shared pointer of this.
 
nav2_util::CallbackReturn on_error (const rclcpp_lifecycle::State &)
 Abstracted on_error state transition callback, since unimplemented as of 2020 in the managed ROS2 node state machine. More...
 
void autostart ()
 Automatically configure and active the node.
 
virtual void on_rcl_preshutdown ()
 Perform preshutdown activities before our Context is shutdown. Note that this is related to our Context's shutdown sequence, not the lifecycle node state machine.
 
void createBond ()
 Create bond connection to lifecycle manager.
 
void destroyBond ()
 Destroy bond connection to lifecycle manager.
 

Protected Member Functions

nav2_util::CallbackReturn on_configure (const rclcpp_lifecycle::State &state) override
 
nav2_util::CallbackReturn on_activate (const rclcpp_lifecycle::State &state) override
 
nav2_util::CallbackReturn on_deactivate (const rclcpp_lifecycle::State &state) override
 
nav2_util::CallbackReturn on_cleanup (const rclcpp_lifecycle::State &state) override
 
nav2_util::CallbackReturn on_shutdown (const rclcpp_lifecycle::State &state) override
 
rcl_interfaces::msg::SetParametersResult dynamicParametersCallback (std::vector< rclcpp::Parameter > parameters)
 Callback executed when a parameter change is detected. More...
 
void mapReceived (const nav_msgs::msg::OccupancyGrid::SharedPtr msg)
 
void handleMapMessage (const nav_msgs::msg::OccupancyGrid &msg)
 
void createFreeSpaceVector ()
 
void freeMapDependentMemory ()
 
map_tconvertMap (const nav_msgs::msg::OccupancyGrid &map_msg)
 
void initTransforms ()
 
void initMessageFilters ()
 
void initPubSub ()
 
void initialPoseReceived (geometry_msgs::msg::PoseWithCovarianceStamped::SharedPtr msg)
 
void laserReceived (sensor_msgs::msg::LaserScan::ConstSharedPtr laser_scan)
 
void initServices ()
 
void globalLocalizationCallback (const std::shared_ptr< rmw_request_id_t > request_header, const std::shared_ptr< std_srvs::srv::Empty::Request > request, std::shared_ptr< std_srvs::srv::Empty::Response > response)
 
void initialPoseReceivedSrv (const std::shared_ptr< rmw_request_id_t > request_header, const std::shared_ptr< nav2_msgs::srv::SetInitialPose::Request > request, std::shared_ptr< nav2_msgs::srv::SetInitialPose::Response > response)
 
void nomotionUpdateCallback (const std::shared_ptr< rmw_request_id_t > request_header, const std::shared_ptr< std_srvs::srv::Empty::Request > request, std::shared_ptr< std_srvs::srv::Empty::Response > response)
 
void initOdometry ()
 
bool getOdomPose (geometry_msgs::msg::PoseStamped &pose, double &x, double &y, double &yaw, const rclcpp::Time &sensor_timestamp, const std::string &frame_id)
 
void initParticleFilter ()
 
void initLaserScan ()
 
nav2_amcl::LasercreateLaserObject ()
 
bool checkElapsedTime (std::chrono::seconds check_interval, rclcpp::Time last_time)
 
bool addNewScanner (int &laser_index, const sensor_msgs::msg::LaserScan::ConstSharedPtr &laser_scan, const std::string &laser_scan_frame_id, geometry_msgs::msg::PoseStamped &laser_pose)
 
bool shouldUpdateFilter (const pf_vector_t pose, pf_vector_t &delta)
 
bool updateFilter (const int &laser_index, const sensor_msgs::msg::LaserScan::ConstSharedPtr &laser_scan, const pf_vector_t &pose)
 
void publishParticleCloud (const pf_sample_set_t *set)
 
bool getMaxWeightHyp (std::vector< amcl_hyp_t > &hyps, amcl_hyp_t &max_weight_hyps, int &max_weight_hyp)
 
void publishAmclPose (const sensor_msgs::msg::LaserScan::ConstSharedPtr &laser_scan, const std::vector< amcl_hyp_t > &hyps, const int &max_weight_hyp)
 
void calculateMaptoOdomTransform (const sensor_msgs::msg::LaserScan::ConstSharedPtr &laser_scan, const std::vector< amcl_hyp_t > &hyps, const int &max_weight_hyp)
 
void sendMapToOdomTransform (const tf2::TimePoint &transform_expiration)
 
void handleInitialPose (geometry_msgs::msg::PoseWithCovarianceStamped &msg)
 
void initParameters ()
 
- Protected Member Functions inherited from nav2_util::LifecycleNode
void printLifecycleNodeNotification ()
 Print notifications for lifecycle node.
 
void register_rcl_preshutdown_callback ()
 
void runCleanups ()
 

Static Protected Member Functions

static pf_vector_t uniformPoseGenerator (void *arg)
 

Protected Attributes

rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr dyn_params_handler_
 
std::atomic< bool > active_ {false}
 
rclcpp::CallbackGroup::SharedPtr callback_group_
 
rclcpp::executors::SingleThreadedExecutor::SharedPtr executor_
 
std::unique_ptr< nav2_util::NodeThreadexecutor_thread_
 
map_tmap_ {nullptr}
 
bool first_map_only_ {true}
 
std::atomic< bool > first_map_received_ {false}
 
amcl_hyp_tinitial_pose_hyp_
 
std::recursive_mutex mutex_
 
rclcpp::Subscription< nav_msgs::msg::OccupancyGrid >::ConstSharedPtr map_sub_
 
std::shared_ptr< tf2_ros::TransformBroadcaster > tf_broadcaster_
 
std::shared_ptr< tf2_ros::TransformListener > tf_listener_
 
std::shared_ptr< tf2_ros::Buffer > tf_buffer_
 
bool sent_first_transform_ {false}
 
bool latest_tf_valid_ {false}
 
tf2::Transform latest_tf_
 
std::unique_ptr< message_filters::Subscriber< sensor_msgs::msg::LaserScan, rclcpp_lifecycle::LifecycleNode > > laser_scan_sub_
 
std::unique_ptr< tf2_ros::MessageFilter< sensor_msgs::msg::LaserScan > > laser_scan_filter_
 
message_filters::Connection laser_scan_connection_
 
rclcpp::Subscription< geometry_msgs::msg::PoseWithCovarianceStamped >::ConstSharedPtr initial_pose_sub_
 
rclcpp_lifecycle::LifecyclePublisher< geometry_msgs::msg::PoseWithCovarianceStamped >::SharedPtr pose_pub_
 
rclcpp_lifecycle::LifecyclePublisher< nav2_msgs::msg::ParticleCloud >::SharedPtr particle_cloud_pub_
 
nav2_util::ServiceServer< std_srvs::srv::Empty, std::shared_ptr< nav2_util::LifecycleNode > >::SharedPtr global_loc_srv_
 
nav2_util::ServiceServer< nav2_msgs::srv::SetInitialPose, std::shared_ptr< nav2_util::LifecycleNode > >::SharedPtr initial_guess_srv_
 
nav2_util::ServiceServer< std_srvs::srv::Empty, std::shared_ptr< nav2_util::LifecycleNode > >::SharedPtr nomotion_update_srv_
 
std::atomic< bool > force_update_ {false}
 
std::shared_ptr< nav2_amcl::MotionModelmotion_model_
 
geometry_msgs::msg::PoseStamped latest_odom_pose_
 
geometry_msgs::msg::PoseWithCovarianceStamped last_published_pose_
 
double init_pose_ [3]
 
double init_cov_ [3]
 
pluginlib::ClassLoader< nav2_amcl::MotionModelplugin_loader_
 
std::atomic< bool > first_pose_sent_
 
pf_tpf_ {nullptr}
 
bool pf_init_
 
pf_vector_t pf_odom_pose_
 
int resample_count_ {0}
 
int scan_error_count_ {0}
 
std::vector< nav2_amcl::Laser * > lasers_
 
std::vector< bool > lasers_update_
 
std::map< std::string, int > frame_to_laser_
 
rclcpp::Time last_laser_received_ts_
 
rclcpp::Time last_time_printed_msg_
 
bool init_pose_received_on_inactive {false}
 
bool initial_pose_is_known_ {false}
 
bool set_initial_pose_ {false}
 
bool always_reset_initial_pose_
 
double initial_pose_x_
 
double initial_pose_y_
 
double initial_pose_z_
 
double initial_pose_yaw_
 
double alpha1_
 
double alpha2_
 
double alpha3_
 
double alpha4_
 
double alpha5_
 
std::string base_frame_id_
 
double beam_skip_distance_
 
double beam_skip_error_threshold_
 
double beam_skip_threshold_
 
bool do_beamskip_
 
std::string global_frame_id_
 
double lambda_short_
 
double laser_likelihood_max_dist_
 
double laser_max_range_
 
double laser_min_range_
 
std::string sensor_model_type_
 
int max_beams_
 
int max_particles_
 
int min_particles_
 
std::string odom_frame_id_
 
double pf_err_
 
double pf_z_
 
double alpha_fast_
 
double alpha_slow_
 
int resample_interval_
 
std::string robot_model_type_
 
tf2::Duration save_pose_period_
 
double sigma_hit_
 
bool tf_broadcast_
 
tf2::Duration transform_tolerance_
 
double a_thresh_
 
double d_thresh_
 
double z_hit_
 
double z_max_
 
double z_short_
 
double z_rand_
 
std::string scan_topic_ {"scan"}
 
std::string map_topic_ {"map"}
 
bool freespace_downsampling_ = false
 
- Protected Attributes inherited from nav2_util::LifecycleNode
std::unique_ptr< rclcpp::PreShutdownCallbackHandle > rcl_preshutdown_cb_handle_ {nullptr}
 
std::shared_ptr< bond::Bond > bond_ {nullptr}
 
double bond_heartbeat_period
 
rclcpp::TimerBase::SharedPtr autostart_timer_
 

Static Protected Attributes

static std::vector< Point2Dfree_space_indices
 

Detailed Description

Definition at line 58 of file amcl_node.hpp.

Member Function Documentation

◆ dynamicParametersCallback()

rcl_interfaces::msg::SetParametersResult nav2_amcl::AmclNode::dynamicParametersCallback ( std::vector< rclcpp::Parameter >  parameters)
protected

Callback executed when a parameter change is detected.

Parameters
eventParameterEvent message

Definition at line 1166 of file amcl_node.cpp.

Member Data Documentation

◆ plugin_loader_

pluginlib::ClassLoader<nav2_amcl::MotionModel> nav2_amcl::AmclNode::plugin_loader_
protected
Initial value:
{"nav2_amcl",
"nav2_amcl::MotionModel"}

Definition at line 249 of file amcl_node.hpp.


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