16 #ifndef NAV2_BEHAVIOR_TREE__PLUGINS__CONDITION__IS_BATTERY_LOW_CONDITION_HPP_
17 #define NAV2_BEHAVIOR_TREE__PLUGINS__CONDITION__IS_BATTERY_LOW_CONDITION_HPP_
23 #include "rclcpp/rclcpp.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;
73 BT::InputPort<double>(
"min_battery",
"Minimum battery percentage/voltage"),
74 BT::InputPort<std::string>(
75 "battery_topic", std::string(
"/battery_status"),
"Battery topic"),
77 "is_voltage",
false,
"If true voltage will be used to check for low battery"),
86 void batteryCallback(sensor_msgs::msg::BatteryState::SharedPtr msg);
88 rclcpp::Node::SharedPtr node_;
89 rclcpp::CallbackGroup::SharedPtr callback_group_;
90 rclcpp::executors::SingleThreadedExecutor callback_group_executor_;
91 rclcpp::Subscription<sensor_msgs::msg::BatteryState>::SharedPtr battery_sub_;
92 std::string battery_topic_;
A BT::ConditionNode that listens to a battery topic and returns SUCCESS when battery is low and FAILU...
void createROSInterfaces()
Function to create ROS interfaces.
static BT::PortsList providedPorts()
Creates list of BT ports.
BT::NodeStatus tick() override
The main override required by a BT action.
void initialize()
Function to read parameters and initialize class variables.