Welcome new user! You can search existing questions and answers without registering, but please register to post new questions and receive answers. Note that due to large amounts of spam attempts, your first three posts will be manually moderated, so please be patient.
Because of un-manageable amounts of spam despite our use of CAPTCHAs, email authorization, and other tools, we have discontinued this forum (see the 700k+ registered users with validated email addresses at right?). Please email us any questions or post bug reports and feature requests on GitHub at https://github.com/jevois -- The content below remains available for future reference.

why is my aruco marker not detected?

0 votes

I have a 140mm aruco marker part of the buldled aruco DICT_5x5_1000 dictionary.

When i start the aruco example in jevois-inventor `Vision Module > YUV 650x500 @ 20fps - JeVois DemoArUco (C++)`

then, in Parameters tab, select dictionary D5x5_1000

even though the marker is in complete view, i still observe "Detected 0 ArUco markers"

Using the same parameters, if I show the default aruco marker for instance in the top left corner of jevois-inventor GUI (which by the look of it is a 4x4 aruco marker) ==> then this marker is detected.

It seems the dictionary param is ignored ?

Do I do something wrong ?

how can i change the dictionary param with console (text) interface instead of GUI ?

thanks

[edit] i did find the `setparam dictionary D5x5_1000` and `getpar dictionary`commands. I can observe that it does report the correct dicitonary. To no avail. it seems that at runtime it just uses the default dictionary whatsoever.

Besides, I would love to use a bigger resolution but i'm struggling to activate a custom resolution and start/stop streaming for command line interface... :/

asked Oct 15, 2018 in User questions by fourchette (580 points)

1 Answer

0 votes
 
Best answer

I think this parameter may not be updatable at run time. We will look into it. Maybe it needs to be frozen like camparams and detparams.

Can you try to set it in the params.cfg file of the module? Go to the Config tab in the Inventor, then select the file params.cfg, and finally in there add a line:

dictionary = D5X5_1000

Save the file, and the module will restart. The correct dictionary should now be loaded and in effect. Please let us know if it does not work and we will dig deeper.

Note: This post was edited to use an uppercase X instead of the original (incorrect) lowercase x.

answered Oct 16, 2018 by JeVois (46,580 points)
selected Nov 6, 2018 by fourchette
thanks for your feedback. Once the "Vision Module > YUV 650x500 @ 20fps - JeVois DemoArUco (C++)" was loaded, i went the "Config" tab, selected "Module's params.cfg" item in the selection list. then added the line as suggested

# Optional parameter setting file to run each time the
# module is loaded, BEFORE it is started.
#
# Only entries of the form "param = value" are allowed,
# and you can only set the module's parameters here (not
# any of the system parameters).
#
# Example:
#
# serstyle = Detail
dictionary = D5x5_1000

I clicked on Save to jevois, it asked for confirmation, i confirmed. then it re-loaded the module, then the module refused to load with an error message:

since the module no longer loads, the command "help2" no longer returns the module's help page. However, i'm pretty sure i saw D5x5_1000 in the list of possible values for dictionary.

And now it seems that since the module no longer loads, changing the config no longer seems possible :(

see screenshot => https://i.postimg.cc/Gmm4hQmv/2018-10-17-09-49-37-jevois-inventor.png
yes, it's an uppercase X, see http://jevois.org/basedoc/ArUco_8H_source.html at line 41. Annoying small detail...

Indeed, we are working on trying to avoid this kind of problem in the inventor. It is a bit tough as we need to basically keep a module that has crashed in a somewhat running state so it can be fixed. This problem will be gone in the next version of the inventor.

In the meantime, you can just load another module, and then under the System tab, export the microSD as virtual USB drive, and then you can go fix the params.cfg file inside the DemoArUco module. When JeVois reboots, it should load now.
wow! fantastic support!
It's working now
==> https://i.postimg.cc/g20YPBYt/2018-10-23-17-45-34-jevois-inventor.png

i'm wondering how small I can make those markers until the reported pose starts to have too high an error.

I would encourage you to edit your post above to make sure ppl copy/pasting from here do not experience this unpleasing behavior
The algorithm is supposed to have sub-pixel corner refinement. However, some JeVois users have reported that this does not work so well. In practice, we can identify ArUco markers here down to about 20x20 pixels or sometimes smaller, but the accuracy of the 3D pose recovery is not great with such small markers.
...