Gazebo | Ignition | Community
Ask Your Question
0

libgazebo_ros_control joints behaviour

asked 2019-08-29 09:41:34 -0500

Eisenhorn gravatar image

Hello,

I am simulation an arm and i am using the libgazebo_ros_cobntrol plugin for gazebo.

For the tranmssion acturators I use a tag like this

  <transmission name="arm_joint_5_joint_transmssion">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="arm_joint_5">
        <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="arm_joint_5_motor">
        <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
        <mechanicalReduction>1</mechanicalReduction>
    </actuator>

What I have noticed is that no matter the mu/mu2 and dampening values the actuator has a behaviour as if the gear is self-locking. Even if throw an object at it and unload the trajectory controller the arm will stay in the same position after bouncing a little bit.

I would like a behaviour that the arm gives in if it is not actuated. Is this possible?

BR

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
0

answered 2020-11-04 10:23:28 -0500

Ricardo Pinto gravatar image

updated 2020-11-04 10:25:17 -0500

My experience with that plugin tells me that Position interface doesn't work very well with the laws of physics. Imagine if your robot instead of "moving" it makes micro teleports. It ignores the laws of physics. I tried that interface with a robotic arm, the robot moves perfectly but it cannot interact with other objects, even if they have minimum mass and infinite surface friction. With EffortJointInterfaces the arm can grab objects and move it around.

To interact with the world you need an EffortJointInterface for ALL the joints of your robot. The behavior you need (that the arm gives in if it is not actuated), needs to be made with a controller. You need a controller that listens the joints effort and "give in" when it has no actual objectives. I have no idea how you do that. But i believe its possible because i have seen colaborative robots with that kind of behavior, like UR5 for example.

edit flag offensive delete link more
0

answered 2019-08-29 09:56:22 -0500

kumpakri gravatar image

You want to use PositionJointInterface exactly when you need the arm to stay at the given position no matter what. Maybe consider using EffortJointInterface instead.

edit flag offensive delete link more

Comments

Ok, so that is intended behaviour. With the EffortJointInterface I could trigger the arm to collapse, but only if I unload the controller. Unfortunately thats not what I want. I would like to test the joint_tracetroy hold mode (see https://answers.ros.org/question/3310...)

Eisenhorn gravatar imageEisenhorn ( 2019-08-30 04:08:53 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2019-08-29 09:41:34 -0500

Seen: 585 times

Last updated: Nov 04 '20