Install ArUco on Ubuntu Linux

aruco

ArUco is a library for Augmented Reality applications with a BSD license. The main features of ArUco are: detect markers with a single line of C++ code, detection of AR boards (markers composed by several markers), up to to 1024 different markers, trivial integration with OpenGL and OGRE, fast, reliable and cross-platform. ArUco will help you to get running your AR application in less than 5 minutes.

Install ArUco is simple, just follow these steps:

1. INSTALL OPENCV

The first step is install OpenCV on Ubuntu Linux.

3. DOWNLOAD AND DECOMPRESS ARUCO

Enter the ArUco official website and download the latest version for ArUco. Then decompress the downloaded file.

4. COMPILE ARUCO

Now, in your terminal, make sure you are within the ArUco directory and run the following commands:

mkdir build

cd build

cmake ..

make

sudo make install

5. CONFIGURE ARUCO

In your terminal, execute:

sudo gedit /etc/ld.so.conf.d/aruco.conf

Add the following line and save it:

/usr/local/lib

Now, in your terminal, execute:

sudo ldconfig

Again, execute:

sudo gedit /etc/bash.bashrc

Check if the following two lines are at the end of the file. If not, add them and save the file:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

Finally, reboot your computer.

6. TRY AN EXAMPLE

To test an example, from your terminal enters in the ArUco folder. Once you're inside it, enters in build/utils. Now, execute:

./aruco_create_board 5:2 board.png board.yml

With this, we have created a marker board with a size of 5×2. The image is board.png and board.yml is the board configuration.

boardaruco

15 comments:

  1. Replies
    1. Hi Manule,

      I'm truing use test project and during compilation I receiving this message:

      CMake Error at CMakeLists.txt:4 (find_package):
      By not providing "Findaruco.cmake" in CMAKE_MODULE_PATH this project has
      asked CMake to find a package configuration file provided by "aruco", but
      CMake did not find one.

      Could not find a package configuration file provided by "aruco" with any of
      the following names:

      arucoConfig.cmake
      aruco-config.cmake

      Add the installation prefix of "aruco" to CMAKE_PREFIX_PATH or set
      "aruco_DIR" to a directory containing one of the above files. If "aruco"
      provides a separate development package or SDK, be sure it has been
      installed.


      -- Configuring incomplete, errors occurred!

      I suppose that I have something wrong with configuration?
      Could you please advise?

      Thanks,
      Piotr

      Delete
    2. make install after make did the trick for me

      great library, inspired us to develop some awesome stuff

      Delete
  2. Hello Manuel Ignacio,
    I'm trying to install ARUCO in Ubuntu Server 12.04.2 LTS, but after installing and compiling (make and sudo make install) when i try to run the programs the output in terminal is as follows: Illegal Instruction ('core generado').

    I think is a libraries problem. But i followed all your steps (including OpenCV installation). Have you got any idea?

    Thank you very much.

    ReplyDelete
    Replies
    1. Anonymous: I test Aruco 1.2.4 on Ubuntu 12.04.2 LTS and it's work perfectly. I don't know exactly what happens in your machine. I'm sorry.

      Delete
  3. Hola Manuel Ignacio.
    Estoy intentando seguir los pasos que marcas y me sale un error parecido al que te comentan arriba.
    No encuentra la uno de los include que hay en el archivo "ar_omp.h" al hacer el "make" y el error me dice que no encuentra el archivo: omp.h
    Buscando esto por comando (locate) este archivo aparece en una ruta dentro de la carpeta de la librería de aruco, sin embargo no lo encuentra...
    ¿Tiene usted alguna sugerencia? Estoy trabajando en mavericks.
    Un saludo y muy bueno el post!!

    ReplyDelete
  4. I try install aruco after opencv and this is the error i get when i run $ make

    uwaoma@Acre-T420:~/Development/aruco-1.2.5/build$ make
    Scanning dependencies of target aruco
    [ 4%] Building CXX object src/CMakeFiles/aruco.dir/highlyreliablemarkers.cpp.o
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp: In static member function ‘static int aruco::HighlyReliableMarkers::detect(const cv::Mat&, int&)’:
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp:290:28: error: ‘assert’ was not declared in this scope
    assert(in.rows==in.cols);
    ^
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp:293:31: error: ‘CV_BGR2GRAY’ was not declared in this scope
    else cv::cvtColor(in,grey,CV_BGR2GRAY);
    ^
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp: In static member function ‘static bool aruco::HighlyReliableMarkers::checkBorders(cv::Mat)’:
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp:340:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int y=0;y<_ncellsBorder;y++)
    ^
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp:343:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (y==0 || y==_ncellsBorder-1) inc=1;//for first and last row, check the whole border
    ^
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp:344:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int x=0;x<_ncellsBorder;x+=inc)
    ^
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp: In static member function ‘static aruco::MarkerCode aruco::HighlyReliableMarkers::getMarkerCode(cv::Mat)’:
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp:362:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int y=0;y<_n;y++)
    ^
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp:364:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int x=0;x<_n;x++)
    ^
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp: In member function ‘bool aruco::HighlyReliableMarkers::BalancedBinaryTree::findId(unsigned int, unsigned int&)’:
    /home/uwaoma/Development/aruco-1.2.5/src/highlyreliablemarkers.cpp:467:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    while(pos!=-1) { // while having a valid position
    ^
    make[2]: *** [src/CMakeFiles/aruco.dir/highlyreliablemarkers.cpp.o] Error 1
    make[1]: *** [src/CMakeFiles/aruco.dir/all] Error 2
    make: *** [all] Error 2

    ReplyDelete
    Replies
    1. i could correct the first, by including cassert header, but the other seems to be conflict with OpenCV. I have install OpenCV 3 times, just to be sure.

      Delete
  5. Getting to know about these useful info within your post sharing. Thanks a lot. Best IT company in coimbatore | Best web site developer

    ReplyDelete
  6. I am always searching online for articles that can help me. There is obviously a lot to know about this. I think you made some good points in Features also. Keep working, great job! Web Design Sydney

    ReplyDelete
  7. Hi ./aruco_create_board 5:2 board.png board.yml this command displays No such file or directory after I get finished with the entire process.What is the problem?Where did I go wrong?

    ReplyDelete
    Replies
    1. Hey, I have the same problem

      Delete
  8. It is a great sharing...I am very much pleased with the contents you have mentioned. I wanted to thank you for this great article. Web Design Sydney ,Logo Design Sydney

    ReplyDelete