Goal
- Same-vendor multi-motor: multiple motor handles under one Controller, query state in one pass.
- Multi-vendor mixed: multiple Controllers in parallel, query state in one pass.
Run
Notes
- Damiao uses a
DAMIAO_MOTORSlist; add as many as you need. - MyActuator uses
USE_MYACTUATOR+MYACTUATOR_MOTORS. - RobStride uses
USE_ROBSTRIDE+ROBSTRIDE_MOTORS. - The unified call is
request_feedback() + poll_feedback_once() + get_state()(compat form). RETRY_ENABLED=True: enables query retry, which greatly reducesNone.MAX_RETRIES/RETRY_DT_MS: control retry count and interval.
<= v0.1.6: keeppoll_feedback_once().v0.1.7+: background polling is on by default; manualpoll_feedback_once()is usually optional.
How to add more Damiao motors
Add a row toDAMIAO_MOTORS, e.g.:
probe=0x01->mst_id=0x11probe=0x04->mst_id=0x14probe=0x07->mst_id=0x17
How to remove a motor or brand
- Remove a motor: delete its row from the list.
- Disable a brand: set
USE_MYACTUATORorUSE_ROBSTRIDEtoFalse.
How to add a brand-new vendor (code level)
To add a vendor not yet in the script (e.g.hightorque):
- Add that vendor’s config list and switch.
- Add
attach_xxx(ctrl, cfgs)that callsctrl.add_xxx_motor(...)internally. - In
main(), create that vendor’s controller and run:ctrl.enable_all()states = query_states_with_retry(ctrl, motors)append_states(out, names, states)
RobStride: scan then fill (recommended)
VENDOR to robstride in 01-scan.py, confirm the scanned ids, then fill
them back into ROBSTRIDE_MOTORS.