Sunteți pe pagina 1din 25

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.

+ =?
Motivation Background Our Approach
Why Web & Autmotive? What Is webinos? Vehicle Data for Web Apps

Live Demo Open Questions Lessons learned


webinos Automotive Apps The Road Ahead of Us Take Home Message

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 2
MOTIVATION: CURRENT LANDSCAPE OF IVI SYSTEMS.

-  Long time-to-market for in-car


infotainment applications and services
-  Highly fragmented landscape for In- 2 headunits

Vehicle Infotainment (IVI) systems 2008 5 generations 2012

-  Customer demand for more


personalization options on IVI systems 3G 3GS 4 4S 5
(seamless use of services across different
devices)
-  Difficult to attract third-party developers
for IVI systems

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 3
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.

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 4
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

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 5
BACKGROUND: SAY HELLO TO WEBINOS!

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 6
BACKGROUND: SAY HELLO TO WEBINOS!

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 7
KEY QUESTION:
HOW TO GET ACCESS TO VEHICLE DATA?

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 8
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)

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 9
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

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 10
VEHICLE API: WHICH DYNAMIC DATA IS PROVIDED?

Vehicle Data Objects


Parking Sensor Tripcomputer Gear Light Engine Wiper Window Door Tire Climate Seat

removeEventListener
addEventListener
Data Data Data Data Oil Data Data Data Data Pressure Data Data
averageConsumption [Short]

desiredTemperature [Short]
behindPassenger [Short]

behindPassenger [Short]

settings [SeatSetting[]]
averageSpeed [Short]

get
behindDriver [Short]

behindDriver [Short]

ventMode [boolean]
tripDistance [Short]
OutterRight [Short]

acStatus [boolean]
passenger [Short]

passenger [Short]

frontRight [Short]

ventLevel [Short]
rearRight [Short]
Active [boolean]

frontLeft [Short]

position [String]
Position [string]

Position [string]
Midright [Short]

Mileage [Short]

rearLeft [Short]
outLeft [Short]

Midleft [Short]

Range [Short]

lightId [string]

driver [Short]

driver [Short]
Level [string]

zone [String]
Right [Short]

Gear [Short]
Left [Short]

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);  
 //  ...  
}  

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 11
VEHICLE API: WHICH STATIC DATA IS PROVIDED?

-  brand (string)
-  model (string)
-  year (string)
-  fuel (enum)
-  hybrid (enum) Brand= BMW
Model= ActiveHybrid 7

-  steeringwheel Year=2012
Fuel=Gas
Hybrid= mild
-  transmission Steeringwheel= left
Transmission= automatic

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 12
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)

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 13
NAVIGATION API: CODE EXAMPLE.

Find a destination Request guidance


