|
Easy Navigation
|
Namespaces | |
| namespace | detail |
| namespace | safety |
| namespace | testing |
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 | FaultyController |
| Controller that misbehaves on purpose, to test how EasyNav copes with it. More... | |
| class | FaultyLocalizer |
| Localizer that misbehaves on purpose, to test how EasyNav copes with it. More... | |
| class | FaultyMapsManager |
| Maps manager that misbehaves on purpose, to test how EasyNav copes with it. More... | |
| class | FaultyPlanner |
| Planner that misbehaves on purpose, to test how EasyNav copes with it. 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... | |
| struct | LegacyRobotGeometryNames |
| Deprecated parameter names (full names on the node, "" = none) for each field. 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 | OdometryPerception |
| Represents a single odometry perception from a sensor. More... | |
| class | OdometryPerceptionHandler |
| Handles the creation and updating of OdometryPerception instances from nav_msgs::msg::Odometry messages. More... | |
| class | PerceptionBase |
| Abstract base class for representing a single sensor perception. More... | |
| class | PerceptionHandler |
| Abstract base class for pluginlib-based sensor perception handlers. 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... | |
| struct | RobotGeometry |
| The robot's shape, shared by everything that needs it. More... | |
| class | RobotGeometryRegistry |
| Shares the robot's geometry across EasyNav's nodes. 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 | VelocityMux |
| Decides, every RT cycle, which velocity command is sent to the robot. More... | |
| class | VelocitySmoother |
| Brings the commanded velocity towards a target within the robot limits. 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 | OdometryPerceptions |
| Alias for a vector of shared pointers to OdometryPerception 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. | |
| std::string | check_memory_lock () |
| Whether lock_memory() is allowed (RLIMIT_MEMLOCK unlimited), without locking. | |
| std::string | check_real_time_priority (int priority) |
Whether a thread of this process can get SCHED_FIFO priority, tried on a temporary thread. | |
| void | convert (const sensor_msgs::msg::LaserScan &scan, pcl::PointCloud< pcl::PointXYZ > &pc) |
Converts a LaserScan message into a point cloud. | |
| template<typename T, typename NodeT> | |
| void | declare_parameter_if_absent (NodeT &node, const std::string &name, const T &default_value) |
Declares name with default_value unless it already exists. | |
| 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_odometry_perceptions_stamp (const OdometryPerceptions &perceptions) |
| Retrieves the latest timestamp among a set of odometry perceptions. | |
| rclcpp::Time | get_latest_point_perceptions_stamp (const PointPerceptions &perceptions) |
| Retrieves the latest timestamp among a set of point-based perceptions. | |
| std::filesystem::path | get_package_share_path (const std::string &package_name) |
Returns the share directory of package_name. | |
| template<typename T = PerceptionBase> | |
| std::vector< std::shared_ptr< T > > | get_perceptions (const std::vector< PerceptionBasePtr > &src) |
Extracts a homogeneous collection of perceptions of type T from a heterogeneous vector. | |
| template<typename NodeT> | |
| RobotGeometry | get_robot_geometry (NodeT &node, const LegacyRobotGeometryNames &legacy={}) |
| The robot's geometry ("system_node.robot_geometry.*"). | |
| std::string | lock_memory () |
| Locks the process memory, current and future, so the RT cycle never page-faults. | |
| template<class NodeT, class ListenerT = tf2_ros::TransformListener> | |
| std::unique_ptr< ListenerT > | make_transform_listener (tf2::BufferCore &buffer, const std::shared_ptr< NodeT > &node, bool spin_thread=true) |
Creates a TransformListener attached to node. | |
| 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 | set_real_time_priority (int priority) |
Gives the calling thread SCHED_FIFO priority. | |
| std::string | stacktrace (std::size_t skip=1, std::size_t max_frames=64) |
| Captures a C/C++ stack trace as a string. | |
Variables | |
| constexpr int | kRealTimePriority = 80 |
| SCHED_FIFO priority of EasyNav's real-time cycle. | |
| template<class C> | |
| C * | Singleton< C >::instance_ = nullptr |
| template<class C> | |
| std::mutex | Singleton< C >::mutex_ |
| using CallbackReturnT = rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn |
| using DetectionsPerceptions |
| using GNSSPerceptions |
Alias for a vector of shared pointers to GNSSPerception objects.
The container can represent a time-ordered or batched collection, depending on producer logic.
| using ImagePerceptions |
Alias for a vector of shared pointers to ImagePerception objects.
The container can represent a time-ordered or batched collection, depending on producer logic.
| using IMUPerceptions |
Alias for a vector of shared pointers to IMUPerception objects.
The container can represent a time-ordered or batched collection, depending on producer logic.
| using OdometryPerceptions |
Alias for a vector of shared pointers to OdometryPerception objects.
The container can represent a time-ordered or batched collection, depending on producer logic.
| using PerceptionBasePtr = std::shared_ptr<PerceptionBase> |
Shared pointer alias to PerceptionBase.
| using PointPerceptions |
Alias for a vector of shared pointers to PointPerception objects.
| 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.
| pose1 | First pose |
| pose2 | Second pose |
| 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
| pose1 | First pose |
| pose2 | Second pose |
| std::string check_memory_lock | ( | ) |
Whether lock_memory() is allowed (RLIMIT_MEMLOCK unlimited), without locking.
| std::string check_real_time_priority | ( | int | priority | ) |
Whether a thread of this process can get SCHED_FIFO priority, tried on a temporary thread.
| void convert | ( | const sensor_msgs::msg::LaserScan & | scan, |
| pcl::PointCloud< pcl::PointXYZ > & | pc ) |
Converts a LaserScan message into a point cloud.
| scan | Input laser scan message. |
| pc | Output point cloud (XYZ). |
| void declare_parameter_if_absent | ( | NodeT & | node, |
| const std::string & | name, | ||
| const T & | default_value ) |
Declares name with default_value unless it already exists.
A plugin may be initialized again on the same node (EasyNav reconfigured), possibly after a plugin of another type under the same name that shared some of its parameters: each parameter must be checked on its own, never assumed to be declared along with others.
| std::string demangle | ( | const char * | name | ) |
Demangles a C++ RTTI type name if possible.
| name | Mangled type name (from typeid(T).name()). |
name. | rclcpp::Time get_latest_detections_perceptions_stamp | ( | const DetectionsPerceptions & | perceptions | ) |
Retrieves the latest timestamp among a set of detection-based perceptions.
| perceptions | Container of detection-based perceptions. |
perceptions, or a default-constructed rclcpp::Time if perceptions is empty. | rclcpp::Time get_latest_gnss_perceptions_stamp | ( | const GNSSPerceptions & | perceptions | ) |
Retrieves the latest timestamp among a set of GNSS perceptions.
| perceptions | Container of GNSS perceptions. |
perceptions, or a default-constructed rclcpp::Time if perceptions is empty. | rclcpp::Time get_latest_image_perceptions_stamp | ( | const ImagePerceptions & | perceptions | ) |
Retrieves the latest timestamp among a set of image-based perceptions.
| perceptions | Container of image-based perceptions. |
perceptions, or a default-constructed rclcpp::Time if perceptions is empty. | rclcpp::Time get_latest_imu_perceptions_stamp | ( | const IMUPerceptions & | perceptions | ) |
Retrieves the latest timestamp among a set of IMU perceptions.
| perceptions | Container of IMU perceptions. |
perceptions, or a default-constructed rclcpp::Time if perceptions is empty. | rclcpp::Time get_latest_odometry_perceptions_stamp | ( | const OdometryPerceptions & | perceptions | ) |
Retrieves the latest timestamp among a set of odometry perceptions.
| perceptions | Container of odometry perceptions. |
perceptions, or a default-constructed rclcpp::Time if perceptions is empty. | rclcpp::Time get_latest_point_perceptions_stamp | ( | const PointPerceptions & | perceptions | ) |
Retrieves the latest timestamp among a set of point-based perceptions.
| perceptions | Container of point-based perceptions. |
perceptions, or a default-constructed rclcpp::Time if perceptions is empty. | std::filesystem::path get_package_share_path | ( | const std::string & | package_name | ) |
Returns the share directory of package_name.
| ament_index_cpp::PackageNotFoundError | if the package is not found. |
| std::vector< std::shared_ptr< T > > get_perceptions | ( | const std::vector< PerceptionBasePtr > & | src | ) |
Extracts a homogeneous collection of perceptions of type T from a heterogeneous vector.
This helper iterates the input vector of PerceptionBasePtr and attempts a std::dynamic_pointer_cast<T> and includes only those perceptions that match (homogeneous view).
| T | Target perception type. Must inherit from PerceptionBase. Defaults to PerceptionBase. |
| src | Source vector containing pointers to heterogeneous perceptions ( PerceptionBasePtr ). |
src. | RobotGeometry get_robot_geometry | ( | NodeT & | node, |
| const LegacyRobotGeometryNames & | legacy = {} ) |
The robot's geometry ("system_node.robot_geometry.*").
A deprecated parameter of node listed in legacy still applies, with a warning, when it is configured (in the parameter files, or declared by a previous instance) and "robot_geometry" does not configure that field; otherwise it is ignored, with a warning too.
| node | Node holding the deprecated parameters. |
| legacy | Full names of the deprecated parameters. |
| std::string lock_memory | ( | ) |
Locks the process memory, current and future, so the RT cycle never page-faults.
Requires an unlimited RLIMIT_MEMLOCK: with a finite one, later allocations could fail.
| std::unique_ptr< ListenerT > make_transform_listener | ( | tf2::BufferCore & | buffer, |
| const std::shared_ptr< NodeT > & | node, | ||
| bool | spin_thread = true ) |
Creates a TransformListener attached to node.
Up to Kilted, tf2_ros takes the node as a pointer; from Lyrical, as NodeInterfaces (the pointer form is deprecated in Lyrical and removed in Rolling).
|
constexpr |
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.
| perception | Perception to convert. |
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.
| points | Input point cloud. |
PointCloud2 message. | std::string set_real_time_priority | ( | int | priority | ) |
Gives the calling thread SCHED_FIFO priority.
| std::string stacktrace | ( | std::size_t | skip = 1, |
| std::size_t | max_frames = 64 ) |
Captures a C/C++ stack trace as a string.
| skip | Number of initial frames to skip (e.g., the stacktrace frame itself). |
| max_frames | Maximum number of frames to capture. |
|
constexpr |
SCHED_FIFO priority of EasyNav's real-time cycle.
| C* Singleton< C >::instance_ = nullptr |
| std::mutex Singleton< C >::mutex_ |