2009年10月27日 星期二
視覺化程式設計語言
視覺化程式設計語言(以下簡稱VPL),又稱『圖形化程式語言』、『視覺化程式編成語言』。係使用者利用圖形化元素進行程式設計;相異於文字式程式設計。 VPL以視覺表達為基礎,利用『文法』或是某種『輔助標記』進行圖形與文字的排列。許多VPL建基於『方塊與箭頭』的概念之上,以方塊或螢幕上的物件為本 體,以箭頭相連接,以直線段與弧線段代表相互之間的關係。
Microsoft Visual Programming Language,一種資料流語言。用來進行撰寫機器人程式。是微軟 Microsoft Robotics Studio 的一部分。
Simulink
Simulink 是 MATLAB 最重要的組件之一,它提供一個動態系統建模、模擬和綜合分析的集成環境。
在該環境中,無需大量書寫程序,而只需要通過簡單直觀的滑鼠操作,就可構造出複雜的系統。Simulink 具有適應面廣、結構和流程清晰及模擬精細、貼近實際、效率高、靈活等優點。
基於以上優點 Simulink 已被廣泛應用於控制理論和數字信號處理的複雜模擬和設計。同時有大量的第三方軟體和硬體可應用於或被要求應用於 Simulink。
Virtools
2009年9月10日 星期四
[ARToolkit]Developing your First Application, Part 1
為了說明中詳細介紹如何開發ARToolKit應用,我們將逐步的來源碼示例程序的現有:simpleTest(或簡單的根據您的ARToolKit版本)。 該程序被發現在該目錄的examples/simple/. 。
在SimpleTest計劃
main
主要的簡單程序如下:
在 init初始化例程包含的代碼啟動視頻捕獲,閱讀標記和相機參數,並設置了圖形視窗。這相當於第1步在development method。接下來,我們進入即時狀態,以函數arVideoCapStart視頻為起點。 之後,該argMainLoop函數被啟動主程序LOOP和連結程式 keyEvent任何鍵盤事件和主迴圈的主圖形渲染迴圈。argMainLoop的定義是包含在文件gsub.c。
init
在初始化中應用從主要程序和用於初始化視頻捕捉和讀取初步ARToolKit應用參數。
起初,視頻路徑是打開視頻圖像的大小發現:
該變量vconf包含了初步的視頻配置和定義頂部的simple.c。在功能上您的平台的內容可以真正不同:看video configuration page。對於每個平台的默認字符串的定義,一般而言,是開放的第一個可用的視頻流在你的架構。
之後,我們需要初始化ARToolKit應用參數。 關鍵參數的ARToolKit應用如下:
‧該模式將用於模板匹配的模式和虛擬物體的這些模式相對應。
‧視訊的特性被使用。
這些都是從閱讀的文件名可以是指定的命令行或使用默認的硬編碼文件名。
因此,相機參數讀取默認的攝像頭參數文件名數據/ camera_para.dat:
下一步,這些參數都轉化為當前圖像的大小,因為視訊參數的變化取決於圖像的大小,即使使用相同的視訊也一樣。
之後,讀入模式定義默認的模式文件數據/ patt.hiro:
第二個參數定義的argInit縮放功能,設置為1.0吻合的視頻圖像格式,設置為2.0倍大小(例如,有一個VGA AR display 與320x240image顯示輸入)。
然後,arDetectMarker用於搜索視頻圖像中查詢有正確的標記模式:
標誌物的數目找到包含在變數marker_num,而marker_info是一個指標結構包含坐標信息的信任和認可的價值觀和資訊的每個標記。marker_info結構詳細的用法在API documentation。
[ARToolkit] Development Principles
2009年9月9日 星期三
[ARToolkit]Calibrating your camera 如何校準視訊
在目前的ARToolKit軟件,默認camera properties屬性包含在相機參數文件camera_para.dat,這是在每次讀取應用程時啟動。 參數足夠應用於多種不同的視訊。 不過使用相對簡單的camera calibration有可能產生一個單獨的參數文件來執行特殊的視訊裝置。 在一個通過AR interfac的video-see,如果相機參數是已知的話,視頻圖像可以扭曲校正視訊的扭曲。
Two Step Calibration Approach
很難使用,但結果更準確度(更好的三維測量)。
One Step Calibration Approach
易於使用,使精度不夠好圖像疊加。
下一節將介紹不同的步驟,您的視訊校正通過這兩種方法。
Two Step Calibration
本節我們介紹如何使用ARToolKit的two step method去校正視訊。 為了使用此方法的模式文件calib_cpara.pdf和calib_dist.pdf需要列印出來。 這些模式中找到的目錄。 該calib_cpara.pdf模式是網格線,使該線是完全相同40毫米分開。 該calib_dist.pdf模式包含一個6 × 4點的模式,使該點是40毫米分開。 一旦模式文件被列印出來,應該貼在紙板上讓文件平整。 下圖由視訊拍出的這些文件模式。
圖1:calib_dist模式和calib_cpara模式
相機性能的必須測量包括中心點視訊的圖像,鏡頭失真和焦距的鏡頭。 該計劃calib_dist是用來測量圖像中心點和鏡頭扭曲,而calib_param其他視訊生產性能。 這兩種程序都可以找到在 bin目錄中,其來源是在utils/calib_dist 跟 utils/calib_cparam目錄。該calib_dist程序應該先運行,然後calib_cparam,因為使用calib_cparam輸出calib_dist。 其餘部分在本節中,我們解釋如何運行這些程序的每個。
Running calib_dist
calib_dist使用calib_dist.pdf圖像模式的6 × 4點間距同樣分開。 當認為通過視訊鏡頭,鏡頭變形導致pin cushion effect,產生不平衡的點之間的間距在視訊的圖像。 該calib_dist程序的措施之間的間距點,並使用這些信息來計算鏡頭扭曲。
運行calib_dist程序從命令提示符。 您將獲得此輸出:
> calib_dist
Image size (x,y) = (720,486)
-----------
Mouse Button
Left : Grab image.
Right : Quit.
-----------
將出現一個窗口顯示即時視訊。 站的攝像機校準模式,使所有的點都認為,然後點擊鼠標左鍵。 這停止視頻圖像,如圖2。 現在單擊並拖動圖像與鼠標左鍵繪製一個黑色矩形過每點。 開始與點最接近左上角的形象和繼續下去,直到所有的點被發現。 這些點必須包括以下順序:
1 2 3 4 5 6
在每個矩形繪製圖像處理軟件將找到點封閉的矩形和地方紅十字為中心。 如果紅十字沒有出現重繪矩形點,直到找到。 圖2顯示了用戶繪製一個矩形超過最後點。
圖2:用戶標誌著校準點。
雖然每一個點是否被找到以下會出現在屏幕上:
-----------
Mouse ButtonLeft :
Rubber-bounding of feature. (6 x 4)
Right : Cansel rubber-bounding & Retry grabbing.
-----------
# 1/24
# 2/24
# 3/24
# 4/24
# 5/24
# 6/24
# 7/24
# 8/24
# 9/24
# 10/24
# 11/24
# 12/24
# 13/24
# 14/24
# 15/24
# 16/24
# 17/24
# 18/24
# 19/24
# 20/24
# 21/24
# 22/24
# 23/24
# 24/24
所有24點的形象,被發現點擊鼠標左鍵一次。 這將存儲點的位置和停止的視頻圖像。所有24點的形象,被發現點擊鼠標左鍵一次。 這將存儲點的位置和停止的視頻圖像。
-----------
Mouse Button
Left : Grab next image.
Right : Calc parameter.
-----------
[360.0, 243.0, 174.0] 596.018289
[360.0, 243.0, 174.0] 596.018289
[360.0, 243.0, 174.0] 596.018289
[360.0, 243.0, 174.0] 596.018289
[360.0, 243.0, 174.0] 596.018289
[360.0, 243.0, 174.0] 596.018289
[360.0, 243.0, 174.0] 596.018289
[330.0, 223.0, 201.0] 590.288659
[330.0, 228.0, 201.0] 486.692482
[330.0, 233.0, 201.0] 400.390511
[325.0, 238.0, 201.0] 330.137494
[325.0, 243.0, 201.0] 276.447160
[325.0, 248.0, 201.0] 241.422442
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[325.0, 253.0, 201.0] 227.895132
[324.0, 253.5, 201.0] 227.334239
--------------
Center X: 324.000000
Y: 253.500000
Dist Factor: 201.000000
-----------
--------------
Mouse Button
Left : Check fittness.
Right :1/10.
-----------
這可能需要一段時間來計算這些參數,請耐心等待。 該中心x和y值和失真的因素是最終的核心價值所產生的calib_dist代碼。 這些值會有所不同,每視訊和應記下來,用於該calib_cparam程序。
為了檢查這些參數是正確的點擊鼠標左鍵一次。 這將顯示一個圖像抓住用紅色線繪製通過校準點。 這些行應通過中心在每一點(見圖3)。 每次被點擊鼠標左鍵在未來抓住圖像將顯示。
圖3:Two Sample Calibrated圖片結果。
一旦你感到滿意的結果,從calib_dist擊中鼠標按鈕以退出並運行calib_cparam代碼。
Running calib_cparam
calib_cparam用於查詢視訊焦距和其他參數。 它使用的模式所載calib_cparam.pdf,一個網格模式7水平線和垂直線,9(見圖2)。 這種模式應該被列印出來,並粘在一塊紙板或其他硬板。
calib_cparam是從控制台等calib_dist。 鍵入calib_cparam在命令提示符下,輸入的中心坐標和失真比發現calib_dist:
> ./calib_cparamInput center coordinates: X = 324
: Y = 253Input distotion retio
: F = 201Image size (x,y) = (720,486)
1) 即時視頻窗口將出現。
2) 將校準板放在視訊前,使版面會垂直於相機,所有的網格線是可見的網格是盡可能大(見圖2)。
3) 點擊鼠標左鍵來獲取圖像。 白色橫線將出現疊加在圖像上。
4) 移動的白線,以覆蓋最黑網格線盡可能接近。 該生產線是上下移動使用向上和向下箭頭鍵,雖然它是順時針和逆時針旋轉使用左,右箭頭鍵。 一旦白線是從頂端網格線按下enter。 這行現在將變成藍色,另有白線就會出現(見圖4)。 這一進程應再重複所有的水平線。
一旦最後水平線已列入垂直白線就會出現,這個過程應該是重複的垂直線。 第一垂直白線,應放在了最左邊網格線和其他線路放在從左至右(見圖5)。
行的順序是非常重要的。 他們應該放在從上到下,然後從左至右,直到所有16條線,我們已制訂在螢幕上。
圖4:水平線就業 圖5:垂直線放置
5) 這個過程已經完成,一個圖像,網格模式應移到離100毫米視訊(視訊保持垂直模式)和進程一再重複。 圖6顯示了最後一行安置其中一個拍攝的圖片。
圖6:最後一行就業
6) 重複該過程的5倍,移動校準模式,總距離為500mm的鏡頭。 第五後的校準步驟,程序會自動計算攝像機參數。 你會被要求輸入一個文件名來存儲這些參數:
point_num = 315--------------------------------------
SIZE = 720, 486
Distotion factor = 324.000000 253.000000 201.000000
372.97979 -24.50134 248.86941 0.00000
0.00000 327.03507 122.42421 0.00000
0.00000 0.00000 1.00000 0.00000
--------------------------------------
Input filename: wideAngleKeyence.dat
存儲在數據文件中的相機擊中鼠標按鈕以退出。
通過改變名稱,這台相機數據文件camera_para.dat,並把它在 bin /目錄中的數據可以立即使用的ARToolKit示例程序。 校準您的視訊應該改進追蹤結果。
距離之間的網格線在calib_cparam.pdf模式,正是40毫米,而格局待後每100毫米的測量和測量要重複5次。 這些值都是固定的源代碼calib_cparam_sub.c中的 util/calib_cparam下。
如果你想改變網格線之間的距離下面的源代碼應該修改:
inter_coord[k][j][i+7][0] = 40.0*i;
inter_coord[k][j][i+7][1] = 40.0*j;
inter_coord[k][j][i+7][2] = 100.0*k;
其中40.0是當前的距離,而距離是100.0模式應該退到從視訊每次。 測量的數目,需要採取可以通過改變變量:
*loop_num = 5;
One Step Calibration
一個步操作是完全相同的calib_dist。 您需要列印calib_dist.pdf和執行calib_camera2:
> calib_cparam2
Input the length between each markers: 40
-----------
Mouse Button
Left : Grab image.
Right : Quit.
-----------
之後,重複相同的指令的calib_dist步驟。
[ARToolKit] How does ARToolKit Work?
Documentation
→Beginner:Getting Started:How does ARToolKit Work?
(yahoo翻譯+google翻譯+me)
How does ARToolKit work?
Basic Principles(基本原則)
ARToolKit應用可以讓虛擬圖像是疊加在視訊畫面。
這個秘密在於將黑色方塊作為tracking(追蹤)標記。
1. 該camera拍攝的視頻畫面,將其發送到電腦。
2. 在computer上的軟體,檢查通過每個視訊畫面的所有的方形。
3. 如果找到一個正方形,該軟體使用一些數學運算來計算黑色方塊對應camera 的位置。
4. 一旦camera的位置是已知的,computer graphics model 也會在同樣位置顯示。
5. model在視頻的現實世界顯示,出現在marker上的方塊。
6. 最終輸出顯示在手持式顯示器,因此當user通過顯示器看起來,他們看到的圖形疊加在真實的世界。
下圖總結了這些步驟。
ARToolKit能夠執行此camera的即時tracking,確保虛擬物件總是出現疊加在tracking markers上。
(看不清楚,請點圖.)
(圖內容待補...)
Limitations (限制)
有一些限制,純粹基於computer vision(顯示)的AR系統。
當然,如果是虛擬物件將只出現在tracking marks 的範圍內。
這可能會限制大小和虛擬物件的運動。
這也意味著,如果users他們的手或其他物體覆蓋部分圖像,虛擬物件將消失。
---------------(以下待補)---------------
There are also range issues.
The larger the physical pattern the further away the pattern can be detected and so the great volume the user can be tracked in.
Table 1 shows some typical maximum ranges for square markers of different sizes.
These results were gathered by making maker patterns of a range of different sizes (length on a side),
placing them perpendicular to the camera and moving the camera back until the virtual objects on the squares disappeared.
Table 1: Tracking range for different sized patterns.
This range is also affected somewhat by pattern complexity.
The simpler the pattern the better.
Patterns with large black and white regions (i.e. low frequency patterns) are the most effective.
Replacing the 4.25 inch square pattern used above,
with a pattern of the same size but much more complexity,
reduced the tracking range from 34 to 15 inches.
Tracking is also affected by the marker orientation relative to the camera.
As the markers become more tilted and horizontal,
less and less of the center patterns are visible and so the recognition becomes more unreliable.
Finally, the tracking results are also affected by lighting conditions.
Overhead lights may create reflections and glare spots on a paper marker and so make it more difficult to find the marker square.
To reduce the glare patterns can be made from more non-reflective material.
For example, by gluing black velvet fabric to a white base.
The 'fuzzy' velvet paper available at craft shops also works very well.
You will find more informations on computer vision principle at this page, or more informations on performance at this page.
2009年8月19日 星期三
[ARToolKit] Starting your First Example
Documentation
[ARToolKit] Setup ARToolKit
Documentation
→Beginner:Getting Started: Setup ARToolKit
(yahoo翻譯+google翻譯+me)
Setting up ARToolKit
Introduction
其核心, ARToolKit是一個開發的軟件庫集合,設計成連接到應用程序。
因此, ARToolKit是分散式原始碼,你必須在你的特定作業系統和平台編譯它。
你需要一個開發環境,適用於你的作業系統。
自由環境是可在所有平台利用的。
建立檔案還提供了能夠建立在Windows中的非免費微軟的Visual Studio平台。
然而ARToolKit提供類似的跨平台功能,根據您的作業系統安裝不同的。本指南中,我們將為你特定的安裝引導您完成安裝過程。
您的機器,操作系統和平台必須滿足一些基本要求。
您的硬件必須能夠截取視訊,並有足夠的CPU來處理視訊和顯示。
也有一些基本軟體的依賴 -- 避免編譯器和連結器錯誤。
主要的軟件套件是跨平台(如OpenGL的GLUT, (OpenGL utility toolkit, 負責作業系統相關的輔助函式庫)),
以及其他相關的為您的機器的特殊視訊函式庫( DirectShow, V4L , QuickTime) 。
該軟件相依為每個支持的操作系統概述如下連同安裝說明。
Building
Building on Windows(以Windows作業系統為例)
Prerequisites
(請點圖放大看~)
準備好上述系統開發環境後,可以開始建置了ARtoolkit:
1. 解壓縮ARtoolkit壓縮檔到適當的位置。這個路徑在下列步驟中將以{ARtoolkit}表示。
2. 解壓縮DSVideoLib壓縮檔到{ARToolKit} 。檢查資料夾名稱是否為"DSVL"。
3. 從 {ARToolKit}\DSV\bin 複製 "DSVL.dll"及 "DSVLd.dll" 到{ARToolKit}\bin目錄下。
4. 安裝GLUT DLL 到Windows System32 資料夾中,並將glut32.lib及glut.h複製到Visual Studio平台下的適當位置。
5. 執行 {ARToolKit}\Configure.win32.bat 以建置 include/AR/config.h。
6. 打開ARToolKit.sln文件( VS.NET )或ARToolkit.dsw文件( VS6 ) 。
7. Build the toolkit. (該專案)
若你選擇使用OpenVRML則需以下步驟:(範例為:libARvrml及simpleVRML)
8. OpenVRML解壓縮到{ARToolKit}。
9. 從 {ARToolKit}\OpenVRML\bin複製"js32.dll"到{ARToolKit}\bin目錄。
10. Enable the libARvrml and simpleVRML projects in the VS configuration manager and build.
Running the utilities and examples
目前ARToolKit最新版本沒有被設計限制在哪種環境下安裝。
你還需測試影像(視頻)輸入及影像顯示是否能正常運作。
在 bin目錄下執行videoTest。
假如執行無誤,視窗將顯示(見下圖)。
如果在視窗中都沒有顯示,
[ARToolKit] Introduction
Documentation
→Beginner:Getting Started: Introduction
(yahoo翻譯+google翻譯+me)
Introduction to ARToolKit
ARToolKit是C和C + +語言的software library ,
可以讓programmer很容易地開發應用的增廣實境(Augmented Reality,AR)。
AR是虛擬影像覆蓋真實物體且在螢幕顯現的技術,
並有許多可能性的應用在工業和學術研究。
發展中一個最困難的部分,
AR應用正是計算時的角度準確度,
使虛擬圖像完全符合現實世界中的物件的相對位置。
ARToolKit利用計算機視覺技術來計算實際攝像機的位置和定位相對有記號的卡,
允許programmer覆蓋虛擬物體在這些卡上。
快速,準確,提供的ARToolKit應該能使許多新的和有趣的AR應用迅速發展。
ARToolKit目前運行在SGI的IRIX ,
Linux作業系統的PC ,
Mac OS X和Windows ( 95/98/NT/2000/XP )作業系統的PC。
ARToolKit的最新版本是多平台..的功能,
每個版本的工具是相同的,但性能可能有所變化,
這取決於不同的硬件配置。
目前版本的ARToolKit同時支援視訊和視覺透視AR。
視訊看到,是虛擬圖像覆蓋的影像的真實世界。
另一種說法是視覺透視AR,電腦圖形直接覆蓋在現實世界的畫面。
視覺透視AR通常需要透過前端架設顯示器和更複雜的攝像機標定和登記要求。
============================
Comments and questions about ARToolKit and any bug reports are actively invited.
News about new releases of ARToolKit,
comments and questions and applications people are working on is broadcast on the ARToolKit mailing list,
and there is an active community forum (see community webpage). Bug reports and fixes, patches, and feature requests are also actively sought.
These should be posted using the tracker on the ARToolKit SourceForge project pages, linked above.
(意見和問題ARToolKit和任何錯誤報告,積極參加。
新聞關於新版本的ARToolKit ,
意見和問題和應用工作的人是廣播ARToolKit的郵寄名單,
並有一個活躍的社區論壇(見社區網頁 ) 。
錯誤報告和補丁, 補丁,和功能要求也積極要求。這些應張貼使用跟踪的ARToolKit SourceForge專案網頁,聯繫以上。)
---------------------------------------------------
IMPORTANT NOTICE REGARDING YOUR RIGHT TO USE ARTOOLKIT:
ARToolKit is made available freely for non-commercial use under the GNU General Public License.
Commercial licenses to a professional implementation of ARToolKit are available for users for whom the GPL is not suitable,
or who require a higher level of support,
or who require customization or other specialist modifictions. Commercial licenses are administered by ARToolworks, Inc., Seattle, WA, USA.
Click here for more information on ARToolKit licenses and your usage options.
(關於您的权利的重要通知使用ARTOOLKIT :
ARToolKit自由地使成為可利用為非商業使用根據GNU公众執照。
對ARToolKit的專業實施的商业执照為GPL不适用于,
或者要求高水平支持,或者要求定製或其他專家modifictions的用戶是可利用的。 商业执照是由ARToolworks, Inc.,西雅圖, WA,美國執行的。
點擊這裡關於ARToolKit執照和您的用法選擇的更多信息。 )
2009年8月8日 星期六
人物三段攻擊
X:攻擊鍵
人物有三段攻擊,第三段攻擊時會旋轉,但身體和腳無法同步。
http://stu.csie.mcu.edu.tw/~s5360512/test11 (完成)
操作如上
第三段攻擊時,身體和腳達到了同步的效果。
2009年6月3日 星期三
怪物測試
左:向左走
右:向右走
上:向上走
下:向下走
Z:跳躍
X:攻擊
當人物靠近,只要是在怪物的攻擊範圍內,怪物會主動靠近人物。
http://stu.csie.mcu.edu.tw/~s5360512/test9
操作方式如同test8
當人物靠近,只要是在怪物的攻擊範圍內,怪物會主動靠近人物,並且做出攻擊的動作。
人物會向後仰,以示遭到攻擊。
2009年5月28日 星期四
2009年5月22日 星期五
2009年5月20日 星期三
扣血測試
鍵盤控制
A:向上走
D:向下走
S:向後轉
W:向前走
Q:跳躍
E:增加怪的數量
我們假設紅框是怪,只要在它的攻擊範圍內,人物都會扣血。
若血被扣完,人物不會倒地或消失,而是血量呈現負的狀態。