Detecting LEDs at Z > 0 within ARGoS

Requests regarding how to set up experiments in ARGoS.
jharwell
Posts: 67
Joined: Thu Jan 25, 2018 4:12 am

Detecting LEDs at Z > 0 within ARGoS

Postby jharwell » Mon May 04, 2020 5:27 pm

Hi Carlo,

I'm currently trying to figure out how to have robots detect when other robots are nearby as they are driving up onto 3D structures, and so have Z > 0. From a previous post, you said that the colored blob omnidirectional camera will only work if the object with the LED is on the ground, so that leaves the coloreb blob perspective camera--does that one work to detect objects with LEDs at Z > 0? "argos3 -q perspective" does not say, and looking at the code I'm unable to detetermine if that is the case or not.

I've read papers using ARGoS that have the eye-bots on the ceiling broadcasting LED colors to foot-bots on the ground for communication, so I know this is possible, I'm just not sure how.

Thanks!

jharwell
Posts: 67
Joined: Thu Jan 25, 2018 4:12 am

Re: Detecting LEDs at Z > 0 within ARGoS

Postby jharwell » Tue Jun 02, 2020 6:56 pm

Carlo/Michael--any thoughts on this?

pincy
Site Admin
Posts: 637
Joined: Thu Mar 08, 2012 8:04 pm
Location: Boston, MA
Contact:

Re: Detecting LEDs at Z > 0 within ARGoS

Postby pincy » Tue Jun 02, 2020 8:07 pm

I need to check the code. The blobs can definitely be detected in mid-air, it's just that the vision cone is configured to be rather narrow. The perspective camera would do the job. The papers that used blobs on the eye-bots were using an upwards looking camera. If you need a specific sensor, feel free to add a new one that suits your needs using the existing camera as a reference. For instance, you can create a new implementation for the omnidirectional camera that does what you need. To use it, you'd just need to change the "implementation" attribute in your .argos file.
I made ARGoS.

jharwell
Posts: 67
Joined: Thu Jan 25, 2018 4:12 am

Re: Detecting LEDs at Z > 0 within ARGoS

Postby jharwell » Tue Jun 02, 2020 9:01 pm

Do you have a link to the source to a derived camera as an example (like the upwards facing one) ?

Also, looking at the code, around line 60 of colored_blob_omnidirectional_camera_rotzonly_sensor.cpp, I see the check to see if a given LED is within range for X and Y, but only < the camera position in Z. Would creating a specialized sensor be as simple as making the check in Z the same as the checks in X and Y? Would that make the implementation no longer "rot_z_only", and able to handle robots at Z > 0 able to detect LEDs at Z > 0?

Thanks!

pincy
Site Admin
Posts: 637
Joined: Thu Mar 08, 2012 8:04 pm
Location: Boston, MA
Contact:

Re: Detecting LEDs at Z > 0 within ARGoS

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.

PetrTecilla
Posts: 1
Joined: Mon Jul 13, 2020 3:29 pm

Re: Detecting LEDs at Z > 0 within ARGoS

Postby PetrTecilla » Mon Jul 20, 2020 4:30 pm

Hi...a LED is likewise a shading specific photodiode, however is generally delicate to light around 50 nanometers bluer than its own outflow most extreme frequency. Utilize three photograph transistors every one with a shaded channel over it for red green and blue. Shading sensor modules will in general have red green and blue LEDs and work off reflected light.

https://www.7pcb.com/


Return to “How to... ?”