URDFPrismatic
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.
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:
| Name | Description | Units | Default value |
|---|---|---|---|
axisflange | Expose axis and support translational flange connectors so the joint can be force-actuated | – | false |
render | – | true | |
color | – | world_defau...tic_color() | |
specular_coefficient | – | 1.5 | |
r | Translation from frame_a to joint origin | m | [0, 0, 0] |
n | Fixed rotation axis | – | [1, 0, 0] |
angle | Fixed rotation angle [rad] | rad | 0 |
joint_n | Prismatic 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 severalFrame
connectors that can be connected together (Frame3D)
frame_b- Frame3D is the fundamental 3D connector used for 6DOF motion. Most components have one or severalFrame
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
"""
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"}
}
]
}
}
endFlattened Source
"""
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"}
}
]
}
}
endTest Cases
No test cases defined.
Related
Examples
Experiments
Analyses