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