SlideShare a Scribd company logo
1 of 46
Download to read offline
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 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).
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
MQTT
Publish
DBus
RCP
API
UART
Aladin Protocol
MQTT
Subscribe
ROS3D.KR
DEVICE 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
MQTT
Publish
DBus
RCP
API
UART
Aladin Protocol
MQTT
Subscribe
ROS3D.KR
CAMERA 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
MQTT
Publish
DBus
RCP
API
UART
Aladin Protocol
MQTT
Subscribe
ROS3D.KR
PLATFORM 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
MQTT
Publish
DBus
RCP
API
UART
Aladin Protocol
MQTT
Subscribe
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 postprodukcji
i 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
FPGA
Gateworks
GW5400
USB firmware
(optional)
HDMI Video
UART Control
ROS3D.AO
GATEWORKS GW5400
• iMX6 Quad Core,
• Dostępne porty GPIO, I2C,
• Kontroler PM,
• 256MB NAND, opcjonalny
boot z USB,
• Wejście HDMI,
max. 1080p@30fps.
FPGA
Gateworks
GW5400
USB firmware
(optional)
HDMI Video
UART Control
ROS3D.AO
Architektura oprogramowania
Device
Controller
Streaming
HTTP API V4L2 API
Video AcquisitionROS3D.OK
DBus
Serial
Bridge
ROS3D.AO
STREAMING
• 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.
Device
Controller
Streaming
HTTP API V4L2 API
Video AcquisitionROS3D.OK
DBus
Serial
Bridge
ROS3D.AO
DEVICE CONTROLLER
• Ograniczona funkcja,
• Przewidywana integracja
z FPGA przez Serial Bridge.
Device
Controller
Streaming
HTTP API V4L2 API
Video AcquisitionROS3D.OK
DBus
Serial
Bridge
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: fireValueChanged
10: 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 KR
Podgląd obrazu z kamer
Odczyt / zapis ustawień
z / do pliku CVSHOT
Modyfikacja 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 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.
PODSUMOWANIE PROJEKTU
INFO@OPEN-RND.PL
QUESTIONS ? THOUGHTS ? COMMENTS ?
Feel free to contact us!
WWW.OPEN-RND.PL
Thank you
Bartłomiej Świercz
CEO of Open-RnD
bs@open-rnd.pl

More Related Content

Similar to ROS3D - Podsumowanie prac nad projektem

Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...
Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...
Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...asquelt
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl 3camp
 
PLNOG 7: Bartosz Kiziukiewicz - Jak wykorzystać nowe rozwiązania firmy D-link...
PLNOG 7: Bartosz Kiziukiewicz - Jak wykorzystać nowe rozwiązania firmy D-link...PLNOG 7: Bartosz Kiziukiewicz - Jak wykorzystać nowe rozwiązania firmy D-link...
PLNOG 7: Bartosz Kiziukiewicz - Jak wykorzystać nowe rozwiązania firmy D-link...PROIDEA
 
PLNOG 9: Robert Ślaski - SKALOWALNE SZYFROWANIE USŁUG W SIECI OPERATORA - prz...
PLNOG 9: Robert Ślaski - SKALOWALNE SZYFROWANIE USŁUG W SIECI OPERATORA - prz...PLNOG 9: Robert Ślaski - SKALOWALNE SZYFROWANIE USŁUG W SIECI OPERATORA - prz...
PLNOG 9: Robert Ślaski - SKALOWALNE SZYFROWANIE USŁUG W SIECI OPERATORA - prz...PROIDEA
 
Maciej Węglarczyk: Optymalizacje aplikacji mobilnych
Maciej Węglarczyk: Optymalizacje aplikacji mobilnychMaciej Węglarczyk: Optymalizacje aplikacji mobilnych
Maciej Węglarczyk: Optymalizacje aplikacji mobilnychGameDesire Academy
 
