Skip to content
LIBRARY
PlanarMechanics.examples.excavator.AnchoredCylinderMount.md

PlanarMechanics.examples.excavator.AnchoredCylinderMount

A PlanarCylinderMount together with the two anchor translations that place its ends on the adjacent links.

frame_base and frame_rod attach to the two link frames between which the cylinder acts; the fixed translations r_base and r_rod offset the mount ends to the cylinder anchor points on each link. The mechanical flange connects to the driving actuator.

This component extends from MultibodyComponents.Renderable

Usage

MultibodyComponents.PlanarMechanics.examples.excavator.AnchoredCylinderMount(render=true, color=[0.85, 0.75, 0.15, 1.0], specular_coefficient=1.5, r_base=[0, 0], r_rod=[1, 0], s_offset=1.0, stroke=0.5, barrel_radius=0.05)

Parameters:

NameDescriptionUnitsDefault value
rendertrue
color[0.85, 0.75, 0.15, 1.0]
specular_coefficient1.5
r_baseOffset from the base-link frame to the barrel anchorm[0, 0]
r_rodOffset from the rod-link frame to the rod anchorm[1, 0]
s_offsetAnchor distance at zero piston positionm1.0
strokeCylinder stroke bounding the valid piston travelm0.5
barrel_radiusRadius of the rendered barrel0.05

Connectors

  • frame_base - Coordinate system (2-dim.) fixed to the component with one cut-force and cut-torque.

All variables are resolved in the planar world frame. (Frame2D)

  • frame_rod - Coordinate system (2-dim.) fixed to the component with one cut-force and cut-torque.

All variables are resolved in the planar world frame. (Frame2D)

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

Behavior

Source

dyad
"""
A `PlanarCylinderMount` together with the two anchor translations that place its
ends on the adjacent links.

`frame_base` and `frame_rod` attach to the two link frames between which the
cylinder acts; the fixed translations `r_base` and `r_rod` offset the mount ends
to the cylinder anchor points on each link. The mechanical `flange` connects to
the driving actuator.
"""
component AnchoredCylinderMount
  extends MultibodyComponents.Renderable(color = [0.85, 0.75, 0.15, 1.0])
  "Frame of the link carrying the base (barrel) anchor"
  frame_base = Frame2D() {
    "Dyad": {"placement": {"diagram": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}
  }
  "Frame of the link carrying the rod anchor"
  frame_rod = Frame2D() {
    "Dyad": {"placement": {"diagram": {"x1": -50, "y1": 450, "x2": 50, "y2": 550}}}
  }
  "Mechanical flange of the driving actuator"
  flange = Flange() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 450, "y1": -50, "x2": 550, "y2": 50, "rot": 0}
      },
      "tags": []
    }
  }
  base_tf = MultibodyComponents.PlanarMechanics.FixedTranslation(r = r_base, render = false) {
    "Dyad": {"placement": {"diagram": {"x1": 790, "y1": 450, "x2": 690, "y2": 550}}}
  }
  rod_tf = MultibodyComponents.PlanarMechanics.FixedTranslation(r = r_rod, render = false) {
    "Dyad": {"placement": {"diagram": {"x1": 190, "y1": 450, "x2": 290, "y2": 550}}}
  }
  mount = PlanarCylinderMount(final s_offset = s_offset, final stroke = stroke, final barrel_radius = barrel_radius, final render = render, final color = color) {
    "Dyad": {"placement": {"diagram": {"x1": 550, "y1": 450, "x2": 450, "y2": 550}}}
  }
  "Offset from the base-link frame to the barrel anchor"
  parameter r_base::Length[2] = [0, 0]
  "Offset from the rod-link frame to the rod anchor"
  parameter r_rod::Length[2] = [1, 0]
  "Anchor distance at zero piston position"
  parameter s_offset::Length = 1.0
  "Cylinder stroke bounding the valid piston travel"
  parameter stroke::Length = 0.5
  "Radius of the rendered barrel"
  parameter barrel_radius::Real = 0.05
relations
  connect(frame_base, base_tf.frame_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(base_tf.frame_b, mount.frame_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(frame_rod, rod_tf.frame_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(rod_tf.frame_b, mount.frame_b) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(mount.flange, flange) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
metadata {
  "Dyad": {"icons": {"default": "dyad://MultibodyComponents/PlanarCylinderMount.svg"}}
}
end
Flattened Source
dyad
"""
A `PlanarCylinderMount` together with the two anchor translations that place its
ends on the adjacent links.

`frame_base` and `frame_rod` attach to the two link frames between which the
cylinder acts; the fixed translations `r_base` and `r_rod` offset the mount ends
to the cylinder anchor points on each link. The mechanical `flange` connects to
the driving actuator.
"""
component AnchoredCylinderMount
  parameter render::Boolean = true
  parameter color::Real[4] = [0.5, 0.5, 0.5, 1.0]
  parameter specular_coefficient::Real = 1.5
  "Frame of the link carrying the base (barrel) anchor"
  frame_base = Frame2D() {
    "Dyad": {"placement": {"diagram": {"x1": 950, "y1": 450, "x2": 1050, "y2": 550}}}
  }
  "Frame of the link carrying the rod anchor"
  frame_rod = Frame2D() {
    "Dyad": {"placement": {"diagram": {"x1": -50, "y1": 450, "x2": 50, "y2": 550}}}
  }
  "Mechanical flange of the driving actuator"
  flange = Flange() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 450, "y1": -50, "x2": 550, "y2": 50, "rot": 0}
      },
      "tags": []
    }
  }
  base_tf = MultibodyComponents.PlanarMechanics.FixedTranslation(r = r_base, render = false) {
    "Dyad": {"placement": {"diagram": {"x1": 790, "y1": 450, "x2": 690, "y2": 550}}}
  }
  rod_tf = MultibodyComponents.PlanarMechanics.FixedTranslation(r = r_rod, render = false) {
    "Dyad": {"placement": {"diagram": {"x1": 190, "y1": 450, "x2": 290, "y2": 550}}}
  }
  mount = PlanarCylinderMount(final s_offset = s_offset, final stroke = stroke, final barrel_radius = barrel_radius, final render = render, final color = color) {
    "Dyad": {"placement": {"diagram": {"x1": 550, "y1": 450, "x2": 450, "y2": 550}}}
  }
  "Offset from the base-link frame to the barrel anchor"
  parameter r_base::Length[2] = [0, 0]
  "Offset from the rod-link frame to the rod anchor"
  parameter r_rod::Length[2] = [1, 0]
  "Anchor distance at zero piston position"
  parameter s_offset::Length = 1.0
  "Cylinder stroke bounding the valid piston travel"
  parameter stroke::Length = 0.5
  "Radius of the rendered barrel"
  parameter barrel_radius::Real = 0.05
relations
  connect(frame_base, base_tf.frame_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(base_tf.frame_b, mount.frame_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(frame_rod, rod_tf.frame_a) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(rod_tf.frame_b, mount.frame_b) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(mount.flange, flange) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}], "renderStyle": "standard"}}
metadata {
  "Dyad": {"icons": {"default": "dyad://MultibodyComponents/PlanarCylinderMount.svg"}}
}
end


Test Cases

No test cases defined.

  • Examples

  • Experiments

  • Analyses