UR driver twist_controller not implemented?
Hello, guys! I've recently been working on making a teleoperation control node for an UR5e robot arm. I know that the twist_controller is the controller designated for teleoperation which is provided by the ur_robot_driver itself and I've tried switching the controllers using the "rosservice /controller_manager/switch_controller" command and it worked for the joint_group_vel_controller, but when I tried to switch to twist_controller it says:
[ERROR] [1630061194.905462256]: Could not start controller with name 'twist_controller' because no controller with this name exists
Is the twist_controller controller somehow not implemented yet, and if so, how can I install it?
It's likely your
ros_control
configuration file does not contain any information on thetwist_controller
.If that's the case,
switch_controller
cannot switch to it, as thecontroller_manager
will not have loaded it.I've added the following to the .ur5e_controllers.yaml file for my robot in the Universal_Robots_ROS_Driver/ur_robot_driver/config folder:
This didn't really work so I tried also to load the controller using "/controller_manager/load_controller twist_controller" and I got the following error:
Do I have to clone the following repository or is it not relevant? https://github.com/fzi-forschungszent...
You'll have to make sure to have installed the referenced controller, yes.
re: clone repository: on Noetic, you can install the controller using
apt
: status_page/ros_noetic_default.html?q=carte (green squares everywhere).On Melodic you'll either have to enable the TestingRepository or build from source, as the package has been released, but Melodic has not seen any sync yet (note the blue square in the last column of the row for
twist_controller
).Thanks! I've already cloned the said repository and changed the config .yaml file to:
You mentioned that I can install the controller using apt, but how exactly do I do that? (I'm really new to ROS)
You don't need to do both. Either install using
apt
, or build it from source (wheregit clone
is one step).See #q252478 for a (high-level) overview of the workflow.
Just
git clone
-ing a repository is typically not sufficient.Ok, did that. But I checked the controller list using "rosservice call controller_manager/list_controllers" and I don't see any twist_controller.
Moreover, when I tried loading again the twist_controller I got this new error:
Any clue what this means?
It tells you that the driver you're using does not expose the required resources for the controller to use.
You'll have to make sure that you're using the correct version of the driver.
If you're using the UR driver, the Cartesian interfaces were only added recently, so you may have to update and rebuild.
But I'd ask the maintainers / developers.