ENABLING RICH WEB APPLICATIONS FOR IN-VEHICLE INFOTAINMENT. USING - - PowerPoint PPT Presentation

enabling rich web applications for in vehicle infotainment
SMART_READER_LITE
LIVE PREVIEW

ENABLING RICH WEB APPLICATIONS FOR IN-VEHICLE INFOTAINMENT. USING - - PowerPoint PPT Presentation

BMW Group Research and Technology / BMW AG / TU Munich, November 2012 ENABLING RICH WEB APPLICATIONS FOR IN-VEHICLE INFOTAINMENT. USING THE WEBINOS PLATFORM INSIDE THE AUTOMOTIVE DOMAIN. AGENDA. + =? Our Approach Motivation


slide-1
SLIDE 1

ENABLING RICH WEB APPLICATIONS FOR IN-VEHICLE INFOTAINMENT.

USING THE WEBINOS PLATFORM INSIDE THE AUTOMOTIVE DOMAIN.

BMW Group Research and Technology / BMW AG / TU Munich, November 2012

slide-2
SLIDE 2

AGENDA.

Motivation

Why Web & Autmotive?

+ =?

Background

What Is webinos?

Our Approach

Vehicle Data for Web Apps

Live Demo

webinos Automotive Apps

Lessons learned

Take Home Message

Page 2 Vehicle data access in webinos, BMW Group Research and Technology, November 2012

Open Questions

The Road Ahead of Us

slide-3
SLIDE 3

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 3

MOTIVATION: CURRENT LANDSCAPE OF IVI SYSTEMS.

  • Long time-to-market for in-car

infotainment applications and services

  • Highly fragmented landscape for In-

Vehicle Infotainment (IVI) systems

  • Customer demand for more

personalization options on IVI systems (seamless use of services across different devices)

  • Difficult to attract third-party developers

for IVI systems

2008 2012

2 headunits 3G 3GS 4 4S 5 5 generations

slide-4
SLIDE 4

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 4

MOTIVATION: UBIQUITY OF THE WEB AND THE BROWSER.

  • General trend towards Web- and browser-based

services and applications on smartphones, tablets and desktops

  • Highly standardized runtime environment for

application and services

  • Large developer base

Deduction: The Browser is the preferred candidate for a runtime environment on IVI systems.

slide-5
SLIDE 5

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 5

BACKGROUND: WHAT IS WEBINOS?

  • An open, cross-device and browser-

based application platform

  • Research project funded by the

European Commision

  • 30 partners
  • Device manufactures
  • Automotive manufactures
  • Mobile network operators
  • Small and medium businesses
  • Research Institutes
  • Standardization bodies
slide-6
SLIDE 6

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 6

BACKGROUND: SAY HELLO TO WEBINOS!

slide-7
SLIDE 7

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 7

BACKGROUND: SAY HELLO TO WEBINOS!

slide-8
SLIDE 8

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 8

KEY QUESTION: HOW TO GET ACCESS TO VEHICLE DATA?

slide-9
SLIDE 9

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 9

OUR APIS: DESIGN APPROACH.

  • Use data from other standardized APIs instead of duplicating them
  • Asynchronous model to retrieve dynamic vehicle data
  • Use case driven grouping of data properties to simplify access for

web apps

  • Minimize resource overhead for providing vehicle data

Two ‘automotive’ specific APIs

  • Vehicle API (for retrieving vehicle specific data)
  • Navigation API (for interacting with navigation system)
slide-10
SLIDE 10

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 10

VEHICLE API: GENERAL CONCEPT.

  • Soley read access to vehicle data (at this time)
  • Distinction between static (e.g. transmission type) and dynamic

(e.g. gear) vehicle data

  • Developer registers callback handlers for

retrieving dynamic vehicle data

  • Dynamic data can be requested once (get) or can be monitored

(addEventListener)

  • API is provided as part of window.webinos.vehicle object
slide-11
SLIDE 11

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 11

VEHICLE API: WHICH DYNAMIC DATA IS PROVIDED?

vehicle.get('tripcomputer', ¡tcHandler); ¡//one-­‑time ¡request ¡ vehicle.addEventListener('tripcomputer', ¡tcHandler); ¡//monitor ¡tripcomputer ¡ ¡ function ¡tcHandler(data){ ¡ ¡console.log('Average ¡consumption': ¡+ ¡data.averageConsumption); ¡ ¡console.log('Average ¡speed': ¡+ ¡data.averageSpeed); ¡ ¡console.log('Average ¡trip ¡speed': ¡+ ¡data.tripSpeed); ¡ ¡// ¡... ¡ } ¡

Tripcomputer Data Parking Sensor Data

Position [string]

  • utLeft [Short]

averageSpeed [Short] averageConsumption [Short] Mileage [Short] tripDistance [Short] Range [Short]

Vehicle Data Objects

Left [Short] Midleft [Short] Midright [Short] Right [Short] OutterRight [Short]

Gear Data

Gear [Short]

Light Data Engine Oil Data

Level [string]

get addEventListener removeEventListener

lightId [string] Active [boolean]

Wiper Data

Position [string]

Window Data

driver [Short] behindDriver [Short] passenger [Short] behindPassenger [Short]

Door Data

driver [Short] behindDriver [Short] passenger [Short] behindPassenger [Short]

Tire Pressure

frontRight [Short] frontLeft [Short] rearRight [Short] rearLeft [Short]

Climate Data

