Why is my gripper behaving the way it is?
-
- Posts: 33
- Joined: 07 Mar 2014, 12:26
Why is my gripper behaving the way it is?
Hello,
i modeled a gripper inspired by the Robotiq 3-Finger-Gripper. I managed to make it move the way it should and apply the needed forces. Still, there are some problems when it comes to the dynamic behavior. When gripping an object, the whole mechanism seems to slowly break apart. To make that more clear i uploaded a picture.
https://drive.google.com/file/d/0B-x57q ... sp=sharing
As you can see, the joints are leaving there shaft. How can that happen?
Another behavior i wouldn't expect appears when using force sensor. I equipped each finger segment with a force sensor and a force plate (yellow plate) to measure the acting forces. I expected to create a rigid connection between the segment and the force plate. But for once the force plate gets squeezed inside the gripped object and furthermore leaves its position on the finger segment. There are also some screenshots to demonstrate that behavior.
https://drive.google.com/file/d/0B-x57q ... sp=sharing
https://drive.google.com/file/d/0B-x57q ... sp=sharing
All in all my model doesn't feel very solid, but i am out of ideas how to tweak it in order to make it more reasonable.
I would appreciate every hint so i can improve it a bit!
You can find the model here:
https://drive.google.com/file/d/0B-x57q ... sp=sharing
best regards
i modeled a gripper inspired by the Robotiq 3-Finger-Gripper. I managed to make it move the way it should and apply the needed forces. Still, there are some problems when it comes to the dynamic behavior. When gripping an object, the whole mechanism seems to slowly break apart. To make that more clear i uploaded a picture.
https://drive.google.com/file/d/0B-x57q ... sp=sharing
As you can see, the joints are leaving there shaft. How can that happen?
Another behavior i wouldn't expect appears when using force sensor. I equipped each finger segment with a force sensor and a force plate (yellow plate) to measure the acting forces. I expected to create a rigid connection between the segment and the force plate. But for once the force plate gets squeezed inside the gripped object and furthermore leaves its position on the finger segment. There are also some screenshots to demonstrate that behavior.
https://drive.google.com/file/d/0B-x57q ... sp=sharing
https://drive.google.com/file/d/0B-x57q ... sp=sharing
All in all my model doesn't feel very solid, but i am out of ideas how to tweak it in order to make it more reasonable.
I would appreciate every hint so i can improve it a bit!
You can find the model here:
https://drive.google.com/file/d/0B-x57q ... sp=sharing
best regards
Re: Why is my gripper behaving the way it is?
Hello,
that Robotiq gripper is really nice. But so damn difficult to model. We also started to model it, here our current state. We tried to model it in a mechanically exact way. But there are a lot of adjustments to make.
When designing such a complex model, it is important to compare the behaviour across various physics engines. Try to switch between Bullet, ODE and Vortex. That can already give you a clue of what is wrong. But basically it is normal with most physics engines that constraints cannot completely be respected (i.e. the force/torque sensor is supposed to be rigid, but under high load, it can appear as soft, same for joints).
It requires to carefully adjust the masses, inertias and torques of the various elements. And often, you will have to cheat and use non-realistic values in order to obtain stability.
Cheers
that Robotiq gripper is really nice. But so damn difficult to model. We also started to model it, here our current state. We tried to model it in a mechanically exact way. But there are a lot of adjustments to make.
When designing such a complex model, it is important to compare the behaviour across various physics engines. Try to switch between Bullet, ODE and Vortex. That can already give you a clue of what is wrong. But basically it is normal with most physics engines that constraints cannot completely be respected (i.e. the force/torque sensor is supposed to be rigid, but under high load, it can appear as soft, same for joints).
It requires to carefully adjust the masses, inertias and torques of the various elements. And often, you will have to cheat and use non-realistic values in order to obtain stability.
Cheers
-
- Posts: 33
- Joined: 07 Mar 2014, 12:26
Re: Why is my gripper behaving the way it is?
Hello,
in my first attempt of the gripper i modeled the exact mechanics as well. However, i had difficulties to grasp objects with enough force. I tried to mimic to behaviors shown in this video:
https://www.youtube.com/watch?v=NgZqVjcI7P0
So i gripped the different objects shown and lifted them. But instead of lifting the gripper as well they just slipped out of it and the gripper stayed on the ground. With the model of posted it works much better. Thanks a lot for that! I will try to adjust it in order to fit my needs. Is there a way to track the current state of your gripper model?
You said it is important to switch between the different engines in order to get a clue what might be wrong. I do this a lot and mostly one of the engines works better then the others. My problem is that i can't figure out why. What kind of information i actually get when experiencing different behaviors using different engines?
I'am pretty new to robotic simulation and really would like to get more into it. I read http://www.coppeliarobotics.com/helpFil ... ations.htm which gave me some good clues on how to choose the parameters. I actually read the whole V-REP manual. Are there any further information for designing dynamic simulations?
Thanks a lot for your help!
best regards
in my first attempt of the gripper i modeled the exact mechanics as well. However, i had difficulties to grasp objects with enough force. I tried to mimic to behaviors shown in this video:
https://www.youtube.com/watch?v=NgZqVjcI7P0
So i gripped the different objects shown and lifted them. But instead of lifting the gripper as well they just slipped out of it and the gripper stayed on the ground. With the model of posted it works much better. Thanks a lot for that! I will try to adjust it in order to fit my needs. Is there a way to track the current state of your gripper model?
You said it is important to switch between the different engines in order to get a clue what might be wrong. I do this a lot and mostly one of the engines works better then the others. My problem is that i can't figure out why. What kind of information i actually get when experiencing different behaviors using different engines?
I'am pretty new to robotic simulation and really would like to get more into it. I read http://www.coppeliarobotics.com/helpFil ... ations.htm which gave me some good clues on how to choose the parameters. I actually read the whole V-REP manual. Are there any further information for designing dynamic simulations?
Thanks a lot for your help!
best regards
Re: Why is my gripper behaving the way it is?
Dynamic engines have each one their specificities and their strengths/weaknesses. One handles contact betted than others, another one is more robust but less realistic, etc.
It is mainly experience with the various engines that gives you slowly a better understanding how to design things so that they behave as they should. But Bullet and ODE are not comparable with Vortex, which is more robust and realistic than others (and allows fine-tuning so many more parameters).
When a gripper is not able to exert a large force, then this usually means that masses of the gripper are too small compared with the object to hold (at least with Bullet and ODE, Vortex handles this better).
Have a look at the Jaco and Mico gripper models included in the V-REP installation (in Models/components/grippers). During simulation, click the appropriate toolbar button to visualize and verify the dynamic content: you will see how that gripper had to be modelled in order to give satisfying results: it is compex and quite different of how the real gripper operates!
The Robotiq 3-finger gripper is currently on hold, but once it works nicely, we will integrate it into the model library of V-REP.
Cheers
It is mainly experience with the various engines that gives you slowly a better understanding how to design things so that they behave as they should. But Bullet and ODE are not comparable with Vortex, which is more robust and realistic than others (and allows fine-tuning so many more parameters).
When a gripper is not able to exert a large force, then this usually means that masses of the gripper are too small compared with the object to hold (at least with Bullet and ODE, Vortex handles this better).
Have a look at the Jaco and Mico gripper models included in the V-REP installation (in Models/components/grippers). During simulation, click the appropriate toolbar button to visualize and verify the dynamic content: you will see how that gripper had to be modelled in order to give satisfying results: it is compex and quite different of how the real gripper operates!
The Robotiq 3-finger gripper is currently on hold, but once it works nicely, we will integrate it into the model library of V-REP.
Cheers
-
- Posts: 33
- Joined: 07 Mar 2014, 12:26
Re: Why is my gripper behaving the way it is?
Hello,
i changed the behavior of the gripper you provided in order to make it operate as the real one. The real gripper however stops each finger as soon as a certain torque threshold is reached. Therefore i created a child script which reads the torque of each motor and if the threshold is reached it updates the motors target position to its current position. Which means it will just hold its position.
The maximal torque each motor can apply in my scene is 10 Nm and the threshold to make it stop is 2.5 Nm. I expected (while gripping an object) that as soon as the first finger stops the others will continue there movement and certainly reach the threshold as well. Other then i expected the other two fingers will not reach the 2.5 Nm even though there maximal torque is 10 Nm.
The controller is set to regulate the velocity. Which means up to my knowledge that it will try to keep the upper velocity limit and apply the maxTorque if necessary. In my scene however the motor is only applying around 1.4 Nm even though it hasn't reach its target position. I set P to 100 to make sure that its not just the error being to small, but no difference.
I added a screenshot.
https://drive.google.com/file/d/0B-x57q ... sp=sharing
One can see the current and the target position of the motor. On the left of the screenshot you can see my debug output. The numbers are the torque of each motor and 'unlocked [motorNumber]' means it haven't reached the threshold. So in that case motor 2 and 3 haven't reached it.
So my question is why motor 2 and 3 are not applying there maximal torque even though they haven't reached there setpoint.
I added the scene as well.
https://drive.google.com/file/d/0B-x57q ... sp=sharing
best regards
johnny
i changed the behavior of the gripper you provided in order to make it operate as the real one. The real gripper however stops each finger as soon as a certain torque threshold is reached. Therefore i created a child script which reads the torque of each motor and if the threshold is reached it updates the motors target position to its current position. Which means it will just hold its position.
The maximal torque each motor can apply in my scene is 10 Nm and the threshold to make it stop is 2.5 Nm. I expected (while gripping an object) that as soon as the first finger stops the others will continue there movement and certainly reach the threshold as well. Other then i expected the other two fingers will not reach the 2.5 Nm even though there maximal torque is 10 Nm.
The controller is set to regulate the velocity. Which means up to my knowledge that it will try to keep the upper velocity limit and apply the maxTorque if necessary. In my scene however the motor is only applying around 1.4 Nm even though it hasn't reach its target position. I set P to 100 to make sure that its not just the error being to small, but no difference.
I added a screenshot.
https://drive.google.com/file/d/0B-x57q ... sp=sharing
One can see the current and the target position of the motor. On the left of the screenshot you can see my debug output. The numbers are the torque of each motor and 'unlocked [motorNumber]' means it haven't reached the threshold. So in that case motor 2 and 3 haven't reached it.
So my question is why motor 2 and 3 are not applying there maximal torque even though they haven't reached there setpoint.
I added the scene as well.
https://drive.google.com/file/d/0B-x57q ... sp=sharing
best regards
johnny
Re: Why is my gripper behaving the way it is?
Hello Johnny,
First of all, it can happen that a joint is not able to exert the specified torque/force. This is most of the time due to too small masses or inertias attached to the joints. Remember, with most physics engines, everything needs to be relatively balanced (i.e. not a too large difference between masses or inerties).
At the same time, I would still try to go with a fully passive mechanism, like the real gripper that has no torque sensor. What actually happens, there are 2 springs in each finger, that should be chosen appropriately to get the correct behaviour (at least on the real gripper). In the scene hierarchy those joints/springs are marked in green.
Cheers
First of all, it can happen that a joint is not able to exert the specified torque/force. This is most of the time due to too small masses or inertias attached to the joints. Remember, with most physics engines, everything needs to be relatively balanced (i.e. not a too large difference between masses or inerties).
At the same time, I would still try to go with a fully passive mechanism, like the real gripper that has no torque sensor. What actually happens, there are 2 springs in each finger, that should be chosen appropriately to get the correct behaviour (at least on the real gripper). In the scene hierarchy those joints/springs are marked in green.
Cheers
-
- Posts: 33
- Joined: 07 Mar 2014, 12:26
Re: Why is my gripper behaving the way it is?
Hello,
i am aware of the springs. We have a real gripper in our institute. If you check the model i posted in my first post, you will see that i modeled them pretty much the same way you guys did. Furthermore i am pretty sure that the torque of the real gripper is controlled indirectly by the current of each motor. You can set the percentage of the maximal torque the real gripper should operator with. This is also shown in the video i posted (with the yellow football). If the real gripper has gripped an object and you remove the object from the gripper the fingers will actually keep there position.
That make total sense, because if you would grasp a loose object with the fingertips the two fingers would just push the other finger back as they have double the torque. And that is the problem i have. Therefore i added the child script to check for the torque threshold.
Nevertheless, you were right that the joint can't exert the torque. If i scale torque and threshold down it actually works. What i don't understand is that, even though all fingers are equal the one finger can apply double the torque of the others as you can see in the screenshot i posted. Is that just an error because the model is not well dimensioned?
best regards
i am aware of the springs. We have a real gripper in our institute. If you check the model i posted in my first post, you will see that i modeled them pretty much the same way you guys did. Furthermore i am pretty sure that the torque of the real gripper is controlled indirectly by the current of each motor. You can set the percentage of the maximal torque the real gripper should operator with. This is also shown in the video i posted (with the yellow football). If the real gripper has gripped an object and you remove the object from the gripper the fingers will actually keep there position.
That make total sense, because if you would grasp a loose object with the fingertips the two fingers would just push the other finger back as they have double the torque. And that is the problem i have. Therefore i added the child script to check for the torque threshold.
Nevertheless, you were right that the joint can't exert the torque. If i scale torque and threshold down it actually works. What i don't understand is that, even though all fingers are equal the one finger can apply double the torque of the others as you can see in the screenshot i posted. Is that just an error because the model is not well dimensioned?
best regards
Re: Why is my gripper behaving the way it is?
I see two possibilities of improvement:
- reduce the upper velocity limit of the 3 motor, and set their P parameter to something much lower (e.g. 0.1)
- lock a motor in its current position only after a succession of threshold violations (e.g. 3 within 5 simulation passes)
-
- Posts: 14
- Joined: 16 Jun 2023, 18:44
Re: Why is my gripper behaving the way it is?
Hi, Is the model you mentioned in this post still available? The link is not working, is there any new link?coppelia wrote: ↑17 Apr 2014, 22:40 Hello,
that Robotiq gripper is really nice. But so damn difficult to model. We also started to model it, here our current state. We tried to model it in a mechanically exact way. But there are a lot of adjustments to make.
When designing such a complex model, it is important to compare the behaviour across various physics engines. Try to switch between Bullet, ODE and Vortex. That can already give you a clue of what is wrong. But basically it is normal with most physics engines that constraints cannot completely be respected (i.e. the force/torque sensor is supposed to be rigid, but under high load, it can appear as soft, same for joints).
It requires to carefully adjust the masses, inertias and torques of the various elements. And often, you will have to cheat and use non-realistic values in order to obtain stability.
Cheers
Re: Why is my gripper behaving the way it is?
Hello,
we unfortunately can't locate that file anymore...
we unfortunately can't locate that file anymore...