4Developers: Jarek Wojczakowski- Technologie w świecie gier mobilnych
4Developers: Jarek Wojczakowski- Technologie w świecie gier mobilnych4Developers: Jarek Wojczakowski- Technologie w świecie gier mobilnych
4Developers: Jarek Wojczakowski- Technologie w świecie gier mobilnychPROIDEA
 
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...GOG.com dev team
 
PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...
PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...
PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...PROIDEA
 
Wykorzystanie technologii webowych w aplikacjach desktopowych (1)
Wykorzystanie technologii webowych w aplikacjach desktopowych  (1)Wykorzystanie technologii webowych w aplikacjach desktopowych  (1)
Wykorzystanie technologii webowych w aplikacjach desktopowych (1)GOG.com dev team
 
Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.Semihalf
 
PLNOG 4: Przemysław Frasunek - CDN w Polsce - czyli jak my to robimy
PLNOG 4: Przemysław Frasunek - CDN w Polsce - czyli jak my to robimyPLNOG 4: Przemysław Frasunek - CDN w Polsce - czyli jak my to robimy
PLNOG 4: Przemysław Frasunek - CDN w Polsce - czyli jak my to robimyPROIDEA
 
Modelowanie i weryfikacja w programie MATLAB i Simulink
Modelowanie i weryfikacja w programie MATLAB i SimulinkModelowanie i weryfikacja w programie MATLAB i Simulink
Modelowanie i weryfikacja w programie MATLAB i SimulinkJadwiga Horoszkiewicz
 
PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...
PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...
PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...PROIDEA
 
PLNOG14: Nowości w protokole BGP, optymalizacja routingu na brzegu sieci - Łu...
PLNOG14: Nowości w protokole BGP, optymalizacja routingu na brzegu sieci - Łu...PLNOG14: Nowości w protokole BGP, optymalizacja routingu na brzegu sieci - Łu...
PLNOG14: Nowości w protokole BGP, optymalizacja routingu na brzegu sieci - Łu...PROIDEA
 
PLNOG 6: Marcin Kaptur, Tomasz Charewicz - Onet VOD
PLNOG 6: Marcin Kaptur, Tomasz Charewicz - Onet VODPLNOG 6: Marcin Kaptur, Tomasz Charewicz - Onet VOD
PLNOG 6: Marcin Kaptur, Tomasz Charewicz - Onet VODPROIDEA
 

Similar to ROS3D - Podsumowanie prac nad projektem (20)

Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...
Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...
Advanced automation and provisioning in Red Hat Satellite 6 - Red Hat Archite...
 
It od kuchni w nokaut.pl
It od kuchni w nokaut.plIt od kuchni w nokaut.pl
It od kuchni w nokaut.pl
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl
 
PLNOG 7: Bartosz Kiziukiewicz - Jak wykorzystać nowe rozwiązania firmy D-link...
PLNOG 7: Bartosz Kiziukiewicz - Jak wykorzystać nowe rozwiązania firmy D-link...PLNOG 7: Bartosz Kiziukiewicz - Jak wykorzystać nowe rozwiązania firmy D-link...
PLNOG 7: Bartosz Kiziukiewicz - Jak wykorzystać nowe rozwiązania firmy D-link...
 
PLNOG 9: Robert Ślaski - SKALOWALNE SZYFROWANIE USŁUG W SIECI OPERATORA - prz...
PLNOG 9: Robert Ślaski - SKALOWALNE SZYFROWANIE USŁUG W SIECI OPERATORA - prz...PLNOG 9: Robert Ślaski - SKALOWALNE SZYFROWANIE USŁUG W SIECI OPERATORA - prz...
PLNOG 9: Robert Ślaski - SKALOWALNE SZYFROWANIE USŁUG W SIECI OPERATORA - prz...
 
Maciej Węglarczyk: Optymalizacje aplikacji mobilnych
Maciej Węglarczyk: Optymalizacje aplikacji mobilnychMaciej Węglarczyk: Optymalizacje aplikacji mobilnych
Maciej Węglarczyk: Optymalizacje aplikacji mobilnych
 
