Postby pincy » Tue Jun 02, 2020 9:21 pm
Some points of clarification:
1. The "blob" cameras in ARGoS are a trick to avoid having to generate images and also filter them. This allows for shortcuts such as getting the list of blobs in the visibile volume, apply a transformation to them, and return the list of transformed blobs as sensor reading.
2. An omnidirectional camera is, in reality, a camera that points up and looks at a convex mirror, such as a cone or a parabola. The image you get is circular and distorted, and it's formed by the projection of the points in the cone formed by the tip of the mirror and the floor. The implementation in ARGoS simulates this projection.
3. If you need a camera that can see in a different way, the omnidirectional camera is not (especially in reality!) what you need. You need a different camera, such as a perspective camera. Refer to wikipedia to learn about the maths of perspective and the associated camera model.
In this context, I don't really understand what you mean with your question about changing the code as you suggest. In order to implement a camera that can see what you need, you need to first identify which camera you would use in real life, and then implement its projection model. Fortunately the calculations are simple.
The example code to start from is the already implemented camera. Make a copy of it and change what you need. Do not extend the existing camera, make your own.
I hope this answers your questions. Let me know if you need more guidance.
I made ARGoS.