Input validation as a metric for quality

I don’t know if scoring is reasonable.

  1. In many cases input/output data validity cannot be defined on the ROS node level and the ROS library level. It depends on the overall application context. If e.g. data input/output to a ROS node/nodelet is considered valid or not depends in many cases on the application the node/nodelet is used in and cannot be defined in the node/nodelet scope in a generic way. Consider a node wrapping an IMU. The data types are simple (sensor_msgs - imu). If e.g. the accelerations are beyond the hardware specification it is pretty obvious that the output (e.g. published topic) is invalid. An application level node/nodelet which uses the IMU nodes data as input could validate it. For a generic node which uses the IMU nodes data as input, lets say to stabilize the pose of a drone, the “validity” of the input would depend on the overall application setup and capabilities (IMU node, “stabilization” node, motor control node, etc.). The acceleration input would be considered invalid above levels which would lead the overall setup to fail in stabilizing the drone pose.
  2. In many cases the interface data types are too complex to define what “valid” data is. E.g. consider a node/nodelet providing or consuming the sensor_msgs - PointCloud2 data type…