15 #ifndef NAV2_BEHAVIOR_TREE__PLUGINS__CONDITION__IS_BATTERY_CHARGING_CONDITION_HPP_
16 #define NAV2_BEHAVIOR_TREE__PLUGINS__CONDITION__IS_BATTERY_CHARGING_CONDITION_HPP_
23 #include "nav2_ros_common/lifecycle_node.hpp"
24 #include "sensor_msgs/msg/battery_state.hpp"
25 #include "behaviortree_cpp/condition_node.h"
27 namespace nav2_behavior_tree
45 const std::string & condition_name,
46 const BT::NodeConfiguration & conf);
54 BT::NodeStatus
tick()
override;
63 BT::InputPort<std::string>(
64 "battery_topic", std::string(
"/battery_status"),
"Battery topic")
76 void createROSInterfaces();
82 void batteryCallback(sensor_msgs::msg::BatteryState::SharedPtr msg);
84 rclcpp::CallbackGroup::SharedPtr callback_group_;
85 rclcpp::executors::SingleThreadedExecutor callback_group_executor_;
86 nav2::Subscription<sensor_msgs::msg::BatteryState>::SharedPtr battery_sub_;
87 std::string battery_topic_;
88 bool is_battery_charging_;
89 std::chrono::milliseconds bt_loop_duration_;
A BT::ConditionNode that listens to a battery topic and returns SUCCESS when battery is charging and ...
BT::NodeStatus tick() override
The main override required by a BT action.
static BT::PortsList providedPorts()
Creates list of BT ports.