46
ROS3D Podsumowanie prac nad projektem 07.12.2015

ROS3D - Podsumowanie prac nad projektem

Embed Size (px)

Citation preview

ROS3D

Podsumowanie prac nad projektem

07.12.2015

• Wprowadzenie:• Cele projektu,• Produkty,

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

AGENDA

• 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 korektaparametró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).

ARCHITEKTURA SPRZĘTOWA

Analizator obrazu (AO)

Kontroler RIGa (KR)Oprogramowanie Klienta (OK)

KOMUNIKACJA POMIĘDZY MODUŁAMI SYSTEMU

1. Media transmisyjne:• Wifi,• Ethernet,• SDI.

2. Protokoły:• MQTT,• RTP,• HTTP,• Zeroconf.

Analizator obrazu (AO)

Kontroler RIGa (KR)Oprogramowanie Klienta (OK)

RTP HTTP

RTP HTTP

MQTT HTTP MQTT HTTP

Ethernet

SDI

WiFi

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.

ROS3D.KR

Architektura sprzętowa

Battery/PM Controller

1Gbps Ethernet Switch(4 ports)Wandboard

Battery/PM Controller

1Gbps Ethernet Link

RED Cameras

WiFi

ROS3D.KR WANDBOARD

• 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:

• #gpio-keys• #gpio-leds

• Niestabilny moduł WiFi/ Bluetooth:

• BRCM4329 przez SDIO.

Battery/PM Controller

1Gbps Ethernet Switch(4 ports)Wandboard

Battery/PM Controller

1Gbps Ethernet Link

RED Cameras

WiFi

ROS3D.KR

Architektura Oprogramowania

Device Controller

WEB UI

MQTT Broker

Platform Controller

Camera Controller

Aladin Driver

ROS3D.OK

LEDs

Keys

Camera Controller

Aladin Driver

HTTP API

MQTTPublish

DBus RCP API

UARTAladin Protocol

MQTTSubscribe

ROS3D.KRDEVICE CONTROLLER

• 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.

Device Controller

WEB UI

MQTT Broker

Platform Controller

Camera Controller

Aladin Driver

ROS3D.OK

LEDs

Keys

Camera Controller

Aladin Driver

HTTP API

MQTTPublish

DBus RCP API

UARTAladin Protocol

MQTTSubscribe

ROS3D.KRCAMERA CONTROLLER

• Interakcja z kamerami RED,• Redlink Control Protocol

(RCP) API,• Implementacja w Vala i C:

• 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.

Device Controller

WEB UI

MQTT Broker

Platform Controller

Camera Controller

Aladin Driver

ROS3D.OK

LEDs

Keys

Camera Controller

Aladin Driver

HTTP API

MQTTPublish

DBus RCP API

UARTAladin Protocol

MQTTSubscribe

ROS3D.KRPLATFORM CONTROLLER

• 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

Device Controller

WEB UI

MQTT Broker

Platform Controller

Camera Controller

Aladin Driver

ROS3D.OK

LEDs

Keys

Camera Controller

Aladin Driver

HTTP API

MQTTPublish

DBus RCP API

UARTAladin Protocol

MQTTSubscribe

ROS3D.KR

• Web UI

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

Aladin,

• Przegląd stanu systemu.

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 postprodukcjii analizie zarejestrowanego materiału.

ROS3D.KR

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”.

ROS3D.AO

Architektura sprzętowa

FPGAGateworksGW5400

USB firmware(optional)

HDMI Video

UART Control

ROS3D.AOGATEWORKS GW5400

• iMX6 Quad Core,• Dostępne porty GPIO, I2C,• Kontroler PM,• 256MB NAND, opcjonalny

boot z USB,• Wejście HDMI,

max. 1080p@30fps.

FPGAGateworksGW5400

USB firmware(optional)

HDMI Video

UART Control

ROS3D.AO

Architektura oprogramowania

DeviceControllerStreaming

HTTP API V4L2 API

Video AcquisitionROS3D.OK

DBus

SerialBridge

ROS3D.AOSTREAMING

• 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:• RTCP problemem na

Androidzie (ROS3D.OK),

• Implementacja:• Gstreamer,• Vala.

DeviceControllerStreaming

HTTP API V4L2 API

Video AcquisitionROS3D.OK

DBus

SerialBridge

ROS3D.AODEVICE CONTROLLER

• Ograniczona funkcja,• Przewidywana integracja

z FPGA przez Serial Bridge.Device

ControllerStreaming

HTTP API V4L2 API

Video AcquisitionROS3D.OK

DBus

SerialBridge

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.AO

• 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.KR / .AO FIRMWARE

ROS3D.OK - OUTLINE

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

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

ROS3D.OK - ZADANIA

ROS3D.OK

Architektura

GUI

Views

Fragments

Activities

DataModel

RigsManager

CamerasManager

PropertyManager

OfflineStorage

Data Source

Zeroconf Browser

MQTT Server

REST Service

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

ROS3D.OK

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

GUI Property PropertyDataProvider

1: getProperty()

2: Property

7: updateRelatedProperties()

6: setPropertyValue()

8:

9: fireValueChanged10: newValueEvent

5: setValue()

4:3: registerListener()

• Java,• MQTT,• AndroidSDK,• REST Services,• JMDNS (Zeroconf).

ROS3D.OK – ZASTOSOWANE TECHNOLOGIE

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.

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

ROS3D.OK – INTERFEJS UŻYTKOWNIKA

DISCOVER > DEFINE > DEVELOP > DELIVER

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.

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

ROS3D.OK

Przypadki użycia

Użytkownik aplikacji

Aktualizacja parametrów na KR

Monitorowanie bieżących ustawień

parametrów z KRPodgląd obrazu z kamerOdczyt / zapis ustawień

z / do pliku CVSHOTModyfikacja listy

parametrów

Plan do filmu YYY:• 26.11.2015,• Warszawa,• 1 dzień zdjęciowy.

TESTY NA PLANIE FILMOWYM 26.11.2015

1. Opracowane produkty,2. Publikacje:

• MIXDES 2015, Proceedings of “Mobile application for remote control of stereoscopic images acquisitionsystem”,

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.

PODSUMOWANIE PROJEKTU

[email protected]

QUESTIONS ? THOUGHTS ? COMMENTS ?

Feel free to contact us!

WWW.OPEN-RND.PL

Thank you

Bartłomiej ŚwierczCEO of Open-RnD

[email protected]