Home | Tutorials | Wiki | Issues
Ask Your Question

raequin's profile - activity

2018-11-09 08:33:46 -0600 received badge  Necromancer (source)
2018-11-09 08:33:46 -0600 received badge  Self-Learner (source)
2018-10-15 08:13:45 -0600 received badge  Teacher (source)
2018-10-15 08:13:45 -0600 received badge  Necromancer (source)
2018-10-15 08:13:45 -0600 received badge  Self-Learner (source)
2018-09-19 08:32:31 -0600 commented question Issue with the post-grasp motion in gazebo

Could you post a video (even to YouTube) showing the problem? SimpleScreenRecorder is an easy-to-use screen-capture app

2018-09-17 14:03:18 -0600 marked best answer Friction insufficient in grasping simulation

Update 2

Following some advice below I changed the ROS controller from EffortJointInterface to PositionJointInterface and this seems to be a step in the right direction, the object moves vertically a little bit, but it still does not grasp properly. I've varied the joint effort limit and proportional gain but it seems like sometimes the force is too high, causing instability as shown in the animation, or else it is too low and the object just slips out of the gripper. Parameters I've varied are mu, mu2, kp, kd, min_depth, and max_vel, even restoring them to their default values; all to no good effect.

image description

Original question

For an application where a manipulator picks up a cylinder I have created a primitive gripper with a ROS SimpleTransmission and EffortJointInterface. The Gazebo model for the cylinder comes from an STL file. This is using Gazebo 9 and ROS Kinetic. In Gazebo the gripper can push the cylinder around but it does not pick it up; the cylinder just slides through the gripper as shown in the animation.

image description

I've changed the friction coefficients in both the gripper urdf and the cylinder sdf to 100.0 (this question used to say 99999.9 but following an answer below I made them 100.0 instead). I also reduced the mass of the cylinder. The effort limit on the joint I set to 999999.9, just to try to get it to grip really hard. The integral gain is 1.0 and the robot pauses after gripping to give time for the error integral to grow (the cylinder keeps the gripper from closing all the way).

Part of the gripper urdf and the entire cylinder sdf are pasted below the animation. Can you tell me what I need to do to get a gripper to pick up this object?

Update: Because I thought perhaps there was insufficient contact between the cylinder and flat gripper, I changed the object model to a block and made the gripper taller. Like the cylinder, the block has mass of 0.1 and friction coefficients of 100. This animation shows that the result is the same as before.

image description

Here is the result of View --> Contacts.

image description

Part of gripper urdf

  <!-- Prismatic joint -->
  <joint name="gripper_joint" type="prismatic">
    <origin xyz="${2 * gripper_side_block_width + gripper_thickness} 0 0" rpy="0 0 0" />
    <parent link="gripper_wide_block_p" />
    <child link="gripper_wide_block_d" />
    <limit effort="999999.9" lower="-100" upper="100" velocity="0.5"/>
  </joint>

  <transmission name="gripper_joint_transmission">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="gripper_joint">
      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
    </joint>
    <actuator name="gripper_joint_motor">
      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>

  <!-- High friction on gripper -->
  <gazebo reference="gripper_wide_block_p">
    <mu1>100.0</mu1>
    <mu2>100.0</mu2>
    <minDepth>0.003</minDepth>  
    <maxVel>0</maxVel>  
  </gazebo>

  <gazebo reference="gripper_wide_block_d">
    <mu1>100.0</mu1>
    <mu2>100.0</mu2>
    <minDepth>0.003</minDepth>  
    <maxVel>0</maxVel>  
  </gazebo>    
</robot>

Cylinder sdf

<sdf version='1.6'>
  <model name='Cone100'>
    <link name='Cone100'>
      <pose frame=''>0 0 0 0 -0 0</pose>
      <inertial>
        <pose ...
(more)
2018-09-17 14:02:41 -0600 answered a question Friction insufficient in grasping simulation

The cause behind this unrealistic interaction (that is, this lack of friction) is the use of PositionJointInterface for

2018-09-17 14:02:34 -0600 marked best answer Grasping unable to lift object

Grasping is not working in this primitive case I've made. The object is a box of mass 1 and default friction and contact parameters. The gripper uses two prismatic joints to move two c-shaped links together. All these are shown in this image. Note the gripper-joint coordinate frames (the x- and z-direction vectors are visible).

image description

