Page tree
Skip to end of metadata
Go to start of metadata

Copyright notice

Preamble

The Navigation features are part of Location Based Services (LBS). LBS means a piece of code that uses geolocalized data, either the location of the vehicle itself, or the location of content (map, POI...).

The Location-Based-Services Expert Group (LBS-EG), as part of the GENIVI Alliance, defines Application Programming Interface (API), Proof Of Concept (POC) and application (APP), that are included into the GENIVI compliant, Open Source, automotive IVI software stack.

The "In Vehicle Infotainment (IVI) Navigation" set of projects host the whole set of deliverables provided by the LBS-EG. The APIs and code standardized by GENIVI are covering non-differentiating features, that are shared by the whole car manufacturer's community. This wiki gives all needed explanations that allow to use the APIs into a concrete product.

Scope

The IVI-Navigation domain cover basic features:

Vehicle Positioning:

  • Positioning, including GNSSService, SensorsService and EnhancedPositionService, tools for doing Dead Reckoning

Basic navigation:

  • Navigation Core, including Location Input, Route Calculation, Route Guidance
  • Map Viewer, including Map Rendering and View Control

Basic extensions:

  • Point Of Interest (POI), providing a POI Search interface with a content access module mechanism allowing to extend the search to external data sources
  • Traffic Info, providing a TrafficIncidentsService

HMI extension:

  • Speech Services (output, input and dialog).

Projects

All the requirements and use cases can be found into the following wiki pages:

Interfaces

Positioning

Positioning - SensorsService API
Positioning - GNSSService API
Positioning - Constants
Positioning - EnhancedPosition API
Positioning - PositionFeedback API
Positioning - Configuration API

Navigation

NavigationCore - Constants
NavigationCore - Session API
NavigationCore - Guidance API
NavigationCore - Routing API
NavigationCore - LocationInput API
NavigationCore - Configuration API
NavigationCore - MapMatchedPosition API
MapViewer - MapViewerControl API
MapViewer - MapViewerConfiguration API
MapViewer - MapViewerSession API
MapViewer - MapViewer Constants

TrafficIncidentsService

TrafficService - TrafficIncidents API
TrafficService - TrafficIncidentsFeed API

POIService

POIService - Constants
POIService - POISearch API
POIService - POIContentAcccess API
POIService - POIContentAcccessModule API


Available material

In order to publish an API into the GENIVI compliance, it's required to provide use cases, requirements and POC. The LBS-EG APIs are also promoted by a demonstrator, that is running on the so-called GENIVI Demo Platform (GDP). The demonstrator is called Fuel Stop Advisor (FSA).

Proof of concepts

What is required to build and run the code from scratch

Status of the Proof Of Concepts
ProjectAPI versionMaintainerRepositoryGit tagFranca fileCommon APINoteRoad map
Positioning3.0.0Marco and Helmutserver and test scriptsENHPOS-3.0.0 GNSS-3.0.0 SNS-3.0.1draftNO------
Traffic incidents service1.0.0Peterserver and clientTRA-1.1.0draftNO------
NavigationCore and MapViewer3.0.0PhilippeCserver clientMAP-3.1.0 NAV-3.0.0 POI-1.0.0draftNO------
POI Search1.0.0PhilippeCserver clientPOI-1.0.0draftNO---Update planned for L release
POI CAM with add/remove feature0.1.0PhilippeCserver client---draftYES 3.1.5Basic test under GTK and output to the consoleUpdate planned for L release
Fuel Stop Advisor1.0.0PhilippeCapplicationENHPOS-3.0.0 GNSS-3.0.0 SNS-3.0.1 MAP-3.1.0 NAV-3.0.0 POI-1.0.0draftNO---Updated for each release

Demonstrator

The main APIs are implemented by the Fuel Stop Advisor (FSA) demonstrator, running under the Genivi Demo Platform (GDP) and tested on two boards, Intel based (MinnowBoard MAX) and ARM based (R-Car M2 and Porter).

GENIVI Workflow

Here's the workflow put in place in GENIVI, and the deliverables that are covered by IVI-Navigation:

Stake holder needs: OEMs give their needs for the LBS domain and some rationales Vehicle requirements: The team defines top level requirements Use cases: Typical use cases in order to make it more understandable (and to promote the features)

According to the architecture, especially the split into components: Software platform requirements: requiremnts mapped on the components APIs: the APIs that allows to implement the requirements

For each API defined, there's also a proof of concept that implements the main features and validates the dynamic behaviour.

 

Top level use cases

There's a significant bunch of use cases and requirements for Navigation, but, in a first approach, we can consider that the main use cases could be counted on the fingers of two hands:

Actors

RoleDescriptionExamples
UserA person operating a GENIVI based IVI systemDriver or passenger of a car
SystemGENIVI based IVI systemNavigation system in high-end vehicle

Use cases

All the use cases are detailed into the project pages, but let's have a look at the main ones:

IDTitleDescriptionSubpart
UC-NAV-GDN-004guide to a destinationProvide guidance instructions to reach a destinationGuidance
UC-NAV-ROU-006initiate a route calculationGet a destination, calculate routeRouting
UC-TRI-002warn of an event around a locationGet the event on the route (traffic, weather ..)Traffic Info
UC-MAP-002display vehicle positionDisplay the position of the vehicleMap Viewer
UC-POS-001get positionGet the position of the vehiclePositioning
UC-MAP-003display map and positionDisplay a map with relevant positioningMap Viewer
UC-LBS-001explore the surroundings of a locationGet all the location based content for a given positionLocation based services

Components

The components and the APIs hosted by the LBS-EG are displayed into the following diagram:

Current state of Franca Interfaces

The migration to Franca is on-going. It has been decided by the LBS-EG team to maintain in parallel the Franca IDL files and the DBus xml files. Important notice: For compatibility with the Common-API tool chain, some rules are applied:

  • 'enumeration' type in Franca matches with 'i' in DBus (int32_t)
  • 'union' type in Franca matches with '(yv)' in DBus (structure{uint8_t, variant})
  • 'client' is a reserved word in Common-API, so it's prohibited
  • 'attributes' is a keyword in C++ and is detected as an error by Xtext checker of Franca, so it's prohibited

The current version of the fidl files can be found under the folder api/franca

Preliminary work with W3C

A working page is available here to evaluate what is covered/not covered by the GENIVI APIs for the LBS domain. 

Space contributors

{"mode":"list","scope":"descendants","limit":"5","showLastTime":"true","order":"update","contextEntityId":11567331}

 

  • No labels