Range of Omni-directional Camera

Requests regarding how to set up experiments in ARGoS.
Posts: 41
Joined: Thu Oct 23, 2014 12:33 pm
Location: Pakistan

Range of Omni-directional Camera

Postby Waqar731 » Sat Jul 20, 2019 7:27 am

For which value of omnidirectional_camera_aperture, the foot-bots can detect other robot's leds within 20 grids via omni-directional camera :?:

For example If I used the following lines of code, to place the foot-bots, one at 5,22 and other at 21,22.

Code: Select all

<foot-bot id="kb" omnidirectional_camera_aperture="89"> <body position="5,22,0" orientation="0,0,0" /> <controller config="mrc" />> </foot-bot> <foot-bot id="kb-1" omnidirectional_camera_aperture="89"> <body position="21,22,0" orientation="0,0,0" /> <controller config="mrc" />> </foot-bot>

Then by using the value of aperture=89 both are detecting each other as shown in below image.

Screenshot from 2019-07-20 12-15-41.png
Screenshot from 2019-07-20 12-15-41.png (38.31 KiB) Viewed 2246 times

But If I use the value of apperature=80 for the same robots then these robots don't detect each other via omni-directional camera. Why they don't detect with aperture = 80?

Second question is that, If I use the aperture=89, and now I place these two robots at 5,22 and 22,22, then now in this case these two also don't detect each other. In simple words, with aperture=89 we can detect the robots maximum at distance of 16 grids as can be seen in above attached image. With which value of aperture we can increase the detection of omni-dirrectional camera upto 20 grids?

Waqar Hussain

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

Re: Range of Omni-directional Camera

Postby pincy » Sat Jul 27, 2019 1:51 pm

The footbot has a body of a certain height Hb on top of which there's a small tube of a certain height Ht. At the end of the tube, a convex mirror is installed that reflects the floor onto a camera at the base of the tube.

The omnidirectional camera is modeled as a triangle whose base is the range R of the robot on the floor, and whose tip is the top of the tube. The tip of triangle is at a height

Hc = Hb + Ht.

Calling Alpha the aperture that you can set as a parameter, this equation is valid:

R / Hc = tan(Alpha).

If you want to calculate the range R, then

R = Hc * tan(Alpha)

which is the same calculation done in colored_blob_omnidirectional_camera_rotzonly_sensor.cpp#L190.

If you want to know which aperture corresponds to which range, then use

Alpha = atan2(R, Hc)

For the foot-bot, the value of Hc is 0.288699733.
I made ARGoS.

Return to “How to... ?”