Skip to content
LIBRARY
URDFPrismatic.md

URDFPrismatic

Prismatic joint preceded by a fixed translation and rotation.

Used for URDF import where each joint has an associated origin transform. frame_aFixedRotation(r, n, angle)Prismatic(n=joint_n)frame_b.

This component extends from PartialTwoFrames This component extends from Renderable

Usage

MultibodyComponents.URDFPrismatic(render=true, color=world_default_prismatic_color(), specular_coefficient=1.5, r=[0, 0, 0], n=[1, 0, 0], angle=0, joint_n=[0, 0, 1])

Parameters:

NameDescriptionUnitsDefault value
axisflangeExpose axis and support translational flange connectors so the joint can be force-actuatedfalse
rendertrue
colorworld_defau...tic_color()
specular_coefficient1.5
rTranslation from frame_a to joint originm[0, 0, 0]
nFixed rotation axis[1, 0, 0]
angleFixed rotation angle [rad]rad0
joint_nPrismatic joint axis (resolved in joint frame)[0, 0, 1]

Connectors

  • frame_a - Frame3D is the fundamental 3D connector used for 6DOF motion. Most components have one or several Frame

connectors that can be connected together (Frame3D)

  • frame_b - Frame3D is the fundamental 3D connector used for 6DOF motion. Most components have one or several Frame

connectors that can be connected together (Frame3D)

  • axis - This connector represents a mechanical flange with position and force as the potential and flow variables, respectively. (Flange)

  • support - This connector represents a mechanical flange with position and force as the potential and flow variables, respectively. (Flange)

Behavior

Source

dyad
"""
Prismatic joint preceded by a fixed translation and rotation.

Used for URDF import where each joint has an associated origin transform.
`frame_a` → `FixedRotation(r, n, angle)` → `Prismatic(n=joint_n)` → `frame_b`.
"""
component URDFPrismatic
  extends PartialTwoFrames()
  extends Renderable(color = world_default_prismatic_color())
  trans = FixedRotation(final r = r, final n = n, final angle = angle, render = false)
  pris = Prismatic(final n = joint_n, render = render, color = color)
  axis = Flange() if axisflange {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 450, "y1": -50, "x2": 550, "y2": 50, "rot": 0}
      },
      "tags": []
    }
  }
  support = Flange() if axisflange {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 450, "y1": 950, "x2": 550, "y2": 1050, "rot": 0}
      },
      "tags": []
    }
  }
  "Expose `axis` and `support` translational flange connectors so the joint can be force-actuated"
  structural parameter axisflange::Boolean = false
  "Translation from frame_a to joint origin"
  parameter r::Length[3] = [0, 0, 0]
  "Fixed rotation axis"
  parameter n::Real[3] = [1, 0, 0]
  "Fixed rotation angle [rad]"
  parameter angle::Angle = 0
  "Prismatic joint axis (resolved in joint frame)"
  parameter joint_n::Real[3] = [0, 0, 1]
relations
  connect(frame_a, trans.frame_a)
  connect(trans.frame_b, pris.frame_a)
  connect(pris.frame_b, frame_b)
  if axisflange
    connect(axis, pris.axis)
    connect(support, pris.support)
  end
metadata {
  "Dyad": {
    "icons": {"default": "dyad://MultibodyComponents/Prismatic.svg"},
    "labels": [
      {
        "label": "$(instance)",
        "x": 500,
        "y": 280,
        "rot": 0,
        "attrs": {"font-size": "160"}
      }
    ]
  }
}
end
Flattened Source
dyad
"""
Prismatic joint preceded by a fixed translation and rotation.

Used for URDF import where each joint has an associated origin transform.
`frame_a` → `FixedRotation(r, n, angle)` → `Prismatic(n=joint_n)` → `frame_b`.
"""
component URDFPrismatic
  frame_a = Frame3D() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": -50, "y1": 450, "x2": 50, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  frame_b = Frame3D() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 950, "y1": 450, "x2": 1050, "y2": 550, "rot": 0}
      },
      "tags": []
    }
  }
  parameter render::Boolean = true
  parameter color::Real[4] = [0.5, 0.5, 0.5, 1.0]
  parameter specular_coefficient::Real = 1.5
  trans = FixedRotation(final r = r, final n = n, final angle = angle, render = false)
  pris = Prismatic(final n = joint_n, render = render, color = color)
  axis = Flange() if axisflange {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 450, "y1": -50, "x2": 550, "y2": 50, "rot": 0}
      },
      "tags": []
    }
  }
  support = Flange() if axisflange {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 450, "y1": 950, "x2": 550, "y2": 1050, "rot": 0}
      },
      "tags": []
    }
  }
  "Expose `axis` and `support` translational flange connectors so the joint can be force-actuated"
  structural parameter axisflange::Boolean = false
  "Translation from frame_a to joint origin"
  parameter r::Length[3] = [0, 0, 0]
  "Fixed rotation axis"
  parameter n::Real[3] = [1, 0, 0]
  "Fixed rotation angle [rad]"
  parameter angle::Angle = 0
  "Prismatic joint axis (resolved in joint frame)"
  parameter joint_n::Real[3] = [0, 0, 1]
relations
  connect(frame_a, trans.frame_a)
  connect(trans.frame_b, pris.frame_a)
  connect(pris.frame_b, frame_b)
  if axisflange
    connect(axis, pris.axis)
    connect(support, pris.support)
  end
metadata {
  "Dyad": {
    "icons": {"default": "dyad://MultibodyComponents/Prismatic.svg"},
    "labels": [
      {
        "label": "$(instance)",
        "x": 500,
        "y": 280,
        "rot": 0,
        "attrs": {"font-size": "160"}
      }
    ]
  }
}
end


Test Cases

No test cases defined.

  • Examples

  • Experiments

  • Analyses