Skip to content

Comments

Combined updates from multiple sources#22

Merged
zultron merged 131 commits intotormach:humble-develfrom
zultron:zultron/2025-08-04_ros2_fixes-dev
Sep 10, 2025
Merged

Combined updates from multiple sources#22
zultron merged 131 commits intotormach:humble-develfrom
zultron:zultron/2025-08-04_ros2_fixes-dev

Conversation

@zultron
Copy link
Collaborator

@zultron zultron commented Aug 6, 2025

This PR contains combined updates from trees that have diverged:

  • Robot-related changes:
    • Support overlapping PDOs for TI ESC-based slaves
    • Support EtherCAT junction boxes
  • CNC mill-related changes:
    • Add an input to quick stop individual drives without taking all drives down to SWITCH ON DISABLED
    • Add handling for PV and PT control modes

Also support for additional drive models and lots of bug fixes.

zultron added 30 commits April 27, 2023 10:10
Fix issue where drive param updates cycle indefinitely with console
log spamming
The `test_read_update_write` test can be reused with different inputs
to test many different cases.  Split it out so it can be subclassed
and run alone without dragging in the rest of the device tests.
This paves the way for running many tests over just one update.
The first cycle of the `test_read_update_write()` loop will completely
reset all device interfaces.  Interfaces are set twice so that the
object doesn't see any change from the previous update cycle.
Top-level device mgr objects may have their state machine forced to
any desired state.
Log names now show up as device name@address; for example, in
`hw_device_mgr/devices/tests/devices.py`, a log name could be
`SV660_ECAT_test@(0,5,10)`.  Its config object logger would be
`SV660_ECAT_test_cfg@(0,5,10)`.
Classmethods beginning with `test_` are now considered test cases.
Have `hm_request_cw_flags()` and `pp_request_cw_flags()` return a
`dict` with updated flags.  This is nice for consistency, easy to
understand, and easy to override if needed.
Introduce separate update rates, the usual update rate (default 10Hz)
for normal operation, and a fast track update rate (default 100Hz) for
when fast track is requested.
Allow passing an explicit list `devs` of bus scan results to
`gen_ethercat_xml()`; the method will use that instead of running
`bus_scan()` itself.
Simulate command execution by setting a period to sleep.
zultron added 19 commits August 4, 2025 18:01
Some devices have fixed PDO mappings (e.g. iTegva IO modules) or no
sync manager mailboxes or object dictionaries at all (e.g. Beckhoff
CU1128 junction box).

- Make `ethercat.conf.xml` `<slave configPdos=[...]` configurable
- Don't crash when device config has no `sync_manager` key
- Add sim junction box to tests
`REAL` data type seen in both Elmo and Ingenia ESIs.
The recently-added PDO entry `scale` and `offset` args need different
values for different drives in the same machine.
- Fix CI Docker image namespace, following upstream [1] (possibly
  temporary)

- Update CI Docker image and CI config to Humble/Jammy

- Remove `clang` tests & ccache config; fixes failure on Ubuntu
  Jammy, with no `clang-format-10` package; no C code here anyway

- Update pre-commit GH action tag to latest 3.0.0

[1]: moveit/moveit2#1908
- Don't depend on unneeded things
- Don't fail when `multilatency` comp can't be instaled
Update to "Add device class `init_class()` method" commit
…08-04_ros2_fixes-dev

This merge mostly replaces the original, stale branch with this recent
branch, containing all current code used in 1500MX and ZA6 ROS 2 code
bases, except preserving the following commits:

    cia_301:  Throw exception early if a device isn't recognized
    ethercat:  xml_reader.py no-op readability
    ethercat:  Handle `<Comment/>` child tags in `<DataType/>` tags
    Fix error handling in mgr_ros

Conflicts:
	.github/workflows/format.yaml
	.github/workflows/upstream_install.sh
	.pre-commit-config.yaml
	hw_device_mgr/async_task_queue.py
	hw_device_mgr/cia_301/async_params.py
	hw_device_mgr/cia_301/config.py
	hw_device_mgr/cia_301/device.py
	hw_device_mgr/cia_301/tests/test_config.py
	hw_device_mgr/cia_301/tests/test_device.py
	hw_device_mgr/cia_402/device.py
	hw_device_mgr/device.py
	hw_device_mgr/devices/inovance_sv660.py
	hw_device_mgr/logging/__init__.py
	hw_device_mgr/mgr/mgr.py
	hw_device_mgr/mgr/tests/test_mgr.py
	hw_device_mgr/mgr_ros/mgr.py
	hw_device_mgr/tests/test_device.py
@zultron zultron force-pushed the zultron/2025-08-04_ros2_fixes-dev branch from f577727 to 96a3b72 Compare August 8, 2025 17:28
@zultron zultron merged commit b141e45 into tormach:humble-devel Sep 10, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants