Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

I guess the problem came from the type of joint Controllers that was used in the package I started from : https://github.com/mit-racecar/racecar_gazebo

In this package, they used the following :

<transmission name="${name}_transmission" type="SimpleTransmission">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="${name}_joint">
        <hardwareInterface>EffortJointInterface</hardwareInterface>
    </joint>
    <actuator name="${name}_motor">
        <hardwareInterface>EffortJointInterface</hardwareInterface>
        <mechanicalReduction>1</mechanicalReduction>
    </actuator>
</transmission>

These joints created some violent peaks inside the internal PIDs of rosControl I tried to tune them without success: image description

Internal PID command in red. (or I assume the commands I sent are bounded by [pi/2 -pi/2].)

When I switched from the EffortJointInterface to a PositionJointInterface these peaks disappeared and the car stopped breaking. image description

I guess the problem came from the type of joint Controllers that was used in the package I started from : https://github.com/mit-racecar/racecar_gazebo

In this package, they used the following :

<transmission name="${name}_transmission" type="SimpleTransmission">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="${name}_joint">
        <hardwareInterface>EffortJointInterface</hardwareInterface>
    </joint>
    <actuator name="${name}_motor">
        <hardwareInterface>EffortJointInterface</hardwareInterface>
        <mechanicalReduction>1</mechanicalReduction>
    </actuator>
</transmission>

These joints created some violent peaks inside the internal PIDs of rosControl I tried to tune them without success: success:

image description

Internal PID command in red. (or I assume the commands I sent are bounded by [pi/2 -pi/2].)

When I switched from the EffortJointInterface to a PositionJointInterface these peaks disappeared and the car stopped breaking. breaking:

<transmission name="${namespace}${hinge_prefix}_hinge_trans" type="SimpleTransmission">
    <type>transmission_interface/SimpleTransmission</type>
    <actuator name="${namespace}${hinge_prefix}_hinge_motor">
        <hardwareInterface>PositionJointInterface</hardwareInterface>
        <mechanicalReduction>1</mechanicalReduction>
    </actuator>
    <joint name="${namespace}${hinge_prefix}_hinge">
        <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
    </joint>
</transmission>

image description

I guess the problem came from the type of joint Controllers that was were used in the package I started from : https://github.com/mit-racecar/racecar_gazebo

In this package, they used the following :

<transmission name="${name}_transmission" type="SimpleTransmission">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="${name}_joint">
        <hardwareInterface>EffortJointInterface</hardwareInterface>
    </joint>
    <actuator name="${name}_motor">
        <hardwareInterface>EffortJointInterface</hardwareInterface>
        <mechanicalReduction>1</mechanicalReduction>
    </actuator>
</transmission>

These joints created some violent peaks inside the internal PIDs of rosControl I tried to tune them without success:

image description

Internal PID command in red. (or I assume the commands I sent are bounded by [pi/2 -pi/2].)

When I switched from the EffortJointInterface to a PositionJointInterface these peaks disappeared and the car stopped breaking:

<transmission name="${namespace}${hinge_prefix}_hinge_trans" type="SimpleTransmission">
    <type>transmission_interface/SimpleTransmission</type>
    <actuator name="${namespace}${hinge_prefix}_hinge_motor">
        <hardwareInterface>PositionJointInterface</hardwareInterface>
        <mechanicalReduction>1</mechanicalReduction>
    </actuator>
    <joint name="${namespace}${hinge_prefix}_hinge">
        <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
    </joint>
</transmission>

image description

I guess the problem came from the type of joint Controllers that were used in the package I started from : https://github.com/mit-racecar/racecar_gazebo

In this package, they used the following :

<transmission name="${name}_transmission" type="SimpleTransmission">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="${name}_joint">
        <hardwareInterface>EffortJointInterface</hardwareInterface>
    </joint>
    <actuator name="${name}_motor">
        <hardwareInterface>EffortJointInterface</hardwareInterface>
        <mechanicalReduction>1</mechanicalReduction>
    </actuator>
</transmission>

These joints created some violent peaks inside the internal PIDs of rosControl I tried to tune them without success:

image description

Internal PID command in red. (or (Or I assume it is that, the commands I sent that I send are bounded by [pi/2 -pi/2].)

When I switched from the EffortJointInterface to a PositionJointInterface these peaks disappeared and the car stopped breaking:

<transmission name="${namespace}${hinge_prefix}_hinge_trans" type="SimpleTransmission">
    <type>transmission_interface/SimpleTransmission</type>
    <actuator name="${namespace}${hinge_prefix}_hinge_motor">
        <hardwareInterface>PositionJointInterface</hardwareInterface>
        <mechanicalReduction>1</mechanicalReduction>
    </actuator>
    <joint name="${namespace}${hinge_prefix}_hinge">
        <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
    </joint>
</transmission>

image description