A joint control plugin for a parallel robot, the plugin does not work!

asked 2016-10-13 13:53:44 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hi, I hope you are doing well. I have provided the SDF model of a parallel robot to simulate it in the Gazebo and control its end-effector. Based on my knowledge, the closed kinematic chain must be provided in SDF format so I could not use the URDF and URDF based plugin to control my robot. However, I have inserted my robot in the Gazebo and I can set the joint angle and velocity by means of the provided plan in the right side of the Gazebo. It seems to work well! I have used the gazebo_ros plugin such as "joint_trajectory_plugin", "joint_state_publisher" in order to control the robot joints and get feedback them. I am able to get the feedback by "joint_state_publisher" but I could never manage to set the position or velocity by means of the "joint_trajectory_plugin". Predicated on this failure, I have written a plugin in order to set the joint position. But the plugin does not work and the position of the intended link does not change. I will appreciate if you help me.

The SDF of the considering robot is presented as below:

    <?xml version="1.0" encoding="utf-8"?>
<sdf version="1.5">
  <model name="Agile-eye">
    <pose>0 0 0.0523364278812051 1.5707963267949 0 0</pose>
    <link name="Base">
      <gravity>1</gravity>
      <self_collide>0</self_collide>
      <pose>0 0 0 0 0 0</pose>
      <must_be_base_link>1</must_be_base_link>
      <velocity_decay>
        <linear>0</linear>
        <angular>0</angular>
      </velocity_decay>
      <inertial>
        <mass>2.45302262810541</mass>
        <pose>0 0 0 0 0 0</pose>
        <inertia>
          <ixx>0.0174089005567679</ixx>
          <ixy>0.00386321027734225</ixy>
          <ixz>0.00224453213339039</ixz>
          <iyy>0.0163888871488208</iyy>
          <iyz>0.00191258456874747</iyz>
          <izz>0.021215632267225</izz>
        </inertia>
      </inertial>
      <collision name="Base_collision">
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://Agile-eye/meshes/Base_col.STL</uri>
          </mesh>
        </geometry>
        <surface>
          <contact>
            <ode>
              <kp>100000</kp>
              <kd>1</kd>
            </ode>
          </contact>
          <friction>
            <ode>
              <mu>0.2</mu>
              <mu2>0.1</mu2>
            </ode>
          </friction>
        </surface>
      </collision>
      <visual name="Base_visual">
        <pose>0 0 0 0 0 0</pose>
        <material>
          <ambient>0.752941176470588 0.752941176470588 0.752941176470588 1</ambient>
          <diffuse>0.752941176470588 0.752941176470588 0.752941176470588 1</diffuse>
        </material>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://Agile-eye/meshes/Base.STL</uri>
          </mesh>
        </geometry>
      </visual>
    </link>
<joint name="fixed to ground" type="revolute">
      <parent>world</parent>
      <child>Base</child>
       <axis>
        <limit>
          <lower>0</lower>
          <upper>0</upper>
        </limit>
        <xyz>0 0 1</xyz>
        </axis>
    </joint>
    <link name="arm1">
      <gravity>1</gravity>
      <self_collide>0</self_collide>
      <pose>0.09692 0.05666 0.0654 -1.5707963267949 0 0</pose>
      <must_be_base_link>0</must_be_base_link>
      <velocity_decay>
        <linear>0</linear>
        <angular>0</angular>
      </velocity_decay>
      <inertial>
        <mass>0.0402007076630336</mass>
        <pose>0 0 0 0 0 0</pose>
        <inertia>
          <ixx>0.00012884674184318</ixx>
          <ixy>6.13154456211418E-05</ixy>
          <ixz>4.16049597669714E-17</ixz>
          <iyy>4.84154728485539E-05</iyy>
          <iyz>4.6668041639536E-15</iyz>
          <izz>0.000176009253214268</izz>
        </inertia>
      </inertial>
      <collision name="arm1_collision">
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model ...
(more)
edit retag flag offensive close merge delete