Aller au contenu principal

Scans LiDAR

Transformez les nuages de points de scanners LiDAR fixes ou portatifs en carte AR Clip VPS. Cela fonctionne avec des scanners comme Leica, FARO, Trimble et BLK2GO.

Préparer les scans​

  1. Nettoyez les scans bruts. Supprimez les artefacts du trépied, les échos multiples et les objets en mouvement dans Cyclone, ReCap, CloudCompare ou un outil similaire.
  2. Recalez les stations. Alignez les différents scans à l'aide de cibles ou par correspondance nuage à nuage.
  3. Ajoutez la couleur. Appliquez des textures photo si vous en avez. Sinon, convertissez l'intensité LiDAR en niveaux de gris.

Exporter​

  • Créez un maillage simplifié de 5 millions de triangles au maximum pour l'aperçu visuel.
  • Exportez le nuage de points en E57, LAZ ou PLY.
  • Utilisez un seul système de coordonnées du début à la fin : un plan tangent local en intérieur, ou un CRS géoréférencé en extérieur.

Envoyer le fichier avec Python​

# upload_lidar.py
from pathlib import Path
import os
import requests

API_BASE = "https://api.arclip.app/vps/api/v3"
TOKEN = os.environ["ARCLIP_TOKEN"]
DATA_PATH = Path("outputs/plant.e57")

headers = {"Authorization": f"Bearer {TOKEN}"}

payload = {
"name": "Factory Floor",
"dataType": "point_cloud",
"sourceFormat": "e57",
"hybrid": True,
"coordinate": {"lat": 35.68124, "lon": 139.76712}
}

init = requests.post(f"{API_BASE}/maps/import", json=payload, headers=headers)
init.raise_for_status()
info = init.json()
upload_url, map_id = info["uploadUrl"], info["mapId"]

with DATA_PATH.open("rb") as src:
put = requests.put(upload_url, data=src, headers={"Content-Type": "application/octet-stream"})
put.raise_for_status()

finalize = requests.post(f"{API_BASE}/maps/{map_id}/finalize", json={"publish": False}, headers=headers)
finalize.raise_for_status()
print(f"LiDAR map {map_id} queued → {finalize.json()['status']}")
  • hybrid=True indique au serveur que l'envoi contient un nuage de points et, si le paquet E57 ou LAZ en comprend un, un maillage.
  • Pour des données uniquement en intérieur, omettez le bloc coordinate.

Ajouter des ancres et publier​

Quand la carte passe à READY :

  1. Choisissez des points d'ancrage pour les machines, les entrées et les sorties.
  2. Envoyez-les sous forme d'une petite liste JSON :
import json

anchors = [
{"name": "CNC-01", "position": [2.4, 0.0, 8.7]},
{"name": "safety_exit", "position": [-11.2, 0.0, 3.1]}
]
resp = requests.post(
f"{API_BASE}/maps/{map_id}/anchors",
headers=headers,
json={"items": anchors}
)
resp.raise_for_status()
  1. Une fois la carte vérifiée, publiez-la depuis la console ou appelez POST /maps/{id}/publish.

Suite : Cartes multi-sessions — fusionnez plusieurs scans en une seule carte.