zone [String] desiredTemperature [Short] acStatus [boolean] ventLevel [Short] ventMode [boolean]

Seat Data

position [String] settings [SeatSetting[]]

slide-12
SLIDE 12

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 12

VEHICLE API: WHICH STATIC DATA IS PROVIDED?

  • brand (string)
  • model (string)
  • year (string)
  • fuel (enum)
  • hybrid (enum)
  • steeringwheel
  • transmission

Brand= BMW Model= ActiveHybrid 7 Year=2012 Fuel=Gas Hybrid= mild Steeringwheel= left Transmission= automatic

slide-13
SLIDE 13

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 13

NAVIGATION API: GENERAL CONCEPT.

  • simple API to interact with navigation software
  • API is provided as part of the window.webinos.navigation object
  • query for Point-of-Interests within a specified area

(findDestination)

  • Set the next destination of the navigtion system (requestGuidance)
  • Retrieve status of the navigation system (getStatus)
slide-14
SLIDE 14

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 14

NAVIGATION API: CODE EXAMPLE.

Request guidance

function ¡navigateTo(destination){ ¡ ¡w ¡ebinos.navigation.requestGuidance( ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ } ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡}, ¡ ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡

¡

Find a destination

var ¡destinations ¡=new ¡Array(); ¡ webinos.navigation.findDestination("BMW ¡ Welt", ¡destinationCB, ¡errorCB); ¡ function ¡destinationCB(pois){ ¡ if(destinations.length ¡> ¡0){ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ else{ ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ }

¡

slide-15
SLIDE 15

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 15

NAVIGATION API: CODE EXAMPLE.

Request guidance

function ¡navigateTo(destination){ ¡ ¡w ¡ebinos.navigation.requestGuidance( ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ } ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡}, ¡ ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡

¡

Find a destination

var ¡destinations ¡=new ¡Array(); ¡ webinos.navigation.findDestination("BMW ¡ Welt", ¡destinationCB, ¡errorCB); ¡ function ¡destinationCB(pois){ ¡ if(destinations.length ¡> ¡0){ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ else{ ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ }

¡

slide-16
SLIDE 16

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 16

NAVIGATION API: CODE EXAMPLE.

Request guidance

function ¡navigateTo(destination){ ¡ ¡w ¡ebinos.navigation.requestGuidance( ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ } ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡}, ¡ ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡

¡

Find a destination

var ¡destinations ¡=new ¡Array(); ¡ webinos.navigation.findDestination("BMW ¡ Welt", ¡destinationCB, ¡errorCB); ¡ function ¡destinationCB(pois){ ¡ if(destinations.length ¡> ¡0){ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ else{ ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ }

¡

slide-17
SLIDE 17

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 17

NAVIGATION API: CODE EXAMPLE.

Request guidance

function ¡navigateTo(destination){ ¡ ¡w ¡ebinos.navigation.requestGuidance( ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ } ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡}, ¡ ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡

¡

Find a destination

var ¡destinations ¡=new ¡Array(); ¡ webinos.navigation.findDestination("BMW ¡ Welt", ¡destinationCB, ¡errorCB); ¡ function ¡destinationCB(pois){ ¡ if(destinations.length ¡> ¡0){ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ else{ ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ }

¡

slide-18
SLIDE 18

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 18

HOW TO INTEGRATE WEBINOS INTO THE VEHICLE.

slide-19
SLIDE 19

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 19

WEBINOS CORE CONCEPT: SEPARATING APPLICATION RUNTIME FROM DATA ACCESS.

Personal Zone Proxy (Node.js) Personal Zone Hub (Node.js) Personal Zone Proxy (Node.js)

Smartphone Tablet PC Home Media globally accesible: pzh.webinos.org

Vehicle Data Provider Personal Zone Proxy Application Runtime Kernel Hardware

MOST Driver

webinos.js (API Proxy) Message Handler

MOST

Vehicle Access Manager

API Manager

CAN Driver CAN

Web App Web App …

Vehicle Navigation Device Orientation Geolocation

… …

WebSocket Connection

IVI-System

JSON-RPC 2.0

slide-20
SLIDE 20

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 20

Basic infrastructure Demonstrator box

WEBINOS VEHICLE EVALUATION PLATFORM.

slide-21
SLIDE 21

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 21

WEBINOS VEHICLE DEMONSTRATION PLATFORM.

slide-22
SLIDE 22

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 22

Browser-based trip computer for In-car head units

  • Pure web technology (HTML, CSS, JavaScript, Canvas)

= HTML5 app

  • webinos API for accessing vehicle data

Seamless trip planing on desktop, smartphone, and IVI-System

  • Create travel itineraries
  • Manage points of interest
  • Data is automatically synchronized between the devices

within a personal zone.

LIVE DEMO.

slide-23
SLIDE 23

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 23

THE ROAD AHEAD OF US.

slide-24
SLIDE 24

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 24

THE ROAD AHEAD OF US.

  • How are we going to control the access to the vehicle bus?
  • How to enable write access in conjunction with access control?
  • Adapting Web applications to be safely used inside the vehicle
  • Handling different input controls
  • Adjusting graphical user interface
  • Can we agree on a common interface for vehicle data?
slide-25
SLIDE 25

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 25

TAKE HOME MESSAGE.

  • Proof-of-concept for exposing vehicle data to Web applications
  • Read only for vehicle data
  • Security and Safety need to be solved properly
  • UI Constraints need to be addressed