-
Notifications
You must be signed in to change notification settings - Fork 310
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify implementation of transmissions #1305
Comments
Hello @yashi, It seems like we're facing similar challenges. I'm currently working on a project that utilizes the EtherCAT driver for ROS2 (https://github.com/ICube-Robotics/ethercat_driver_ros2). Upon reviewing the code and referencing @destogl's input in #798 (comment), it appears that the hardware driver should support transmission. However, the EtherCAT driver doesn't currently offer this capability. Initially, I explored the possibility of implementing a controller hierarchy using the ChainableControllerInterface. However, I encountered a limitation: Chainable Controllers cannot provide status interfaces to other controllers. This feature is currently under development and can be tracked at: #1021. To address this issue, I'm considering implementing the necessary functionality within the hardware interface driver itself. However, if I need to change the driver I will need to implement it again I'd appreciate any insights or suggestions you might have on how to approach this challenge. Thank you! |
@willian2005 "hardware side" he mentioned is not the driver but "Hardware Components" of ros2_control, I assume. |
@yashi I think that we are talking about the same thing, I was calling the "Hardware Components" as a driver. |
Multi-posted: ICube-Robotics/ethercat_driver_ros2#115 |
Not directly related, but I tried to add a section about transmission interfaces to the docs: #1497 |
This issue is a follow-up of https://robotics.stackexchange.com/q/107590/32825
The current implementation of transmissions has high cognitive load for me. In my mental model, a transmission is simply a function that takes a few inputs and returns a few outputs. It would be great if they were something like:
@christophfroehlich told me to look at the
ros2_control
's design draft. And I found that there was (is?) some intention to simplify them. To quote:It also has a proposal
I'd like to ask if there is still an intention to change transmission APIs or add new simplified APIs. If so, how should I approch it? I don't have any problem creating PRs but I'd like to know a direction I should take.
Oh, and I haven't used all transmissions yet. All I have used are 'Simple' and 'Differential' ones. So, if there are some features I'm missing, please give me a pointer. (I'm sure there is/was a good reason to use a pointer to double in 'ReadOnlyHandle'.)
Thanks.
The text was updated successfully, but these errors were encountered: