qboticslabs / mastering_ros

This repository contains exercise files of the book "Mastering ROS for Robotics Programming"
https://www.packtpub.com/hardware-and-creative/mastering-ros-robotics-programming
468 stars 282 forks source link

Could not load controller 'joint_state_controller' because controller type 'joint_state_controller/JointStateController' does not exist. #10

Closed Ma2oud closed 7 years ago

Ma2oud commented 7 years ago

Getting this error when executing the following command !! Page number 104

$ roslaunch seven_dof_arm_gazebo seven_dof_arm_gazebo_control.launch


I tried to install following three package manually as explained here, but this does not fix the problem.

qboticslabs commented 7 years ago

Hi @Ma2oud Sorry for the trouble !!

Can you send me the screenshots and screencast video of this error!! You can send to my mail id

qboticslabs@gmail.com

Ma2oud commented 7 years ago

Hi

First I want to thank you for your quick reply.

Here is the screenshot

screenshot from 2016-09-04 14 29 41

qboticslabs commented 7 years ago

Ok. Thanks. You can remove the first joint_state_controller from seven_dof_arm_gazebo_control.launch file.

From the following line output="screen" ns="/seven_dof_arm" args="joint_state_controller

Ma2oud commented 7 years ago

I add the line that you said and undo all the changes that I've made in launch files... but this does not solve the problem...

Take a look at this new screen shot...

screenshot from 2016-09-04 15 00 26

qboticslabs commented 7 years ago

Did you install this package

$ sudo apt-get install ros-indigo-joint-state-controller

?

gavanderhoorn commented 7 years ago

If I'm not mistaken, Book: Mastering ROS for Robotics Programming, 2nd Edn; Chapter 3 - Simulating Robot using ROS & Gazebo on ROS Answers is by the same user, or is at least related.

myyerrol commented 7 years ago

@Ma2oud Maybe you can use follow commands to solve it.

$> sudo apt-get update
$> sudo apt-get install ros-indigo-joint-state-controller
$> rospack profile
Ma2oud commented 7 years ago

Hi everybody I appreciate your attention but I should say that none of above mentioned solutions, fixed the the problem...

@qboticslabs Yes, I've already installed "ros-indigo-joint-state-controller" package

@myyerrol I ran all these command and you can see the results in attached file... CommandResults.txt

gavanderhoorn commented 7 years ago

@Ma2oud: in the terminal where you normally start the launch file, what is the output of:

rospack find joint_state_controller

and the output of

ls -al /opt/ros/indigo/lib/libjoint_state_controller.so
Ma2oud commented 7 years ago

@gavanderhoorn

This is the output of "rospack find joint_state_controller" /opt/ros/indigo/share/joint_state_controller

And the one second command is: -rw-r--r-- 1 root root 110024 Jun 28 19:02 /opt/ros/indigo/lib/libjoint_state_controller.so

screenshot from 2016-09-05 13 54 46

qboticslabs commented 7 years ago

@Ma2oud You have problem with joint state controller or all controllers ? Is other controllers are working ?

Ma2oud commented 7 years ago

@qboticslabs Other controllers are working correctly..

Xianyong commented 7 years ago

The issue exists in Kinetic as well, fortunately, gavanderhoorn showed a way to go. Thanks a lot.

Ma2oud commented 7 years ago

@Xianyong Did you find the solution to fix this problem. If yes, would you please help me to fix it?

I have followed @gavanderhoorn suggestion but that didn't help me.

qboticslabs commented 7 years ago

@Ma2oud Can you send the launch file and code that you working now to qboticslabs@gmail.com. Also a video of loading the launch file.

Ma2oud commented 7 years ago

Hi everybody

As @qboticslabs suggest me via email, I installed a fresh ubuntu 14.04.5 and tried installing both ros jade and ros indigo in two separate virtual machines.

@ ROS Jade: Although running the project in ros jade using following command does not show any error, but it seems that joint_position controllers are not loaded correctly because after some second the robot collapsed due to its weight or something.

@ ROS Indigo: Here after running "roslaunch seven_dof_arm_gazebo seven_dof_arm_gazebo_control.launch" gazebo starts with an empty world. Here is the result of loading launch file:

... logging to /home/masoud/.ros/log/3b39aea8-7e32-11e6-bcbc-000c29c5ffc4/roslaunch-ubuntu-2830.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ubuntu:42659/

SUMMARY
========

PARAMETERS
 * /robot_description: <?xml version="1....
 * /rosdistro: indigo
 * /rosversion: 1.11.20
 * /seven_dof_arm/joint1_position_controller/joint: shoulder_pan_joint
 * /seven_dof_arm/joint1_position_controller/pid/d: 10.0
 * /seven_dof_arm/joint1_position_controller/pid/i: 0.01
 * /seven_dof_arm/joint1_position_controller/pid/p: 100.0
 * /seven_dof_arm/joint1_position_controller/type: position_controll...
 * /seven_dof_arm/joint2_position_controller/joint: shoulder_pitch_joint
 * /seven_dof_arm/joint2_position_controller/pid/d: 10.0
 * /seven_dof_arm/joint2_position_controller/pid/i: 0.01
 * /seven_dof_arm/joint2_position_controller/pid/p: 100.0
 * /seven_dof_arm/joint2_position_controller/type: position_controll...
 * /seven_dof_arm/joint3_position_controller/joint: elbow_roll_joint
 * /seven_dof_arm/joint3_position_controller/pid/d: 10.0
 * /seven_dof_arm/joint3_position_controller/pid/i: 0.01
 * /seven_dof_arm/joint3_position_controller/pid/p: 100.0
 * /seven_dof_arm/joint3_position_controller/type: position_controll...
 * /seven_dof_arm/joint4_position_controller/joint: elbow_pitch_joint
 * /seven_dof_arm/joint4_position_controller/pid/d: 10.0
 * /seven_dof_arm/joint4_position_controller/pid/i: 0.01
 * /seven_dof_arm/joint4_position_controller/pid/p: 100.0
 * /seven_dof_arm/joint4_position_controller/type: position_controll...
 * /seven_dof_arm/joint5_position_controller/joint: wrist_roll_joint
 * /seven_dof_arm/joint5_position_controller/pid/d: 10.0
 * /seven_dof_arm/joint5_position_controller/pid/i: 0.01
 * /seven_dof_arm/joint5_position_controller/pid/p: 100.0
 * /seven_dof_arm/joint5_position_controller/type: position_controll...
 * /seven_dof_arm/joint6_position_controller/joint: wrist_pitch_joint
 * /seven_dof_arm/joint6_position_controller/pid/d: 10.0
 * /seven_dof_arm/joint6_position_controller/pid/i: 0.01
 * /seven_dof_arm/joint6_position_controller/pid/p: 100.0
 * /seven_dof_arm/joint6_position_controller/type: position_controll...
 * /seven_dof_arm/joint7_position_controller/joint: gripper_roll_joint
 * /seven_dof_arm/joint7_position_controller/pid/d: 10.0
 * /seven_dof_arm/joint7_position_controller/pid/i: 0.01
 * /seven_dof_arm/joint7_position_controller/pid/p: 100.0
 * /seven_dof_arm/joint7_position_controller/type: position_controll...
 * /seven_dof_arm/joint_state_controller/publish_rate: 50
 * /seven_dof_arm/joint_state_controller/type: joint_state_contr...
 * /use_sim_time: True

NODES
  /seven_dof_arm/
    controller_spawner (controller_manager/spawner)
  /
    gazebo (gazebo_ros/gzserver)
    gazebo_gui (gazebo_ros/gzclient)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    urdf_spawner (gazebo_ros/spawn_model)

auto-starting new master
process[master]: started with pid [2845]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 3b39aea8-7e32-11e6-bcbc-000c29c5ffc4
process[rosout-1]: started with pid [2858]
started core service [/rosout]
process[gazebo-2]: started with pid [2861]
process[gazebo_gui-3]: started with pid [2865]
process[urdf_spawner-4]: started with pid [2869]
process[seven_dof_arm/controller_spawner-5]: started with pid [2871]
process[robot_state_publisher-6]: started with pid [2892]
[ WARN] [1474266489.659412310]: The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia.  As a workaround, you can add an extra dummy link to your URDF.
Gazebo multi-robot simulator, version 2.2.3
Copyright (C) 2012-2014 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