When the gripper closes on the box and the robot then moves upward, the box does not get lifted, as shown in this animation (it's for a taller gripper than above but the behavior is identical, also the gripper in the animation used just one prismatic joint). Since the normal force between the gripper and box is 200 N (that's what I have the joint effort set at, as shown in the sdf below) then the lifting force should be at least 200 N, while 9.81 N should suffice to lift the box. Do you have an idea why the box doesn't go up?

image description

The following plots were made via

rqt_plot ft_senr_topic_p/wrench/force/x, ft_sensor_topic_p/wrench/force/z, ft_sensor_topic_d/wrench/force/x, ft_sensor_topic_d/wrench/force/z

to graph the x and z components of the joint forces for the two prismatic gripper joints. In this one the joints are controlled with the EffortJointInterface. When the x components drop down, at about 28.6 seconds, that's when the gripper is higher than the box and it closes.

image description

For this plot the gripper friction coefficient is changed to 100, which appears to have made no change.

image description

The final plot is with mu=100 and using the PositionJointInterface. At about 24.4 seconds On this one, the x-components drop down. That's when the robot starts to move upward (prior to that it's stationary with the gripper closed around the box). The spikes after that, at 24.8, are when the gripper clears the box. It's odd to me that one joint has a positive z-component and the other has a negative z-component of force.

image description

Update

In an attempt to circumvent this problem I made an object that's wider in the middle and gripper blocks to match it. In theory, if the gripper stayed at its closed position then friction would not be required for lifting the object. I increased the effort limit on the joints from 200 to 500.

With 'EffortJointInterface' the same problem occurs as with the box, and with the PositionJointInterface the grasp is unstable and the object goes flying away.

To battle the instability I changed max_vel and min_depth on both the gripper and object to 0 and 0.001, respectively. Alas, the simulation remained unstable with PositionJointInterface even with these changes.

Here is an animation and force plot when using EffortJointInterface.

image description

image description

Here is an animation and force plot when using PositionJointInterface.

image description

image description

Here is the sdf of the object.

<sdf version='1.6'>
  <model name='wideCone'>
    <link name='wideCone'>
      <pose frame=''>0 0 0 0 -0 0</pose>
      <inertial>
        <pose frame=''>-0 0 0 ...
(more)
2018-09-17 14:01:58 -0600 answered a question Grasping unable to lift object

The cause behind this unrealistic interaction (that is, this lack of friction) is the use of PositionJointInterface for

2018-09-17 13:58:37 -0600 marked best answer Physics problem with simple movement of grasped object

The robot tool is a prismatic gripper with four rods that slip into matching holes on the object to be grasped. Using this gripper to move the object works fine for motion perpendicular to the rod axes. In the video, for example, the rods are parallel to the world x-axis so motion in the z-y plane is fine; the robot lifts the object then translates in the negative y-direction okay. I think the problem is that the friction force is not being computed well because when the robot translates in the x-direction the object seems to stay put until it reaches the end of the rod and then it goes berserk. (If you look closely in the second video it can be seen that the gripper starts to move to the right and the object stays still. I guess the object crosses the camera in that video so we get to see the holes and rods inside the object.)

object and gripper

object and gripper closeup

There is a second reason I think the friction calculation is to blame: a different pick-and-place simulation I made this year had problems lifting objects via friction. See Question 1, Question 2, and Question 3.

==========

update: This video where I replaced the gripper with a rigid forklift-type attachment lends weight, I think, to the idea that the problem is due to physics (friction?) and not the ROS controller or something.

forks instead of gripper

==========

