SlideShare ist ein Scribd-Unternehmen logo
1 von 59
Downloaden Sie, um offline zu lesen
Connecting Android
Externe Hardware mit dem grünen Roboter
verbinden
Alexander Dahmen
Dominik Helleberg
Speaker
Dominik Helleberg
Mobile Development
Android / Embedded
Tools
http://dominik-helleberg.de/+
Speaker
Alexander Dahmen
Application Development
Embedded Android
http://google.com/+AlexanderDahmen3
https://twitter.com/Arubin/status/27808662429
Android Embedded
Android ist modern und “anders”
Android Embedded
Beispiele
Amazon http://www.amazon.de/Kindle-Fire-Zoll-HDX-Display-WLAN/dp/B00D695H6O
Samsung http://www.samsung.com/de/promotions/galaxycamera/
Google Glass http://www.google.com/glass/start/
Samsung Gear Live https://play.google.com/store/devices/details?id=samsung_gear_live_black
Android Auto http://www.android.com/auto/
Boing 787 http://www.boeing.com/boeing/commercial/787family/
LG Kühlschrank http://www.lg.com/us/refrigerators/lg-LFX31995ST-french-3-door-refrigerator
Motorola MC3200 http://goo.gl/5dOVL7
Android Embedded
Smart Hubs im IoT
Android Embedded
Beispiel: Smart Home
http://www.gira.de/gebaeudetechnik/systeme/knx-eib_system/knx-
produkte/bediengeraete/control9-knx.html
Android Embedded
Vorteile
● Modernes OS (Architektur)
● UI-Stack
● Community
● SDK
● Hardware Support
● Lizensierung
Android Embedded
Vorteile
Hardware Acceleration “builtin”
Canvas API
Views
Application
OpenGL ES
libHWUI SKIA
SurfaceFlinger
Android Embedded
Vorteile
Hardware Acceleration “builtin”
Android Embedded
Vorteile - HAL / Service Architektur
SystemService
Application Applikations-Logik
Java API / SDK / Dokumentation
Greift über RPC Call auf den Service zu
Manager
Interface
Binder Interface für den Service (AIDL)
Manager
Service
libhardware
Logik, Security Checks, Native JNI Aufrufe
Native “interface” (header file)
driver.so
/dev/foo
device depenedent driver
kernel / module
Android Embedded
Beispiel: Display
Android Embedded
Beispiel: Display
driver.so
/dev/foo
● Grove 16x2 Display mit I2C
○ LCD-Modul
○ RGB-Modul
● Der Befehlssatz des LCDs wird vom Hersteller bereitgestellt.
● MarS Board mit Android 4.0.4 (BSP)
● Das LCD wird per I2C an das Mars Board angeschlossen
○ LCD 0x3e
○ RGB 0x62
Android Embedded
Beispiel: Display
SystemService
Application
Manager
Interface
Manager
Service
libhardware
driver.so
/dev/foo
Android Embedded
Beispiel: Display
driver.so
/dev/foo
● Der Android Kernel basiert auf einem Linux Kernel mit
einigen Android spezifischen Anpassungen
● Der Linux Kernel stellt bereits einen I2C-Core-Treiber zur
Verfügung.
○ Dieser übernimmt die Kommunikation mit den am Bus
angeschlossenen Geräten.
● Für das LCD-Modul und das RGB-Modul wird jeweils ein I2C-
Client Treiber benötigt.
Android Embedded
Beispiel: Display
driver.so
/dev/foo
static int __init lcd1313M1_init(void) {
ret = i2c_add_driver(&lcd1313M1_i2c_driver);
}
static struct i2c_driver lcd1313M1_i2c_driver = {
.probe = lcd1313M1_i2c_probe,
.driver = {
.name = "lcd1313M1",
.owner = THIS_MODULE, },
};
Android Embedded
Beispiel: Display
driver.so
/dev/foo
static const struct file_operations lcd1313M1_fops = {
.owner = THIS_MODULE,
.open = lcd1313M1_open,
.release = lcd1313M1_release,
.write = lcd1313M1_write,
};
Android Embedded
Beispiel: Display
driver.so
/dev/foo
● Der Client-Treiber kann über die I2C-Funktionen des Core-
Treibers mit dem LCD kommunizieren.
○ i2c_smbus_write_byte_data (client, u8 command, u8 value);
○ i2c_smbus_read_byte_data (client, u8 command);
Android Embedded
Beispiel: Display
driver.so
/dev/foo
● Anforderung:
○ Die Treiber sollen beim Systemstart geladen und das Display
initialisiert werden.
● Wie findet die Verknüpfung zwischen LCD-/RGB-Modul und
dem jeweiligen Treiber statt?
● board-mx6q_marsboard.c
○ unter /arch/arm/mach-mx6
Android Embedded
Beispiel: Display
driver.so
/dev/foo
● Erweiterung der board-mx6q_marsboard.c
static struct i2c_board_info mxc_i2c2_board_info[] __initdata = {
{
I2C_BOARD_INFO("lcd1313M1", 0x3e),
},
{
I2C_BOARD_INFO("rgb1313M1", 0x62),
},
};
LCD
RGB
Android Embedded
Beispiel: Display
driver.so
/dev/foo
Android Embedded
Beispiel: Display
driver.so
/dev/foo
● Integration der Client-Treiber in den Kernel
○ Anpassung/Erstellung der Kconfig-Dateien und Makefiles
○ make menuconfig (Konfigurationsdateien)
Android Embedded
Beispiel: Display
SystemService
Application
Manager
Interface
Manager
Service
libhardware
driver.so
/dev/foo
Android Embedded
Beispiel: Display
● Zugriff auf die Treiber über eine HAL-Bibliothek (Userspace)
● HAL-Bibliothek greift über System-Call-Interface auf die
Gerätedateien zu (/dev/lcd1313M1 u. /dev/rgb1313M1)
● Kann auch unter eine proprietäre Lizenz gestellt werden
(Treiber muss unter die GPL gestellt werden, daher werden
diese oft einfach gehalten)
libhardware
Android Embedded
Beispiel: Display
● Die HAL-Bibliothek besteht aus zwei Komponenten
○ Implementierung unter:
■ /device/fsl/marsboard_6q/lcd1313M1
○ Headerdatei unter:
■ /hardware/libhardware/include/hardware
● Der Zugriff auf die HAL-Bibliothek findet über die
Headerdatei statt
libhardware
Android Embedded
Beispiel: Display
● Zur Verfügung gestellte Funktionen der HAL-Bibliothek
○ displayInit()
○ setText(...)
○ setRGB(...)
○ backlightOn()/backlightOff()
○ ...
libhardware
libhardware
Android Embedded
Beispiel: Display
const struct hw_module_t HAL_MODULE_INFO_SYM = {
.tag = HARDWARE_MODULE_TAG,
.id = LCD1313M1_HARDWARE_MODULE_ID,
.methods = &lcd1313M1_module_methods,
};
static int open_lcd1313M1hw(...) {
struct lcd1313M1hw_device_t *dev =
malloc(sizeof(struct lcd1313M1hw_device_t));
file_descriptor_lcd = open("/dev/lcd1313M1", O_RDWR);
return 0;
}
Android Embedded
Beispiel: Display
● Damit ein open(...) auf /dev/lcd1313M1 erfolgreich ist,
müssen die Rechte stimmen
● /system/core/rootdir/ueventd.rc erweitern:
○ /dev/lcd1313M1 0660 system system
○ /dev/rgb1313M1 0660 system system
● HAL-Bibliothek läuft im system-Kontext
libhardware
Android Embedded
Beispiel: Display
SystemService
Application
Manager
Interface
Manager
Service
libhardware
driver.so
/dev/foo
Android Embedded
Beispiel: Display
● Der Manager Service besteht aus zwei Teilen:
○ den nativen Methoden in
com_android_server_LCDService.cpp
○ LCDService.java
● com_android_server_LCDService.cpp bindet die
Headerdatei der HAL-Bibliothek ein und lädt die Bibliothek
● LCDService.java ruft die nativen Methoden über das JNI
auf
Manager
Service
Android Embedded
Beispiel: Display
Manager
Service
Android Embedded
Beispiel: Display
public class LCDService extends ILCDService.Stub {
private int mNativePointer;
public LCDService(Context context) {
super();
mNativePointer = init_native();
}
public int setText(String mString)
{
checkPermission(android.Manifest.permission.LCD_SERVICE);
synchronized (mLock) {
byte[] buffer = mString.getBytes();
return setText_native(mNativePointer, buffer); }
}
private static native int init_native();
SystemService
Android Embedded
Beispiel: Display
● Android Permission für das LCD
○ android.Manifest.permission.LCD_SERVICE
● Eine App, die den Service/Hardware verwenden möchte,
muss diese Permission in der Manifest-Datei angeben
○ <uses-permission>
Manager
Service
Android Embedded
Beispiel: Display
SystemService
Application
Manager
Interface
Manager
Service
libhardware
driver.so
/dev/foo
Android Embedded
Beispiel: Display
● Für den LCDService muss eine zugehörige ILCDService.
aidl Datei erstellt werden.
● Diese beinhaltet die Deklarierung der Funktionen, die vom
Binder aufrufbar sein sollen.
● Aus der .aidl Datei wird ein Binder-Interface für den Java-
Dienst generiert (ILCDService.java)
Manager
Interface
Android Embedded
Beispiel: Display
SystemService
Application
Manager
Interface
Manager
Service
libhardware
driver.so
/dev/foo
Android Embedded
Beispiel: Display
● AIDL-Funktionsprinzip
SystemService
Android Embedded
Beispiel: Display
public class LCDManager
{
public static LCDManager getLCDManager()
{
IBinder b = ServiceManager.getService("lcd1313M1");
ILCDService service = ILCDService.Stub.asInterface(b);
return new LCDManager(service);
}
public int setText(String mString) {
try {
return mService.setText(mString);
} catch (RemoteException e) {
return -1;
}
}
SystemService
Android Embedded
Beispiel: Display
● Anpassung des System Servers damit beim Systemstart
der neue LCDService gestartet wird
public void run() {
//...
try {
ServiceManager.addService("lcd1313M1", new LCDService(context));
} catch ( Throwable e ) {
reportWtf("starting LCD service",e) ;
}
}
SystemService
Android Embedded
Beispiel: Display
SystemService
Application
Manager
Interface
Manager
Service
libhardware
driver.so
/dev/foo
Android Embedded
Beispiel: Display
Application
Android Embedded
Beispiel: Display
● Problem:
Application
Android Embedded
Beispiel: Display
● Android Build System!
Ein BSP für alles: Build Targets
● Firmware for production/debug
(extern: Kernel, Bootloader)
● Emulator
● Custom SDK / SDK Addons
● Embedded Android as a Platform
Android Embedded
Vorteile
● Firmware Updates:
● komplett
● incrementel / delta (inc. Kernel, Bootloader)
● Digitale Signaturen
Ein BSP für alles: Releasetools
Android Embedded
Vorteile
● Board Configuration
○ Hardware Konfiguration
■ Partitionierung
■ Boot-Adressen
○ Architektur
○ Firmware (Bootloader, Kernel…)
Buildsystem inkl. Produktlinien- und
Variantenmanagement
Android Embedded
Vorteile
Buildsystem inkl. Produktlinien- und
Variantenmanagement
LCDBoardConfig.mk
fsl-imx6BoardConfigComm.mk
fsl-omx.mk fsl-codec.mkfsl-gpu.mk
Android Embedded
Vorteile
● Product Configuration
○ Gerätenamen, Hersteller etc.
○ System Apps
○ System Module
■ Shared Libraries
■ Vorinstallierte Daten
○ Lokalisierung
○ SDK-Addons
Buildsystem inkl. Produktlinien- und
Variantenmanagement
Android Embedded
Vorteile
Android Embedded
Beispiel: Display
● SDK-Addon:
Application
Android Embedded
Beispiel: Display
● SDK-Addon:
Application
Android Embedded
Beispiel: Display
● SDK-Addon:
Application
Android Embedded
Beispiel: Display
● SDK-Addon:
Application
Android Embedded
Beispiel: Display
● SDK-Addon:
Application
Android Embedded
Beispiel: Display
● Emulator:
Application
Android Embedded
Beispiel: Display
● Emulator:
Application
Android Open Source Projekt
Architektur
Stock Apps
Framework / API
User Apps
Java
System Services
Dalvik / Runtime / Zygote
Kernel
Libs HAL Init
Devel Board
http://www.oreilly.de/catalog/9781449308292/index.html
http://www.pearsonhighered.com/educator/product/Modern-Operating-Systems/9780133591620.page
Getting Started
Embedded Android
Getting Started
https://entwickler.de/IoT-Mag
Embedded Android + IoT
+
Danke!
Danke!

Weitere ähnliche Inhalte

Ähnlich wie Connecting Android - Externe Hardware mit dem grünen Roboter verbinden

Windows 10 IoT Core
Windows 10 IoT CoreWindows 10 IoT Core
Windows 10 IoT CoreJens Siebert
 
Windows 8 Business-App-Entwicklung
Windows 8 Business-App-EntwicklungWindows 8 Business-App-Entwicklung
Windows 8 Business-App-EntwicklungMatthias Jauernig
 
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...Gordon Breuer
 
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien DNUG e.V.
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for BeginnersUlrich Krause
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1Manfred Steyer
 
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-ProjektenTobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-ProjektenDevDay Dresden
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgDNUG e.V.
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & DominoUlrich Krause
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentationbneselov
 
Android Entwicklung (App Entwickler Konferenz 2010 der Telekom)
Android Entwicklung (App Entwickler Konferenz 2010 der Telekom)Android Entwicklung (App Entwickler Konferenz 2010 der Telekom)
Android Entwicklung (App Entwickler Konferenz 2010 der Telekom)greenrobot
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartWerner Keil
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...QAware GmbH
 
Code-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-EntwicklungCode-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-Entwicklungbhoeck
 
Smartphone Betriebssysteme Android
Smartphone Betriebssysteme AndroidSmartphone Betriebssysteme Android
Smartphone Betriebssysteme Androiddm-development
 

Ähnlich wie Connecting Android - Externe Hardware mit dem grünen Roboter verbinden (20)

Windows 10 IoT Core
Windows 10 IoT CoreWindows 10 IoT Core
Windows 10 IoT Core
 
Windows 8 Business-App-Entwicklung
Windows 8 Business-App-EntwicklungWindows 8 Business-App-Entwicklung
Windows 8 Business-App-Entwicklung
 
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
CSI: WP - Dem Windows Phone auf der Spur, Internetspecial: SDK & Development-...
 
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
Cloud – Intune
Cloud – IntuneCloud – Intune
Cloud – Intune
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1
 
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-ProjektenTobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
 
Ionic 3
Ionic 3Ionic 3
Ionic 3
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
 
Infrastructure Solution Day | Core
Infrastructure Solution Day | CoreInfrastructure Solution Day | Core
Infrastructure Solution Day | Core
 
Android Entwicklung (App Entwickler Konferenz 2010 der Telekom)
Android Entwicklung (App Entwickler Konferenz 2010 der Telekom)Android Entwicklung (App Entwickler Konferenz 2010 der Telekom)
Android Entwicklung (App Entwickler Konferenz 2010 der Telekom)
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ Stuttgart
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
 
Code-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-EntwicklungCode-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-Entwicklung
 
Smartphone Betriebssysteme Android
Smartphone Betriebssysteme AndroidSmartphone Betriebssysteme Android
Smartphone Betriebssysteme Android
 

Mehr von inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegeninovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolutioninovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policiesinovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learninginovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeteninovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetesinovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systemsinovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreiheninovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenteninovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Projectinovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretabilityinovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessinovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
 

Mehr von inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Connecting Android - Externe Hardware mit dem grünen Roboter verbinden