LIBRARY
URDFBodyCylinder
Rigid body with cylinder visualization, for URDF import.
Combines a Body (mass and inertia at the link frame) with a CylinderShape that honors the URDF <visual> origin (translation + rotation).
This component extends from Renderable
Usage
MultibodyComponents.URDFBodyCylinder(render=true, color=world_default_body_color(), specular_coefficient=1.5, m=1, r_cm=[0.0, 0, 0], I_11=0.001, I_22=0.001, I_33=0.001, I_21=0, I_31=0, I_32=0, r_visual=[0, 0, 0], length_direction=[0, 0, 1], length=1, radius=0.05)
Parameters:
| Name | Description | Units | Default value |
|---|---|---|---|
render | – | true | |
color | – | world_defau...ody_color() | |
specular_coefficient | – | 1.5 | |
m | mass | kg | 1 |
r_cm | Vector from frame_a to center of mass, resolved in frame_a | m | [0.0, 0, 0] |
I_11 | Element (1,1) of inertia tensor (in link frame) | kg.m2 | 0.001 |
I_22 | Element (2,2) of inertia tensor (in link frame) | kg.m2 | 0.001 |
I_33 | Element (3,3) of inertia tensor (in link frame) | kg.m2 | 0.001 |
I_21 | Element (2,1) of inertia tensor (in link frame) | kg.m2 | 0 |
I_31 | Element (3,1) of inertia tensor (in link frame) | kg.m2 | 0 |
I_32 | Element (3,2) of inertia tensor (in link frame) | kg.m2 | 0 |
r_visual | Center of cylinder visual, resolved in frame_a | m | [0, 0, 0] |
length_direction | Cylinder axis direction in frame_a (local Z rotated by URDF visual rpy) | – | [0, 0, 1] |
length | Length of cylinder | m | 1 |
radius | Radius of cylinder | m | 0.05 |
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)
Behavior
Source
dyad
"""
Rigid body with cylinder visualization, for URDF import.
Combines a `Body` (mass and inertia at the link frame) with a `CylinderShape`
that honors the URDF `<visual>` origin (translation + rotation).
"""
component URDFBodyCylinder
extends Renderable(color = world_default_body_color())
frame_a = Frame3D() {}
body = Body(final m = m, final r_cm = r_cm, final I_11 = I_11, final I_22 = I_22, final I_33 = I_33, final I_21 = I_21, final I_31 = I_31, final I_32 = I_32, render = false)
cylinder_shape = CylinderShape(render = render, color = color, r = frame_a.r_0, R = transpose(frame_a.R), r_shape = r_visual - 0.5 * length * length_direction, length_direction = length_direction, length = length, width = 2 * radius, height = 2 * radius)
"mass"
parameter m::Mass = 1
"Vector from frame_a to center of mass, resolved in frame_a"
parameter r_cm::Length[3] = [0.0, 0, 0]
"Element (1,1) of inertia tensor (in link frame)"
parameter I_11::Inertia = 0.001
"Element (2,2) of inertia tensor (in link frame)"
parameter I_22::Inertia = 0.001
"Element (3,3) of inertia tensor (in link frame)"
parameter I_33::Inertia = 0.001
"Element (2,1) of inertia tensor (in link frame)"
parameter I_21::Inertia = 0
"Element (3,1) of inertia tensor (in link frame)"
parameter I_31::Inertia = 0
"Element (3,2) of inertia tensor (in link frame)"
parameter I_32::Inertia = 0
"Center of cylinder visual, resolved in frame_a"
parameter r_visual::Length[3] = [0, 0, 0]
"Cylinder axis direction in frame_a (local Z rotated by URDF visual rpy)"
parameter length_direction::Real[3] = [0, 0, 1]
"Length of cylinder"
parameter length::Length = 1
"Radius of cylinder"
parameter radius::Length = 0.05
relations
connect(frame_a, body.frame_a)
metadata {
"Dyad": {
"icons": {"default": "dyad://MultibodyComponents/Body.svg"},
"labels": [
{
"label": "$(instance)",
"x": 500,
"y": 150,
"rot": 0,
"attrs": {"font-size": "160"}
}
]
}
}
endFlattened Source
dyad
"""
Rigid body with cylinder visualization, for URDF import.
Combines a `Body` (mass and inertia at the link frame) with a `CylinderShape`
that honors the URDF `<visual>` origin (translation + rotation).
"""
component URDFBodyCylinder
parameter render::Boolean = true
parameter color::Real[4] = [0.5, 0.5, 0.5, 1.0]
parameter specular_coefficient::Real = 1.5
frame_a = Frame3D() {}
body = Body(final m = m, final r_cm = r_cm, final I_11 = I_11, final I_22 = I_22, final I_33 = I_33, final I_21 = I_21, final I_31 = I_31, final I_32 = I_32, render = false)
cylinder_shape = CylinderShape(render = render, color = color, r = frame_a.r_0, R = transpose(frame_a.R), r_shape = r_visual - 0.5 * length * length_direction, length_direction = length_direction, length = length, width = 2 * radius, height = 2 * radius)
"mass"
parameter m::Mass = 1
"Vector from frame_a to center of mass, resolved in frame_a"
parameter r_cm::Length[3] = [0.0, 0, 0]
"Element (1,1) of inertia tensor (in link frame)"
parameter I_11::Inertia = 0.001
"Element (2,2) of inertia tensor (in link frame)"
parameter I_22::Inertia = 0.001
"Element (3,3) of inertia tensor (in link frame)"
parameter I_33::Inertia = 0.001
"Element (2,1) of inertia tensor (in link frame)"
parameter I_21::Inertia = 0
"Element (3,1) of inertia tensor (in link frame)"
parameter I_31::Inertia = 0
"Element (3,2) of inertia tensor (in link frame)"
parameter I_32::Inertia = 0
"Center of cylinder visual, resolved in frame_a"
parameter r_visual::Length[3] = [0, 0, 0]
"Cylinder axis direction in frame_a (local Z rotated by URDF visual rpy)"
parameter length_direction::Real[3] = [0, 0, 1]
"Length of cylinder"
parameter length::Length = 1
"Radius of cylinder"
parameter radius::Length = 0.05
relations
connect(frame_a, body.frame_a)
metadata {
"Dyad": {
"icons": {"default": "dyad://MultibodyComponents/Body.svg"},
"labels": [
{
"label": "$(instance)",
"x": 500,
"y": 150,
"rot": 0,
"attrs": {"font-size": "160"}
}
]
}
}
endTest Cases
No test cases defined.
Related
Examples
Experiments
Analyses