Skip to main content
 首页 » 资源教程

ARTOOLKIT安装与配置

2016年08月30日 21:05:5527080

ARToolkit Documentation

引言:目前市面上卖的免驱动摄像头,都使用uvcvideo进行驱动。uvcvideo在v4l上有问题,需要用v4l2。

下面的来自uvc论坛:

The Linux UVC projects is currently focussing on kernel support for UVC devices. The driver implements the Video4Linux 2 (V4L2) API. Support for V4L1 is not planned.

...

Video corruption has been noticed when the camera is connected to a USB 1.1 controller. For better performances, connect the camera to a USB 2.0 controller.

由于ARToolKit没有对应v4l2的接口,所以SETUP后面的内容无法验证。待修改相关内容后,再做验证。

-----------------------------------------华丽的分割线-----------------------------------------------------------------------

ARToolKit入门Beginner

目录

开始使用ARToolKit

  • 介绍

  • 安装并配置ARToolKit

  • 第一个例子

  • ARToolKit如何工作

  • 校准摄像头

开发者参考

  • 开发要点

  • 第一步:编写第一个程序

  • 第二步:识别多个模式

  • ARToolKit框架:基本说明

  • API参考手册

例子

  • 例子1:稳定识别

  • 例子2:摄像头与标记的关系

  • 例子3:多标记识别

--------------------------------开始使用ARToolKit-----------------------------------------------------------------------

介绍

ARToolKit是一组C/C++的库函数。借助它,你可以很容易的进行Augmented Reality程序的开发(AR,“增强现实”或“扩充现实”)。 Augmented Reality (AR)就是把虚拟的图像叠加到现实世界的图像上,这种技术在很多应用领域诸如工业和学术研究上有潜在价值。

开发AR应用最困难的一点就是如何实时的精确的计算出用户的视点,从而将虚拟的图像精确的叠加到现实图像上。ARToolKit使用了Computer Vision技术,通过这种技术,我们可以计算出摄像机相对于标志卡片的位置和姿态。这样,程序开发人员就可以把虚拟的物体叠加到这个标志卡上。应用ARToolKit提供的快速定位功能,开发者就可以快速开发出许多有意思的AR应用程序。

本手册包含了:完整的ARToolKit描述、如何安装ARToolKit、如何在AR程序中使用它。随ARToolKit发布的还有几个小例子,程序员可以结合手册来编译调试这些例子,快速上手。ARToolKit包括核心的定位库(tracking libraries)和这些库的完整源代码。这样做的好处是能让开发人员将ARToolKit移植到不同平台上,也可以按照自己的意愿给ARToolKit增加/修改/删除功能。

ARToolKit目前可以运行在SGI IRIX、PC Linux、Mac OS X、PC Windows (95/98/NT/2000/XP)上。最新发布的版本是多平台的(平台无关的)。ARToolKit每个版本的功能都是一样的,但是根据硬件配置的不同其性能也会大相径庭。

最新版ARToolKit支持视频视穿(Video see-through AR)和光学视穿(Optical see-through AR)。视频视穿是把虚拟图像叠加到现实世界的视频之上。相对的,光学视穿是通过某些设备(如头带式显示器)把虚拟图像直接叠加在现实图像上。相对于视频视穿来说,光学视穿在摄像头的校准与设备定义上要复杂的多。

(注:see-through意“透明”,我觉得“视穿”比较酷)

