Skip to content

Generic transmission support in EthercatDriver - #248

Draft
mcbed wants to merge 7 commits into
mainfrom
feat/transmissions
Draft

Generic transmission support in EthercatDriver#248
mcbed wants to merge 7 commits into
mainfrom
feat/transmissions

Conversation

@mcbed

@mcbed mcbed commented Aug 19, 2026

Copy link
Copy Markdown
Member

Adds loadTransmissions()/propagateTransmissionStates()/applyTransmissionCommands() using the standard transmission_interface::TransmissionLoader pluginlib pattern — config-only,

To be merged after PR #241

@mcbed
mcbed requested review from pzanne, tpoignonec and yguel August 19, 2026 14:38
@mcbed mcbed added the enhancement New feature or request label Aug 19, 2026
@mcbed
mcbed marked this pull request as draft August 19, 2026 16:58
@mcbed
mcbed force-pushed the feat/transmissions branch from c4fde2c to 53e77aa Compare August 24, 2026 15:35
mcbed added 7 commits August 31, 2026 16:26
No behavior change; makes the sizing step callable on its own.
Adds the pluginlib transmission loader, the per-transmission
runtime state, and method declarations. No definitions yet.
Loads each URDF <transmission> via pluginlib and builds a staging
buffer per joint/actuator role sized to the union of that joint's
declared state and command interfaces, so any interface name a
project needs flows through automatically without touching this
driver - only the transmission plugin needs to know about it.

Not wired into on_init() yet.
Read direction copies actuator hardware state through the
transmission into transmission-only joints. Write direction copies
transmission-only joint commands through the transmission into
actuator commands, holding an actuator's previous command for any
interface the plugin didn't project rather than overwriting it with
NaN, and warning once per transmission if that drops a real command.

Not called from read()/write() yet.
on_init() loads declared transmissions before wiring EC modules;
read()/write() propagate through them each cycle.
Covers reduction on read/write, an actuator missing an <ec_module>,
an unresolvable transmission joint, an unknown plugin type, and an
actuator command interface the transmission plugin doesn't
recognize (holds its previous value). Also fixes two uncrustify
brace-style spots in ethercat_driver.cpp.
@mcbed
mcbed force-pushed the feat/transmissions branch from 53e77aa to 3428e68 Compare August 31, 2026 14:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant