ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
4

Gazebo: Could not load controller, JointTrajectoryController does not exist (Mastering ROS chapter 10)

asked 2017-02-08 04:55:36 -0500

saken gravatar image

updated 2017-02-08 11:04:39 -0500

Hi!

I am new in ROS, and I was reading a book "Mastering ROS". But I am having an issue with loading controllers in Gazebo, from chapter 10. Working with perception using MoveIt! and Gazebo. Even though I just copied code from the repo. (Actually, the same issue appeared on chapter 3 or 4). Logs are following:

[ERROR] [1486485132.488395779, 0.283000000]: Could not load controller 'seven_dof_arm_joint_controller' because controller type 'position_controllers/JointTrajectoryController' does not exist.
[ERROR] [1486485132.488718126, 0.283000000]: Use 'rosservice call controller_manager/list_controller_types' to get the available types
[INFO] [1486485132.533815, 0.295000]: Started controllers: joint_state_controller
[ERROR] [1486485133.491534, 0.560000]: Failed to load seven_dof_arm_joint_controller
[INFO] [1486485133.494729, 0.560000]: Loading controller: gripper_controller
[ERROR] [1486485133.520919999, 0.566000000]: Could not load controller 'gripper_controller' because controller type 'position_controllers/JointTrajectoryController' does not exist.
[ERROR] [1486485133.521358891, 0.566000000]: Use 'rosservice call controller_manager/list_controller_types' to get the available types
[ERROR] [1486485134.523407, 1.095000]: Failed to load gripper_controller

I think, it is because I'm using Ubuntu 16.04 and Kinetic, whereas in the book the system was 14.04 and Indigo.

How can I resolve this issue? Any ideas?

EDIT1: I changed some urdf files because I had same issue as here

UPD: I've resolved it by installing all available controllers: sudo apt-get install ros*controller*

I know, it is not the right way, but somehow I couldn't find anywhere that I can install joint controller itself sudo apt-get ros-kinetic-joint-trajectory-controller. Maybe it was too obvious. I found it in the new packages list when I ran the command above.

The following NEW packages will be installed: ros-kinetic-bhand-controller ros-kinetic-diff-drive-controller ros-kinetic-dynamixel-controllers ros-kinetic-dynamixel-driver ros-kinetic-dynamixel-msgs ros-kinetic-dynamixel-sdk ros-kinetic-dynamixel-workbench-controllers ros-kinetic-dynamixel-workbench-msgs ros-kinetic-dynamixel-workbench-toolbox ros-kinetic-force-torque-sensor-controller ros-kinetic-gripper-action-controller ros-kinetic-imu-sensor-controller ros-kinetic-joint-trajectory-controller ros-kinetic-kobuki-controller-tutorial ros-kinetic-md49-base-controller ros-kinetic-md49-messages ros-kinetic-md49-serialport ros-kinetic-nav-pcontroller ros-kinetic-robot-controllers ros-kinetic-robot-controllers-interface ros-kinetic-robot-controllers-msgs ros-kinetic-robotis-controller-msgs ros-kinetic-ros-controllers ros-kinetic-rqt-controller-manager ros-kinetic-rqt-joint-trajectory-controller ros-kinetic-velocity-controllers ros-kinetic-view-controller-msgs ros-kinetic-yocs-diff-drive-pose-controller ros-kinetic-yocs-safety-controller

Thanks!

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
9

answered 2017-02-08 12:04:03 -0500

saken gravatar image

I've resolved it by installing all available controllers: sudo apt-get install ros*controller*

Maybe, it is not the right way, because you don't really find a missing dependency in this way. But somehow I couldn't find anywhere that I can just install joint controller itself: sudo apt-get install ros-kinetic-joint-trajectory-controller

edit flag offensive delete link more

Comments

If this is really a problem with the way the package(s) list their dependencies (and thus make rosdep not work), it would be nice if you could report that on the issue tracker of the book.

gvdhoorn gravatar image gvdhoorn  ( 2017-02-08 12:17:30 -0500 )edit

I see, thanks!

saken gravatar image saken  ( 2017-02-09 03:28:37 -0500 )edit

It works, thank you.

Cabbage gravatar image Cabbage  ( 2017-10-06 21:42:24 -0500 )edit

This answer works but why do I install all these controllers?

Meric gravatar image Meric  ( 2019-10-07 01:27:17 -0500 )edit

You don't need to install all controllers. Just the ones that are used.

gvdhoorn gravatar image gvdhoorn  ( 2019-10-07 02:23:13 -0500 )edit
0

answered 2017-02-08 05:21:22 -0500

gvdhoorn gravatar image

updated 2017-02-08 10:10:02 -0500

This reminds me of #q242778. See if the answer there helps you.


Edit:

I have already seen it, and did all what was said there. Unfortunately, it didn't help.

Running rosdep check .. did not install any additional packages?

Could not load controller 'seven_dof_arm_joint_controller' because controller type 'position_controllers/JointTrajectoryController' does not exist.

Can you check two things:

  1. do you have the appropriate ros-controllers packages installed?
  2. did you build the workspace into which you copied the code and have you sourced the appropriate setup.bash file?
edit flag offensive delete link more

Comments

Thanks for the response. I have already seen it, and did all what was said there. Unfortunately, it didn't help.

saken gravatar image saken  ( 2017-02-08 07:06:44 -0500 )edit

when I first ran rosdep check it installed packages. but error still exists.

  1. I have installed all available ros-controllers
  2. I am always sourcing devel/setup.bash

Seems like I'm missing some dependencies which are not available for kinetic through sudo apt-get install

saken gravatar image saken  ( 2017-02-08 10:32:34 -0500 )edit

I have resolved it, but not in the correct way.. I just installed all available controllers by running sudo apt-get install ros*controller* Now everything works. I will try to find out which controller was missing. Thanks a lot!

saken gravatar image saken  ( 2017-02-08 10:57:31 -0500 )edit

Why do you feel this is not "the right way"? It looks like the packages in the book don't list their dependencies correctly. That would make rosdep not work, leading to these kind of problems. The only other course of action would then to install dependencies by hand, which you did.

gvdhoorn gravatar image gvdhoorn  ( 2017-02-08 11:37:23 -0500 )edit

I'd advise you to post an answer yourself (basically your "UPD") and then accepting that.

gvdhoorn gravatar image gvdhoorn  ( 2017-02-08 11:38:10 -0500 )edit
1

I felt it is a wrong way since I just installed all controllers, without finding out exactly which one was missing. I will post it as an answer as you suggested. Thank you!

saken gravatar image saken  ( 2017-02-08 12:01:16 -0500 )edit
0

answered 2020-06-14 09:39:06 -0500

thejose gravatar image

Run the following (replace "distro" with your ros specific distribution):

sudo apt-get install ros-distro*joint-trajectory-controller*

This installs the required controllers

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2017-02-08 04:53:04 -0500

Seen: 18,174 times

Last updated: Feb 08 '17