Gazebo multi-robot simulator, version 2.2.3
Copyright (C) 2012-2014 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

Msg Waiting for master.[ INFO] [1474266490.320870007]: Finished loading Gazebo ROS API Plugin.
[1;[ INFO] [1474266490.327345389]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
32mMsg Waiting for master
Msg Connected to gazebo master @ http://127.0.0.1:11345
Msg Publicized address: 192.168.23.131
spawn_model script started
[INFO] [WallTime: 1474266490.656926] [0.000000] Loading model xml from ros parameter
[INFO] [WallTime: 1474266490.663229] [0.000000] Waiting for service /gazebo/spawn_urdf_model
Warning [ModelDatabase.cc:334] Getting models from[http://gazebosim.org/models/]. This may take a few seconds.
[INFO] [WallTime: 1474266490.895841] [0.000000] Controller Spawner: Waiting for service controller_manager/load_controller

Msg Connected to gazebo master @ http://127.0.0.1:11345
Msg Publicized address: 192.168.23.131
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Warning [gazebo.cc:215] Waited 1seconds for namespaces.
Error [gazebo.cc:220] Waited 11 seconds for namespaces. Giving up.
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
Error [Node.cc:90] No namespace found
[WARN] [WallTime: 1474266521.091250] [0.000000] Controller Spawner couldn't find the expected controller_manager ROS interface.
[seven_dof_arm/controller_spawner-5] process has finished cleanly
log file: /home/masoud/.ros/log/3b39aea8-7e32-11e6-bcbc-000c29c5ffc4/seven_dof_arm-controller_spawner-5*.log
[ INFO] [1474266612.639856413, 0.021000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1474266612.683146731, 0.052000000]: Physics dynamic reconfigure ready.
[INFO] [WallTime: 1474266612.688845] [0.056000] Calling service /gazebo/spawn_urdf_model
[ INFO] [1474266613.327208078, 0.120000000]: Camera Plugin (robotNamespace = /), Info: Using the 'robotNamespace' param: '/'
[ INFO] [1474266613.329383071, 0.120000000]: Camera Plugin (robotNamespace = /), Info: Using the 'robotNamespace' param: '/'
[INFO] [WallTime: 1474266613.331247] [0.120000] Spawn status: SpawnModel: Successfully spawned model
Error [Plugin.hh:156] Failed to load plugin libgazebo_ros_control.so: libgazebo_ros_control.so: cannot open shared object file: No such file or directory
[ERROR] [1474266613.354918534, 0.127000000]: Tried to advertise a service that is already advertised in this node [/rgbd_camera/set_camera_info]
[ INFO] [1474266613.373138478, 0.141000000]: Camera Plugin (ns = /)  <tf_prefix_>, set to ""
[ INFO] [1474266613.375479446, 0.143000000]: Camera Plugin (ns = /)  <tf_prefix_>, set to ""
[ERROR] [1474266613.377109882, 0.145000000]: Tried to advertise a service that is already advertised in this node [/rgbd_camera/set_parameters]
[urdf_spawner-4] process has finished cleanly
log file: /home/masoud/.ros/log/3b39aea8-7e32-11e6-bcbc-000c29c5ffc4/urdf_spawner-4*.log
qboticslabs commented 7 years ago

@Ma2oud This error is because, gazebo is trying to load model from the online repository. It will take some time to load model from web .. You have to launch the file and wait for some time..

NishanthARao commented 5 years ago

Hi. I am very sorry, but i am 2 years old to this post. I had the same issue, and none of the solutions above worked for me. However, i found where i was going wrong. I thought it may help someone, if they have made the same mistake i did.

In my .xacro file, the name of my robot was "dd_robot", and everywhere, it was "dd_robot". But in the .yaml control file, i begin like this:

robot: joint_state_controller: type: ....................... etc

The mistake was the first very line of the file "robot:" I changed this to "dd_robot" and now everything is working fine.

I hope this helps.

rubenanapu commented 4 years ago

I had the same problem today and my solution was to source ~/catkin_ws/devel/setup.bash before launching gazebo (because my controller was on the ~/catkin_ws folder).

None of the aforementioned solutions worked.

ross114 commented 2 years ago

[INFO] [1631258741.960352, 0.484000]: Loading controller: joint1_position_controllers [ERROR] [1631258741.962060104, 0.486000000]: Could not load controller 'joint1_position_controllers' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/roboturdf1/joint1_position_controllers')? [ERROR] [1631258742.963366, 1.479000]: Failed to load joint1_position_controllers [INFO] [1631258742.963985, 1.480000]: Loading controller: joint3_position_controllers [ERROR] [1631258742.967105501, 1.483000000]: Could not load controller 'joint3_position_controllers' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/roboturdf1/joint3_position_controllers')? [ERROR] [1631258743.968263, 2.422000]: Failed to load joint3_position_controllers [INFO] [1631258743.969836, 2.424000]: Loading controller: joint4_position_controllers [ERROR] [1631258743.977474844, 2.432000000]: Could not load controller 'joint4_position_controllers' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/roboturdf1/joint4_position_controllers')? [ERROR] [1631258744.978182, 3.426000]: Failed to load joint4_position_controllers [INFO] [1631258744.979206, 3.427000]: Loading controller: joint5_position_controllers [ERROR] [1631258744.984165899, 3.432000000]: Could not load controller 'joint5_position_controllers' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/roboturdf1/joint5_position_controllers')? [ERROR] [1631258745.985598, 4.426000]: Failed to load joint5_position_controllers [INFO] [1631258745.986292, 4.426000]: Loading controller: joint6_position_controllers [ERROR] [1631258745.991938197, 4.433000000]: Could not load controller 'joint6_position_controllers' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/roboturdf1/joint6_position_controllers')? [ERROR] [1631258746.993427, 5.429000]: Failed to load joint6_position_controllers [INFO] [1631258746.994211, 5.430000]: Loading controller: joint7_position_controllers [ERROR] [1631258746.998072868, 5.434000000]: Could not load controller 'joint7_position_controllers' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/roboturdf1/joint7_position_controllers')? [ERROR] [1631258747.999516, 6.428000]: Failed to load joint7_position_controllers [INFO] [1631258748.000702, 6.429000]: Controller Spawner: Loaded controllers: [INFO] [1631258748.006823, 6.436000]: Started controllers: hello, i encountered this problem. who can help me out

