What is the best practice to simulate Robotiq85 movement in Unity?

Hi,

When I load the robotiq85 gripper (which is one of the most widely used gripper in research and industry) into the unity 2021.1 with urdf-importer.

The importing is ok, but since current articulation body supports only tree-structured, yet the robotiq85 has a closed loop in its structure. Thus the loop will be broken during simulation.

It looks like this:
7385489--901379--upload_2021-8-3_23-30-5.png

Gazebo support mimic joint to support this as shown in this post, Pybullet can create additional constraint between the inner knuckle and outer knuckle as shown in this post at L188-L199. So I wonder what would be the best practice for such gripper?

Thanks!

Maybe you should try something like that
7385939--901472--upload_2021-8-3_19-50-38.png

So basically you make sure, IK fixed points are not moving, in respect to gripper base.
But you move attraction point, with joints constraints in mind.

1 Like

I’d try to have the loop “arms” disconnect at some point, and link them with two FixedJoints through an intermediate Rigidbody (because in the current Unity one can’t connect ArticulationBodies with a Joint directly).

Hi, could you please elaborate on this?
For the “IK fixed points”, I try to change the joint type to “fixed”.
But I don’t quite understand how to set the “attraction point” and how to make it move, so the parallel links will follow the movement accordingly.

Thanks!

Thanks for your advice, I try this approach as follows:

  1. I create a sphere, set it to a RigidBody
  2. create 2 fixed joint, and set “Connected Articulation Body” to each part accordingly.

Then, I move the sphere:,

  1. to the link point of the two links (the sphere collide with the gripper)
  2. near the link point of the two links (quite like the attraction point mentioned by Antypodish above)

In both cases, I find it cannot stop the two links to be collapsed due to gravity.

Besides, I also create the empty GameObject to replace the sphere, also not working.

I wonder if I misunderstand something? Maybe I misunderstand the “connected articulation body”? does it create a joint towards the end of the link (w.r.t the parent link), or the start of the link? Or something else?

Thanks!

For the gripper mechanics, you can disregard gravity.
Only matter for held object itself.

You can fix the base of the IK links.
To keep End Effector (EE) in the position. you need apply constraints movements of other joints, so they do not pull EE, when you move them.

I am not fully convinced, that unity joints will provided solutions to what you need, if you use them on its own.
The goal is, to be able move and control middle joints, ensuring base and EE are in static “motion”. Basically not move.
It would be worth to look into other IK solutions.
Out of the box solution may be BioIK. Really nice tool to work for robotic applications. It is paid asset and available on asset store.
You could also consider fastIK implementation. There are solvers on the net and github. I suggest check for them. For these, you will most likely use kinematic type of motion.