Saltar al contenido principal

Escaneos LiDAR

Convierte nubes de puntos de escáneres LiDAR fijos o de mano en un mapa de AR Clip VPS. Funciona con escáneres como Leica, FARO, Trimble y BLK2GO.

Preparar los escaneos​

  1. Limpia los escaneos en bruto. Quita los restos del trípode, los retornos múltiples y los objetos en movimiento en Cyclone, ReCap, CloudCompare o una herramienta parecida.
  2. Registra las estaciones. Alinea los escaneos por separado con dianas o por coincidencia entre nubes (cloud-to-cloud).
  3. Añade color. Aplica texturas fotográficas si las tienes. Si no, convierte la intensidad del LiDAR a escala de grises.

Exportar​

  • Crea una malla simplificada de hasta 5 millones de triángulos para la vista previa.
  • Exporta la nube de puntos en E57, LAZ o PLY.
  • Usa un único sistema de coordenadas en todo el proceso: un plano tangente local en interiores o un CRS georreferenciado en exteriores.

Subir con 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 le indica al servidor que la subida contiene una nube de puntos y, si el paquete E57 o LAZ la incluye, también una malla.
  • Si los datos son solo de interiores, quita el bloque coordinate.

Añadir anclas y publicar​

Cuando el mapa llegue a READY:

  1. Elige puntos de anclaje para las máquinas, las entradas y las salidas.
  2. Súbelos como una pequeña lista 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. Cuando hayas revisado el mapa, publícalo desde la consola o llama a POST /maps/{id}/publish.

Siguiente: Mapas de varias sesiones — fusiona varios escaneos en un solo mapa.