[ros-users] [Discourse.ros.org] Suggestions for std_srvs

Geoffrey Biggs ros.discourse at gmail.com
Wed Jan 11 23:46:10 UTC 2017




I have a cautionary tale from the world of RT-Middleware, which has provided something similar to that requested since the dawn of time. I can see why it was done initially: Defining new types in RT-Middleware is quite difficult for most users. I'm sure the thinking was that providing these defaults based on common data types would make things easier for everyone. However, the result has been overwhelmingly negative. Nearly all users are using those generic data types, and instead of semantically structured data, we see things like people putting poses into arrays of floats. The result is that RT-Middleware components are nearly universally not reusable because none of them have compatible interfaces, the components are hard to understand, and debugging is a nightmare.

Do not underestimate the value of semantically typed topics and services, and type safety. You and I may use varying different names for our topics and services, but we know that if the type is the same, then we can make our nodes talk with a simple remapping. If we use generic topic and service types, then we have to read the documentation and understand how the type is being applied to be sure. The argument has been made that someone could fill in an image incorrectly, but that's not a good argument: Such a node should be considered broken and fixed.

I think that not providing default topic and service for common data types encourages developers to think more about the interface of their node and encourages a higher level of reusability.






---
[Visit Topic](https://discourse.ros.org/t/suggestions-for-std-srvs/1079/21) or reply to this email to respond.




More information about the ros-users mailing list