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

No valid hardware interface element found in joint

asked 2014-07-15 14:39:57 -0500

rnunziata gravatar image

updated 2014-07-18 13:32:04 -0500

I am getting the following error trying to load simulation interface for gazebo ros . This worked in hydro but after moving to ubuntu 14 - indigo I now get these errors. I can not see any thing that has changed in the documentation for this feature. It there a indigo-devel lib I need? I pull all software from ubuntu software center. I also compiled gazebo-ros-pkgs from source from indigo-devel.

[ERROR] [1405708119.053840656]: No valid hardware interface element found in joint 'joint1'.
[ERROR] [1405708119.053997707]: Failed to load joints for transmission 'tran1'.
[ERROR] [1405708119.054095180]: No valid hardware interface element found in joint 'joint2'.
[ERROR] [1405708119.054185473]: Failed to load joints for transmission 'tran2'.
[ INFO] [1405708119.161913723]: Loaded gazebo_ros_control.
[ERROR] [1405708120.087262628, 0.468000000]: Exception thrown while initializing controller joint1_position_controller.
Could not find resource 'joint1' in 'hardware_interface::EffortJointInterface'.
[ERROR] [1405708120.087374119, 0.468000000]: Initializing controller 'joint1_position_controller' failed
[ERROR] [1405708121.093701156, 1.280000000]: Exception thrown while initializing controller joint2_position_controller.
Could not find resource 'joint2' in 'hardware_interface::EffortJointInterface'.
[ERROR] [1405708121.093770162, 1.281000000]: Initializing controller 'joint2_position_controller' failed



In Gazebo:

    <joint name='joint2' type='revolute'>
        <pose>0 0 0.03 0 1.5707 1.5707</pose>
        <child>right_wheel</child>
        <parent>base_link</parent>
        <axis>
          <xyz>0 1 0</xyz>
          <limit>
            <lower>-1e+16</lower>
            <upper>1e+16</upper>
          </limit>
        </axis>
      </joint>
      <plugin name='ros_control' filename='libgazebo_ros_control.so'>
        <robotNamespace>/rrbot</robotNamespace>
        <robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
      </plugin>


In URDL .xmacro

  <transmission name="tran2">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="joint2"/>
    <actuator name="motor2">
      <hardwareInterface>EffortJointInterface</hardwareInterface>
      <mechanicalReduction>1</mechanicalReduction>
      <motorTorqueConstant>10</motorTorqueConstant>
    </actuator>
  </transmission>



In Yaml

rrbot:
  # Publish all joint states -----------------------------------
  joint_state_controller:
    type: joint_state_controller/JointStateController
    publish_rate: 10

  # Position Controllers ---------------------------------------
  joint1_position_controller:
    type: effort_controllers/JointVelocityController
    joint: joint1
    pid: {p: 40, i: 1, d: .1, i_clamp: 1}
  joint2_position_controller:
    type: effort_controllers/JointVelocityController
    joint: joint2
    pid: {p: 40, i: 1, d: .1, i_clamp: 1}
edit retag flag offensive close merge delete

Comments

I can't help you with your actual problem, but might I suggest you change your question title to something a little more descriptive? Your current title is rather vague.

gvdhoorn gravatar image gvdhoorn  ( 2014-07-15 14:58:07 -0500 )edit

thank you...it was indeed vague

rnunziata gravatar image rnunziata  ( 2014-07-15 15:31:30 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
16

answered 2014-07-20 13:58:04 -0500

lockandfire gravatar image

updated 2014-07-20 13:59:30 -0500

Hello. I met the same problem as you. Finally I find out the reason is that in this version of ros_control/transmission_interface/transimission_parser.cpp , the parser will check if there are <hardwareinterface> tags in both <joint> section and <actuator> section. But in rrbot and other gazebo example, only <actuator> has <hardwareinterface> tag. Therefore this error occurs.

By adding <hardwareinterface> tags to <joint> section, this error disappears. For example, in rrbot.xacro, change

<joint name="joint1"/>

as:

  <transmission name="tran1">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="joint1">
      <hardwareInterface>EffortJointInterface</hardwareInterface>
    </joint>
  </transmission>
edit flag offensive delete link more

Comments

This seems to work..thanks.. , not sure if this is a gazebo or ros issue. I can not find documentation of how or why this changed. Any thoughts on this?

rnunziata gravatar image rnunziata  ( 2014-07-20 20:22:53 -0500 )edit

It seems to be a ros issue with indigo because this change is found in indigo version of ros_control pkg. I don't know why ...

lockandfire gravatar image lockandfire  ( 2014-07-22 02:52:07 -0500 )edit

I have posted an issue in the ros_control bug tracker: https://github.com/ros-controls/ros_control/issues/177

Arn-O gravatar image Arn-O  ( 2014-08-02 01:49:18 -0500 )edit
Dave Coleman gravatar image Dave Coleman  ( 2015-01-10 18:20:25 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2014-07-15 14:39:57 -0500

Seen: 9,460 times

Last updated: Jul 20 '14