4Developers: Jarek Wojczakowski- Technologie w świecie gier mobilnych
4Developers: Jarek Wojczakowski- Technologie w świecie gier mobilnych4Developers: Jarek Wojczakowski- Technologie w świecie gier mobilnych
4Developers: Jarek Wojczakowski- Technologie w świecie gier mobilnych
 
Dcamcut dla SOLIDWORKS i Inventor
Dcamcut dla SOLIDWORKS i InventorDcamcut dla SOLIDWORKS i Inventor
Dcamcut dla SOLIDWORKS i Inventor
 
Praca Dyplomowa
Praca DyplomowaPraca Dyplomowa
Praca Dyplomowa
 
Praca Dyplomowa
Praca DyplomowaPraca Dyplomowa
Praca Dyplomowa
 
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...
 
PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...
PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...
PLNOG 13: Piotr Okupski: Implementation of Wanguard software as a protection ...
 
Wykorzystanie technologii webowych w aplikacjach desktopowych (1)
Wykorzystanie technologii webowych w aplikacjach desktopowych  (1)Wykorzystanie technologii webowych w aplikacjach desktopowych  (1)
Wykorzystanie technologii webowych w aplikacjach desktopowych (1)
 
Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.
 
PLNOG 4: Przemysław Frasunek - CDN w Polsce - czyli jak my to robimy
PLNOG 4: Przemysław Frasunek - CDN w Polsce - czyli jak my to robimyPLNOG 4: Przemysław Frasunek - CDN w Polsce - czyli jak my to robimy
PLNOG 4: Przemysław Frasunek - CDN w Polsce - czyli jak my to robimy
 
Modelowanie i weryfikacja w programie MATLAB i Simulink
Modelowanie i weryfikacja w programie MATLAB i SimulinkModelowanie i weryfikacja w programie MATLAB i Simulink
Modelowanie i weryfikacja w programie MATLAB i Simulink
 
PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...
PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...
PLNOG14: Więcej niż samo łącze, czyli jak zarabiać na dodatkowych usługach op...
 
PLNOG14: Nowości w protokole BGP, optymalizacja routingu na brzegu sieci - Łu...
PLNOG14: Nowości w protokole BGP, optymalizacja routingu na brzegu sieci - Łu...PLNOG14: Nowości w protokole BGP, optymalizacja routingu na brzegu sieci - Łu...
PLNOG14: Nowości w protokole BGP, optymalizacja routingu na brzegu sieci - Łu...
 
Azure RemoteApp
Azure RemoteAppAzure RemoteApp
Azure RemoteApp
 
PLNOG 6: Marcin Kaptur, Tomasz Charewicz - Onet VOD
PLNOG 6: Marcin Kaptur, Tomasz Charewicz - Onet VODPLNOG 6: Marcin Kaptur, Tomasz Charewicz - Onet VOD
PLNOG 6: Marcin Kaptur, Tomasz Charewicz - Onet VOD
 

