Before installing osgART we need to install ARToolKit, collada-dom and OpenSceneGraph so look at those post before continuing with this:
- Install ARToolKit 2.72.1 in Ubuntu 11.10 and 12.04
- Install collada-dom library in Ubuntu 10.04, 10.11, 11.04, 11.10 and 12.04
- Install OpenSceneGraph 2.8.3 with Collada support in Ubuntu 12.04
- Install OpenSceneGraph 2.9.6 with Collada support in Ubuntu 12.04
Once you have installed the dependencies for osgART download osgART 2.0 RC3 code from here and uncompress it. Run the following commands:
mkdir build cd build cmake .. -DCMAKE_CXX_FLAGS=-fpermissive -DCMAKE_MODULE_LINKER_FLAGS=-lgstreamer-0.10 -DCMAKE_SHARED_LINKER_FLAGS=-lgstreamer-0.10 make sudo make install
You can remove the “-DCMAKE_CXX_FLAGS=-fpermissive
” option if you add the following includes in the “include/osgART/Utils
” file after “#include
“:
#include#include
Configure the ARTOOLKIT_CONFIG variable (you should have this already configured when installing ARToolKit):
export ARTOOLKIT_CONFIG="v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink"
And run the example program while showing the “Hiro” pattern to the camera:
cd /usr/local/bin/ ./osgartsimple
If you get this error:
Plugin '-1' unknown! Could not initialize video plugin!
It is caused because the osgART libraries weren’t correctly copied to the library folder (“/usr/local/lib
“) and/or the OSG plugins folder (“/usr/local/lib/osgPlugins-X.X.X
“). Verify that a file called “libosgART.so
” is in “/usr/local/lib
” and that the files “osgdb_osgart.so
“, “osgart_tracker_artoolkit2.so
” and “osgart_video_artoolkit2.so
” are in the OSG plugins folder (that should be “/usr/local/lib/osgPlugins-2.8.3
” or “/usr/local/lib/osgPlugins-2.9.6
” depending on the version of OSG you installed). Be aware that if you install different versions of OSG at the same time the osgART plugin may no be copied to the plugin folder of the OSG version you want. Also you may run this just in case:
sudo ldconfig /etc/ld.so.conf
If you see a black background it is caused because of a small bug in ARToolKit. It can be fixed in ARToolKit changing “ar2VideoCapNext
” function on “lib/SRC/VideoGStreamer/video.c
line 378 to return 0
instead of TRUE
OR by changing osgART file “src/osgART/Video/ARToolKit/ARToolKitVideo.cpp
” on line 310 from this:
if (0 == ar2VideoCapNext(video))
To this:
if (ar2VideoCapNext(video))
If you want to have a smoother marker detection on osgART you can change the source code on file “src/osgART/Traker/ARToolKit/SingleMarker.cpp” and uncomment the line 76 and comment the line 77. I mean changing this:
//arGetTransMatCont(markerInfo, patt_trans, patt_center, patt_width, patt_trans); arGetTransMat(markerInfo, patt_center, patt_width, patt_trans);
To this:
arGetTransMatCont(markerInfo, patt_trans, patt_center, patt_width, patt_trans); //arGetTransMat(markerInfo, patt_center, patt_width, patt_trans);
Sources: http://projects.springlobby.info/issues/1575
https://github.com/bitcoin/bitcoin/pull/456
https://code.ros.org/trac/opencv/ticket/1020
http://forum.openscenegraph.org/viewtopic.php?t=7755