Comments (12)
@firesurfer Right now we are occupied with the current developments for Jazzy, if we are done with it, I can take a look at this later. I hope this is not a problem 👍
from ros2_control.
@saikishor Thanks a lot!
from ros2_control.
@firesurfer Thank you for taking time and create a new issue. Once you have the testcase, we can try to find a solution. It would be really nice to have such testcase, so we don't introduce the bug in future
from ros2_control.
@saikishor good morning. Could you please point me out where the best place is to add such a test?
I found so far:
https://github.com/ros-controls/ros2_control/blob/master/hardware_interface_testing/test/test_components/test_actuator.cpp
Shall I just add an exclusive actuator there ?
from ros2_control.
@firesurfer Yes you can add it over there. Can you name it as test_actuator_exclusive_interfaces.cpp
because you are focusing on the interfaces part
from ros2_control.
I went through the code roughly, it is more or less good. Now, the part is to reproduce the same failure you have in the perform command switch in the test :)
from ros2_control.
That should be rather easy. I will add a test controller (prob. here? https://github.com/ros-controls/ros2_control/tree/master/controller_manager/test) that fails during activation and claims some of the interfaces.
from ros2_control.
Regarding the testing procedure:
- Setup a system that uses the hardware interface in #1492
- Load and activate the controller from #1493
The hw interface should now be in a state in which it has a "started" command interface that has not been stopped.
- Try to load and activate the failing controller or another one that uses the command interface.
The hw interface should now deny the prepare_command_mode_switch
from ros2_control.
@firesurfer add both #1492 and #1483 in the same PR, so you can clearly write a TEST case to reproduce it
from ros2_control.
@firesurfer
When I meant test, If you can write a test like how the tests are written in the tests
folder of the packages, that's why merging both PRs into one would make sense
from ros2_control.
Sorry for that.
But for someone who is not really involved in the ros2control development adding something, especially adding test looks rather difficult/ time consuming at the moment, as there are quite a lot of infrastructure and internal internal interfaces involved. Additionally I couldn't find any documentation about the test infrastructure and best practices.
I am really willing to provide the test code but I could really use some help setting up the necessary glue/infrastructure code.
I merged both PRs in #1492
from ros2_control.
@firesurfer In the meantime, you can check how different tests are written. The integration tests are in the hardware_interface_testing package. I usually find a similar test, copy it, and then start changing it. You can add it to any file, and we will easily move it.
from ros2_control.
Related Issues (20)
- Joint Limiters: Saturation (current PR971 - will be renamed) and Soft Limiter HOT 3
- Changing how handles are used (in stages and PRs) HOT 1
- Fallback controllers HOT 1
- Integrate SideloadControllers - controllers that do longer calculations in a separate thread but data access is synchronized
- release_interfaces does not seem to work (or not work as expected) HOT 17
- not able to activate 2 controllers HOT 3
- `KeyboardInterrupt` exception if shutdown before controller manager is found HOT 1
- Passing data to multiple instances of HardwareInterface from control node HOT 8
- Document `calculate_dynamics` of mock hardware HOT 3
- Spawner waiting for '/controller_manager' services to be available when they are already available HOT 1
- spawner.py parse parameters with namespace wrong HOT 2
- CI build job humble/testing failed! HOT 2
- [Question / Feature Request] - Is there a way to list _all_ controllers (not just loaded controllers) HOT 5
- Add tests for hardware components exception handling
- i hope to know the relationship of the joint name in urdf
- i hope to know the relationship of the joint name in urdf & ros2 control label & controller config file? HOT 1
- CI build job iron/main failed! HOT 1
- CI build job humble/main failed! HOT 1
- Using controller with collaborative/softening mode. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ros2_control.