What's the difference between the logicalCameraSensor and the FiducialCameraPlugin? The logicalCamera doesn't require to render the scene but on the other hand it doesn't take into account occlusions? It seems also that the user needs to specify the fiducials that are going to pass the filter. Am I right?
I made one of the fiducial models long and moved it to be partially outside the frustum, but the messages are still showing it (the coordinates for the yellow model come up as [639, 129], and the camera image size is [640, 480]).
looks like I had the wrong understanding of the Camera::IsVisible functionality. Objects that are partially visible are also returned as visible. I've added some comments in the plugin's doxygen to describe the expected behavior. 3b72055
Optional request: It would be nice to allow another boolean parameter in the plugin filter_all or similar that reports all the objects within the FOV and not occluded. Maybe there are use cases where you don't know in advance the objects that you want to filter.
Ya I agree that making a new IR camera sensor will be more efficient than using the camera sensor and doing more processing in the plugin.
A question about the proposed approach - how does the sensor identify the fiducials? Will it iterate over the image to find the location of white pixels? Each fiducial needs to be unique so the objects need to have different colors. So It's kind of like what selection buffer is doing?
A plugin would report the location of fiducials, either by directly analyzing the pixels or using opencv. This approach would also let other people use opencv (or some other image processing library) to identify fiducials. The material properties for each fiducial could have a different color.