55 explicit ResourceManager(
const std::string & urdf,
bool validate_interfaces =
true);
71 void load_urdf(
const std::string & urdf,
bool validate_interfaces =
true);
90 std::vector<std::string> state_interface_keys()
const;
96 bool state_interface_exists(
const std::string & key)
const;
107 bool command_interface_is_claimed(
const std::string & key)
const;
126 std::vector<std::string> command_interface_keys()
const;
133 bool command_interface_exists(
const std::string & key)
const;
139 size_t actuator_components_size()
const;
151 void import_component(std::unique_ptr<ActuatorInterface> actuator);
157 size_t sensor_components_size()
const;
169 void import_component(std::unique_ptr<SensorInterface> sensor);
175 size_t system_components_size()
const;
187 void import_component(std::unique_ptr<SystemInterface> system);
193 std::unordered_map<std::string, status> get_components_status();
210 bool prepare_command_mode_switch(
211 const std::vector<std::string> & start_interfaces,
212 const std::vector<std::string> & stop_interfaces);
225 bool perform_command_mode_switch(
226 const std::vector<std::string> & start_interfaces,
227 const std::vector<std::string> & stop_interfaces);
230 void start_components();
233 void stop_components();
242 void validate_storage(
const std::vector<hardware_interface::HardwareInfo> & hardware_info)
const;
244 void release_command_interface(
const std::string & key);
246 std::unordered_map<std::string, bool> claimed_command_interface_map_;
248 mutable std::recursive_mutex resource_lock_;
249 std::unique_ptr<ResourceStorage> resource_storage_;