var  destinations  =new  Array();   function  navigateTo(destination){  
 w
 ebinos.navigation.requestGuidance(  
webinos.navigation.findDestination("BMW      destination,false,  navigationHandler);  
Welt",  destinationCB,  errorCB);   }  
function  destinationCB(pois){   //callback  handler  for  guidance  events  
if(destinations.length  >  0){   var  navigationHandler  =  {  
 navigateTo(destinations[0])                          onRequest:  function(id,  poi){  
else{      console.log(’Guidance  set  to’  +  poi.name);  
 console.log("No  POI  found");                                  
 },  
}  onReach:  function(id,  poi){  
     console.log(poi.name  +  ’  reached.’);  
 },  
 onCancel:  function(id,  poi){  
   console.log(’Guidance  to  ’  +  poi.name  +  ’  
is  
   cancelled.’);  

 }  
}  

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 14
NAVIGATION API: CODE EXAMPLE.

Find a destination Request guidance


var  destinations  =new  Array();   function  navigateTo(destination){  
 w
 ebinos.navigation.requestGuidance(  
webinos.navigation.findDestination("BMW      destination,false,  navigationHandler);  
Welt",  destinationCB,  errorCB);   }  
function  destinationCB(pois){   //callback  handler  for  guidance  events  
if(destinations.length  >  0){   var  navigationHandler  =  {  
 navigateTo(destinations[0])                          onRequest:  function(id,  poi){  
else{      console.log(’Guidance  set  to’  +  poi.name);  
 console.log("No  POI  found");                                  
 },  
}  onReach:  function(id,  poi){  
     console.log(poi.name  +  ’  reached.’);  
 },  
 onCancel:  function(id,  poi){  
   console.log(’Guidance  to  ’  +  poi.name  +  ’  
is  
   cancelled.’);  

 }  
}  

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 15
NAVIGATION API: CODE EXAMPLE.

Find a destination Request guidance


var  destinations  =new  Array();   function  navigateTo(destination){  
 w
 ebinos.navigation.requestGuidance(  
webinos.navigation.findDestination("BMW      destination,false,  navigationHandler);  
Welt",  destinationCB,  errorCB);   }  
function  destinationCB(pois){   //callback  handler  for  guidance  events  
if(destinations.length  >  0){   var  navigationHandler  =  {  
 navigateTo(destinations[0])                          onRequest:  function(id,  poi){  
else{      console.log(’Guidance  set  to’  +  poi.name);  
 console.log("No  POI  found");                                  
 },  
}  onReach:  function(id,  poi){  
     console.log(poi.name  +  ’  reached.’);  
 },  
 onCancel:  function(id,  poi){  
   console.log(’Guidance  to  ’  +  poi.name  +  ’  
is  
   cancelled.’);  

 }  
}  

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 16
NAVIGATION API: CODE EXAMPLE.

Find a destination Request guidance


var  destinations  =new  Array();   function  navigateTo(destination){  
 w
 ebinos.navigation.requestGuidance(  
webinos.navigation.findDestination("BMW      destination,false,  navigationHandler);  
Welt",  destinationCB,  errorCB);   }  
function  destinationCB(pois){   //callback  handler  for  guidance  events  
if(destinations.length  >  0){   var  navigationHandler  =  {  
 navigateTo(destinations[0])                          onRequest:  function(id,  poi){  
else{      console.log(’Guidance  set  to’  +  poi.name);  
 console.log("No  POI  found");                                  
 },  
}  onReach:  function(id,  poi){  
     console.log(poi.name  +  ’  reached.’);  
 },  
 onCancel:  function(id,  poi){  
   console.log(’Guidance  to  ’  +  poi.name  +  ’  
is  
   cancelled.’);  

 }  
}  

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 17
HOW TO INTEGRATE WEBINOS INTO THE VEHICLE.

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 18
WEBINOS CORE CONCEPT: SEPARATING APPLICATION
RUNTIME FROM DATA ACCESS.

IVI-System

Application Web App Web App …


Runtime
webinos.js (API Proxy)
globally accesible:
pzh.webinos.org
JSON-RPC 2.0 WebSocket Connection

Vehicle Message Handler Personal Personal


Personal
Data Provider Zone Zone
API Manager Zone
Personal Hub Proxy
Proxy
Zone Proxy (Node.js) (Node.js)
Vehicle Navigation
Device
Geolocation (Node.js) Smartphone
Orientation
Tablet
PC
Vehicle Access Manager
Home Media
MOST
Kernel CAN Driver …
Driver

Hardware MOST CAN …

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 19
WEBINOS VEHICLE EVALUATION PLATFORM.

Basic infrastructure Demonstrator box

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 20
WEBINOS VEHICLE DEMONSTRATION PLATFORM.

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

Browser-based trip computer for In-car head units Seamless trip planing on desktop, smartphone,
-  Pure web technology (HTML, CSS, JavaScript, Canvas) and IVI-System
= HTML5 app -  Create travel itineraries
-  webinos API for accessing vehicle data -  Manage points of interest
-  Data is automatically synchronized between the devices
within a personal zone.

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 22
THE ROAD AHEAD OF US.

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 23
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?

Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 24
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

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

S-ar putea să vă placă și