Files

68 lines
1.5 KiB
YAML

# Macros: AX_ID, AX_NAME, AX_UNIT (default mm).
# Simulated leg: external trajectory from IK and ideal encoder feedback.
# Leg positions are strokes relative to nominal home lengths.
# WARNING: Command normal hexapod motion through the virt coordinate axes.
# Independent phys/leg moves can produce infeasible or ambiguous poses and
# cause forward kinematics to fail. Reserve direct leg moves for controlled
# simulation/commissioning checks; joint clearance and collisions are not checked.
axis:
id: ${AX_ID}
group: phys
type: virtual
parameters: "restoreMotorSoftLims=1;"
features:
allowSrcChangeWhenEnabled: true
autoEnable:
atStartup: false
enableTimeout: 1.0
disableTimeout: 2.0
epics:
name: ${AX_NAME}
precision: 4
unit: ${AX_UNIT=mm}
motorRecord:
enable: true
description: "Hexapod ${AX_NAME}"
encoder:
type: 0
source: 1
numerator: 1
denominator: 1
bits: 32
# External feedback is supplied by the C++ ideal plant; no EtherCAT position link.
trajectory:
source: 1
axis:
velocity: 1
acceleration: 10
deceleration: 10
input:
limit:
forward: ec0.s-1.ONE.0
backward: ec0.s-1.ONE.0
home: ec0.s-1.ZERO.0
softlimits:
enable: false
monitoring:
target:
enable: true
tolerance: 0.01 # mm
# Consecutive cycles within tolerance: 100 ms at 1 kHz.
time: 100
lag:
enable: false
tolerance: 0.1
time: 100
velocity:
enable: false
max: 0
time:
trajectory: 100
drive: 100