Comments (4)
Perhaps the consistency check makes more sense for the /state:o
port, which is not used by the NWC (it reads only from /stateExt:o
)? The only usage I know is yarp read ... /prefix/state:o
. Thus it also might not need any envelope at all.
from yarp.
@randaz81 would it be possible to consider this for the next release (3.9.x)?
from yarp.
An example of the consistency checker causing NWS to stop streaming:
from yarp.
I thought about this issue for quite some time, thinking about possible solutions (one at the end of this comment). Of course, code can be always improved and new checks can be introduced to make it more resilient to unexpected situations. However, let's analyze the issue from its fundamentals.
Often, we observe communication issues on specific (not all) controllers, but we are prepared to deal with that: relying on a heartbeat signal, the conflicting device is restarted when a reasonable timeout elapses.
No. This is something that my old master discouraged me from doing always. Under no situation you should allow a robot to operate if its status is (partially) undefined because of hardware failures in one of its parts. Under no situation, you should fix in software a problem of a hardware nature, hiding the problem with a watchdog and possibly causing a malfunctioning of a higher layer of the stack. Consider a coordinated movement of multiple joints, a differential system, or a cartesian controller. What will be the final trajectory of the end effector, if one controller receives a position feedback older than 1 second?
This check is doing what is supposed to be. Stop the robot and print an error to the user. In a very strict way, I understand, but I would make it even more strict, putting the system in "hardware fault" if I had the possibility. This check prevents a malfunctioning manipulator from damaging itself, the environment or injuring people, so the user has the chance to fix the hardware before continuing.
Now, considering possible improvements to the system, I'm currently working to improve return codes in Yarp interfaces and this is very related to your point 1:
Detect inconsistency through return codes instead, e.g. let consumers deduce it from the boolean returned by getEncoder and similar. This might require action on the implementor's side: if my joint is not responding, return false and let it flow through the NWS/NWC pair down to remote callers.
A draft of PR is already open #3051, It was originally scheduled for yarp 3.10 but unfortunately, it is a pretty large change, and it will require some extra development time to be propagated in all affected devices (especially the motorcontroller which implements a huge amount of methods). I'll keep you updated on the advancements on this.
from yarp.
Related Issues (20)
- conda-forge based robotology-superbuild Installation facing erorr in cloning YARP HOT 11
- how can I resolve the "Reply from iCubSim: [fail] "could not set index" error"? HOT 2
- Failure to compile YARP with the option `ENABLE_yarpcar_portmonitor`, ON HOT 20
- Broken Link: http://www.yarp.it/install.html HOT 1
- yarplogger – new feature requested: export multiple .txt files with a single button HOT 13
- issue with swig 4.2.0 HOT 1
- conda-forge based robotology-superbuild is not running icub simulator HOT 20
- yarpserver --read doesn't set the correct socket
- NetworkClock not working in with LocalMode enabled HOT 5
- YarpDeviceParserGenerator: glitch in the INFO prints with vectors of double HOT 1
- Unable to start yarpview on Xavier HOT 3
- yarpmanager gets (almost) stuck in case the connection to yarpserver is delayed HOT 7
- Possible access to dangling pointer in yarpbroker.cpp
- Error: Module not found YARP when i try to use it using python 3.11 HOT 21
- Support Qt6 HOT 1
- YARP 3.9: compatibility with python 3.12 when handling images HOT 4
- Desired torque decimals are not displayed in the motorgui if the torque control mode is set HOT 7
- Unable to set the joint torque feedforward parameter from the motorgui in the compliant mode HOT 3
- Add time information to errors msg in Yarpmanager
- Error: module 'yarp' has no attribute 'Network' HOT 3
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 yarp.