Easy Navigation
Loading...
Searching...
No Matches
easynav Namespace Reference

Classes

class  CircularBuffer
 Fixed-size circular buffer, thread-safe (mutex-based), copyable. More...
 
class  ControllerNode
 ROS 2 lifecycle node that manages calculating speeds for the Easy Navigation system. More...
 
class  DetectionsPerception
 
class  DetectionsPerceptionsHandler
 Handles the creation and updating of DetectionsPerceptions instances from sensor_msgs::msg::Image messages. More...
 
class  DummyController
 A default "dummy" implementation for the Control Method. More...
 
class  DummyLocalizer
 A default "do-nothing" implementation of LocalizerMethodBase. More...
 
class  DummyMapsManager
 A default "do-nothing" implementation of MapsManagerBase. More...
 
class  DummyPlanner
 A default "do-nothing" implementation of PlannerMethodBase. More...
 
class  GNSSPerception
 Represents a single GNSS perception from a sensor. More...
 
class  GNSSPerceptionHandler
 Handles the creation and updating of GNSSPerception instances from sensor_msgs::msg::NavSatFix messages. More...
 
class  GoalManager
 Handles navigation goals, their lifecycle, and command interface. More...
 
class  GoalManagerClient
 Client-side interface for interacting with GoalManager. More...
 
class  ImagePerception
 Represents a single image perception from a sensor. More...
 
class  ImagePerceptionHandler
 Handles the creation and updating of ImagePerception instances from sensor_msgs::msg::Image messages. More...
 
class  IMUPerception
 Represents a single IMU perception from a sensor. More...
 
class  IMUPerceptionHandler
 Handles the creation and updating of IMUPerception instances from sensor_msgs::msg::Imu messages. More...
 
class  LocalizerNode
 ROS 2 lifecycle node that manages localization in Easy Navigation. More...
 
class  MapsManagerNode
 ROS 2 lifecycle node that manages map-related plugins in Easy Navigation. More...
 
class  NavState
 A generic, type-safe, thread-safe blackboard to hold runtime state. More...
 
class  PerceptionBase
 Abstract base class for representing a single sensor perception. More...
 
class  PerceptionHandler
 Abstract base interface for group-specific perception handlers. More...
 
struct  PerceptionPtr
 Represents a perception entry with its state and ROS subscription. More...
 
class  PlannerNode
 ROS 2 lifecycle node that manages path planning in Easy Navigation. More...
 
class  PointPerception
 Concrete perception class for 3D point cloud data. More...
 
struct  PointPerceptionBufferType
 
class  PointPerceptionHandler
 PerceptionHandler implementation for sensors producing point-based data. More...
 
class  PointPerceptionsOpsView
 Provides efficient, non-destructive, chainable operations over a set of point-based perceptions. More...
 
class  RTTFBuffer
 Provides functionality for RTTFBuffer. More...
 
class  SensorsNode
 ROS 2 lifecycle node that manages sensor fusion in Easy Navigation. More...
 
class  Singleton
 
class  SystemNode
 ROS 2 lifecycle node coordinating all Easy Navigation components. More...
 
struct  SystemNodeInfo
 Structure holding runtime information for a subnode. More...
 
struct  TFInfo
 Aggregated TF configuration used across EasyNav. More...
 
class  YTSession
 A Yaets Tracing Session. More...
 

Typedefs

using CallbackReturnT = rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
 
using DetectionsPerceptions
 
using GNSSPerceptions
 Alias for a vector of shared pointers to GNSSPerception objects.
 
using ImagePerceptions
 Alias for a vector of shared pointers to ImagePerception objects.
 
using IMUPerceptions
 Alias for a vector of shared pointers to IMUPerception objects.
 
using PerceptionBasePtr = std::shared_ptr<PerceptionBase>
 Shared pointer alias to PerceptionBase.
 
using PointPerceptions
 Alias for a vector of shared pointers to PointPerception objects.
 

Functions

std::string backtrace_to_string (std::size_t max_frames=64, std::size_t skip=0)
 
double calculate_angle (const geometry_msgs::msg::Pose &pose1, const geometry_msgs::msg::Pose &pose2)
 Get the (absolute) yaw angle difference between two poses.
 
double calculate_distance_xy (const geometry_msgs::msg::Pose &pose1, const geometry_msgs::msg::Pose &pose2)
 Internal utility functions.
 
void convert (const sensor_msgs::msg::LaserScan &scan, pcl::PointCloud< pcl::PointXYZ > &pc)
 Converts a LaserScan message into a point cloud.
 
std::string demangle (const char *name)
 Demangles a C++ RTTI type name if possible.
 
rclcpp::Time get_latest_detections_perceptions_stamp (const DetectionsPerceptions &perceptions)
 Retrieves the latest timestamp among a set of detection-based perceptions.
 
rclcpp::Time get_latest_gnss_perceptions_stamp (const GNSSPerceptions &perceptions)
 Retrieves the latest timestamp among a set of GNSS perceptions.
 
rclcpp::Time get_latest_image_perceptions_stamp (const ImagePerceptions &perceptions)
 Retrieves the latest timestamp among a set of image-based perceptions.
 
rclcpp::Time get_latest_imu_perceptions_stamp (const IMUPerceptions &perceptions)
 Retrieves the latest timestamp among a set of IMU perceptions.
 
rclcpp::Time get_latest_point_perceptions_stamp (const PointPerceptions &perceptions)
 Retrieves the latest timestamp among a set of point-based perceptions.
 
template<typename T = PerceptionBase>
std::vector< std::shared_ptr< T > > get_perceptions (const std::vector< PerceptionPtr > &src)
 Extracts a homogeneous collection of perceptions of type T from a heterogeneous vector.
 
PointPerceptions get_point_perceptions (std::vector< PerceptionPtr > &perceptionptr)
 Extracts all PointPerception objects from a heterogeneous collection.
 
constexpr double norm_angle (const double angle)
 Angle normalization to [-pi, pi) range (in radians)
 
sensor_msgs::msg::PointCloud2 perception_to_rosmsg (const PointPerception &perception)
 Converts a PointPerception into a sensor_msgs::msg::PointCloud2 message.
 
sensor_msgs::msg::PointCloud2 points_to_rosmsg (const pcl::PointCloud< pcl::PointXYZ > &points)
 Converts a PCL point cloud into a sensor_msgs::msg::PointCloud2 message.
 
std::string stacktrace (std::size_t skip=1, std::size_t max_frames=64)
 Captures a C/C++ stack trace as a string.
 

Variables

template<class C>
std::once_flag Singleton< C >::init_flag_
 
template<class C>
std::unique_ptr< C > Singleton< C >::instance_ = nullptr
 

Typedef Documentation

◆ CallbackReturnT

using CallbackReturnT = rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn

◆ DetectionsPerceptions

Initial value:
std::vector<std::shared_ptr<DetectionsPerception>>

◆ GNSSPerceptions

Initial value:
std::vector<std::shared_ptr<GNSSPerception>>

Alias for a vector of shared pointers to GNSSPerception objects.

The container can represent a time-ordered or batched collection, depending on producer logic.

◆ ImagePerceptions

Initial value:
std::vector<std::shared_ptr<ImagePerception>>

Alias for a vector of shared pointers to ImagePerception objects.

The container can represent a time-ordered or batched collection, depending on producer logic.

◆ IMUPerceptions

Initial value:
std::vector<std::shared_ptr<IMUPerception>>

Alias for a vector of shared pointers to IMUPerception objects.

The container can represent a time-ordered or batched collection, depending on producer logic.

◆ PerceptionBasePtr

using PerceptionBasePtr = std::shared_ptr<PerceptionBase>

Shared pointer alias to PerceptionBase.

◆ PointPerceptions

Initial value:
std::vector<std::shared_ptr<PointPerception>>

Alias for a vector of shared pointers to PointPerception objects.

Function Documentation

◆ backtrace_to_string()

std::string backtrace_to_string ( std::size_t max_frames = 64,
std::size_t skip = 0 )

◆ calculate_angle()

double calculate_angle ( const geometry_msgs::msg::Pose & pose1,
const geometry_msgs::msg::Pose & pose2 )

Get the (absolute) yaw angle difference between two poses.

Parameters
pose1First pose
pose2Second pose

◆ calculate_distance_xy()

double calculate_distance_xy ( const geometry_msgs::msg::Pose & pose1,
const geometry_msgs::msg::Pose & pose2 )

Internal utility functions.

Get the x/y distance between two poses

Parameters
pose1First pose
pose2Second pose

◆ convert()

void convert ( const sensor_msgs::msg::LaserScan & scan,
pcl::PointCloud< pcl::PointXYZ > & pc )

Converts a LaserScan message into a point cloud.

Parameters
scanInput laser scan message.
pcOutput point cloud (XYZ).

◆ demangle()

std::string demangle ( const char * name)

Demangles a C++ RTTI type name if possible.

Parameters
nameMangled type name (from typeid(T).name()).
Returns
Readable (demangled) type name if available; otherwise returns name.

