Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

xArm7 Gripper can't Grasp Objects #83

Open
jonzamora opened this issue Jul 28, 2024 · 5 comments
Open

xArm7 Gripper can't Grasp Objects #83

jonzamora opened this issue Jul 28, 2024 · 5 comments
Labels
enhancement New feature or request

Comments

@jonzamora
Copy link

Which model is the issue affecting?

What is the issue?

  • I'm working on a task where an xArm7 can grasp and lift a cube with the help of mink, however, I ran into an issue with the gripper.
xarm-mink.mp4

Could someone help me debug the xArm7 gripper so it can grasp the cube properly?

I tried all the suggestions mentioned in google-deepmind/mujoco#786 and #54, though my attempts were unsuccessful so far.

Is there any additional context you can provide (e.g., a spec sheet or a URDF to show a value mismatch)?

@jonzamora jonzamora added the bug Something isn't working label Jul 28, 2024
@kevinzakka
Copy link
Collaborator

I don't have a lot of bandwidth to fix this right now, but some things that can be done to improve this gripper:

  • Custom geom colliders for the finger pads, like in the Robotiq model. Splitting into 2 boxes per pad for more contacts is even better.
  • Adding <option cone="elliptic" impratio="10"/>.
  • The forcerange on the gripper actuator seems excessively high (100 N?)
  • Adding armature to the joints as was done with the Robotiq model for a bit more stability.

@kevinzakka kevinzakka added enhancement New feature or request and removed bug Something isn't working labels Jul 29, 2024
@s1lent4gnt
Copy link

s1lent4gnt commented Dec 14, 2024

Hi,
I tested your robot arm implementation (@jonzamora) for grasping tasks, following @kevinzakka's recommendations. The results showed improved grasping performance, but it's still not as effective as the Robotiq hand. Here are the modifications I made and the results obtained:

  • Added the following option:

<option impratio="30" timestep=".002" cone="elliptic" noslip_iterations="3"/>

  • Increased friction for the object:

<geom name="red_cube" type="box" mass="0.1" pos=".39 0 0.025" size=".025 .025 .025" rgba="1 0 0 1" friction="2" priority="1"/>

  • Added armature to the joints:

<joint axis="0 0 1" armature="0.2" range="-6.28319 6.28319" frictionloss="1"/>

Here a video demonstrating the result:

xArm7_m.mp4

Contact forces are not stable, leading to inconsistent performance in xArm7:

xArm7_contact_force_m.mp4

Contact forces are stable and uniform across the surface with Robotiq:

robotiq_contact_force_m_trim.mp4

@kevinzakka do you have any recommendations on how to remove instability in contact forces? Thank you!

@kevinzakka
Copy link
Collaborator

@s1lent4gnt I believe the Robotiq geoms were custom designed with boxes (primitive geoms are more stable). Can you see if doing the same for the xarm helps?

@s1lent4gnt
Copy link

Hi @kevinzakka, I’ve experimented with adding a box geometry primitive to the surface of both fingers. I tested configurations with one pad per finger as well as two pads, following your suggestion. The results are quite good and the contact forces are more stable and uniformly distributed on the surface of the pads, especially with the two-pad setup, which resembles the Robotiq design. Here are my findings:

One pad :

one_pad

one_pad_trim.mp4

Two pads :

two_pads

two_pad_trim.mp4

Is it possible to submit a PR for the changes I did?

Thank you for your help!

@kevinzakka
Copy link
Collaborator

Nice job @s1lent4gnt!! Yes, a PR would be excellent!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants