Object recognition or fiducual?
Akshay Lakhani from South Africa  [6 posts]
12 year
I am using RR on my robot to identify markers on a path so that the robot knows where it is.
The markers are large numbers (1-20) printed on a black background (see attached image1). I want to know whether object recognition or fiducial recognition is better.

The problem I have with object recognition is that it is set to shape method but ocassionaly confuses the numbers with one another. It also doesn't let me detect only one image at a time like fiduciary does. But the problem I have with fiduciary is that it does not detect the numbers well (confidence <= 50%).

The numbers are about 3.5"x3.5". I capture them using the camera and load them through the object recognition module. I am not very sure of how to load the images for the fiducial module.

Your help will be much appreciated

EDV  [328 posts] 12 year
You can also try to use AVM Navigator for visual beacons recognition in "Object recognition" mode:

Just download http://edv-detail.narod.ru/Beacon_32_v1.zip file and then you should unpack it and load "Beacons_32_v1.dat" to AVM Navigator (use "Load" button in navigator dialog window). Further print some of "Beacon_M1.png" - "Beacon_M32.png" image and show it in front of your camera when navigator is running.

You can use interface variables for getting of recognition results:
NV_OBJECTS_TOTAL  - total number of recognized objects
NV_ARR_OBJ_RECT_X - left-top corner X coordinate of recognized object
NV_ARR_OBJ_RECT_Y - left-top corner Y coordinate of recognized object
NV_ARR_OBJ_RECT_W - width of recognized object
NV_ARR_OBJ_RECT_H - height of recognized object

As example you can use these VBScript programs that was published in this topics:
Anonymous 12 year
You can also try


after an auto-threshold of the image (it works well with what you have above but for a real scene would require some thresholding prior to recognition).

Akshay Lakhani from South Africa  [6 posts] 12 year
Hi STeven,

I tried the shape match module. It works well except it gets confused between certain number, like 5 and 6, 6 and 9. It identifies them with confidence>90%.

Is there anything I can do to avoid it from confusing numbers with one another? If not are there any special markers I can use that will be identified uniquely.


BTW EDV, I would like to try the AVM module but I am not sure how to. Could you perhaps post a tutorial?
Anonymous 12 year

Try unchecking the "Rotational Invariance" checkbox ... that should work better for numbers.

As for AVM, there are quite a few posts in this forum that link to examples:

For example, read


EDV  [328 posts] 12 year
>> Could you perhaps post a tutorial?

* Connect your robot to AVM Navigator

Just use the variables that described below for connection of your robot
to AVM Navigator:

Use variable NV_TURRET_BALANCE for camera turning:

NV_TURRET_BALANCE - indicates the turn degree amount.
This value range from -100 to 100 with forward being zero.

Use for motor control NV_L_MOTOR and NV_R_MOTOR variables that have range
from -100 to 100 for motion control ("-100 " - full power backwards,
"100" - full power forwards, "0" - motor off).

You also can used alternative control variables
(motors range from 0 to 255 with 128 being neutral):

NV_L_MOTOR_128, NV_R_MOTOR_128 - motors control
NV_TURRET_128 - control of camera turning
NV_TURRET_INV_128 - inversed control of camera turning

* How to get start

1. Open RoboRealm dialog window.

2. Make sure that "Camera" button is pressed in RoboRealm dialog window
   and also you should check out the camera resolution (it must be 320x240 pixels).
3. Call the dialog window of AVM Navigator (click on it at video-processing pipeline)
   and then switch to "Nova gate mode". Now you can control your robot by arrow keys
   and also you can turn robot camera by "Delete" and "Page Down" keys ("End" key will
   set the camera in front position). If camera was turned you have to press "End"
   for alignment before continuing of robot moving.

Find out more: http://www.roborealm.com/help/AVM_Navigator/avm_q3mod_help.html

Also you can try to train with "AVM Quake 3 mod" for acquaintance with "Marker mode"
and "Navigation by map" modes: http://www.roborealm.com/help/AVM_Navigator/Setup_avm_q3mod.exe

You should use arrow keys for robot control in "Marker mode"
(it is important for route recording).

But you can also control your robot through AVM Navigator from external application
with helping of control variables:

The double purpose of control variables (in/out functions) is already implemented since
as AVM Navigator v0.7.2.3 was released. And now variables (NV_FIRE, NV_LEFT, NV_RIGHT,
(if use it after AVM Navigator in pipeline) as in previous versions but also it has
secondary function as input of control signals from external application.

Now users will be able to set value of these variables to “-1” (before AVM Navigator in pipeline)
for activation of control action from scripts or other modules or external application
(through API and "control translator" script).

Find out more: http://www.roborealm.com/forum/index.php?thread_id=4253#

This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index