18#ifndef EASYNAV_SYSTEM__SYSTEMNODE_HPP_
19#define EASYNAV_SYSTEM__SYSTEMNODE_HPP_
21#include "rclcpp/rclcpp.hpp"
22#include "rclcpp/macros.hpp"
23#include "rclcpp_lifecycle/lifecycle_node.hpp"
25#include "geometry_msgs/msg/twist.hpp"
26#include "geometry_msgs/msg/twist_stamped.hpp"
27#include "std_msgs/msg/string.hpp"
46 rclcpp_lifecycle::LifecycleNode::SharedPtr
node_ptr;
61 using
CallbackReturnT = rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn;
67 explicit
SystemNode(const rclcpp::NodeOptions & options = rclcpp::NodeOptions());
138 rclcpp::CallbackGroup::SharedPtr realtime_cbg_;
162 bool use_cmd_vel_stamped_ {
false};
165 rclcpp::Publisher<std_msgs::msg::String>::SharedPtr navstate_pub_;
168 rclcpp::Publisher<geometry_msgs::msg::TwistStamped>::SharedPtr vel_pub_stamped_;
171 rclcpp::Publisher<geometry_msgs::msg::Twist>::SharedPtr vel_pub_;
Declaration of the ControllerNode class, a ROS 2 lifecycle node for speed computation in Easy Navigat...
Declaration of the GoalManager class.
Declaration of the LocalizerNode class, a ROS 2 lifecycle node for localization tasks in Easy Navigat...
Declaration of the MapsManagerNode class, a ROS 2 lifecycle node for map handling in Easy Navigation.
A blackboard-like structure to hold the current state of the navigation system.
Declaration of the PlannerNode class, a ROS 2 lifecycle node for computing navigation paths in Easy N...
Declaration of the SensorsNode class, a ROS 2 lifecycle node for sensor fusion tasks in Easy Navigati...
ROS 2 lifecycle node that manages calculating speeds for the Easy Navigation system.
Definition ControllerNode.hpp:41
Handles navigation goals, their lifecycle, and command interface.
Definition GoalManager.hpp:43
ROS 2 lifecycle node that manages localization in Easy Navigation.
Definition LocalizerNode.hpp:39
ROS 2 lifecycle node that manages map-related plugins in Easy Navigation.
Definition MapsManagerNode.hpp:37
A generic, type-safe, thread-safe blackboard to hold runtime state.
Definition NavState.hpp:82
ROS 2 lifecycle node that manages path planning in Easy Navigation.
Definition PlannerNode.hpp:38
ROS 2 lifecycle node that manages sensor fusion in Easy Navigation.
Definition SensorsNode.hpp:42
CallbackReturnT on_activate(const rclcpp_lifecycle::State &state)
Activate the node.
Definition SystemNode.cpp:139
CallbackReturnT on_configure(const rclcpp_lifecycle::State &state)
Configure the node.
Definition SystemNode.cpp:89
CallbackReturnT on_shutdown(const rclcpp_lifecycle::State &state)
Shutdown the node.
Definition SystemNode.cpp:188
std::map< std::string, SystemNodeInfo > get_system_nodes()
Get all system nodes managed by this coordinator.
Definition SystemNode.cpp:262
CallbackReturnT on_cleanup(const rclcpp_lifecycle::State &state)
Cleanup the node.
Definition SystemNode.cpp:181
rclcpp::CallbackGroup::SharedPtr get_real_time_cbg()
Get the real-time callback group.
Definition SystemNode.cpp:202
CallbackReturnT on_error(const rclcpp_lifecycle::State &state)
Handle lifecycle transition error.
Definition SystemNode.cpp:195
SystemNode(const rclcpp::NodeOptions &options=rclcpp::NodeOptions())
Constructor.
Definition SystemNode.cpp:37
void system_cycle()
Non-real-time system cycle.
Definition SystemNode.cpp:238
void system_cycle_rt()
Real-time system cycle.
Definition SystemNode.cpp:208
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn CallbackReturnT
Definition SystemNode.hpp:61
CallbackReturnT on_deactivate(const rclcpp_lifecycle::State &state)
Deactivate the node.
Definition SystemNode.cpp:160
Definition CircularBuffer.hpp:23
Definition PointPerception.hpp:49
Structure holding runtime information for a subnode.
Definition SystemNode.hpp:45
rclcpp::CallbackGroup::SharedPtr realtime_cbg
Associated real-time callback group.
Definition SystemNode.hpp:47
rclcpp_lifecycle::LifecycleNode::SharedPtr node_ptr
Shared pointer to the managed lifecycle node.
Definition SystemNode.hpp:46