Easy Navigation
Loading...
Searching...
No Matches
LocalizerNode.hpp
Go to the documentation of this file.
1// Copyright 2025 Intelligent Robotics Lab
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
18
19#ifndef EASYNAV_LOCALIZER__LOCALIZERNODE_HPP_
20#define EASYNAV_LOCALIZER__LOCALIZERNODE_HPP_
21
22#include <memory>
23
24#include "rclcpp/macros.hpp"
25#include "rclcpp_lifecycle/lifecycle_node.hpp"
26#include "easynav_core/PluginSwitcher.hpp"
27#include "easynav_core/LocalizerMethodBase.hpp"
29
30namespace easynav
31{
32
40class LocalizerNode : public rclcpp_lifecycle::LifecycleNode
41{
42public:
43 RCLCPP_SMART_PTR_DEFINITIONS(LocalizerNode)
44 using CallbackReturnT = rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn;
45
50 explicit LocalizerNode(
51 const rclcpp::NodeOptions & options = rclcpp::NodeOptions());
52
55
61 CallbackReturnT on_configure(const rclcpp_lifecycle::State & state);
62
68 CallbackReturnT on_activate(const rclcpp_lifecycle::State & state);
69
75 CallbackReturnT on_deactivate(const rclcpp_lifecycle::State & state);
76
82 CallbackReturnT on_cleanup(const rclcpp_lifecycle::State & state);
83
89 CallbackReturnT on_shutdown(const rclcpp_lifecycle::State & state);
90
96 CallbackReturnT on_error(const rclcpp_lifecycle::State & state);
97
102 rclcpp::CallbackGroup::SharedPtr get_real_time_cbg();
103
110 bool cycle_rt(std::shared_ptr<NavState> nav_state, bool trigger = false);
111
116 void cycle(std::shared_ptr<NavState> nav_state);
117
118private:
120 rclcpp::CallbackGroup::SharedPtr realtime_cbg_;
121
124 PluginSwitcher<LocalizerMethodBase> localizer_;
125};
126
127} // namespace easynav
128
129#endif // EASYNAV_LOCALIZER__LOCALIZERNODE_HPP_
A blackboard-like structure to hold the current state of the navigation system.
CallbackReturnT on_activate(const rclcpp_lifecycle::State &state)
Activate the node.
Definition LocalizerNode.cpp:86
CallbackReturnT on_configure(const rclcpp_lifecycle::State &state)
Configure the node.
Definition LocalizerNode.cpp:80
void cycle(std::shared_ptr< NavState > nav_state)
Run a non-real-time localization cycle.
Definition LocalizerNode.cpp:141
CallbackReturnT on_shutdown(const rclcpp_lifecycle::State &state)
Shutdown the node.
Definition LocalizerNode.cpp:109
CallbackReturnT on_cleanup(const rclcpp_lifecycle::State &state)
Clean up the node.
Definition LocalizerNode.cpp:102
bool cycle_rt(std::shared_ptr< NavState > nav_state, bool trigger=false)
Run a real-time localization cycle.
Definition LocalizerNode.cpp:130
rclcpp::CallbackGroup::SharedPtr get_real_time_cbg()
Get the callback group for real-time execution.
Definition LocalizerNode.cpp:123
CallbackReturnT on_error(const rclcpp_lifecycle::State &state)
Handle lifecycle error transition.
Definition LocalizerNode.cpp:116
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn CallbackReturnT
Definition LocalizerNode.hpp:44
LocalizerNode(const rclcpp::NodeOptions &options=rclcpp::NodeOptions())
Constructor.
Definition LocalizerNode.cpp:32
CallbackReturnT on_deactivate(const rclcpp_lifecycle::State &state)
Deactivate the node.
Definition LocalizerNode.cpp:96
A generic, type-safe, thread-safe blackboard to hold runtime state.
Definition NavState.hpp:87
Definition CircularBuffer.hpp:24
Definition PointPerception.hpp:51