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

Export of ball joints #139

Open
SammyRamone opened this issue Apr 13, 2023 · 1 comment
Open

Export of ball joints #139

SammyRamone opened this issue Apr 13, 2023 · 1 comment

Comments

@SammyRamone
Copy link

SammyRamone commented Apr 13, 2023

Is your feature request related to a problem? Please describe.
I want to model a robot which has at one point a ball joint (see image below). I know that it is not possible to directly model this in URDF and that it is necessary to use two revolute joints with a fake link in between.
joint
Exporting this example currently gives me a single joint with 1 DoF. Of course, it is possible to change the exported URDF manually to include a fake link and a second joint to achieve the 2DoF ball joint that I am interested in. However, it would be nicer to be able to specify this in the export plugin directly.

Describe the solution you'd like
Add an option to the list of joint types for ball joints. Maybe one for a 2DoF ball joint and one for a 3DoF ball joint. When chosing this type, the necessary URDF joints and fake links are automatically generated.

Describe alternatives you've considered

  • Let the user specify both joints in the URDF export plugin by using an empty link. So for a 2DoF ball joint first create an empty link without an associated component with a revolute joint which represents the first DoF. Then this empty link has the real next link as a child and a second revoulte joint for the second DoF. This does not work at the moment as no links can be empty. It is possible to add an extra fake part to the assembly that is associated with this empty link. However, this requires additional effort and the automatic generation of the rotation axis of this joint is also influenced by the fake part.
  • Don't implement this and let the users perfom the necessary changes manually in the URDF file after the export.

btw: Thanks a lot for this tool, it is very helpful 🙂

@SammyRamone
Copy link
Author

If anyone else stumbles on this issue: I circumvented it by adding a fake link (consisting of a single sphere) to the assembly at the point of the ball joint. I set the material of this fake link to air and made it invisible. I then specified two revolute joints: link1->fake_link and fake_link->link2. I also had to specify the origin and axis manually.
Additionally, I had to remove the collision and visual models of this fake link from the URDF after the export.

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

1 participant