2017年12月14日 星期四

很不錯的網站:擴增實境在健康照顧上的應用

(請移到影片播放在2小時41分06秒上) 

原本以為擴增實境是用在行銷包裝上很好的工具,最近在瞭解有那些科技可以用來幫助長輩,特別是在中興新村資策會實習學生在參加DiG+數位新星大賞競賽之後,發現一個很不錯的擴增實境應用健康照顧上的網站。

網址:Welcome to Augmented Reality in Medicine(Healthcare)


2017年12月11日 星期一

有蟲嗎?很怪都沒啟動AR,就出現3D物件。

今天試著想要加上旋轉的程式,但一執行,明明就沒有任可標籤,但就看到所建立的物件-Cube,就已經在旋轉,有點怪,如下圖,感覺這好像是Vuforia和Unity整合上的問題。


把所有的資源全部砍掉重練,結果正常了。

利用transform.Rotate()函式就能製造旋轉的效果,程式碼如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class rotation : MonoBehaviour {
    public float turnSpeed = 50f;
    // Use this for initialization
    void Start () {

}

// Update is called once per frame
void Update () {
        transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);
    }
}

以上程式範例可以參考:Unity程式設計初體驗(三)-遊戲物件位移和旋轉控制

2017年12月10日 星期日

號外!Unity 2017.2內建Vuforia功能,開發擴增實境應用程式更方便!

官方文章:Getting Started with Vuforia in Unity 2017.2

下載Unity 2017.2版本,在安裝時可以選擇Vuforia AR,開發擴增實境應用程式更方便。


1.建立新專案
2.選擇GameObject中的Vuforia,新增AR Camera以及Image,並刪除Camera。

3. 在Player Setting上選擇Vuforia Augmented Realit。

4.在Vuforia Target Manager工具中新增Database,並以Unity Editor格式滙出。
5. 在Unity下,滙入Vuforia Target Manager工具中滙出的Database。
6. 在Vuforia License Manager工具中新增License。
7. 點選Unity中的AR Camera,開啟open Vuforia configuration,貼上新增的License。
8.在Image Target物件下,新增Cube。

9. 使用Target來測試,測試成功如下圖。








超級棒的物聯網工具及資源

超級棒的文章介紹物聯網工具及資源:67 open source tools and resources for IoT,區分成工業聯盟、協定、作業系統、APIs、平台、中介軟體、節點編輯器、工具箱、搜尋、資料視覺化、硬體等。

第62個的開放源碼機器人基金會(Open Source Robotics Foundation),就提供很好的機器人模擬工具,非常適合研究機器人使用,以下是該軟體有關於機器人及汽車的模擬。






第67個洪水網絡(Flood Network)就是很好的使用物聯網讓居家生活品質更好的範例,可以清楚地看到河流的水位,提供即時數據,顯示河流的水位高度,當有可能洪水氾濫,向居民或社區發送警報。



2017年12月9日 星期六

在PC安裝BlueStacks手機模擬器測式擴增實境APPs

本文將介紹一個好用的工具,在PC上裝BlueStacks手機模擬器,就可以使用Android APPs,目前支援Windows和Mac版本。官方網站:https://www.bluestacks.com/tw/index.html


 

BlueStacks手機模擬器測試AR的文章Vuforia Standalone using Bluestacks – Starting Android App on PC,在該篇文章中介紹兩款APP: Animals of Africa Tales of the World




大家可以利用該篇文章提供的圖片進行測試,記得要先安裝APP。


(Animals of Africa)

(Tales of  the World)




2017年12月8日 星期五

如何得知擴增實境功能有被啟用?


擴增實境是採用Vuforia工具,如何在程式中,如何得知Vuforia AR效果有沒有被啟動呢?這是本篇文章的教學重點。

您點選下圖左方的Field,可以看到內嵌一個PolygonField.cs程式。在PolygonField.cs的程式中,可以看到宣告一個公開的GameObject變數,命名為go_raw,因此在下圖中,可以看到Go_raw屬性,並宣告5個元素,這5個元素分別對應到ImageTarget內的圖片,如下圖。go_raw宣告如下:

public GameObject[] go_raw;


在Update()函式中,我們可以看,用getAllAvailablePoints()取得那些標籤有被偵測出來,換句話說是有AR效果,收集這點資訊,供後續畫線及計算使用。

void Update () {
getAllAvailablePoints ();
draw ();
drawLines ();
calculation ();
}

利用go_raw來對應到AR標籤物件,再使用enabled屬性值來判斷是否有AR效果,下面程式就是利用這個技巧,來取得有AR效果的標籤物件,再決是否把角度和距離的物件啟用,最後把收集到的資料轉成陣列。

private void getAllAvailablePoints(){
// Create new Vector2 and Text Lists
List vertices2DList = new List();
List textAList = new List();
List textDList = new List();
List oList = new List();

// Fill lists if availble
for(int i = 0; i < go_raw.Length; i++){
if (go_raw [i] != null) {
if (go_raw [i].GetComponent ().enabled) {
go_text_angle [i].enabled = true;
go_text_distance [i].enabled = true;

vertices2DList.Add (new Vector2 (go_raw [i].transform.position.x, go_raw [i].transform.position.y));
textAList.Add (go_text_angle [i]);
textDList.Add (go_text_distance [i]);
oList.Add ( go_raw [i] );
} else {
go_text_angle [i].enabled = false;
go_text_distance [i].enabled = false;
}
}
}

// Convert to array
go_points_text_a = textAList.ToArray ();
go_points_text_d = textDList.ToArray ();
go_points = vertices2DList.ToArray ();
go_n = oList.ToArray ();
}


2017年12月7日 星期四

用擴增實境測量距離、周長、面積、還有辨識形狀

本篇文章將介紹當數張具有擴增實境標籤卡片移動時,可以測量出鄰近兩張卡片的中心點距量,當卡片移動時,還能自動地顯示改變後的距離。

原文網址:Augmented Reality Shapes Combined from Trackers
Download: Download Whole Unity3D AR Shapes project (*.rar file)請大家留意影片中左上角,可以計算周長、面積、還有辨識形狀。