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

Problems about using reflex in Gazebo #38

Open
geweihgg opened this issue May 1, 2018 · 11 comments
Open

Problems about using reflex in Gazebo #38

geweihgg opened this issue May 1, 2018 · 11 comments

Comments

@geweihgg
Copy link

geweihgg commented May 1, 2018

Hi,
I'm a student working with reflex plus hand. My question is "Are there any method for me to simulate the reflex plus gripper in Gazbeo?"
I've checked the full_reflex_model.urdf.xacro file, it seems that we do not have a complete xacro:macro for the whole hand.
Could you help me?
Looking forward to your reply.
Thank you very much.
GeWei

@Deastan
Copy link

Deastan commented Apr 18, 2019

Hello,
Did you create a gazebo model ? Can you share it please ?
Best,
Jonathan

@geweihgg
Copy link
Author

@Deastan
Sorry, I haven't done that yet. I'm now using Robotiq-G85 gripper in Gazebo.
Sincerely,
GeWei

@adamconkey
Copy link

adamconkey commented Apr 18, 2019

@Deastan our lab uses the ReFlex TakkTile hand in Gazebo simulation, and I would think a similar approach to what we did would also work for the ReFlex Plus. You can find our models here, and see it in action on my website.

The main things you will have to change are:

  • Add inertial and collision models. Since the URDF provided by Righthand are for visualization only, they only have visual tags for the links. Typically you can just copy the visual model and use the same mesh as your collision model, though you might get faster collision checking if you use a primitive shape or convex approximation. For the inertial models, we just use simple approximations computed using xacro macros based on common moments of inertia.
  • Break the parallel robot structure. This one's important because Gazebo does not currently support modeling parallel robots, and by this I mean you essentially have a cycle in the URDF structure. The URDF we worked from (and I assume the ReFlex Plus is the same) had a cycle in all the fingers, because it was modeled as connecting the proximal link directly to the distal link, but then also connecting them via the flex links. So if you follow the chains, essentially you have a cycle that goes from proximal, through the flex links to the distal, and then distal connects also directly with proximal. The trick is to break the direct proximal/distal connection and only use the one that goes through the flex link.
  • Add hardware interfaces to joints. This allows you to actuate the joints in Gazebo using ROS control. You can see how we did that here.
  • Add Gazebo materials. This isn't a necessary step but if you don't do it, your whole model will probably be all white and it doesn't look very nice. An example of setting the materials can be found here.

Note that we currently do not model the flexing aspect of the distal joint and treat it as rigid. We hope to improve on that in the near future. I am also working on adding Gazebo modeling for the pressure sensors if you're interested in trying to use one of the hands with the TakkTile sensors.

@geweihgg
Copy link
Author

@adamconkey it's very nice of you to share the experience, I'll try it later.
Thank you very much!
GeWei

@adamconkey
Copy link

You will also be interested in the work from @mabelzhang. She had a working simulation of a beta version of the hand a while back: https://github.com/mabelzhang/tactile_triangles/tree/master/reflex_simulator/reflex_gazebo

@geweihgg
Copy link
Author

@adamconkey Thank you so much!
GeWei

@Deastan
Copy link

Deastan commented Apr 30, 2019

@adamconkey Thank you very much to share what you did! I will try soon to do it!
I worked on the takktile 2, so I will try to add the the tactile sensor. If you have any other tips, I take it! Thank you very much for your help!

John

@Deastan
Copy link

Deastan commented Jun 19, 2019

Hello,
@adamconkey, I have a small question. Did you try to grasp some object with your hand ?
I did a version between your hand and from Mabel Zhang. I added the hand to the iiwa robot (which is the industrial robot). I have the tactile sensors. I replace the connection between the proximal and the distal (which is a cable on the real robot) by a linear function and a function to close and open the hand. ( I use as you the effortJointController).
Between this I have worked on an environment for Reinforcement learning using gym from OpenAI with the hand and the insudstrial robot. Normally this environment work but without grapsing.

Do you have an advice how I could do grasping with the simulation ? I have spawn a square and try to graps it.. but it doesn't work. I read a many thing on the web but I still don't have the right solution which at least can work.

Thank you so much for your advice until now.

@adamconkey
Copy link

adamconkey commented Jun 19, 2019

I have spawn a square and try to graps it.. but it doesn't work.

@Deastan In what way does it not work?

@Deastan
Copy link

Deastan commented Jun 21, 2019

@adamconkey :
When the finger touches the object, the object flight away. I change the mass (lower, bigger) but nothing changed. I have also changed the forces of the finger but nothing change too.
I read this, maybe I have to try that. https://github.com/JenniferBuehler/gazebo-pkgs/wiki/The-Gazebo-grasp-fix-plugin

@adamconkey
Copy link

@Deastan what physics engine are you using in Gazebo? We have also had this behavior using the default physics engine, which I believe is ODE. I would recommend trying DART. You have to build Gazebo from source but their instructions are quite good and they tell you how to enable the use of DART as the physics back-end in those instructions. Just note that you need DART installed before building Gazebo. The contact dynamics seem to be better for grasping in DART than ODE. Gazebo also supports Bullet but I don't believe I've ever tried it.

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

No branches or pull requests

3 participants