I've tried using all four physics engines and modifying physics tags in the world file, as well as collision surface tags in both the object sdf and the gripper urdf. It's apparent that changing these parameters has some effect (though mu1 and mu2 don't make any difference) but the problem persists. The files are pasted below.

It also seems to me that this could be a problem to do with Gazebo 9, which is what I moved to because the previous project had a mobile base that could not move due to this bug with Gazebo 7 and ros_control. Since this simulation does not have a mobile base I will try reverting to Gazebo 7 to see if that fixes the gripping problem.

update: The behavior is identical with Gazebo 7. I've seen the same thing on two computers running Gazebo 9 and now one computer running Gazebo 7.

An additional tidbit: if the mass of the object is too high (though still less than 1) it will fall during the upward motion. So that's fun :-/

World file:

<sdf version='1.5'>
  <world name='default'>
    <!-- A global light source -->
    <include>
      <uri>model://sun</uri>
    </include>

    <!-- A ground plane -->
    <include>
      <uri>model://ground_plane</uri>
    </include>

    <!-- Set physics parameters to hopefully improve contact behavior -->
    <!-- Default max_step_size is 0.001 -->
    <!-- Product of r_t_u_r and m_s_s gives target realTimeFactor, I think.  Default is 1000. -->
    <!-- Default iters is 50 -->
    <physics type="ode">
      <max_step_size>0.0005</max_step_size>  
      <real_time_update_rate>2000</real_time_update_rate>  
      <ode>
    <solver>
      <iters>100</iters>  
    </solver>
      </ode>
    </physics>
  </world>
</sdf>

Object sdf:

<sdf version='1.6'>
  <model name='object'>
    <link name='object ...
(more)
2018-09-17 13:57:51 -0600 answered a question Physics problem with simple movement of grasped object

The cause behind this unrealistic interaction (that is, this lack of friction) is the use of PositionJointInterface for

2018-09-16 20:46:58 -0600 edited question Got controller gains for six-axis manipulator?

Got controller gains for six-axis manipulator? Do you have working PID gains for the effort_controllers/JointTrajectoryC

2018-09-16 20:46:26 -0600 asked a question Got controller gains for six-axis manipulator?

Got controller gains for six-axis manipulator? Do you have working PID gains for the effort_controllers/JointTrajectoryC

2018-09-13 12:59:47 -0600 received badge  Famous Question (source)
2018-09-06 09:50:40 -0600 received badge  Nice Question (source)
2018-09-06 09:50:38 -0600 received badge  Notable Question (source)
2018-09-05 09:52:50 -0600 edited question Anyone who's succeeded with grasping using ROS and Gazebo, what advice do you have to offer?

Anyone who's succeeded with grasping using ROS and Gazebo, what advice do you have to offer? There are a few Gazebo simu

2018-09-05 09:51:11 -0600 edited question Anyone who's succeeded with grasping using ROS and Gazebo, what advice do you have to offer?

Anyone who's succeeded with grasping using ROS and Gazebo, what advice do you have to offer? There are a few Gazebo simu

2018-09-05 09:50:55 -0600 received badge  Popular Question (source)
2018-09-04 09:34:42 -0600 edited question Anyone who's succeeded with grasping using ROS and Gazebo, what advice do you have to offer?

Anyone who's succeeded with grasping using ROS and Gazebo, what advice do you have to offer? There are a few Gazebo simu

2018-09-04 09:34:02 -0600 edited question Anyone who's succeeded with grasping using ROS and Gazebo, what advice do you have to offer?

Anyone who's succeeded with grasping using ROS and Gazebo, what advice do you have to offer? There are a few Gazebo simu

2018-09-04 09:33:07 -0600 asked a question Anyone who's succeeded with grasping using ROS and Gazebo, what advice do you have to offer?

Anyone who's succeeded with grasping using ROS and Gazebo, what advice do you have to offer? There are a few Gazebo simu

2018-08-23 11:57:25 -0600 marked best answer Mobile arm simulation behaves strangely when adding ros_control plugin

Greetings. My model combining a simple mobile base with the UR10 acts strangely when I add

<plugin name="ros_control" filename="libgazebo_ros_control.so" />

which is needed for controlling the UR10 joints. The strange behavior is that the mobile robot resists motion (or maybe it's just the mobile base that does this). Two examples:

(1) If I publish a large velocity twist to the cmd_vel topic for the differential_drive_controller on the mobile base the two wheels spin quickly but the robot rotates only very slowly.

(2) If I publish a positive z-position to set_model_state, effectively dropping the robot from this height, it falls very slowly to the ground. It falls so slowly that I was easily able to select the area to grab for this screenshot. (The gap between the mobile base and the arm base is normal for the UR10. It's present even with the ur_gazebo ur10.launch simulation.)

image description

The "real time factor" is 1.00 so it's not as if the simulation is running slowly when the plugin is added. When I don't add the plugin the robot arm is floppy but it moves quickly, as one would expect (the base moves it around at the desired rate and it falls as fast as normal). The two controllers both seem to be working well. It's just that things overall get weird when I add the arm_controller. If I keep it and remove the differential_drive_controller the strange behavior is still present.

I will look through the husky simulator with UR5 enabled to try to find what is wrong with my robot.

When publishing an arm pose to arm_controller/command the manipulator moves at a reasonable speed relative to its base but the overall mobile robot is still very slow. For example, if I drop it from two meters and publish a manipulator pose the arm moves fine but the entire robot falls very slowly.

For reference, here is the source (except for ur10.urdf.xacro). The offending gazebo plugin tag is found in models/common.gazebo.xacro.

2018-08-23 09:43:10 -0600 answered a question gazebo7 hardware_interface/PositionJointInterface EffortJointInterfacerobot being hung up

This is a known problem with Gazebo 7. The solution for me was to use Gazebo 9 and the latest (at the time) version of

2018-08-17 11:41:07 -0600 commented answer Problems with grasping an object: need to wait 15s until the object gets attached to the gripper

Though grasping appears to be working for some users: https://ieeexplore.ieee.org/document/7090732/.

2018-08-17 11:40:43 -0600 commented answer Does the gripper tag still work in Gazebo 7?

It seems that grasping works fine in this simulation (https://ieeexplore.ieee.org/document/7090732/) without needing the

2018-08-17 11:35:09 -0600 commented answer Does the gripper tag still work in Gazebo 7?

As far as you know is this the only means of grasping in Gazebo? Does your implementation require the 5--15 seconds men

2018-08-17 11:32:36 -0600 commented answer Problems with grasping an object: need to wait 15s until the object gets attached to the gripper

Thanks for answering. Unfortunately, I've been unable to perform grasping in either Gazebo 7 or 9. http://answers.gaze

2018-08-17 11:32:16 -0600 commented answer Problems with grasping an object: need to wait 15s until the object gets attached to the gripper

Thanks for answering. Unfortunately, I've been unable to perform grasping in either Gazebo 7 or 9. http://answers.gaze

2018-08-15 01:22:04 -0600 received badge  Famous Question (source)
2018-08-14 10:29:45 -0600 commented question Physics problem with simple movement of grasped object

For some unknown reason I did not receive email notifications about your comments. Thanks for responding! @Raskkii, as

2018-08-14 10:26:30 -0600 commented question Physics problem with simple movement of grasped object

For some unknown reason I did not receive email notifications about your comments. Thanks for responding! @Raskkii, as

2018-08-14 09:37:55 -0600 edited question Physics problem with simple movement of grasped object

Physics problem with simple movement of grasped object The robot tool is a prismatic gripper with four rods that slip in

2018-08-10 08:07:53 -0600 received badge  Notable Question (source)
2018-08-10 04:31:37 -0600 received badge  Nice Question (source)
2018-08-09 15:58:31 -0600 received badge  Popular Question (source)
2018-08-09 14:24:47 -0600 edited question Physics problem with simple movement of grasped object

Physics problem with simple movement of grasped object The robot tool is a prismatic gripper with four rods that slip in

2018-08-09 13:29:21 -0600 edited question Physics problem with simple movement of grasped object

Physics problem with simple movement of grasped object The robot tool is a prismatic gripper with four rods that slip in

2018-08-09 11:16:07 -0600 edited question Physics problem with simple movement of grasped object

Physics problem with simple movement of grasped object The robot tool is a prismatic gripper with four rods that slip in

2018-08-09 10:52:36 -0600 edited question Physics problem with simple movement of grasped object

Problem with simple movement of grasped object The robot tool is a prismatic gripper with four rods that slip into match

2018-08-09 10:49:53 -0600 asked a question Physics problem with simple movement of grasped object

Problem with simple movement of grasped object The robot tool is a prismatic gripper with four rods that slip into match

2018-08-08 21:14:11 -0600 commented answer Setting contact coefficients

Since I'm currently working on the same type problem I read through this post and your answer. Question: shouldn't max_

2018-08-08 21:12:14 -0600 commented question Setting contact coefficients

Hey, there, I realize this question of your is really old but as I'm currently working on the same type problem I want t

2018-07-10 08:48:02 -0600 received badge  Famous Question (source)
2018-06-13 02:04:55 -0600 marked best answer What are the SDF Damping Units?

Here's the description of SDF joint --> axis --> dynamics --> damping, "The physical velocity dependent viscous damping coefficient of the joint." Can you tell me what units this number is interpreted as having.

2018-05-29 09:59:26 -0600 commented question Is it possible to decrease the ground_plane size ?

What if you put a 100x100 cuboid on top of ground_plane? Then the robot would fall off.

2018-05-29 09:16:19 -0600 edited question Grasping unable to lift object

Problem with simple grasping simulation Grasping is not working in this primitive case I've made. The object is a box o