15 #ifndef OPENNAV_DOCKING__DOCK_DATABASE_HPP_
16 #define OPENNAV_DOCKING__DOCK_DATABASE_HPP_
23 #include "rclcpp/rclcpp.hpp"
24 #include "pluginlib/class_loader.hpp"
25 #include "pluginlib/class_list_macros.hpp"
26 #include "nav2_ros_common/service_server.hpp"
27 #include "nav2_ros_common/lifecycle_node.hpp"
28 #include "nav2_ros_common/node_utils.hpp"
29 #include "nav2_ros_common/simple_action_server.hpp"
30 #include "opennav_docking/utils.hpp"
31 #include "opennav_docking/types.hpp"
32 #include "nav2_msgs/srv/reload_dock_database.hpp"
33 #include "nav2_ros_common/tf2_factories.hpp"
35 namespace opennav_docking
56 const nav2::LifecycleNode::WeakPtr & parent, nav2::TransformBuffer::SharedPtr tf);
107 const nav2::LifecycleNode::SharedPtr & node, nav2::TransformBuffer::SharedPtr tf);
128 const std::shared_ptr<rmw_request_id_t> request_header,
129 const std::shared_ptr<nav2_msgs::srv::ReloadDockDatabase::Request> request,
130 std::shared_ptr<nav2_msgs::srv::ReloadDockDatabase::Response> response);
132 nav2::LifecycleNode::WeakPtr node_;
134 DockPluginMap dock_plugins_;
135 DockMap dock_instances_;
136 pluginlib::ClassLoader<opennav_docking_core::ChargingDock> dock_loader_;
137 nav2::ServiceServer<nav2_msgs::srv::ReloadDockDatabase>::SharedPtr reload_db_service_;
An object to contain docks and docking plugins.
Dock * findDock(const std::string &dock_id)
Find a dock instance & plugin in the databases from ID.
Dock * findDockInstance(const std::string &dock_id)
Find a dock instance in the database from ID.
bool getDockPlugins(const nav2::LifecycleNode::SharedPtr &node, nav2::TransformBuffer::SharedPtr tf)
Populate database of dock type plugins.
ChargingDock::Ptr findDockPlugin(const std::string &type)
Find a dock plugin to use for a given type.
void reloadDbCb(const std::shared_ptr< rmw_request_id_t > request_header, const std::shared_ptr< nav2_msgs::srv::ReloadDockDatabase::Request > request, std::shared_ptr< nav2_msgs::srv::ReloadDockDatabase::Response > response)
Service request to reload database of docks.
void deactivate()
An deactivation method.
unsigned int plugin_size() const
Get the number of dock types in the database.
~DockDatabase()
A destructor for opennav_docking::DockDatabase.
unsigned int instance_size() const
Get the number of docks in the database.
bool getDockInstances(const nav2::LifecycleNode::SharedPtr &node)
Populate database of dock instances.
void activate()
An activation method.
DockDatabase(std::mutex &mutex)
A constructor for opennav_docking::DockDatabase.
bool initialize(const nav2::LifecycleNode::WeakPtr &parent, nav2::TransformBuffer::SharedPtr tf)
A setup function to populate database.