/home/runner/work/beluga/beluga/beluga_amcl/include/beluga_amcl/amcl_node.hpp Source File#
Beluga AMCL
|
amcl_node.hpp
Go to the documentation of this file.
84 auto make_particle_filter(nav_msgs::msg::OccupancyGrid::SharedPtr) const -> std::unique_ptr<beluga_ros::Amcl>;
95 lookup_transform(const std::string& target_frame_id, const std::string& source_frame_id, const tf2::TimePoint& stamp);
98 std::optional<beluga_ros::LaserScan> wrap_sensor_data(const sensor_msgs::msg::LaserScan::ConstSharedPtr& sensor_msg);
109 void do_initial_pose_callback(geometry_msgs::msg::PoseWithCovarianceStamped::SharedPtr) override;
154 rclcpp_lifecycle::LifecyclePublisher<nav_msgs::msg::OccupancyGrid>::SharedPtr likelihood_field_pub_;
void map_callback(nav_msgs::msg::OccupancyGrid::SharedPtr)
Callback for occupancy grid map updates.
bool enable_tf_broadcast_
Whether to broadcast transforms or not.
Definition: amcl_node.hpp:179
std::optional< beluga_ros::LaserScan > wrap_sensor_data(const sensor_msgs::msg::LaserScan::ConstSharedPtr &sensor_msg)
Try to wrap a laser scan message.
std::unique_ptr< tf2_ros::MessageFilter< sensor_msgs::msg::PointCloud2 > > point_cloud_filter_
Transform synchronization filter for laser scan updates.
Definition: amcl_node.hpp:167
std::optional< TransformT > lookup_transform(const std::string &target_frame_id, const std::string &source_frame_id, const tf2::TimePoint &stamp)
Try to look up a tf transform immediately.
auto get_motion_model(std::string_view) const -> beluga_ros::Amcl::motion_model_variant
Get motion model as per current parametrization.
std::optional< Sophus::SE2d > last_known_odom_transform_in_map_
Last known map to odom correction estimate, if any.
Definition: amcl_node.hpp:177
void global_localization_callback(std::shared_ptr< rmw_request_id_t > request_header, std::shared_ptr< std_srvs::srv::Empty::Request > request, std::shared_ptr< std_srvs::srv::Empty::Response > response)
Callback for the global relocalization service.
AmclNode(const rclcpp::NodeOptions &options=rclcpp::NodeOptions())
Constructor.
auto get_initial_estimate() const -> std::optional< std::pair< Sophus::SE2d, Eigen::Matrix3d >>
Get initial pose estimate from parameters if set.
void sensor_callback(const std::shared_ptr< const MessageT > &sensor_msg)
Callback for sensor updates.
rclcpp::Service< std_srvs::srv::Empty >::SharedPtr nomotion_update_server_
No motion update service server.
Definition: amcl_node.hpp:159
std::unique_ptr< message_filters::Subscriber< sensor_msgs::msg::PointCloud2 > > point_cloud_sub_
Point cloud updates subscription.
Definition: amcl_node.hpp:151
void nomotion_update_callback(std::shared_ptr< rmw_request_id_t > request_header, std::shared_ptr< std_srvs::srv::Empty::Request > req, std::shared_ptr< std_srvs::srv::Empty::Response > res)
Callback for the no motion update service.
std::unique_ptr< beluga_ros::Amcl > particle_filter_
Particle filter instance.
Definition: amcl_node.hpp:173
void do_activate(const rclcpp_lifecycle::State &) override
Callback for lifecycle transitions from the INACTIVE state to the ACTIVE state.
bool initialize_from_estimate(const std::pair< Sophus::SE2d, Eigen::Matrix3d > &estimate)
Initialize particles from an estimated pose and covariance.
rclcpp::Service< std_srvs::srv::Empty >::SharedPtr global_localization_server_
Global relocalization service server.
Definition: amcl_node.hpp:157
rclcpp::Subscription< nav_msgs::msg::OccupancyGrid >::SharedPtr map_sub_
Occupancy grid map updates subscription.
Definition: amcl_node.hpp:145
std::unique_ptr< message_filters::Subscriber< sensor_msgs::msg::LaserScan > > laser_scan_sub_
Laser scan updates subscription.
Definition: amcl_node.hpp:148
rclcpp_lifecycle::LifecyclePublisher< nav_msgs::msg::OccupancyGrid >::SharedPtr likelihood_field_pub_
Likelihood field publisher.
Definition: amcl_node.hpp:154
::message_filters::Connection laser_scan_connection_
Connection for laser scan updates filter and callback.
Definition: amcl_node.hpp:164
void do_periodic_timer_callback() override
Callback for periodic particle cloud updates.
void do_initial_pose_callback(geometry_msgs::msg::PoseWithCovarianceStamped::SharedPtr) override
Callback for pose (re)initialization.
void do_deactivate(const rclcpp_lifecycle::State &) override
Callback for lifecycle transitions from the ACTIVE state to the INACTIVE state.
void do_cleanup(const rclcpp_lifecycle::State &) override
Callback for lifecycle transitions from the INACTIVE state to the UNCONFIGURED state.
::message_filters::Connection point_cloud_connection_
Connection for point cloud updates filter and callback.
Definition: amcl_node.hpp:170
std::unique_ptr< tf2_ros::MessageFilter< sensor_msgs::msg::LaserScan > > laser_scan_filter_
Transform synchronization filter for laser scan updates.
Definition: amcl_node.hpp:162
auto get_sensor_model(std::string_view, nav_msgs::msg::OccupancyGrid::SharedPtr) const -> beluga_ros::Amcl::sensor_model_variant
Get sensor model as per current parametrization.
std::optional< std::pair< Sophus::SE2d, Eigen::Matrix3d > > last_known_estimate_
Last known pose estimate, if any.
Definition: amcl_node.hpp:175
auto make_particle_filter(nav_msgs::msg::OccupancyGrid::SharedPtr) const -> std::unique_ptr< beluga_ros::Amcl >
Instantiate particle filter given an initial occupancy grid map and the current parametrization.
Definition: ros2_common.hpp:56
Compatibility layer for message_filters.
SparsePointCloud3< float, false > SparsePointCloud3f
Generated by