Skip to content

[WIP] [RFC]: OpenHaptics protocol #9

@leon0399

Description

@leon0399

Here I am just writing ideas from my mind to future implement in our own protocol, when current protocol from bHaptics when it ceases to meet the needs

OpenHaptics Protocol

Coordinates encoding

Each axis (X and Y) is uint8_t between 0 and 255

Coordinates preview
(0, 0)                                 (128, 0)                                 (255, 0)









(0, 128)                               (128, 128)                               (255, 128)









(0, 255)                               (128, 255)                               (255, 255)

Intensity

Intensity is uint8_t:

0: 0%, 255: 100%

Effects layer

Effect layer is 16 possible values (4 bits - uint8_t << 4)

Proposed Effects layer IDs (WIP)
  • Vibro: 0x0
  • Touch (LRA): 0x1
  • Temperature (Peltier): 0x2
  • Electricity (TENS): 0x3

Body Parts IDs mapping

Every diverging part of the body is separated into Front and Back faces.
Coordinate path has 255 possible values (8 bits - uint8_t)

Proposed Body Parts IDs (WIP)
  • human://chest:
    • human://chest/front: 0x00
    • human://chest/back: 0x01
  • human://arm:
    • human://arm/left: 0x02
    • human://arm/right: 0x03
  • human://forearm:
    • human://forearm/left: 0x04
    • human://forearm/right: 0x05
  • human://hand:
    • human://hand/left:
      • human://hand/left/palm:
        • human://hand/left/palm/front: 0x06
        • human://hand/left/palm/back: 0x07
      • human://hand/left/finger:
        • human://hand/left/finger/thumb: 0x08
        • human://hand/left/finger/index: 0x09
        • human://hand/left/finger/middle: 0x0a
        • human://hand/left/finger/ring: 0x0b
        • human://hand/left/finger/pinky: 0x0c
    • human://hand/right:
      • human://hand/right/palm:
        • human://hand/right/palm/front: 0x0d
        • human://hand/right/palm/back: 0x0e
      • human://hand/right/finger:
        • human://hand/right/finger/thumb: 0x0f
        • human://hand/right/finger/index: 0x10
        • human://hand/right/finger/middle: 0x11
        • human://hand/right/finger/ring: 0x12
        • human://hand/right/finger/pinky: 0x13
  • human://upper_leg:
    • human://upper_leg/left: 0x14
    • human://upper_leg/right: 0x15
  • human://lower_leg:
    • human://lower_leg/left: 0x16
    • human://lower_leg/right: 0x17
  • human://foot:
    • human://foot/left:
      • human://foot/left/top: 0x18
      • human://foot/left/bottom: 0x19
    • human://foot/right:
      • human://foot/right/top: 0x1a
      • human://foot/right/bottom: 0x1b
  • human://neck: 0x1c
  • human://head:
    • human://head/face: 0x1d
    • human://head/back: 0x1e
    • human://head/top: 0x1f

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions