Below is the start of translating the uServices definitions of seating capabilities to a technology neutral tabular format as agreed in our kick-off meeting on October 18th.  Please take a look, iterate, comment and let me know if you have questions Paul Boyes 


Agreed by Group:

  • Start a position D in architecture - see architecture diagram below
  • Safety considerations to be noted but not exhaustively




Terminology Alignment (WIP)

Seatting.pptx

Aligning on information types is critical.

Notes:

Seat Identity

Identifying a specific seat within a vehicle. This is based on location within the vehicle.

Information Type

Values (per GM uServices)

Illustration #BMWFordGMVolvo CarsVSS Alignment / MappingAndroid Alignment / Mapping

Seat

Seat identity for 3 rows with 3 seats  per row, front to back

(looking towards front of vehicle from within the vehicle)

  • row1_left





  • Vehicle.Cabin.Seat.Row1.DriverSide

Note: Driver seat typically has more functions than others. Typical ECUs are DriverSeatModule and PassengerSeat Module, that are picked up as is (SW content & interfaces) and moved from left to right of vehicle based on region)

TBD
  • row1_center





  • Vehicle.Cabin.Seat.Row1.Middle

  • row1_right





  • Vehicle.Cabin.Seat.Row1.PassengerSide

  • row2_left





  • Vehicle.Cabin.Seat.Row2.DriverSide

  • row2_center





  • Vehicle.Cabin.Seat.Row2.Middle

  • row2_right





  • Vehicle.Cabin.Seat.Row2.PassengerSide

  • row3_left





  • Vehicle.Cabin.Seat.Row3.DriverSide

  • row3_center





  • Vehicle.Cabin.Seat.Row3.Middle

  • row3_right





  • Vehicle.Cabin.Seat.Row3.PassengerSide

Seat Identity Illustrations

tbd

Seat Components

Seat components that are movable or controllable, electrically driven.

Information TypeValues Illustration #BMWFordGMVolvo CarsVSS MappingAndroid
Notes
Seat Movement Data

Seat Component 

Moveable Seating Component (Electrically Driven)



Complete seat All

Added




  • Vehicle.Cabin.Seat is the complete seat definition.
    •  Vehicle.Cabin.Seat.Row1.DriverSide would be an instance.

SEAT_FORE_AFT

SEAT_HEIGHT


Lumbar

  • Top
  • Middle
  • Lower

5

  • top =5a
  • mid =5b
  • lower =5c





  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar - Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.
    • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Height - mm - Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.
    • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Support - percent - lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.



SEAT_LUMBAR_VERTICAL


SEAT_LUMBAR_FORE_AFT


Cushion Side Bolster

Need number

Pictures would be good


focus must be on Mechatronic components

Right and Left Back (upper) bolsters
Inflaation level 0-100%

SEAT_CUSHION_SIDE_SUPPORT


Backrest Side Bolster

8

Right and Left Cushion (lower) bolsters
Inflation level 0-100%
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.SideBolster - Backrest side bolster (lumbar side support) settings.
    • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.SideBolster.Support percent - Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.
SEAT_LUMBAR_SIDE_SUPPORT

Upper Shoulder (fwd/backward)

9







Backrest (was Cushion Front)

10




  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest - Describes signals related to the backrest of the seat.


Cushion Extension

Blue thing


Thigh Extension?

see video


Either works


Headrest






  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest - Headrest settings
    • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Height - mm Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.


Airbag






  • Vehicle.Cabin.Seat.Row1.DriverSide.Airbag
    • Vehicle.Cabin.Seat.Row1.DriverSide.Airbag.IsDeployed - boolean - Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.
  • Vehicle.Cabin.Seat.Row1.PassengerSide.Airbag


Neck Scarf (fan)









Seat Belt (height)









Seat Component Illustrations


Bolsters and Bladders:


Seat & Component Movements or Positions 

Words describing control parameters or changeable properties related to movement or position.


Information TypeDefinitionValues Illustration #BMWFordGMVolvo CarsVSS MappingAndroid
Notes
Movement and Position
DirectionDirection of seat or component movement
  • Forward - toward the front of the vehicle

Needs Clarification.
Percent of total? clicks? x, y, z axis values?
foredepends on the component
Applied by Seat or Component like:AI:  align this definition .   Is Fold a direction?
  • Backward - toward the back of the vehicle

aftdepends on the component


  • Up - toward the roof of the vehicle


depends on the component

Applied by Seat or Component like:

  • Vehicle.Cabin.Seat.Row1.DriverSide.Height
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Height
  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Height


  • Down - toward the bottom of the vehicle


depends on the component


  • Inflate - fill with air

increasedepends on the component

Applied by inflatable Component like:

  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Support percent - lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.SideBolster.Support percent - Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.


  • Deflate - remove air

decreasedepends on the component


  • Tilt / Recline (angles)

anglesdepends on the component

