Go to the documentation of this file.
45 #include <controller_manager_msgs/ListControllerTypes.h>
46 #include <controller_manager_msgs/ListControllers.h>
47 #include <controller_manager_msgs/ReloadControllerLibraries.h>
48 #include <controller_manager_msgs/LoadController.h>
49 #include <controller_manager_msgs/UnloadController.h>
50 #include <controller_manager_msgs/SwitchController.h>
144 const std::vector<std::string>& stop_controllers,
225 controller_manager_msgs::ListControllerTypes::Response &resp);
227 controller_manager_msgs::ListControllers::Response &resp);
229 controller_manager_msgs::SwitchController::Response &resp);
231 controller_manager_msgs::LoadController::Response &resp);
233 controller_manager_msgs::UnloadController::Response &resp);
235 controller_manager_msgs::ReloadControllerLibraries::Response &resp);
ROS Controller Manager and Runner.
int used_by_realtime_
The index of the controllers list being used in the real-time thread.
void startControllersAsap(const ros::Time &time)
ros::ServiceServer srv_switch_controller_
static constexpr double INFINITE_TIMEOUT
void getControllerNames(std::vector< std::string > &v)
bool loadControllerSrv(controller_manager_msgs::LoadController::Request &req, controller_manager_msgs::LoadController::Response &resp)
std::vector< controller_interface::ControllerBase * > stop_request_
bool listControllerTypesSrv(controller_manager_msgs::ListControllerTypes::Request &req, controller_manager_msgs::ListControllerTypes::Response &resp)
void stopControllers(const ros::Time &time)
ros::ServiceServer srv_load_controller_
SwitchParams switch_params_
void manageSwitch(const ros::Time &time)
virtual controller_interface::ControllerBase * getControllerByName(const std::string &name)
Get a controller by name.
std::vector< ControllerSpec > controllers_lists_[2]
Double-buffered controllers list.
ros::ServiceServer srv_reload_libraries_
hardware_interface::RobotHW * robot_hw_
bool switchController(const std::vector< std::string > &start_controllers, const std::vector< std::string > &stop_controllers, const int strictness, bool start_asap=WAIT_FOR_ALL_RESOURCES, double timeout=INFINITE_TIMEOUT)
Switch multiple controllers simultaneously.
std::vector< controller_interface::ControllerBase * > start_request_
std::shared_ptr< ControllerLoaderInterface > ControllerLoaderInterfaceSharedPtr
ros::ServiceServer srv_list_controller_types_
std::list< ControllerLoaderInterfaceSharedPtr > controller_loaders_
std::list< hardware_interface::ControllerInfo > switch_start_list_
void startControllers(const ros::Time &time)
ros::ServiceServer srv_list_controllers_
static constexpr bool WAIT_FOR_ALL_RESOURCES
bool unloadController(const std::string &name)
Unload a controller by name.
int current_controllers_list_
The index of the current controllers list.
std::list< hardware_interface::ControllerInfo > switch_stop_list_
virtual ~ControllerManager()=default
const ROSTIME_DECL Time TIME_MAX
bool unloadControllerSrv(controller_manager_msgs::UnloadController::Request &req, controller_manager_msgs::UnloadController::Response &resp)
bool listControllersSrv(controller_manager_msgs::ListControllers::Request &req, controller_manager_msgs::ListControllers::Response &resp)
std::recursive_mutex controllers_lock_
Mutex protecting the current controllers list.
ros::ServiceServer srv_unload_controller_
std::mutex services_lock_
void registerControllerLoader(ControllerLoaderInterfaceSharedPtr controller_loader)
Register a controller loader.
bool reloadControllerLibrariesSrv(controller_manager_msgs::ReloadControllerLibraries::Request &req, controller_manager_msgs::ReloadControllerLibraries::Response &resp)
void update(const ros::Time &time, const ros::Duration &period, bool reset_controllers=false)
Update all active controllers.
bool switchControllerSrv(controller_manager_msgs::SwitchController::Request &req, controller_manager_msgs::SwitchController::Response &resp)
ControllerManager(hardware_interface::RobotHW *robot_hw, const ros::NodeHandle &nh=ros::NodeHandle())
Constructor.
bool loadController(const std::string &name)
Load a new controller by name.
controller_manager
Author(s): Wim Meeussen, Mathias Lüdtke
autogenerated on Tue Oct 15 2024 02:08:23