98kje commented 1 year ago

I'm in the same situation. In my case, it's like this. SUMMARY

PARAMETERS

NODES / gazebo (gazebo_ros/gzserver) gazebo_gui (gazebo_ros/gzclient) /manipulator/ controller_spawner (controller_manager/spawner) mybot_spawn (gazebo_ros/spawn_model)

auto-starting new master process[master]: started with pid [25067] ROS_MASTER_URI=http://localhost:11311

setting /run_id to f738367a-be85-11ed-b4c1-e93312d8faa3 process[rosout-1]: started with pid [25077] started core service [/rosout] process[gazebo-2]: started with pid [25084] process[gazebo_gui-3]: started with pid [25087] process[manipulator/mybot_spawn-4]: started with pid [25091] process[manipulator/controller_spawner-5]: started with pid [25095] [INFO] [1678371811.581097, 0.000000]: Waiting for /clock to be available... [INFO] [1678371811.597115, 0.000000]: Loading model XML from ros parameter robot_description [INFO] [1678371811.601949, 0.000000]: Waiting for service /gazebo/spawn_urdf_model [ INFO] [1678371811.653511631]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting... [ INFO] [1678371811.654185335]: Finished loading Gazebo ROS API Plugin. [ INFO] [1678371811.703063745]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting... [ INFO] [1678371811.703868597]: Finished loading Gazebo ROS API Plugin. [ INFO] [1678371811.961827933, 0.005000000]: waitForService: Service [/gazebo/set_physics_properties] is now available. [ INFO] [1678371811.978022746, 0.020000000]: Physics dynamic reconfigure ready. [INFO] [1678371812.187902, 0.225000]: /clock is published. Proceeding to load the controller(s). [INFO] [1678371812.188734, 0.225000]: Controller Spawner: Waiting for service /manipulator/controller_manager/load_controller [INFO] [1678371812.206312, 0.243000]: Calling service /gazebo/spawn_urdf_model ../src/intel/isl/isl.c:2105: FINISHME: ../src/intel/isl/isl.c:isl_surf_supports_ccs: CCS for 3D textures is disabled, but a workaround is available. [INFO] [1678371812.383082, 0.363000]: Spawn status: SpawnModel: Successfully spawned entity [ INFO] [1678371812.407301802, 0.363000000]: Loading gazebo_ros_control plugin [ INFO] [1678371812.407489022, 0.363000000]: Starting gazebo_ros_control plugin in namespace: /manipulator/ [ INFO] [1678371812.407862058, 0.363000000]: gazebo_ros_control plugin is waiting for model URDF in parameter [/manipulator/robot_description] on the ROS param server. [ INFO] [1678371812.523896991, 0.363000000]: Loaded gazebo_ros_control. [INFO] [1678371812.792914, 0.631000]: Controller Spawner: Waiting for service /manipulator/controller_manager/switch_controller [INFO] [1678371812.794743, 0.633000]: Controller Spawner: Waiting for service /manipulator/controller_manager/unload_controller [INFO] [1678371812.796280, 0.635000]: Loading controller: joint_state_controller [ERROR] [1678371812.798777433, 0.638000000]: Could not load controller 'joint_state_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/manipulator/joint_state_controller')? [manipulator/mybot_spawn-4] process has finished cleanly log file: /home/kimjaen/.ros/log/f738367a-be85-11ed-b4c1-e93312d8faa3/manipulator-mybot_spawn-4*.log [ERROR] [1678371813.799996, 1.636000]: Failed to load joint_state_controller [INFO] [1678371813.800972, 1.637000]: Loading controller: arm_base_position_controller [ERROR] [1678371813.803131001, 1.639000000]: Could not load controller 'arm_base_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/manipulator/arm_base_position_controller')? [ERROR] [1678371814.804518, 2.639000]: Failed to load arm_base_position_controller [INFO] [1678371814.805490, 2.640000]: Loading controller: arm_base_position_controller [ERROR] [1678371814.807870321, 2.643000000]: Could not load controller 'arm_base_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/manipulator/arm_base_position_controller')? [ERROR] [1678371815.808145, 3.641000]: Failed to load arm_base_position_controller [INFO] [1678371815.809206, 3.643000]: Loading controller: set_link1_position_controller [ERROR] [1678371815.813717936, 3.647000000]: Could not load controller 'set_link1_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/manipulator/set_link1_position_controller')? [ERROR] [1678371816.814793, 4.646000]: Failed to load set_link1_position_controller [INFO] [1678371816.815688, 4.647000]: Loading controller: set_link2_position_controller [ERROR] [1678371816.819493918, 4.651000000]: Could not load controller 'set_link2_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/manipulator/set_link2_position_controller')? [ERROR] [1678371817.820442, 5.650000]: Failed to load set_link2_position_controller [INFO] [1678371817.821425, 5.651000]: Loading controller: gs_set2_position_controller [ERROR] [1678371817.823811658, 5.654000000]: Could not load controller 'gs_set2_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/manipulator/gs_set2_position_controller')? [ERROR] [1678371818.825043, 6.653000]: Failed to load gs_set2_position_controller [INFO] [1678371818.826025, 6.654000]: Loading controller: llink_gs_position_controller [ERROR] [1678371818.828227575, 6.656000000]: Could not load controller 'llink_gs_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/manipulator/llink_gs_position_controller')? Topic [/data://world/default/model/manipulator/plugin/gazebo_ros_control/joint_cmd] is not valid. [ERROR] [1678371819.828689, 7.654000]: Failed to load llink_gs_position_controller [INFO] [1678371819.830014, 7.656000]: Loading controller: rlink_gs_position_controller [ERROR] [1678371819.832349002, 7.658000000]: Could not load controller 'rlink_gs_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/manipulator/rlink_gs_position_controller')? [ERROR] [1678371820.833570, 8.658000]: Failed to load rlink_gs_position_controller [INFO] [1678371820.834455, 8.659000]: Controller Spawner: Loaded controllers: [INFO] [1678371820.837775, 8.663000]: Started controllers: ^C[manipulator/controller_spawner-5] killing on exit