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

No matching hardware interface found for 'hardware_interface/JointStateInterface' while loading interfaces

asked 2021-03-01 09:13:12 -0500

tirafesi gravatar image

I have a robot defined in a URDF file that I want to use in gazebo with ros-control.

The robot has multiple non-fixed joints, but I only want to control the wheels. The other non-fixed joints should move freely according to the movement of the wheels. For the wheels I need to write a transmission like so:

<transmission name="${prefix}_wheel_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <actuator name="${prefix}_wheel_motor">
        <mechanicalReduction>1</mechanicalReduction>
    </actuator>
    <joint name="${prefix}_wheel_joint">
        <hardwareInterface>hardware_interface/VelocityJointInterface</hardwareInterface>
    </joint>
</transmission>

My question is, how do I write a transmission for the other non-fixed joints so that their state is published by the JointStateController? I tried the following:

<transmission name="${prefix}_something_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <actuator name="${prefix}_something_motor">
        <mechanicalReduction>1</mechanicalReduction>
    </actuator>
    <joint name="${prefix}_something_joint">
        <hardwareInterface>hardware_interface/JointStateInterface</hardwareInterface>
    </joint>
</transmission>

But it results in the error No matching hardware interface found for 'hardware_interface/JointStateInterface' while loading interfaces for something_joint.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2021-03-01 10:03:44 -0500

gvdhoorn gravatar image

But it results in the error No matching hardware interface found for 'hardware_interface/JointStateInterface' while loading interfaces for something_joint.

that's because hardware_interface/JointStateInterface is not a valid value for the hardwareInterface element.

It should be one of

  • hardware_interface/PositionJointInterface
  • hardware_interface/VelocityJointInterface or
  • hardware_interface/EffortJointInterface

Documentation is not very clear on this, I admit.

(would be a great opportunity to contribute)

edit flag offensive delete link more

Comments

I see. So what should I do regarding the non-fixed joints that i do NOT want to control? Use PositionJointInterface? But if I use that, then it complaints about missing PID coefficients - which are useless to me since I don't want to control the joint. Should I just set those to random values in order to fix the error message?

tirafesi gravatar image tirafesi  ( 2021-03-01 10:23:53 -0500 )edit

I don't know right now.

That would also seem to be a different question.

I merely explained why you get that error.

I recommend you post your follow-up issues as a separate question, and accept the answer to this one.

gvdhoorn gravatar image gvdhoorn  ( 2021-03-01 10:37:24 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2021-03-01 09:13:12 -0500

Seen: 812 times

Last updated: Mar 01 '21