Fix ROS 2 port: lcec symbol fix, HAL pin nan values, EtherCAT IO module init hang#2
Merged
zultron merged 11 commits intotormach:humblefrom Sep 10, 2025
Conversation
The `linuxcnc-ethercat` packages had a typo in the sources, causing a dynamic linker error when the `lcec` component was loaded. This is fixed in the cloudsmith repos. `ENV PACKAGE_UPDATE_SERIAL` is bumped to pick up that change. The Docker image build will fail if the EtherCAT master is running. Print out a big fat warning and exit if it is running.
e67ec3b to
80fd4ed
Compare
Silence joint_trajectory_controller error:
[hal_mgr-1] [ERROR 1754338069.553251029] [joint_trajectory_controller]: Trajectories with effort fields are currently not supported. (validate_trajectory_msg() at ./src/joint_trajectory_controller.cpp:1559)
Remove unneeded `vel_fb`.
Log zero trajectory for debugging.
Fix case where `load` pin isn't cleared.
* Fix HAL pins with `-nan` value causing robot startup to fail Fixes ROB-922 The `latency.icomp` has an output pin, `curr_periodf`, that is initialized with a zero value. That's connected to the other pins through the `curr_periodf` signal. Our recent patch to Machinekit propagates the value of an output pin to the signal when linked, so that explains the behavior change. The `pll` comp was initializing the `periodf` pin to 0.001, so the fix here is to intialize the `latency` comp `curr_periodf` pin to 0.001 instead. (Cherry-picked from 6eda3cf2 in ROS 1 stack)
- Log device mgr state changes and respond to fault state - Improve timeout code - Improve exception handling
Contributor
Author
|
Updated PR with fixes for more issues found by futnuh. :D The main problem was a bug we fixed in Machinekit HAL needed changes in a HAL comp from this repo. |
Bump `PACKAGE_UPDATE_SERIAL` so Docker image rebuild picks up changes.
6ba312f to
1d5c91c
Compare
Contributor
Author
|
Added more commits. @futnuh reported his machine is up and running!
Huge thanks to @futnuh for reporting these problems and for iterating through several test cycles! |
lcec symbol fix, HAL pin nan values, EtherCAT IO module init hang
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
User @futnuh on the Tormach robot forums pointed out a linker problem loading the
lceccomponent because of a missing symbol,LCEC_PDOINIT.https://forums.tormach.com/t/ros2-support-for-the-za6/2370/8
That's now fixed in this branch:
https://github.com/zultron/linuxcnc-ethercat/tree/zultron/2025-07-31-fix_linker_error
...along with the bit-rotted GH Actions config that pushes the packages here:
https://cloudsmith.io/~zultron/repos/etherlabmaster-test/packages/
This PR bumps an env var in the
Dockerfilethat invalidates cache and forces the new version of the package to be installed.It also prints an error and exits the Docker build if the EtherCAT master is running, which causes the Docker image build to fail with only cryptic error messages.
Updates:
qccomp hasnanvalue for HAL pins; this is the result of a Machinekit HAL fix that needed corresponding changes in the HAL configWith these changes, user reports ZA6 with IS620N drives and iTegva IO module now resets and moves.
This PR depends on tormach/hw_device_mgr#22. The changes to
devel_scripts/docker/ros_custom/repos.yamlwill need to be reverted after that PR is merged.