Machinekit Documentation
HAL Component — GANTRY
INSTANTIABLE COMPONENTS — General
All instantiable components can be loaded in two manners
Using loadrt with or without count= | names= parameters as per legacy components
Using newinst, which names the instance and allows further parameters and arguments
primarily pincount= which can set the number of pins created for that instance (where applicable)
NAME
gantry — Machinekit HAL component for driving multiple joints from a single axis
SYNOPSIS
gantry
USAGE SYNOPSIS
loadrt gantry
OR
newinst gantry <newinstname> [ pincount=N | iprefix=prefix ] [instanceparamX=X | argX=X ]
( args in [ ] denote possible args and parameters, may not be used in all components )
DESCRIPTION
Drives multiple physical motors (joints) from a single axis input .LP The `pincount' value is the number of joints to control. Two is typical, but up to seven is supported (a three joint setup has been tested with hardware). .LP All controlled joints track the commanded position (with a per-joint offset) unless in the process of homing. Homing is when the commanded position is moving towards the homing switches (as determined by the sign of search-vel) and the joint home switches are not all in the same state. When the system is homing and a joint home switch activates, the command value sent to that joint is "frozen" and the joint offset value is updated instead. Once all home switches are active, there are no more adjustments made to the offset values and all joints run in lock-step once more. .LP For best results, set HOME_SEARCH_VEL and HOME_LATCH_VEL to the same direction and as slow as practical. When a joint home switch trips, the commanded velocity will drop immediately from HOME_SEARCH_VEL to zero, with no limit on accleration.
FUNCTIONS
gantry.N.read.funct ( OR <newinstname>.read.funct (requires a floating-point thread) )
Update position-fb and home/limit outputs based on joint values
gantry.N.write.funct ( OR <newinstname>.write.funct (requires a floating-point thread) )
Update joint pos-cmd outputs based on position-cmd in
PINS
gantry.N.joint.%02d.pos-cmd float out (MM=00..pincount) ( OR <newinstname>.joint.%02d.pos-cmd float out (MM=00..pincount) ) - Per-joint commanded position
gantry.N.joint.%02d.pos-fb float in (MM=00..pincount) ( OR <newinstname>.joint.%02d.pos-fb float in (MM=00..pincount) ) - Per-joint position feedback
gantry.N.joint.%02d.home bit in (MM=00..pincount) ( OR <newinstname>.joint.%02d.home bit in (MM=00..pincount) ) - Per-joint home switch
gantry.N.joint.%02d.offset float out (MM=00..pincount) ( OR <newinstname>.joint.%02d.offset float out (MM=00..pincount) ) - (debugging) Per-joint offset value, updated when homing
gantry.N.position-cmd float in ( OR <newinstname>.position-cmd float in ) - Commanded position from motion
gantry.N.position-fb float out ( OR <newinstname>.position-fb float out ) - Position feedback to motion
gantry.N.home bit out ( OR <newinstname>.home bit out ) - Combined home signal, true if all joint home inputs are true
gantry.N.limit bit out ( OR <newinstname>.limit bit out ) - Combined limit signal, true if any joint home input is true
gantry.N.search-vel float in ( OR <newinstname>.search-vel float in ) - HOME_SEARCH_VEL from ini file
INST_PARAMETERS
pincount int (default: 7)
LICENCE
GPL