ROS3D - Podsumowanie prac nad projektem

  • 1. ROS3D Podsumowanie prac nad projektem 07.12.2015
  • 2. • 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.
  • 4. 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.
  • 5. PRODUKTY WYKONANE W RAMACH PROJEKTU: • Kontroler RIGa (KR), • Analizator obrazu (AO), • Aplikacja mobilna (OK).
  • 6. ARCHITEKTURA SPRZĘTOWA Analizator obrazu (AO) Kontroler RIGa (KR) Oprogramowanie Klienta (OK)
  • 7. 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
  • 8. ROS3D.KR- OUTLINE 1. Zadania, 2. Architektura: • Sprzętowa, • Oprogramowania, 3. Web UI, 4. Przykłady zastosowań.
  • 9. 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.
  • 10. ROS3D.KR Architektura sprzętowa Battery/PM Controller 1Gbps Ethernet Switch (4 ports) Wandboard Battery/PM Controller 1Gbps Ethernet Link RED Cameras WiFi
  • 11. 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
  • 12. 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 MQTT Publish DBus RCP API UART Aladin Protocol MQTT Subscribe
  • 13. ROS3D.KR DEVICE 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 MQTT Publish DBus RCP API UART Aladin Protocol MQTT Subscribe
  • 14. ROS3D.KR CAMERA 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 MQTT Publish DBus RCP API UART Aladin Protocol MQTT Subscribe
  • 15. ROS3D.KR PLATFORM 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 MQTT Publish DBus RCP API UART Aladin Protocol MQTT Subscribe
  • 16. ROS3D.KR • Web UI • Interfejs konfiguracyjny: • Konfiguracja sieci, • Konfiguracja trybu pracy Aladin, • Przegląd stanu systemu.
  • 17. 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.KR
  • 18. ROS3D.AO - OUTLINE 1. Zadania, 2. Architektura: • Sprzętowa, • Oprogramowania, 3. Zastosowane technologie, 4. Cechy, 5. Przykłady zastosowań.
  • 19. 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”.
  • 21. ROS3D.AO GATEWORKS GW5400 • iMX6 Quad Core, • Dostępne porty GPIO, I2C, • Kontroler PM, • 256MB NAND, opcjonalny boot z USB, • Wejście HDMI, max. 1080p@30fps. FPGA Gateworks GW5400 USB firmware (optional) HDMI Video UART Control
  • 22. ROS3D.AO Architektura oprogramowania Device Controller Streaming HTTP API V4L2 API Video AcquisitionROS3D.OK DBus Serial Bridge
  • 23. ROS3D.AO STREAMING • 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. Device Controller Streaming HTTP API V4L2 API Video AcquisitionROS3D.OK DBus Serial Bridge
  • 24. ROS3D.AO DEVICE CONTROLLER • Ograniczona funkcja, • Przewidywana integracja z FPGA przez Serial Bridge. Device Controller Streaming HTTP API V4L2 API Video AcquisitionROS3D.OK DBus Serial Bridge
  • 25. 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
  • 26. • 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
  • 27. ROS3D.OK - OUTLINE 1. Zadania, 2. Architektura, 3. Zastosowane technologie, 4. Wydajność, 5. Interfejs użytkownika, 6. Przykłady zastosowań.
  • 28. • Kalkulator - edycja i przeliczanie parametrów nagrywania, • Podgląd obrazu z kamer, • Sterowanie KR i AO. ROS3D.OK - ZADANIA
  • 29. 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
  • 30. ROS3D.OK Model danych „nadawca-odbiorca” – przykład użycia GUI Property PropertyDataProvider 1: getProperty() 2: Property 7: updateRelatedProperties() 6: setPropertyValue() 8: 9: fireValueChanged 10: newValueEvent 5: setValue() 4: 3: registerListener()
  • 31. • Java, • MQTT, • AndroidSDK, • REST Services, • JMDNS (Zeroconf). ROS3D.OK – ZASTOSOWANE TECHNOLOGIE
  • 32. 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.
  • 33. • 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
  • 34. 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.
  • 40. ROS3D.OK Przypadki użycia Użytkownik aplikacji Aktualizacja parametrów na KR Monitorowanie bieżących ustawień parametrów z KR Podgląd obrazu z kamer Odczyt / zapis ustawień z / do pliku CVSHOT Modyfikacja listy parametrów
  • 41. Plan do filmu YYY: • 26.11.2015, • Warszawa, • 1 dzień zdjęciowy. TESTY NA PLANIE FILMOWYM 26.11.2015
  • 42.
  • 43.
  • 44.
  • 45. 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. PODSUMOWANIE PROJEKTU
  • 46. INFO@OPEN-RND.PL QUESTIONS ? THOUGHTS ? COMMENTS ? Feel free to contact us! WWW.OPEN-RND.PL Thank you Bartłomiej Świercz CEO of Open-RnD bs@open-rnd.pl