KInect AR沙盒制作的一点小经验
最近在微博上看到这样一条 微博 >点这看<
看起来非常有意思,就去Google了一下如何制作。
没想到这是一个开源项目,而且还告诉你如何安装
OK,接下来就说说我的制作过程。
首先,先放出这个开源项目所有教程、资源的网站
https://arsandbox.ucdavis.edu/instructions/
上面说了各种要求,大家可以自己去看,我这截个图吧
都是英文,我开着翻译一点点看,但是在校准那,都是英文而且没有字幕,所以看着头疼。
前期软件非常简单,只需要复制粘贴就可以了,难就难在校准,还有Kinect跟投影仪的架子不好做
Hardware Requirements
An AR Sandbox requires the following hardware components:
- A computer with a high-end graphics card (see the “Computer” section below for more specific hardware recommendations), running any version of Linux. The AR Sandbox software, in principle, also runs on Mac OS X, but we advise against it.
- A Microsoft Kinect 3D camera. The AR Sandbox software, or rather the underlying Kinect 3D Video Package as of version 3.3, supports Kinect-for-Xbox 1414 and 1473, Kinect for Windows, and Kinect for Xbox One. The first three are functionally identical, so get the cheapest model you can find. Note: The second-generation Kinect for Windows v2 is not yet supported by the AR Sandbox software.
- A digital video projector with a digital video interface, such as HDMI, DVI, or DisplayPort.
- A sandbox with a way to mount the Kinect camera and the projector above the sandbox.
- Sand.
这是人家的要求
其实也没多高配置,我GT840M都可以跑,英伟达的Linux显卡驱动你要到官网去下。
你还需要一个Kinect v1,我之前做项目时在淘宝上买了个v1,才400块左右。
最重要的还有个投影仪,我去找陈院长借了一个。
然后你得装个Linux系统,我装了个Ubuntu(双系统),用着挺好的
其他的像沙盘啊,沙啥的都可以后面调好了咱再弄。我们先看怎么把这个软件跑了
第一开发阶段就是 先把整个功能跑一下,管他对的准不准。
为了方便,我这样做的:
实际上应该是这样的,为了不费那么大功夫搭这个架子,我就竖着放了
好,给大家看看要怎么做
https://arsandbox.ucdavis.edu/forums/topic/complete-installation-instructions/
跟着这个教程走
实在看不懂就翻译,还不行就全部一步步复制粘贴。
(我就是这样的,也没报啥错)
Note: Please don’t comment on this thread; it’s gotten unwieldy. If you have any questions, concerns, or problems, please start a new thread.
Due to the currently surging interest in AR Sandbox installations, I am posting complete installation instructions, starting from a blank desktop PC with an Nvidia GeForce graphics card. Due to increasing weirdness in recent versions of Mac OS X (starting with 10.7), I can no longer recommend Mac computers and Mac OS X to drive AR Sandbox installations.
You can also watch a full walk-through video of steps 1-5.
- Install the current version of 64-bit Linux Mint with MATE desktop on a blank desktop computer. This needs to be a real computer; the AR Sandbox does not work from inside a virtual machine.
- Install vendor-supplied drivers for the Nvidia graphics card. Open the Control Center, select “Driver Manager,” wait for the panel to show up and the list of available drivers to be populated, and then select the recommended Nvidia binary driver and press “Apply Changes.” Then wait until the change is complete (might take a while), and reboot your computer.
- Open a terminal window and enter precisely the following commands (if in doubt, cut & paste directly from this web page, one line at a time). ~ is shorthand for the user’s home directory:
cd ~
wget http://idav.ucdavis.edu/~okreylos/ResDev/Vrui/Build-Ubuntu.sh
bash Build-Ubuntu.shThe script run in the last command will ask you for your user’s password to install prerequisite libraries, and then build the Vrui VR toolkit. That will take a little while and produce lots of output, and at the end you’ll be greeted by a spinning globe in a window. Close that window and go back to the same terminal as before.
- To install the Kinect 3D video package, run in the same terminal:
cd ~/src
wget http://idav.ucdavis.edu/~okreylos/ResDev/Kinect/Kinect-3.2.tar.gz
tar xfz Kinect-3.2.tar.gz
cd Kinect-3.2
make
sudo make install
sudo make installudevrules
ls /usr/local/binCheck that the list of names printed by the last command contains KinectUtil and RawKinectViewer.
- To install the AR Sandbox software itself, run in the same terminal:
cd ~/src
wget http://idav.ucdavis.edu/~okreylos/ResDev/SARndbox/SARndbox-2.3.tar.gz
tar xfz SARndbox-2.3.tar.gz
cd SARndbox-2.3
make
ls ./binCheck that the list of names printed by the last command contains CalibrateProjector and SARndbox. The AR Sandbox calibration utility and main application are now in ~/src/SARndbox-2.3/bin.
- Plug in your first-generation Kinect device and download intrinsic calibration parameters directly from its firmware. In a terminal window, run:
sudo /usr/local/bin/KinectUtil getCalib 0
This might ask you for your password again; if so, enter it to continue.
- Align your camera so that its field of view covers the interior of your sandbox. Use RawKinectViewer to guide you during alignment. To start it, run in a terminal window:
cd ~/src/SARndbox-2.3
RawKinectViewer -compress 0- Calculate your sandbox’s base plane, by following the instructions in the AR Sandbox Calibration – Step 4 video, or this new video that shows all required calibration steps in one. You can use the already-running instance of RawKinectViewer.
You need to enter the base plane equation (and the 3D sand surface extents in the next step) into the BoxLayout.txt file in etc/SARndbox-<version> inside the SARndbox source directory. Under Linux Mint, the default text editor is called “pluma.” So to edit the file, run in a terminal window:cd ~/src/SARndbox-2.3
pluma etc/SARndbox-2.3/BoxLayout.txt &The ampersand at the end of the second command will keep the terminal window usable while the text editor is running. Now enter the base plane equation as described in the video. To copy text from a terminal window, highlight the desired text with the mouse, and then either right-click into the terminal window and select “Copy” from the pop-up menu that appears, or press Shift-Ctrl-c. To paste into the text editor, use the “Edit” menu, or press Ctrl-v.
Pro tip: The quickest way to copy&paste text from any window into any other window is: 1: Highlight text in source window with the mouse. 2: Move mouse to destination window and to the location where you want to paste the text, and click the middle mouse button.
- Measure the 3D extents of the sand surface. In the newly-released Kinect-3.2 package, this can be done inside RawKinectViewer as well by following the instructions in this video, starting at 4:10. Make sure to measure the box corners in the order lower-left, lower-right, upper-left, upper-right. After you have copied the box corner positions into the text editor as described in the video, save the file (via the “File” menu or by pressing Ctrl-s), and quit from the text editor (via the “File” menu or by pressing Ctrl-q).
- Align your projector such that its image fills the interior of your sandbox. You can use the calibration grid drawn by Vrui’s XBackground utility as a guide. In a terminal, run:
XBackground
After the window showing the calibration grid appears, press the “f” key to toggle it into full-screen mode. Ensure that the window really covers the entire screen, i.e., that there are no title bar, desktop panel, or other decorations left.
Press Esc to close XBackground’s window when you’re done.
- Calibrate the Kinect camera and the projector with respect to each other by running the CalibrateProjector utility:
cd ~/src/SARndbox-2.3
./bin/CalibrateProjector -s <width> <height>where <width> <height> are the width and height of your projector’s image in pixels. For example, for an XGA projector like the recommended BenQ, the command would be:
./bin/CalibrateProjector -s 1024 768
Very important: switch CalibrateProjector’s window to full-screen mode by pressing F11 before proceeding. Then follow the instructions in this video, starting at 10:10.
- Finally, run the main AR Sandbox application:
cd ~/src/SARndbox-2.3
./bin/SARndbox -uhm -fpvSwitch SARndbox’s window to full-screen mode by pressing F11, or the calibration created in the previous step will not line up.
- Read the “AR Sandbox post-installation setup” post for some additional automation and fine-tuning suggestions.
好,最后一步就是最难的校准了,先给大家看看,我到这一步的效果,是个视频
https://1drv.ms/v/s!AhyyHJSYB2g7itEyj8Rjlu3GoNXgmg
校准就得你们自己去弄了,我做到这里就收拾东西了,因为实在没钱做架子,校准也看不太懂,只知道要记录几个点的位置。还要用圆盘定位
KInect AR沙盒制作的一点小经验的更多相关文章
- gulp+webpack+angular1的一点小经验(第二部分webpack包起来的angular1)
又一周过去了,项目也已经做得有点模样了.收集来一些小经验,分享给大家,有疏漏之处,还望指正,海涵. 上周整合了gulp与webpack,那么工具准备差不多了,我们就开始编码吧.编码的框架就是angul ...
- 模仿下拉框datalist的jquery插件的一点小经验
原本项目里是用h5的新属性data-list,但是这个下拉框的数据太多,而data-list似乎没有设置高度的地方,所以写了个小插件,期间也发现了一些bug,目前这个版本算是可以一用的版本,故写一下这 ...
- gulp+webpack+angular1的一点小经验(第一部分gulp与webpack的整合)
时间匆匆如流水继上周熟悉了gulp的初步安装与环境配置以后,我的项目又进入了新的阶段! 这篇文章将把我这一周遇到的一些问题,以及解决的方式做一个小小的总结,不一定记的完整,但都是个人的一点经验,分享给 ...
- Global一点小经验
Global: Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法,他位于应用程序根目录下. 这个 Global.asax ...
- 关于前端js拼接字符串的一点小经验
1.今天在做项目的时候遇到一个问题,就是使用onclick="xxx()" 点击事件的时候,参数如果为全数字就会出现点击无反应的问题.但是当参数为字符串或者动态内容的时候就会出现 ...
- Web应用程序并发问题处理的一点小经验
在web应用中,一个账户,会有N多个涉及到数字的字段.比如一个账户的金额,积分等.这些字段就涉及到增减的情况.如果是在测试环境下,靠程序员或者测试手动点击.一般是发现不了问题. 一旦上到正式环境下.有 ...
- gulp+webpack+angular1的一点小经验(第三部分使用一些angular1的插件ui-bootstrap与highcharts)
第一个要介绍的是我们的麻烦制造器:angular-ui-bootstrap ui-bootstrap可以有很多通用的插件给大家用,比如弹窗啊(modal),翻页控件啊(pagination),为什么说 ...
- 【Django】有关多用户管理的一点小经验分享
前言 最近,笔者因为需要开发一个系统作为毕设的展示,因此就产生了有关多用户管理的问题.在这里我把自己的需求重新阐明一下:能够通过Django自带的用户管理框架,实现多用户的管理,例如登录.登出.ses ...
- Git 沙盒模拟实战(基础篇)
Git 沙盒模拟实战 分支 现有一个主分支 创建分支 # 创建分支 $ git branch bugFix # 切换到指定分支 $ git checkout bugFix 或者 # 创建分支,并切换到 ...
随机推荐
- Angular中的$q的形象解释及深入用法
作者:寸志链接:https://zhuanlan.zhihu.com/p/19622332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 早上,老爸说:“儿子,天气如何 ...
- JavaScript初级面试题
前面几题是会很基础,越下越有深度. 初级Javascript: 1.JavaScript是一门什么样的语言,它有哪些特点? 没有标准答案. 2.JavaScript的数据类型都有什么? 基本数据类型: ...
- 深入了解Java虚拟机(1)java内存区域与内存溢出异常
java内存区域与内存溢出异常 一.运行时数据区域 1.程序计数器:线程私有,用于存储当前所执行的指令位置 2.Java虚拟机栈:线程私有,描叙Java方法执行模型:执行方法时都会创建一个栈帧,存储局 ...
- MVC下拉框Html.DropDownList 和DropDownListFor 的常用方法
一.非强类型:Controller:ViewData["AreId"] = from a in Table select ...
- ASP.NET Core2,通过反射批量注入程序集
public void ConfigureServices(IServiceCollection services) { string strValue = Con ...
- CEF加载FLASH插件时弹出CMD命令行窗口的问题
这个是flash插件的一个bug,CEF(chromium系列浏览器)关闭sandbox第一次加载flash插件就会跳出这样的一个提示,在Google官方也看到了chromium的issue: 解决方 ...
- div中让文字垂直居中
在div中如何让文字垂直居中? 作者在刚接触web前端开发时就遇到了这个问题,一直没有记录下来,今天正好有空,便记录下来. 为了方便展示,我把style先直接写在了div里. 效果如下图所示: 图1. ...
- Spark of work
Today I attended a meeting of reviewing code, and I learned a lot from it. In the discuss, we found ...
- python中垃圾回收机制
Python垃圾回收机制详解 一.垃圾回收机制 Python中的垃圾回收是以引用计数为主,分代收集为辅.引用计数的缺陷是循环引用的问题.在Python中,如果一个对象的引用数为0,Python虚拟 ...
- mysql + excel 校正线上数据
积分问题处理 1. 所有应补汇总 select driver_id, SUM(integral) from detail_score group by driver_id; 2. 原汇总积分 sele ...