mirror of
https://gitlab.com/obbart/universal_robots_ros_driver.git
synced 2026-04-10 10:00:48 +02:00
Fixed order of starting and stopping controllers
This commit is contained in:
@@ -9,39 +9,39 @@
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include "ur_modern_driver/du_output.h"
|
||||
#include "ur_modern_driver/do_output.h"
|
||||
|
||||
void print_debug(std::string inp) {
|
||||
#ifdef ROS_BUILD
|
||||
ROS_DEBUG(inp);
|
||||
ROS_DEBUG(inp.c_str());
|
||||
#else
|
||||
printf("DEBUG: %s\n", inp.c_str());
|
||||
#endif
|
||||
}
|
||||
void print_info(std::string inp) {
|
||||
#ifdef ROS_BUILD
|
||||
ROS_INFO(inp);
|
||||
ROS_INFO(inp.c_str());
|
||||
#else
|
||||
printf("INFO: %s\n", inp.c_str());
|
||||
#endif
|
||||
}
|
||||
void print_warning(std::string inp) {
|
||||
#ifdef ROS_BUILD
|
||||
ROS_WARN(inp);
|
||||
ROS_WARN(inp.c_str());
|
||||
#else
|
||||
printf("WARNING: %s\n", inp.c_str());
|
||||
#endif
|
||||
}
|
||||
void print_error(std::string inp) {
|
||||
#ifdef ROS_BUILD
|
||||
ROS_ERROR(inp);
|
||||
ROS_ERROR(inp.c_str());
|
||||
#else
|
||||
printf("ERROR: %s\n", inp.c_str());
|
||||
#endif
|
||||
}
|
||||
void print_fatal(std::string inp) {
|
||||
#ifdef ROS_BUILD
|
||||
ROS_FATAL(inp);
|
||||
ROS_FATAL(inp.c_str());
|
||||
ros::shutdown();
|
||||
#else
|
||||
printf("FATAL: %s\n", inp.c_str());
|
||||
|
||||
@@ -257,7 +257,6 @@ void UrDriver::uploadProg() {
|
||||
cmd_str += "end\n";
|
||||
|
||||
rt_interface_->addCommandToQueue(cmd_str);
|
||||
|
||||
UrDriver::openServo();
|
||||
}
|
||||
|
||||
|
||||
@@ -211,6 +211,7 @@ bool UrHardwareInterface::canSwitch(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// we can always stop a controller
|
||||
return true;
|
||||
}
|
||||
@@ -218,21 +219,6 @@ bool UrHardwareInterface::canSwitch(
|
||||
void UrHardwareInterface::doSwitch(
|
||||
const std::list<hardware_interface::ControllerInfo>& start_list,
|
||||
const std::list<hardware_interface::ControllerInfo>& stop_list) {
|
||||
for (std::list<hardware_interface::ControllerInfo>::const_iterator controller_it =
|
||||
start_list.begin(); controller_it != start_list.end();
|
||||
++controller_it) {
|
||||
if (controller_it->hardware_interface
|
||||
== "hardware_interface::VelocityJointInterface") {
|
||||
velocity_interface_running_ = true;
|
||||
ROS_DEBUG("Starting velocity interface");
|
||||
}
|
||||
if (controller_it->hardware_interface
|
||||
== "hardware_interface::PositionJointInterface") {
|
||||
position_interface_running_ = true;
|
||||
robot_->uploadProg();
|
||||
ROS_DEBUG("Starting position interface");
|
||||
}
|
||||
}
|
||||
for (std::list<hardware_interface::ControllerInfo>::const_iterator controller_it =
|
||||
stop_list.begin(); controller_it != stop_list.end();
|
||||
++controller_it) {
|
||||
@@ -249,6 +235,21 @@ void UrHardwareInterface::doSwitch(
|
||||
ROS_DEBUG("Stopping position interface");
|
||||
}
|
||||
}
|
||||
for (std::list<hardware_interface::ControllerInfo>::const_iterator controller_it =
|
||||
start_list.begin(); controller_it != start_list.end();
|
||||
++controller_it) {
|
||||
if (controller_it->hardware_interface
|
||||
== "hardware_interface::VelocityJointInterface") {
|
||||
velocity_interface_running_ = true;
|
||||
ROS_DEBUG("Starting velocity interface");
|
||||
}
|
||||
if (controller_it->hardware_interface
|
||||
== "hardware_interface::PositionJointInterface") {
|
||||
position_interface_running_ = true;
|
||||
robot_->uploadProg();
|
||||
ROS_DEBUG("Starting position interface");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user