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

Support for multiple degrees of freedom joints #368

Open
wants to merge 29 commits into
base: master
Choose a base branch
from

Conversation

AlpenAalAlex
Copy link
Collaborator

Description

Implements a TODO in joints.py:
Update spring and damping once the user changes these values in custom properties

Added joint types:

  • gearbox - a constraint for two revolute joints

    • parameters:

      • gearbox reference body - this is another joint
      • gearbox ratio
      • axis
      • axis2
    • In Gazebo the child of a gearbox joint does no longer collide with other links. If you know how to fix this please let me know

  • ball - a ball and socket joint

    • parameters:

      • axis
      • limit
    • Limit will be applied to upper and lower limit
      These parameters are not yet supported by Gazebo but apparently by other programs

  • universal - a ball joint with a constrained axis

    • parameters:

      • axis
      • axis2
        each with:
        • lower limit
        • upper limit
        • max effort
        • max velocity
      • spring constant
      • damping constant
    • axis and axis2 are free. The missing axis is constrained

  • screw - a joint with rotational motion coupled to sliding

    • parameters:

      • axis
      • lower limit
      • upper limit
      • max effort
      • max velocity
      • screw thread pitch
    • The screw can slide along the axis and will rotate around that axis
      The rotation is determined by the thread pitch given in meters per revolution

Related Issue

#195

Motivation and Context

So far phobos only supports 1-DOF joints. SDF provides other joint type definitions.

How Has This Been Tested?

To test create a simple model with each of these joints, export as sdf and import into gazebo
The gearbox is a constraint between two joints. The links can be in this order:
|root_link
|-parent_link - revolute joint
|--gearbox
|---child_link - revolute joint
|-reference_body - fixed joint

If you change the custom properties joint/dynamics/damping and joint/dynamics/spring_stiffness you can see damping and stiffness is updated in the physics tab

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.

…issue195-Support-for-multiple-degrees-of-freedom-joints
Exporting pose relative to root link because gazebo 9 ignores relative_to attribute
…-selected' into issue195-Support-for-multiple-degrees-of-freedom-joints
@hwiedPro
Copy link
Collaborator

Really cool I'll check this at my end!

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

Successfully merging this pull request may close these issues.

2 participants