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

Joint trajectory action rejected: Controller not connected

asked 2016-06-16 06:54:32 -0500

cschindlbeck gravatar image

updated 2016-06-20 09:42:56 -0500

Hello,

i get the following error when i try to connect MoveIt! to a KUKA Agilus via the kuka_experimental package. I try to first use the simulation environment.

[ERROR] [1466076139.148929605]: Joint trajectory action rejected: waiting for (initial) feedback from controller
[ WARN] [1466076139.149173520]: Controller  failed with error code INVALID_GOAL
[ WARN] [1466076139.149246314]: Controller handle  reports status FAILED

I suppose the controller is not connected to the joint_trajectory_action topic. However, my controller is running:

$ rosrun controller_manager controller_manager list
joint_state_controller - hardware_interface::JointStateInterface ( running )

How can i efficiently debug the problem?

EDIT:

I have loaded the hardware_controllers.yaml which isnt a controller_list and i get

[ERROR] [1466425266.321644220]: No controller_list specified.

Do i have to create a separate controller_list or should hardware_controller.yaml be formatted to be a controller_list?

These are (some of) the topics i see:

/joint_states
/joint_trajectory_action/cancel
/joint_trajectory_action/feedback
/joint_trajectory_action/goal
/joint_trajectory_action/result
/joint_trajectory_action/status
...
/position_trajectory_controller/command
/position_trajectory_controller/follow_joint_trajectory/cancel
/position_trajectory_controller/follow_joint_trajectory/feedback
/position_trajectory_controller/follow_joint_trajectory/goal
/position_trajectory_controller/follow_joint_trajectory/result
/position_trajectory_controller/follow_joint_trajectory/status

image description

<launch>
  <!-- The planning and execution components of MoveIt! configured to run -->
  <!-- using the ROS-Industrial interface. -->

  <!-- Non-standard joint names: -->
   <rosparam command="load" file="$(find kuka_rsi_hw_interface)/config/controller_joint_names.yaml"/>

  <!-- the "sim" argument controls whether we connect to a Simulated or Real robot -->
  <!--  - if sim=false, a robot_ip argument is required -->
    <arg name="sim" default="true" />
    <arg name="robot_ip" unless="$(arg sim)" />

    <!-- load the robot_description parameter before launching ROS-I nodes -->
    <include file="$(find agil_moveit_config)/launch/planning_context.launch" >
      <arg name="load_robot_description" value="true" />
    </include>

    <rosparam command="load" file="$(find agil_moveit_config)/config/controllers.yaml"/>

    <!-- remap topics to conform to ROS-I specifications -->
    <remap from="/position_trajectory_controller/follow_joint_trajectory" to="/joint_trajectory_action" />
    <remap from="/position_trajectory_controller/state" to="/feedback_states" />
    <remap from="/position_trajectory_controller/command" to="/joint_path_command"/>

    <!-- run the robot simulator and action interface nodes -->
    <group if="$(arg sim)">
      <include file="$(find industrial_robot_simulator)/launch/robot_interface_simulator.launch" />
      <include file="$(find kuka_rsi_hw_interface)/test/test_hardware_interface.launch" />
    </group>

    <include file="$(find agil_moveit_config)/launch/move_group.launch">
      <arg name="publish_monitored_planning_scene" value="true" />
    </include>

    <include file="$(find agil_moveit_config)/launch/moveit_rviz.launch">
      <arg name="config" value="true"/>
    </include>

    <include file="$(find agil_moveit_config)/launch/default_warehouse_db.launch" />

  </launch>
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2016-06-16 08:26:53 -0500

gvdhoorn gravatar image

updated 2016-06-24 10:01:40 -0500

Update: I've just created an example MoveIt configuration package for the KR 6 R900 sixx, see the kr6r900sixx_moveit_rsi_convenience in my fork of ros-industrial/kuka_experimental.

See also my answer in MoveIt and ROS-Industrial: No controller_list specified.


This is probably a namespacing issue, or you don't load the joint_trajectory_controller (the joint_state_controller only reports joint states, it doesn't actually control any actuators (confusing, I know)).

For the namespace: from your previous question I gather that you have your moveit_planning_execution.launch file configured for the typical ROS-Industrial driver. That is fine, but that assumes that the ActionServer is listening on topics without any additional namespace prefixed. The ros_control infrastructure by default runs its joint_trajectory_controller under a namespace. Either remove the namespace, or remap the topics in your launch file. See abb_experimental/abb_irb120_gazebo/launch/irb120_gazebo.launch for an example (for ABB and Gazebo, but the idea is the same).

If you are not loading the joint_trajectory_controller, you'll want to add that to your ros_control configuration yaml that loads the rest of your controllers. For the kuka_rsi_hw_interface package, it should already be loaded (here, see also the test sub dir of kuka_rsi_hw_interface for an example).

edit flag offensive delete link more

Comments

I started again from scratch. Instead of creating a controllers.yaml like in the ROS Industrial tutorial, i just load the param file hardware_controllers.yaml. Apparently that is not a controller list and i get: [ERROR] [1466425266.321644220]: No controller_list specified.

cschindlbeck gravatar image cschindlbeck  ( 2016-06-20 07:24:41 -0500 )edit

According to rqt_graph, the kuka_hardware_interface node seems to be connected to the joint_trajectory_action after the remapping, so this problem might be solved, i still have problems with the controller list

cschindlbeck gravatar image cschindlbeck  ( 2016-06-20 07:48:25 -0500 )edit

The test/test_hardware_interface.launch file should show you how to load things. Make sure to first load your URDF to the parameter server.

gvdhoorn gravatar image gvdhoorn  ( 2016-06-20 07:59:58 -0500 )edit

Btw, I've captured the difficulty users run into when trying to set this up (without any prior experience with ros_control) with ros-industrial/kuka_experimental#27.

gvdhoorn gravatar image gvdhoorn  ( 2016-06-20 08:01:14 -0500 )edit

Also: make sure to update your local clone of kuka_experimental. I've updated some bits related to the rsi hw interface recently.

gvdhoorn gravatar image gvdhoorn  ( 2016-06-20 08:03:53 -0500 )edit

Do i need to create another controllers.yaml file like described in http://wiki.ros.org/Industrial/Tutori... or is the hardware_controllers.yaml file sufficient? If the latter is the case, wouldnt it need a controller_list prefix of some sort?

cschindlbeck gravatar image cschindlbeck  ( 2016-06-20 08:46:01 -0500 )edit

i have included my launch file for MoveIt. Is there an error evident? Maybe it would be helpful for others too to include one in the repository.

cschindlbeck gravatar image cschindlbeck  ( 2016-06-20 09:22:23 -0500 )edit

The main issue is that I meant for the files in the test/ directory to be a template / inspiration for your own launch file, not necessarily to be re-used directly.

gvdhoorn gravatar image gvdhoorn  ( 2016-06-24 10:00:15 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2016-06-16 06:54:32 -0500

Seen: 1,675 times

Last updated: Jun 24 '16