Applied by component like:

  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Recline -

degrees - Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.

  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Angle -

degrees - Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.



  • Swivel







Position

position on horizontal plane (x-axis) or vertical plane (z-axis) of seat or component




needs clarification

Position vs Direction

Should height be separate?

Is y-axis needed?



  • Vehicle.Cabin.Seat.Row1.DriverSide.Position -

Seat position on vehicle x-axis. mm - Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.

  • Vehicle.Cabin.Seat.Row1.DriverSide.Height -

mm - Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.

AI:  align what position means


Tilt Angle


tilt angle of seat or component (also known as recline)


duplicate to Tilt / Recline (angles)

duplicate to Tilt / Recline (angles) under "direction" above



  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Recline -

degrees - Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.

  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Angle -

degrees - Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.




Seat Heating and Cooling

Words describing control parameters or changeable properties related to seat heating and cooling.

Information TypeDefinitionValues Illustration #BMWFordGMVolvo CarsVSS Mapping
Heating and Cooling


Temperature








  • -100 = max cooling
  • 100 = max heating
  • 0 = off


Temperature Controlled Element Mode



  • On

addedIs "On" covered by heat, cool, or vent?





  • Off









  • Cool









  • Vent









  • Heat








Fan Speed
  • Off

delete covered by Seat temp modeConcur with comment from BMW





  • Auto









  • Level 1 









  • Level 2









  • Level 3 









  • Level 4 

added






  • Level 5







Seat Massage


Information TypeDefinitionValues Illustration #BMWFordGMVolvo CarsVSS MappingAndroid
Notes
Massage CapabilityIs the seat capable of providing massage.

yes/no or true/false


we need a general discover mechanism

Overlaps with with Seat Massage Type


Massage Status
On/Off



Overlaps with Seat Massage Type
  • Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Massage - Switches for SingleSeat.Massage.
  • Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Massage.IsDecreaseEngaged - Decrease massage level switch engaged (SingleSeat.Massage).
  • Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Massage.IsIncreaseEngaged - Increase massage level switch engaged (SingleSeat.Massage).


Massage Types Available massage types for a specific seat, including none. Values will vary by OEM, therefore, need a capability to determine types per seat.

Massage Patterns




Seat Massage Type
  • Off
  • Roll
  • Knead
  • Anti Fatigue
  • Pulse
  • Stretch
  • Lumbar
  • Shoulder
  • Wave
  • Relief
  • Glide


Need discovery capability as will vary by seat.




Massage Intensity
Intensity of massage
??

1-5?Vehicle.Cabin.Seat.Row1.PassengerSide.Massage - Seat massage level. 0 = off. 100 = max massage.


Seat Haptics

Haptics are seat or component vibrations used to alert the driver or provide feedback. Used by ADAS.

Information TypeDefinitionValues Illustration #BMWFordGMVolvo CarsVSS Mapping
Delay Between Pulses




internal calibration at the moment, based on the requestor

Haptic Pulses








Seat Occupancy and Safety


Information TypeDefinitionValues Illustration #BMWFordGMVolvo CarsVSS MappingAndroid
Notes
Seat Occupancy Status
  • Unknown





Vehicle.Cabin.Seat.Row1.Middle.IsOccupied - boolean - is or is not occupied.  No Unkown.


  • Occupied






  • Empty





Seat Occupant ID


??

What is this?
  • Vehicle.Cabin.Seat.Row1.DriverSide.Occupant.Identifier -
    • v5.0  use data from Vehicle.Occupant.*.*.Identifier.
    • Identifier attributes based on OAuth 2.0.
  • Vehicle.Cabin.Seat.Row1.DriverSide.Occupant.Identifier.Subject
    • v5.0 - use data from Vehicle.Occupant.*.*.Identifier.
    • Subject for the authentication of the occupant e.g. UserID 7331677.


Child seat
  • Installed

added





Seat Belt Status
  • Fastened





Vehicle.Cabin.Seat.Row1.PassengerSide.IsBelted  - boolean - is or is not belted/fastened

Related:

  • Vehicle.Cabin.Seat.Row1.PassengerSide.SeatBeltHeight - Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.




  • Unfastened





Other Seat Information


Information TypeDefinitionValues Illustration #BMWFordGMVolvo CarsVSS MappingAndroid
Notes
Side of SeatSide of a specific Seat
  • Right
  • Left

duplicate to "SEATS"





Seat Switch 






  • Seat Switch Signals - e.g. Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Backrest.IsReclineBackwardEngaged
  • See spec and generated schema for details



Seat Capability Alignment (WIP)

Column Definitions


General questions regarding API invocation:

Seat Movement and Position

Capability

Description

Inputs

Outputs

Dependencies

Assumptions /Constraints

VSS Alignment / Mapping

Android Alignment / Mapping

Notes

