They are Sensor/ProcessorBase attributes that are set in installSensor/Processor, why do we need it included in the structs ProcessorsParamsBase/IntrinsicsBase? They are duplicated now, so they can be set different :S
I see. Yes they are duplicated but they should match. the params structs are a means for specifying things so they should be copied in the Sen/Prc objects after construction.
Type is tricky, and should match the Sen/Prc type (e.g. "CAMERA", "ODOM 2D", etc).
Name is less important, but sensor names are used to automatically associate processors to them, so they must also be chosen carefully and uniquely.
If there are two specs clashing, then a priority should be established, and the low priority instance should be overwritten.
I think values passed to Prb->installXxx() must take priority over those coming from the YAML files.
Maybe these explanations are incomplete, but this would be the idea.
The thing is: the intrinsics yaml file can be re-used for different projects. It's just the same sensor installed in different robots. Then, the name of the sensor can be changed from one installation to anothre. For example, "camera_left" can be "camera_right" in another project. This is why I suggest installXxx() to take priority.