Gazebo | Ignition | Community
Ask Your Question

theNerd247's profile - activity

2016-11-01 00:05:08 -0500 received badge  Student (source)
2016-06-20 06:53:07 -0500 received badge  Famous Question (source)
2016-05-19 06:45:53 -0500 received badge  Famous Question (source)
2016-02-02 06:20:15 -0500 received badge  Famous Question (source)
2015-12-26 16:15:28 -0500 received badge  Notable Question (source)
2015-12-21 08:48:41 -0500 received badge  Popular Question (source)
2015-12-20 20:51:27 -0500 received badge  Editor (source)
2015-12-20 16:30:30 -0500 asked a question Inaccurate Pendulum Period

Hello,

I'm working on a pendulum model and I'm noticing some inaccuracies when running gazebo with the following world files and pendulum model. What I'm noticing is that the pendulum in the simulation has a wrong period (about a second later than expected). I expect the period to be 2.0071 - my pendulum has a length of 1 as seen in the model file - however after plotting the pose of the ball with respect to time I'm seeing that the period is actually ~2.84.

Currently I'm using ODE as the physics engine however Simbody and Bullet are giving the same results. Any ideas what might be causing this? Thanks!

Oh and I'm using gazebo-6.5.1

Model:

<?xml version='1.0'?>
<sdf version='1.5'>
  <model name='pendulum'>
    <link name='fixedPoint'>
      <pose>0 0 1 0 0 0</pose>
      <gravity>0</gravity>
      <visual name='visual'>
        <pose frame=''>0 0 0 0 -0 0</pose>
        <geometry>
          <sphere>
            <radius>0.01</radius>
          </sphere>
        </geometry>
        <material>
          <lighting>1</lighting>
          <script>
            <uri>file://media/materials/scripts/gazebo.material</uri>
            <name>Gazebo/Grey</name>
          </script>
          <shader type='pixel'/>
          <ambient>0.3 0.3 0.3 1</ambient>
          <diffuse>0.7 0.7 0.7 1</diffuse>
          <specular>0.01 0.01 0.01 1</specular>
          <emissive>0 0 0 1</emissive>
        </material>
        <cast_shadows>1</cast_shadows>
        <transparency>0</transparency>
      </visual>
      <collision name='collision'>
        <laser_retro>0</laser_retro>
        <max_contacts>10</max_contacts>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <sphere>
            <radius>0.01</radius>
          </sphere>
        </geometry>
        <surface>
          <friction>
            <ode>
              <mu>1</mu>
              <mu2>1</mu2>
              <fdir1>0 0 0</fdir1>
              <slip1>0</slip1>
              <slip2>0</slip2>
            </ode>
          </friction>
          <bounce>
            <restitution_coefficient>0</restitution_coefficient>
            <threshold>1e+06</threshold>
          </bounce>
          <contact>
            <collide_without_contact>0</collide_without_contact>
            <collide_without_contact_bitmask>1</collide_without_contact_bitmask>
            <collide_bitmask>1</collide_bitmask>
            <ode>
              <soft_cfm>0</soft_cfm>
              <soft_erp>0.2</soft_erp>
              <kp>1e+13</kp>
              <kd>1</kd>
              <max_vel>0.01</max_vel>
              <min_depth>0</min_depth>
            </ode>
            <bullet>
              <split_impulse>1</split_impulse>
              <split_impulse_penetration_threshold>-0.01</split_impulse_penetration_threshold>
              <soft_cfm>0</soft_cfm>
              <soft_erp>0.2</soft_erp>
              <kp>1e+13</kp>
              <kd>1</kd>
            </bullet>
          </contact>
        </surface>
      </collision>
    </link>

    <link name='ball'>
      <pose>0 0.008999 0.00004 0 0 0</pose>
      <gravity>1</gravity>
      <visual name='visual'>
        <pose frame=''>0 0 0 0 -0 0</pose>
        <geometry>
          <sphere>
            <radius>0.1</radius>
          </sphere>
        </geometry>
        <material>
          <lighting>1</lighting>
          <script>
            <uri>file://media/materials/scripts/gazebo.material</uri>
            <name>Gazebo/Grey</name>
          </script>
          <shader type='pixel'/>
          <ambient>0.3 0.3 0.3 1</ambient>
          <diffuse>0.7 0.7 0.7 1</diffuse>
          <specular>0.01 0.01 0.01 1</specular>
          <emissive>0 0 0 1</emissive>
        </material>
        <cast_shadows>1</cast_shadows>
        <transparency>0</transparency>
      </visual>
      <collision name='collision'>
        <laser_retro>0</laser_retro>
        <max_contacts>10</max_contacts>
        <pose>0 0 0 0 -0 0</pose>
        <geometry>
          <sphere>
            <radius>0.1</radius>
          </sphere>
        </geometry>
        <surface>
          <friction>
            <ode>
              <mu>1</mu>
              <mu2>1</mu2>
              <fdir1>0 0 0</fdir1>
              <slip1>0</slip1>
              <slip2>0</slip2>
            </ode>
          </friction>
          <bounce>
            <restitution_coefficient>0</restitution_coefficient>
            <threshold>1e+06</threshold ...
(more)
2015-12-11 15:21:24 -0500 received badge  Notable Question (source)
2015-12-11 15:21:24 -0500 received badge  Popular Question (source)
2015-11-29 12:44:57 -0500 asked a question PID Controller for Ball Joints

I'm rather new to Gazebo and I can't find this in the API anywhere. How do I control a ball joint using 3 PID controllers (one for each x-y-z axis)? Would it better to create 3 separate revolute joints that are orthogonal and create the controller this way? The reason that I ask is I'm creating a small robot arm that needs all 6 DOF I've gotten XYZ translation down using prismatic joints, now I need to add the rotational DOF for the end-effector. My current idea is to create a ball joint between my end-effector link and my second to last link and control the RPY of the joint using 3 separate PID controllers.

2015-11-20 23:06:28 -0500 received badge  Notable Question (source)
2015-11-19 02:43:53 -0500 received badge  Popular Question (source)
2015-11-13 11:02:25 -0500 asked a question Controlling Pose of a link directly.

I'm currently working with a model that has two links with a universal joint connecting the two. I would like to control the model as if a robot were gripping one of the links and moving it around. I don't have a robot model and designing one - or using a pre-existing one - right now is out of the question. Essentially I need to create a fixed link that is ignored by the physics engine and which I can move to any pose at any time in the simulation and it won't move. I've thought about making my link static - although I'm not 100% certain what this does as the SDF documentation says very little about what this tag does - however according to this question:

http://answers.gazebosim.org/question...

this is currently not possible. I've tried the following solution:

  1. create 3 links in series like a chain where the first of these links has a fixed joint between it and the world.
  2. Create a prismatic joint between each link in the chain to allow for translational positioning of my model in a plane.
  3. Create a ball joint between the link I want to control and the last link in the chain to enable setting the rotational pose of the link I want to control.

This solution allows me to set the pose of my link however I'm still facing the problem of gravity pulling my model down - that and it seems rather unnecessary. Any ideas?