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

p3d controller not working properly in groovy ?

asked 2013-06-13 05:03:11 -0600

prasanna.kumar gravatar image

I have a the model of a door in gazebo whose position I monitor using the p3d plugin. My algorithm for opening and closing the door is this

  • Find and set the yaw at which door can be assumed to be open/close.
  • Using the p3d controller get thecurrent yaw of the door joint (joint between door block and world).
  • Until the current yaw = goal yaw apply a force to open/close the door. Once reached, remove the force and kill the node.

This was perfectly working for me in fuerte gazebo (1.0.2). I recently moved all my gazebo stuff to groovy. Now, by this algorithm, the doors swings and opens but some problem occurs and the door model seems to vibrate in place (shakes) and the node does not kill itself. I am suspecting it could be a problem with the p3d controller, since the node performs perfectly well in fuerte. I could also be in the urdf file. This is my urdf.xacro

<?xml version="1.0" ?>
<robot name="${room_name}_door" xmlns:xacro="" xmlns:xi="" xmlns:gazebo="" xmlns:model="" xmlns:sensor="" xmlns:body="" xmlns:geom="" xmlns:joint="" xmlns:interface="" xmlns:rendering="" xmlns:renderable="" xmlns:controller="" xmlns:physics="">
    <property name="room_name" value="workroom_f0" />
    <property name="x_position" value="3.73" />
    <property name="y_position" value="7.1" />
    <property name="z_position" value="0.06" />
    <property name="x_world_offset" value="-5" />
    <property name="y_world_offset" value="-5" />
    <property name="lower_limit" value="-2.5" />
    <property name="orientation" value="1.57" />
    <joint name="${room_name}_door_joint" type="revolute">
        <axis xyz="0 0 1" />
        <parent link="world" />
        <child link="${room_name}_door_block" />
        <origin rpy="0 0 ${orientation}" xyz="${x_position + x_world_offset} ${y_position + y_world_offset} ${z_position}" />
        <limit effort="100.0" lower="${lower_limit}" upper="0.001" velocity="5" />
    <joint name="doorblock_door" type="fixed">
        <axis xyz="0 0 1" />
        <parent link="${room_name}_door_block" />
        <child link="${room_name}_door" />
        <origin rpy="0 0 0" xyz="0 0 0" />
    <link name="world" />
    <link name="${room_name}_door_block">
            <mass value="1" />
            <origin xyz="0 0 0" />
            <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1" iyz="0.0" izz="3" />
            <origin rpy="0 0 0" xyz="0 0 0" />
                <box size="0 0 0" />
            <origin rpy="0 0 0" xyz="0 0 0" />
                <box size="0 0 0" />
    <gazebo reference="${room_name}_door_block">
    <link name="${room_name}_door ...
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2013-11-06 22:02:27 -0600

Yashodhan gravatar image

How are you comparing the angles? It might be the case that the force applied and door dynamics are such that the angles is never exact, causing the vibrations.


edit flag offensive delete link more

Question Tools


Asked: 2013-06-13 05:03:11 -0600

Seen: 1,439 times

Last updated: Nov 06 '13