ROS3D Podsumowanie prac nad projektem 07.12.2015

AGENDA • Wprowadzenie: • Cele projektu, • Produkty,

• Architektura systemu: • Diagram systemu, • Przypadki użycia.

• Opracowany system: • Kontroler RIGa – KR: • Architektura sprzętowa, • Architektura oprogramowania.

• Analizator obrazu – AO: • Architektura sprzętowa, • Architektura oprogramowania.

• Aplikacja mobilna – OK: • Architektura oprogramowania, • Wydajność, • Interfejs użytkownika, • Przykłady użycia.

• Testy.

Źródło: Finn sp. z o.o.

CELE PROJEKTU: • Automatyzacja procesu nagrywania filmów 3D, • Integracja z kamerami, serwomechanizmami, • Monitorowanie i korekta parametrów nagrywania w czasie rzeczywistym, • Ocena jakości obrazu w czasie rzeczywistym.

PRODUKTY WYKONANE W RAMACH PROJEKTU: • • •

Kontroler RIGa (KR), Analizator obrazu (AO), Aplikacja mobilna (OK).

Analizator obrazu (AO)

Oprogramowanie Klienta (OK)

Kontroler RIGa (KR)

ARCHITEKTURA SPRZĘTOWA

KOMUNIKACJA POMIĘDZY MODUŁAMI SYSTEMU

Analizator obrazu (AO) RTP

HTTP

1. Media transmisyjne: WiFi

RTP

HTTP

Oprogramowanie Klienta (OK)

Kontroler RIGa (KR)

MQTT

MQTT

HTTP

HTTP

Ethernet SDI



Wifi,



Ethernet,



SDI.

2. Protokoły: •

MQTT,



RTP,



HTTP,



Zeroconf.

ROS3D.KR- OUTLINE

1. Zadania, 2. Architektura: • Sprzętowa, • Oprogramowania,

3. Web UI, 4. Przykłady zastosowań.

ROS3D.KR Zadania: • Kontrola sterownika serw • Archiwizowanie i odtwarzanie ustawień zestawu kamer i obiektywów, • Udostępnianie aktualnych ustawień innym urządzeniom w systemie (AO, OK), • Reagowanie na polecenia zmiany ustawień przesyłanych od innych urządzeń w systemie (AO, OK). Cechy: • Zasilanie bateryjne, • Komunikacja bezprzewodowa, • Wytrzymała konstrukcja dostosowana do trudnych warunków pracy, • Mocowanie dostosowane do uchwytów stosowanych w przemyśle filmowym.

Battery/PM Controller

WiFi

Wandboard

SD Card Firmware

1Gbps Ethernet Switch (4 ports)

1Gbps Ethernet Link

RED Cameras

ROS3D.KR Architektura sprzętowa

ROS3D.KR WANDBOARD

Battery/PM Controller

WiFi

Wandboard

SD Card Firmware

1Gbps Ethernet Switch (4 ports)



i.MX6Q Quad Core,



Dostępne porty GPIO, I2C,



Brak PMIC (zewnętrzny kontroler baterii i PM),



Brak wewnętrznej pamięci - karta SD z firmware,



Integracja z zewnętrznymi przyciskami i PM za pomocą GPIO,



Integracja w jądrze za pomocą Device Tree:

1Gbps Ethernet Link

RED Cameras



#gpio-keys



#gpio-leds

Niestabilny moduł WiFi / Bluetooth:

• •

BRCM4329 przez SDIO.

HTTP API MQTT Publish

Device Controller DBus

WEB UI

MQTT Broker

MQTT Subscribe

ROS3D.OK

LEDs

Platform Controller

Keys

Camera Controller

RCP API

Camera Controller

Aladin Driver

UART Aladin Protocol

Aladin Driver

ROS3D.KR Architektura Oprogramowania

ROS3D.KR DEVICE CONTROLLER

HTTP API MQTT Publish

Device Controller

WEB UI

MQTT Broker

Platform Controller DBus

Camera Controller

Aladin Driver

MQTT Subscribe

ROS3D.OK

LEDs



Centralny HUB,



Rejestr parametrów systemu,



Zapisuje ‘snapshot’ parametrów,



Sterowanie peryferiami KR przez HTTP API,



Aktualizacja parametrów przez MQTT,



Rozgłaszanie dostępności usługi przez Zeroconf / Bonjour.

Keys RCP API

Camera Controller

UART Aladin Protocol

Aladin Driver

ROS3D.KR CAMERA CONTROLLER

HTTP API MQTT Publish

Device Controller DBus

WEB UI

MQTT Broker

MQTT Subscribe



Interakcja z kamerami RED,



Redlink Control Protocol (RCP) API,



Implementacja w Vala i C:

ROS3D.OK

LEDs



Platform Controller

Keys

Camera Controller

RCP API

Camera Controller

Aladin Driver

UART Aladin Protocol

Aladin Driver

VAPI dla integracji z biblioteką RCP

Interfejs DBus:

• •

kamery widoczne jako obiekty: /org/ros3d/controller/camera/0..



Odczyt parametrów z kamer,



Obsługa sygnałów.

ROS3D.KR PLATFORM CONTROLLER

HTTP API MQTT Publish

Device Controller DBus

WEB UI

MQTT Broker

MQTT Subscribe

ROS3D.OK

LEDs

Platform Controller

Keys

Camera Controller

RCP API

Camera Controller

Aladin Driver

UART Aladin Protocol

Aladin Driver



Kontrola i interakcja z peryferiami danej platformy,



Zunifikowany interfejs DBus:



LED: •

/org/ros3d/platform/led/{0, 1, 2…}



org.ros3d.Platform.LED

Przyciski:

• •

/org/ros3d/platform/button/0..



org.ros3d.Platform.Button

• Interfejs konfiguracyjny: • Konfiguracja sieci, • Konfiguracja trybu pracy Aladin,

• Przegląd stanu systemu.

ROS3D.KR • Web UI

ROS3D.KR Przykłady zastosowań:

• W przypadku przenoszenia zestawu filmowego pozwala, w połączeniu z aplikacją mobilna, na szybkie zapisanie aktualnych ustawień i odtworzenie ich po zmontowaniu zestawu w nowym miejscu,

• Pozwala automatycznie archiwizować ustawienia z jakimi było realizowane ujęcie w celu późniejszego wykorzystania tych informacji w procesie postprodukcji i analizie zarejestrowanego materiału.

ROS3D.AO - OUTLINE

1. Zadania, 2. Architektura: • Sprzętowa, • Oprogramowania,

3. Zastosowane technologie, 4. Cechy, 5. Przykłady zastosowań.

ROS3D.AO Zadania: •

Akwizycja obrazu z kamer,



Analiza pozyskanych strumieni wideo w celu automatycznego kalibrowana zestawu filmowego tak, by był stereoskopowy.

Cechy: •

Budowa modułowa rack 19”.

Gateworks GW5400

HDMI Video UART Control

FPGA

USB firmware (optional)

ROS3D.AO Architektura sprzętowa

ROS3D.AO GATEWORKS GW5400

Gateworks GW5400

USB firmware (optional)

HDMI Video UART Control

FPGA



iMX6 Quad Core,



Dostępne porty GPIO, I2C,



Kontroler PM,



256MB NAND, opcjonalny boot z USB,



Wejście HDMI, max. 1080p@30fps.

Device Controller

Streaming

HTTP API

ROS3D.OK

V4L2 API

DBus

Video Acquisition

Serial Bridge

ROS3D.AO Architektura oprogramowania

ROS3D.AO STREAMING

Device Controller

Streaming

HTTP API

V4L2 API



Przesyłanie video,



RTP, H.264,



Obraz skalowany do 640x360,



Obsługa VPU i IPU dostępnych w i.MX6 - użycie procesora ~4-5%,



Kontrola przez HTTP:

DBus

• ROS3D.OK

Video Acquisition

Serial Bridge

RTCP problemem na Androidzie (ROS3D.OK),

Implementacja:

• •

Gstreamer,



Vala.

ROS3D.AO DEVICE CONTROLLER

Device Controller

Streaming

HTTP API

ROS3D.OK

V4L2 API

Video Acquisition

DBus

Serial Bridge



Ograniczona funkcja,



Przewidywana integracja z FPGA przez Serial Bridge.

ROS3D.AO Przykłady zastosowań:

• Analizator obrazu pozwala na szybkie, zautomatyzowanie kalibrowanie zestawu kamer i obiektywów na planie zdjęciowym,

• Stream może być podglądany na żywo w aplikacji mobilnej.

ROS3D.KR / .AO FIRMWARE • Yocto (OpenEmbedded/Poky): • Zamrożone gałęzie w oparciu o gałąź ‘master’: • poky, meta-openembedded (meta-python),

meta-iot-bsp, meta-fsl-arm, meta-fsl-arm-extra, meta-gateworks.

• Integracja i back-porting zmian,

• Własne warstwy Yocto: • meta-ros3d-wandboard-bsp, meta-ros3d-gateworks-bsp - wsparcie i konfiguracja platform, • meta-openrnd - integracja, ‘reuse’ między projektami, • meta-ros3d - aplikacje Ros3D,

• Poprawki do Yocto, bibliotek i narzędzi propagowane do upstream:

• > 50 patchy (Poky, OpenEmbedded,

linux-imx6, sparts, swupdate, jhbuild…)

ROS3D.OK - OUTLINE

1. Zadania, 2. Architektura, 3. Zastosowane technologie, 4. Wydajność, 5. Interfejs użytkownika, 6. Przykłady zastosowań.

ROS3D.OK - ZADANIA • Kalkulator - edycja i przeliczanie parametrów nagrywania, • Podgląd obrazu z kamer, • Sterowanie KR i AO.

GUI

DataModel

Data Source

PropertyManager Activities

REST Service CamerasManager

Fragments

MQTT Server RigsManager

Views

Zeroconf Browser OfflineStorage

ROS3D.OK Architektura

• Modułowość • Skalowalność • Testowalność • Zaawansowany model danych

GUI

Property

PropertyDataProvider 1: getProperty() 2: Property

3: registerListener() 4:

5: setValue()

6: setPropertyValue()

7: updateRelatedProperties() 8:

10: newValueEvent

9: fireValueChanged

ROS3D.OK Model danych „nadawca-odbiorca” – przykład użycia

ROS3D.OK – ZASTOSOWANE TECHNOLOGIE • Java, • MQTT, • AndroidSDK, • REST Services, • JMDNS (Zeroconf).

ROS3D.OK – WYDAJNOŚĆ Czas renderowania widoku [ms] Nexus 7

299.03

Nexus 7 zoptymalizowany

50.54

Samsung Tab 2

478.42

Samsung Tab 2 zoptymalizowany

65.92

• Wykresy renderowane na GPU, • Płaska hierarchia widoków, bardzo dużo własnych komponentów,

• Zdefiniowana częstotliwość

odświeżania list z parametrami (30 FPS),

• Optymalizacja hierarchii widoków

na platformie Android – Mobilization.

ROS3D.OK – INTERFEJS UŻYTKOWNIKA • Złożony problem, • Prezentacja wielu parametrów jednocześnie, • Ograniczona wielkość ekranu, • Intuicyjny w użytkowaniu, • Wykorzystanie metodologii Double Diamond.

1. Odkrycie wyzwań i zdefiniowanie możliwych problemów, 2. Zdefiniowanie możliwych rozwiązań, 3. Wytworzenie projektu interfejsu użytkownika, 4. Dostarczenie elementów do developmentu.

DISCOVER > DEFINE > DEVELOP > DELIVER

ROS3D.OK INTERFEJS UŻYTKOWNIKA • Wersja alpha

ROS3D.OK INTERFEJS UŻYTKOWNIKA • Gotowy produkt

ROS3D.OK INTERFEJS UŻYTKOWNIKA • Gotowy produkt

ROS3D.OK INTERFEJS UŻYTKOWNIKA • Gotowy produkt

ROS3D.OK INTERFEJS UŻYTKOWNIKA • Gotowy produkt

Użytkownik aplikacji

Modyfikacja listy parametrów

Odczyt / zapis ustawień z / do pliku CVSHOT

Aktualizacja parametrów na KR

Monitorowanie bieżących ustawień parametrów z KR

ROS3D.OK Przypadki użycia

Podgląd obrazu z kamer

TESTY NA PLANIE FILMOWYM 26.11.2015 Próby kamerowe na RIG 3D:

• 26.11.2015, • Warszawa, • 1 dzień zdjęciowy.

PODSUMOWANIE PROJEKTU 1. Opracowane produkty, 2. Publikacje: • MIXDES 2015, Proceedings of “Mobile application for remote control of stereoscopic images acquisition system”,

3. Udział w konferencjach: • Mixdes, • Mobilization, • Konferencja ROS3D, • FOSDEM – 30/31 stycznia 2016.

4. Publikacja oprogramowania Open-Source: • Android GitHub, Android: Open-RnD: FragmentSwapper, ConnectionManager, Utils, MultiLevelListView.

Thank you Bartłomiej Świercz CEO of Open-RnD

[email protected]

QUESTIONS ? THOUGHTS ? COMMENTS ?

Feel free to contact us! [email protected] WWW.OPEN-RND.PL