如果在开发和应用过程中遇到了问题,请加入我们的邮件列表。我们将很乐于帮助你解决这些问题。另外,我们也会把关于ARToolKit的最新消息和其他开发者遇到的问题公布到邮件列表和论坛中( http://www.hitl.washington.edu/artoolkit/community/ )。BUG的提交与修复、补丁和新功能请求需要使用ARToolKit在SourceForge上的tracker页来提交,在上边的网址里也能找到它的连接。

使用ARToolKit之前的重要注意事项:

ARToolKit遵循GNU GPL许可证,对于任何非商业性质的应用都是免费的。

ARToolKit专业版适用于希望将之应用于商业用途,或希望得到更多的支持,或希望定制ARToolKit的用户,这些用户不再适合GPL许可证。商业许可证由ARToolworks, Inc., Seattle, WA, USA管理。 点击此处获得更多的关于ARToolKit的版权信息。

安装并配置ARToolKit

  • 安装介绍

  • 编译toolkit

    • Windows

    • Linux/SGI Irix

    • Mac OS X

  • 运行例子和工具

安装介绍

ARToolKit的核心部分是一组可供应用程序调用的函数库。出于这个理由,ARToolKit以源代码的方式发布。所以,你需要对它进行编译使之工作于你的平台。因此,你需要一个开发环境。开源开发环境(如GCC)可工作于任何平台,你可以选择使用它来进行编译。当然,ARToolKit也支持在Microsoft Visual Studio中进行编译。

尽管ARToolKit为各种平台提供了类似的功能,安装方法却不尽相同。本文档的这个部分就是介绍如何在不同平台上安装并配置ARToolKit。

要安装并使用ARToolKit,你的机器、操作系统和平台必须满足基本要求。你的硬件必须能获取视频流,并且CPU性能要足够好,以便同时进行图像的处理和显示。在软件方面需要满足一些(软件包的)依赖关系,否则会导致编译错误。主要的依赖关系都是跨平台的(如OpenGL和GLUT),其他的依赖关系需要根据你自己的操作系统来满足(如DirectShow,V4L,QuickTime)

下面的部分将具体列出各操作系统中的依赖关系。

编译ToolKit

在Windows中编译

安装前的准备:

 需满足的软件包 安装指导
 开发环境 Microsoft Visual Studio 6和Microsoft Visual Studio .NET 2003都可以。也可以使用开源开发环境(例如Cygwin, http://www.cygwin.com/)
DSVideoLib-0.0.8b-win32

在Win系统中,DSVideoLib是用来和摄像头驱动进行通信的包。ARToolKit 2.71需要使用DSVideoLib-0.0.8b或更新的版本。DSVideoLib的源代码和二进制包在ARToolKit downloads page on sourceforge可以下载到。

GLUT

确定GLUT运行包和SDK包都正确安装了。如果没有安装,可以在http://www.xmission.com/~nate/glut.html下载GLUT的二进制包。

在你的系统目录下(如c:/windows/system32)察看是否有glut32.dll,如果有,说明GLUT运行包已经被安装了。

在VC++的安装目录下(Include/gl/glut.h和Lib/glut32.lib)察看glut.h与glut32.lib是否存在。如果存在,说明GLUT SDK已经被安装了。

DirectX Runtime

Windows XP下是默认安装DirectX运行期包的。如果没有,请在microsoft网站下在安装DirectX 9.0b或更新版本的运行期包。

视频采集设备

安装摄像头和相关驱动。确保你的摄像头有VFW驱动或WDM驱动。确认方法是运行amcap.exe(这个程序在DirectX SDK中,Samples/C++/DirectShow/Bin目录下)。从Devices中可以察看到设备的状态(见下图)。

ARTOOLKIT安装与配置 资源教程 第1张

(可选项,用于VRML渲染) OpenVRML-0.14.3-win32

OpenVRML的源代码和二进制包可以在ARToolKit downloads page on sourceforge下载

编译ARToolKit:

按照以下步骤编译ARToolKit. Build:

1。将ARToolKit.zip解压到任一的目录下。为叙述方便,后面用{ARToolKit}代替该目录。

2。把DSVideoLib.zip也解压到{ARToolKit}。确保解压后的文件在名为“DSVL”的目录下。

3。把{ARToolKit}/DSVL/bin下的DSVL.dll和DSVLd.dll拷贝到{ARToolKit}/bin下。

4。把GLUT DLL拷贝到/Windows/System32/目录下,把GLUT SDK的.h和.lib文件放到VStudio的相应目录下(参考前表)

5。运行脚本{ARToolKit}/Configure.win32.bat,自动建立include/AR/config.h。

6。打开ARToolKit.sln(如果开发环境是VS.NET)或者ARToolkit.dsw(VS6的情况)。

7。编译toolkit.。

VRML渲染库和例子根据需要进行编译(libARvrml 和 simpleVRML)。步骤如下:

1。把OpenVRML.zip解压到{ARToolKit}。

2。把js32.dll从{ARToolKit}/OpenVRML/bin中拷贝到{ARToolKit}/bin。

3。在 VS配置管理器(configuration manager)中激活libARvrml和simpleVRML项目,然后编译。

在Linux / SGI Irix中安装

安装前的准备:

需满足的软件包安装指导
OpenGL and GLUT

确定OpenGL和GLUT运行期包都安装好了。一般来说,是在/usr/X11R6/lib,/usr/lib或 /usr/local/lib内查找是否存在opengl.so,glu.so和glut.so。

确定OpenGL和GLUT SDKs都被安装好了。一般来说,是在/usr/X11R6/include,/usr/include或/usr/local/include内查找是否存在opengl.h,glu.h,和glut.h。

Video Library确定视频库已经安装好了:

在Linux下,确保V4L RunTime 和 SDK 都安装好,或者确保 dv1394,dv1394 RunTime 和 SDK都安装好了。

在SGI下,只在SGI O2 models下测试过ARToolKit,不过按理来说,对于采用类似的视频输入设备的其他SGI机型,也应该能正常工作。

(可选项,用于VRML渲染) OpenVRML-0.14.3

可以在ARToolKit downloads page on sourceforge下载OpenVRML的源代码包。

编译ARToolKit:

1。打开控制台,准备开始编译ARToolKit。

2。输入

tar zxvf ARToolKit-2.71.tgz

把ARToolKit-2.71.tgz解压到任意目录。为叙述方便起见,后面称该目录为{ARToolKit}。

3。配置并编译。

输入以下命令进行配置:

cd {ARToolKit}

./Configure

在Linux下编译时,支持多种视频输入:Video4Linux,IIDC-compliant或者DV camera connected via IEEE-1394, 或者Sony EyeToy camera connected via USB。具体选择什么,配置的时候会提示你进行选择。

ARTOOLKIT安装与配置 资源教程 第2张

配置成功后,输入以下命令开始编译:

make

如果编译成功的话,输入以下命令来运行一个简单的测试程序:

cd {ARToolKit}/bin

./simpleTest

VRML渲染库和例子(libARvrml & simpleVRML)根据具体需要,选择性的编译:

cd {ARToolKit}/lib/SRC/ARvrml

make

cd {ARToolKit}/examples/simpleVRML

make

cd {ARToolKit}/bin

./simpleVRML

在MAC OS X中安装:

安装前的准备:

需满足的软件包安装指导
Apple Developer Tools

XCode Tools安装盘已经包含在Mac OS X的安装盘中,也可以从下面连接中下在安装镜像:

http://developer.apple.com/tools/xcode/

Camera driver

Mac OS X 10.3或更新的版本中已经包含IIDC和DV FireWire摄像头驱动。USB摄像头驱动(或者10.3之前版本的Firewire摄像头驱动)可以在下面的连接下在:

http://www.ioxperts.com/

(可选项,用于VRML渲染)Apple X11 and Fink

从MAC OS X的CD3中安装X11或者在下面连接里下载安装镜像:

http://www.apple.com/downloads/macosx/apple/x11formacosx.html.

在下面的连接里下载Fink (and optionally, FinkCommander)

http://fink.sourceforge.net/download/.

在XCode IDE中编译(略,因为没用过):

  1. Unpack the archive to a convenient location using StuffIt Expander, and open the ARToolKit.xcodeproj.

  2. Builds include a script target "Configure" which enables accelerated and rectangular texturing by default. If you wish to change these defaults, manually run the ./Configure script from Terminal as for a command-line build (below).

  3. Executables are built as bundled applications into ARToolKit/bin, with the Data/ directory copied into the application bundle so that they may be moved from this location to other locations.

The VRML renderering library and example (libARvrml & simpleVRML) are optional builds:

  1. Using FinkCommander, do a binary install of mozilla-dev, followed by an install of openvrml4-dev and openvrml-gl5-dev.

  2. Select the ARToolKit extensions target, and build.

Alternately, ARToolKit can be built from the Terminal, using the Unix makefiles.

Drop the ARToolKit into a convenient location, e.g. your Desktop, then open a Terminal window and type:

cd ~/Desktop

tar zxvf ARToolKit-2.71.tgz

Configure and build

cd ~/ARToolKit

./Configure

make

Following a successful build, to run a binary such as simpleTest, add these commands:

cd bin

./simpleTest

The VRML renderering library and example (libARvrml & simpleVRML) are optional builds:

fink -b install mozilla-dev

fink install openvrml4-dev openvrml-gl5-dev

cd ~/Desktop/ARToolKit/lib/SRC/ARvrml

make

cd ~/Desktop/ARToolKit/examples/simpleVRML

make

cd ~/Desktop/ARToolKit/bin

./simpleVRML

 运行例子和工具

当前的ARToolKit发布版本并没有要求把ARToolKit安装在特定的位置。在你编译自己的应用程序的时候,应该保证能找到ARToolKit。如果把ARToolKit编译为静态库,它将会被连接到所有你编译的程序中去。

为了使用ARToolKit,你需要有做一些“标志物”:例子程序使用的标志物放在patterns目录下。你可以用把它打印出来。这些标志对你以后的开发也是有用的。ARToolKit需要一个不易形变的标志物,所以简单的做法是把标志物粘在硬卡片上。 然后,使用/bin目录下的graphicsTest来测试ARToolKit的图形部分是否正常工作。如果工作正常的话,应该显示一个旋转的茶壶。

ARTOOLKIT安装与配置 资源教程 第3张

这个测试用来测试你的摄像头对ARToolKit的的图形模块的支持。图形模块使用了OpenGL。最小的允许幀率是15fps。低于这个数值会明显的限制ARToolKit渲染模块的正常工作(参考FAQ)。除此之外,还需要测试视频输入是否正常、视频是否能显示。在/bin目录下的videoTest可以完成上述测试。如果没有错误的话,应该出现一个视频窗口,显示出摄像头采集的内容。这个测试用来测试你的摄像头对ARToolKit视频模块和图形模块的支持。

ARTOOLKIT安装与配置 资源教程 第4张

如果没有显示,可能是你的摄像头没有正确配置导致其不能正常工作(参考FAQ)

第一个例子

  • 介绍

  • 运行ARToolKit

  • simpleTest的输出

介绍

当ARToolKit正常安装后,在/bin目录下有一个叫simpleTest(或simple,根据版本的不同名字有不同)的程序可以展示ARToolKit的功能。不过你还需要把hiroPatt.pdf中的标志物打印出来。为了获得更好的效果,推荐把它粘在一个平的硬卡片上。

在任何情况下,这个程序的输出都是一样的。所以本章的最后一个部分给出了程序在不同平台上的输出。

运行ARToolKit

运行方法,目前只有两种:一种是直接单/双击;一种是在控制台里运行。后一种要更好,因为从命令行启动会给出ARToolKit的错误和标准输出流信息(对ARToolKit来说很有用)。每个平台都提供了一个对话框用来在运行主AR循环之前设置视频。

Windows

双击simple.exe,会打开一个控制台窗口,当摄像头被检测出来后,会显示如下所示的对话框。也可以从“开始->程序->附件->命令行窗口”(winxp中文版)里运行simple.exe。

ARTOOLKIT安装与配置 资源教程 第5张

在这个对话框中,你可以设置视频输出的尺寸和格式。需要注意的是,最好使用与ARToolKit定位相同的格式,这样会会一些(RGB)。某些摄像头还允许你改变帧率。默认情况下,该对话框的设置与你先前视频输入的设置相同。此设置可能会引起一些问题(参考FAQ)。

Linux

如果你安装了gnome或KDE桌面环境,也可以直接双击运行simpleTest(不过这样运行看不到错误和输出流信息)。也可以在终端中运行它。如果你安装的是V4L,会显示如下的对话框。

ARTOOLKIT安装与配置 资源教程 第6张

在这个对话框中,你可以设置视频输出的尺寸和格式。需要注意的是,最好使用与ARToolKit定位相同的格式,这样会会一些(RGB)。某些摄像头还允许你改变帧率。默认情况下,该对话框的设置与你先前视频输入的设置相同。此设置可能会引起一些问题(参考FAQ).

MacOS

On MacOS X double click on the simple icon in the bin directory from your mac explorer. A console window will open and when the camera is detected the follow dialog will open. Otherwise start the Terminal program, go the bin directory and run simple.

ARTOOLKIT安装与配置 资源教程 第7张

The default Mac video dialog is really advanced so you can change a lot of elements, like video input, format or setup the video parameters (saturation, brightness). Furthermore, a preview window is displayed that help for the configuration. You need to notice that better the format is similar to ARToolKit tracking format, faster is the acquisition (RGB more efficient).

SGI

On SGI you need to use a terminal, go to the bin directory, and run simple.

simpleTest的输出

如果成功了,会显示一个视频窗口(如果遇到什么问题,可以参考FAQ、mailing list)。当你把摄像头对准标志物的时候(内部印有“hiro”的黑框),在视频窗口里,会看到有一个蓝色的方块出现在标志物上。 下图是运行的截图。当移动标志物的时候,虚拟图像(蓝色方块)会随标志物一起移动。

ARTOOLKIT安装与配置 资源教程 第8张

为了让虚拟物体显示在标志物上,必须能在视频中看到完整的黑框和黑框中的图形。如果看不到虚拟物体,或者它时隐时现,可能是照明的问题。这个问题可以通过修改图像处理历程的阈值来解决。键入“t”,会提示你输入新的阈值。阈值的取值范围为0~255,默认值是100。键入“d”会显示在主窗口下显示阈值图像(如下图)。在阈值图像中,会用红框把可能的定位区域标出来。这样将便于你检查光照和阈值的设置是否合适。

ARTOOLKIT安装与配置 资源教程 第9张

键入“esc”退出程序并打印幀率信息。

simpleTest展示了ARToolKit如何实时计算摄像头的视点,并利用得到的信息准确的把虚拟图像叠加到现实图像当中。下面的章节将会详细讲解这是如何做到的。


评论列表暂无评论
发表评论