Skip to content

ARIG-Robotique/lidar-bridge

Repository files navigation

Bridge C++ avec les drivers Lidar

Build Status

Description

Ce projet ouvre une socket TCP (inet ou unix) afin de recevoir des ordres JSON pour piloter les lidars :

Messages JSON

Récupérer les infos du device

  • Query
{
  "action": "DEVICE_INFO"
}
  • Réponse
{
  "status": "OK",
  "action": "DEVICE_INFO",
  "datas": {
    "driver": "rplidar",
    "firmwareVersion": "1.20",
    "hardwareVersion": 2,
    "serialNumber": "123456ABCDEF"
  },
  "errorMessage": null
}

Récupérer l'état de santé du device

  • Query
{
  "action": "HEALTH_INFO"
}
  • Réponse
{
  "status": "OK",
  "action": "HEALTH_INFO",
  "datas": {
    "libelle": "OK",
    "value": 0,
    "errorCode": 0
  },
  "errorMessage": null
}

La données libélé peut prendre les valeurs suivante :

  • OK
  • WARNING
  • ERROR

Les autres valeurs sont récupéré directement depuis le driver RPLidar

Lancer le scan

  • Query sans vitesse de rotation moteur
{
  "action": "START_SCAN"
}
  • Query avec vitesse de rotation moteur
{
  "action": "START_SCAN",
  "datas": {
    "speed": 560
  }
}

La vitesse est comprise entre 0 et 1023

  • Réponse
{
  "status": "OK",
  "action": "START_SCAN",
  "errorMessage": null
}

Arreter le scan

  • Query
{
  "action": "STOP_SCAN"
}
  • Réponse
{
  "status": "OK",
  "action": "STOP_SCAN",
  "errorMessage": null
}

Changer la vitesse de rotation du moteur

  • Query
{
  "action": "SET_SPEED",
  "datas": {
    "speed": 560
  }
}

La vitesse est comprise entre 0 et 1023

  • Réponse
{
  "status": "OK",
  "action": "SET_SPEED",
  "errorMessage": null
}

Récupérer les données du dernier scan

  • Query
{
  "action": "GRAB_DATA"
}
  • Réponse
{
  "status": "OK",
  "action": "GRAB_DATA",
  "errorMessage": null,
  "datas": {
    "ignored": 358,
    "scan": [
      {
        "angleDeg": 122.3,
        "distanceMm": 1243.45,
        "syncBit": true,
        "quality": 47
      },
      {
        "angleDeg": 245.6,
        "distanceMm": 234.12,
        "syncBit": true,
        "quality": 44
      }
    ]
  }
}

Quitter le programme et arreter le lidar

  • Query
{
  "action": "EXIT"
}
  • Réponse
{
  "status": "OK",
  "action": "EXIT",
  "errorMessage": null
}