◆ get_latest_detections_perceptions_stamp()

rclcpp::Time get_latest_detections_perceptions_stamp ( const DetectionsPerceptions & perceptions)

Retrieves the latest timestamp among a set of detection-based perceptions.

Parameters
perceptionsContainer of detection-based perceptions.
Returns
The most recent timestamp found in perceptions, or a default-constructed rclcpp::Time if perceptions is empty.

◆ get_latest_gnss_perceptions_stamp()

rclcpp::Time get_latest_gnss_perceptions_stamp ( const GNSSPerceptions & perceptions)

Retrieves the latest timestamp among a set of GNSS perceptions.

Parameters
perceptionsContainer of GNSS perceptions.
Returns
The most recent timestamp found in perceptions, or a default-constructed rclcpp::Time if perceptions is empty.

◆ get_latest_image_perceptions_stamp()

rclcpp::Time get_latest_image_perceptions_stamp ( const ImagePerceptions & perceptions)

Retrieves the latest timestamp among a set of image-based perceptions.

Parameters
perceptionsContainer of image-based perceptions.
Returns
The most recent timestamp found in perceptions, or a default-constructed rclcpp::Time if perceptions is empty.

◆ get_latest_imu_perceptions_stamp()

rclcpp::Time get_latest_imu_perceptions_stamp ( const IMUPerceptions & perceptions)

Retrieves the latest timestamp among a set of IMU perceptions.

Parameters
perceptionsContainer of IMU perceptions.
Returns
The most recent timestamp found in perceptions, or a default-constructed rclcpp::Time if perceptions is empty.

◆ get_latest_point_perceptions_stamp()

rclcpp::Time get_latest_point_perceptions_stamp ( const PointPerceptions & perceptions)

Retrieves the latest timestamp among a set of point-based perceptions.

Parameters
perceptionsContainer of point-based perceptions.
Returns
The most recent timestamp found in perceptions, or a default-constructed rclcpp::Time if perceptions is empty.

◆ get_perceptions()

template<typename T = PerceptionBase>
std::vector< std::shared_ptr< T > > get_perceptions ( const std::vector< PerceptionPtr > & src)

Extracts a homogeneous collection of perceptions of type T from a heterogeneous vector.

This helper iterates the input vector of PerceptionPtr and:

  • If T is exactly PerceptionBase, returns all stored pointers without casting (heterogeneous view).
  • Otherwise, attempts a std::dynamic_pointer_cast<T> and includes only those perceptions that match (homogeneous view).
Template Parameters
TTarget perception type. Must inherit from PerceptionBase. Defaults to PerceptionBase.
Parameters
srcSource vector containing heterogeneous perceptions and their subscriptions.
Returns
A vector of std::shared_ptr<T> containing the matching perceptions, in the same order as src.

◆ get_point_perceptions()

PointPerceptions get_point_perceptions ( std::vector< PerceptionPtr > & perceptionptr)

Extracts all PointPerception objects from a heterogeneous collection.

Parameters
perceptionptrVector of PerceptionPtr entries possibly holding mixed perception types.
Returns
A vector with the subset of perceptions that are PointPerception.

◆ norm_angle()

double norm_angle ( const double angle)
constexpr

Angle normalization to [-pi, pi) range (in radians)

◆ perception_to_rosmsg()

sensor_msgs::msg::PointCloud2 perception_to_rosmsg ( const PointPerception & perception)

Converts a PointPerception into a sensor_msgs::msg::PointCloud2 message.

Parameters
perceptionPerception to convert.
Returns
The resulting ROS PointCloud2 message.

◆ points_to_rosmsg()

sensor_msgs::msg::PointCloud2 points_to_rosmsg ( const pcl::PointCloud< pcl::PointXYZ > & points)

Converts a PCL point cloud into a sensor_msgs::msg::PointCloud2 message.

Parameters
pointsInput point cloud.
Returns
The resulting ROS PointCloud2 message.

◆ stacktrace()

std::string stacktrace ( std::size_t skip = 1,
std::size_t max_frames = 64 )

Captures a C/C++ stack trace as a string.

Parameters
skipNumber of initial frames to skip (e.g., the stacktrace frame itself).
max_framesMaximum number of frames to capture.
Returns
A multi-line string with one frame per line.

Variable Documentation

◆ Singleton< C >::init_flag_

template<class C>
std::once_flag Singleton< C >::init_flag_

◆ Singleton< C >::instance_

template<class C>
std::unique_ptr<C> Singleton< C >::instance_ = nullptr