Movement & Position - Control
Move Seat IncrementallyMove the identified seat in the specified direction.  When a user commands a seat in a certain direction, it will incrementally move in that direction.
  • seat
  • direction
  • status

One request/trigger moves one increment.


Move Seat to Specified PositionSet the seat position for the identified seat.  This is entire seat position forward, back, up down.  
  • seat
  • position
  • status


  • Vehicle.Cabin.Seat.Row1.DriverSide.Position 

Seat position on vehicle x-axis. mm - Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.

  • Vehicle.Cabin.Seat.Row1.DriverSide.Height 

mm - Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.


What is the position definition?

ISO 8895

What is status?  Position Status.

Move Seat Component IncrementallyMove the identified seat and component in the specified direction.  When a user commands a seat component in a certain direction, it will incrementally move in that direction until the user ceases their request.
  • seat
  • component
  • direction
  • status




Different classes of comportment?  Certain directions apply to different components?


Need to enumerate the components?  Component type?

Set Seat Component Position Per SeatSet the seat component position for the identified seat.  This is position of the component only.
  • seat
  • seat component
  • position
  • angle
  • status


Applied by Component and Direction like:

  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Height 
  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Angle
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Recline
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Height
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Support percent - lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.SideBolster.Support percent - Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.


Store Seat PositionStores current seat and component positions
  • seat
  • Seat Occupant ID



N/A

Recall Seat PositionRecall seat and component positions
  • seat
  • seat occupant ID



N/A

Fold HeadrestFold or unfold headrest
  • Seat
  • Fold or unfold





Align with move seat compontent?
Fold SeatFold or unfold seat
  • Seat
  • Fold or unfold





Align with move seat component
Movement & Position - Status / Data
Get Seat Position Per SeatGet the seat position for the identified seat.  This is entire seat position.
  • seat
  • position
  • status





Get Seat Component Position Per SeatGet the seat component position for the identified seat.  This is position of the component only.
  • seat
  • seat component
  • position
  • angle
  • status





Get Seat Ids / LocationsProvides the list of seats available in "this" Vehicle
  • none

Array of:

  • seat location (like row1_left, row1_center, etc)
  • Is_Present (true/false)





Seat Movement Illustrations:


A (Seat Height or  Seat Up/Down)

B   Seat Forward/Backward

C Seat Recline

D Cushion Extension

E Cushion Tilt

F Headrest Height or Headrest Fwd/Backward


Seat Heating and Cooling

Capability

Description

Inputs

Outputs

Dependencies

Assumptions /Constraints

VSS Examples / Mapping

Notes


Seat Heating & Cooling - Control
TBD
















Seat Heating & Cooling - Status / Data
Get Seat Heating Per SeatGet the heating mode and level for the identified seat 
  • seat
  • seat
  • seat temperature mode
  • seat temperature level





Get Seat Component Heating Per SeatGet the heating mode and level for the identified seat and component
  • seat
  • seat component
  • seat
  • seat component
  • seat temperature mode
  • seat temperature level














Seat Massage


Capability

Description

Inputs

Outputs

Dependencies

Assumptions /Constraints

VSS Examples / Mapping

Notes


Massage - Control Per Seat
Set Seat Massage Per SeatSet the massage type and intensity for the identified seat 
  • seat
  • seat massage type 
  • massage intensity
  • status



It will be difficult to agree on massage types / patterns.  So added a capability to determine what massage types or patterns are available per set.









Massage - Status / Data Per Seat
Get Seat Massage Per SeatGet the massage type and intensity for the identified seat 
  • seat
  • seat
  • massage type
  • massage intensity





Get Massage Statusidentifies if massage is on or off for specific set(s)
  • seat
  • (or all)?
  • seat
  • massage status





Get Seat Massage Capabilityidentifies if seats support massage
  • seat
  • (or all)?
  • seat
  • massage capability







Get Seat Massage Types (Patterns)Provides a list of available massage types for a specific seat. May be none. 
  • seat
  • list of available massage patterns



Need to consider in what format? Bounded array of string values?


Seat Haptics


Capability

Description

Inputs

Outputs

Dependencies

Assumptions /Constraints

VSS Examples / Mapping

Notes


Haptics - Control
Activate HapticsActivate seat haptic notification for driver's seat
  • seat (driver only) 
  • side (left right both)
  • delay between pulses
  • pulses




What is a haptic seat?   Where does it fit?

Use use case to help define.


Haptics - Status / Data










Seat Occupancy and Safety


Capability

Description

Inputs

Outputs

Dependencies

Assumptions /Constraints

VSS Examples / Mapping

Notes


Seat Occupant Safety - Status / Data Per Seat
Get Seat Occupant Safety Per SeatGet the occupant safety status for the identified seat 
  • seat
  • seat
  • seat occupancy status
  • seat belt status





Get Child Seat StatusAllows user to determine if a Child Seat is installed
  • seat
  • seat
  • Is child Seat Installed























Zonal Architecture for Reference