Ho trovato ad un prezzo stranamente basso (30 euro) un visore Daydream e il controller collegato ed ho voluto provarlo
Solo dopo ho scoperto che non e' necessario avere Daydream per poterci sviluppare.
Avendo un telefono di riserva (non necessariamente supportato da Daydream) si puo' installare un emulatore di controller che si collega al telefono principale sia via Bluetooth che via WiFi
L'emulazione del controller funziona anche con il package Unity mediante una connessione USB
Peraltro sto sperimentando molti problemi con il controller fisico (quello grigio all'estrema destra) che e' molto carino ma ha difficolta' a rimanere collegato al telefono. In un caso estremo sono dovuto andare in Impostazioni/App/Servizi Google VR/Spazio di archiviazione/Cancella Dati. Questa operazione resetta le impostazioni di Google VR
venerdì 27 aprile 2018
Daydream Controller in Unity
Un semplice esempio di script da aggiungere al Player per muovere la Camera di Unity con il DayDream Controller
public class move_player : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
Quaternion ori;
ori = GvrController.Orientation;
if (ori.eulerAngles.z > 20 && ori.eulerAngles.z < 90) {
Debug.Log ("Roll Left ");
}
if (ori.eulerAngles.z > 270 && ori.eulerAngles.z < 340) {
Debug.Log ("Roll Right");
}
if (ori.eulerAngles.x > 20 && ori.eulerAngles.x < 90) {
Debug.Log ("Drop");
var rot = transform.rotation;
rot.z -= Time.deltaTime * 1;
transform.rotation = rot;
}
if (ori.eulerAngles.x > 270 && ori.eulerAngles.x < 340) {
Debug.Log ("Climb");
var rot = transform.rotation;
rot.z += Time.deltaTime * 1;
transform.rotation = rot;
}
Debug.Log ("X : " + ori.eulerAngles.x.ToString("#.0")); //pitch
Debug.Log ("Y : " + ori.eulerAngles.y.ToString("#.0")); // yaw
Debug.Log ("Z : " + ori.eulerAngles.z.ToString("#.0")); // roll
if (GvrController.IsTouching) {
Vector2 touchPos = GvrController.TouchPos;
Debug.Log ("Toccato " + touchPos.x.ToString ("#.00"));
var x = touchPos.x * Time.deltaTime * 5.0f;
var y = touchPos.y * Time.deltaTime * 5.0f;
if (touchPos.x < 0.5f)
x *= -1.0f;
else
x *= +1.0f;
if (touchPos.y < 0.5f)
y *= -1.0f;
else
y *= +1.0f;
transform.Translate (x, y, 0.0f);
}
}
}
public class move_player : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
Quaternion ori;
ori = GvrController.Orientation;
if (ori.eulerAngles.z > 20 && ori.eulerAngles.z < 90) {
Debug.Log ("Roll Left ");
}
if (ori.eulerAngles.z > 270 && ori.eulerAngles.z < 340) {
Debug.Log ("Roll Right");
}
if (ori.eulerAngles.x > 20 && ori.eulerAngles.x < 90) {
Debug.Log ("Drop");
var rot = transform.rotation;
rot.z -= Time.deltaTime * 1;
transform.rotation = rot;
}
if (ori.eulerAngles.x > 270 && ori.eulerAngles.x < 340) {
Debug.Log ("Climb");
var rot = transform.rotation;
rot.z += Time.deltaTime * 1;
transform.rotation = rot;
}
Debug.Log ("X : " + ori.eulerAngles.x.ToString("#.0")); //pitch
Debug.Log ("Y : " + ori.eulerAngles.y.ToString("#.0")); // yaw
Debug.Log ("Z : " + ori.eulerAngles.z.ToString("#.0")); // roll
if (GvrController.IsTouching) {
Vector2 touchPos = GvrController.TouchPos;
Debug.Log ("Toccato " + touchPos.x.ToString ("#.00"));
var x = touchPos.x * Time.deltaTime * 5.0f;
var y = touchPos.y * Time.deltaTime * 5.0f;
if (touchPos.x < 0.5f)
x *= -1.0f;
else
x *= +1.0f;
if (touchPos.y < 0.5f)
y *= -1.0f;
else
y *= +1.0f;
transform.Translate (x, y, 0.0f);
}
}
}
lunedì 23 aprile 2018
giovedì 12 aprile 2018
Alla ricerca di WannaCrypt
Ogni tanto ritorno sul luogo del delitto e mi trovo a giocare con una sottorete di una LAN piuttosto complessa che e' distribuita in diversi punti di Firenze. Esiste una organizzazione gerarchica per cui sono presenti nei vari uffici degli amministratori di rete locali (ruolo che ho ricoperto per un periodo di tempo anche io) che fanno capo ad un amministratore generale responsabile delle macchine di frontiera.
Qualche giorno fa l'amministratore generale ha inviato un warning del tipo
nmap --script smb-os-discovery -p 445 XXX.XXX.XXX.1/24
Qualche giorno fa l'amministratore generale ha inviato un warning del tipo
Oggetto: WARNING: GARR-CERT-A-B-1803100820-0007 Nodo probabilmente infetto da wannacrypt su XXX.XXX.XXX.XXX
la macchina di frontiera aveva individuato un traffico relativo al malware wannacrypt per la chiamata su porta 80 al dominio di controllo di WannaCrypt
Porta locale: 49197
IP:porta C&C: 104.17.41.137:80
(www.iuqerfsodp9ifjaposdfjhgosurijf aewrwergwea.com)
Malware: wannacrypt
URL: /
il problema e' che la macchina di frontiera non era riusciuta a risolvere l'IP della macchina compromessa ma solo l'indirizzo di uscita fornito dal DHCP...c'era quindi da cercare il responsabile tra 256 computer distribuiti in diversi edifici. Come fare?
La prima ipotesi era quella di sniffare il traffico su porta 80 sullo switch in attesa che il client si collegasse al 104.17.41.137. Cosa lunga e poco efficace.
C'e' pero' da considerare che WannaCrypt si basa su una vulnerabilita' su protocollo SMB di Windows fino alla versione 7 o Windows Servers 2008 e precedenti...considerando che adesso i client della rete sono quasi tutti Mac i Win10 il campo si restringe in modo significativo
Usando nmap ho lanciato la seguente ricerca
ovvero la ricerca in tutti i computer della sottoclasse del servizio SMB aperto e facendomi fornire anche il tipo di sistema operativo installato
Nmap scan report for xxx.xxx.xxx.xxx Host is up (0.00052s latency). PORT STATE SERVICE 445/tcp open microsoft-ds MAC Address: F0:4D:XX:XX:XX:XX:XX (Dell) Host script results: | smb-os-discovery: | OS: Windows 7 Professional 7601 Service Pack 1 (Windows 7 Professional 6.1) | OS CPE: cpe:/o:microsoft:windows_7::sp1:professional | Computer name: XXXXXXX | NetBIOS computer name: XXXXXX | Workgroup: XXXXXXX |_ System time: 2018-03-16T10:35:03+01:00
Una volta andato a controllare il client di persona e' emerso che la macchina non effettuava gli aggiornamenti automatici ed era quindi priva di patch di sicurezza. Problema trovato
mercoledì 11 aprile 2018
Tango Tablet vs Kinect
Ho provato a mettere alla prova il Tablet di Project Tango con il Kinect sulle Mura Etrusche a Fiesole gia' utilizzate come bersaglio in questo post
Pur ammettendo una giornata piovosa la prova con il tablet Tango e' stata disastrosa. Il sensore di profondita' e' riuscito ad acquisire al massimo 1100 punti da una distanza compresa tra 1.0 e 1.5 m; allontanandosi non veniva effettuata nessuna acquisizione mediante il software ParaView.
L'idea che mi sono fatto e' che il sensore di profondita' del tablet Tango non risulta avere una potenza di emissione cosi' elevata da avere riflessioni significative su superfici non omogenee e poco riflettenti.
In buona sostanza non e' possibile farne un utilizzo "in campagna" per scopi geologici. Il suo mondo e' il rilevamento di interni
Pur ammettendo una giornata piovosa la prova con il tablet Tango e' stata disastrosa. Il sensore di profondita' e' riuscito ad acquisire al massimo 1100 punti da una distanza compresa tra 1.0 e 1.5 m; allontanandosi non veniva effettuata nessuna acquisizione mediante il software ParaView.
L'idea che mi sono fatto e' che il sensore di profondita' del tablet Tango non risulta avere una potenza di emissione cosi' elevata da avere riflessioni significative su superfici non omogenee e poco riflettenti.
In buona sostanza non e' possibile farne un utilizzo "in campagna" per scopi geologici. Il suo mondo e' il rilevamento di interni
martedì 10 aprile 2018
Esperimenti Tango : ParaView
Continuano gli esperimenti con Tango Tablet. La applicazione RTAB-MAP e' decisamente completa ma a me serviva una soluzione semplice per esportare la nuvola dei punti di una singola acquisizione ed ho trovato ParaView in versione Android per l'acquisizione e Desktop per la successiva visualizzazione
IMPORTANTE : non si devono aggiornare le applicazioni originali del tablet. Sia Tango Core che le GApps danno continuamente errore se aggiornate
I fotogrammi vengono acquisiti circa ogni 200 millisecondi.
Il massimo di numero di punti acquisiti e' intorno a 11.000-12.000.
Ad una distanza di 2 m da un muro la visione laterale e' +/- 1.0 m circa sull'asse X (orizzontale) e circa +/- 0.6 m sull'asse verticale. La FOV stimata e' di circa 53°x33°
I dati dello snapshot della app Android vengono salvate in formato .vtk. Dalla versione desktop i dati possono essere esportati in csv in formato testo da File/Save Data/*.csv
IMPORTANTE : non si devono aggiornare le applicazioni originali del tablet. Sia Tango Core che le GApps danno continuamente errore se aggiornate
I fotogrammi vengono acquisiti circa ogni 200 millisecondi.
Il massimo di numero di punti acquisiti e' intorno a 11.000-12.000.
Ad una distanza di 2 m da un muro la visione laterale e' +/- 1.0 m circa sull'asse X (orizzontale) e circa +/- 0.6 m sull'asse verticale. La FOV stimata e' di circa 53°x33°
I dati dello snapshot della app Android vengono salvate in formato .vtk. Dalla versione desktop i dati possono essere esportati in csv in formato testo da File/Save Data/*.csv
domenica 8 aprile 2018
Iscriviti a:
Post (Atom)
Feature Matching OpenCv
Il problema e' il seguente: trovare le differenze tra le due foto. Le due immagini sono state riprese a distanza di oltre un anno ed il ...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...