Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Point Cloud

  • Detto anche: 3D Point Cloud, Point Cloud Data, PCD
  • Categoria: Sensing › Perception outputs
  • Tag: perception, 3d, sensors, mapping, segmentation

Insieme di punti dati 3D che rappresentano le superfici degli oggetti, acquisiti da LiDAR o telecamere di profondità.

Definizione

Una nuvola di punti è un insieme di punti dati 3D che rappresentano le superfici di oggetti e ambienti così come misurate dai sensori. Ogni punto contiene come minimo una coordinata X, Y, Z e può includere attributi aggiuntivi come colore (RGB), intensità, normale alla superficie o etichetta semantica.

Le nuvole di punti sono generate da: - Sensori LiDAR: emettono impulsi laser e misurano il tempo di ritorno per costruire scansioni 3D dense. Producono nuvole di punti molto accurate e a lungo raggio (fino a centinaia di metri). - Telecamere di profondità: Intel RealSense, Microsoft Azure Kinect e dispositivi simili producono nuvole di punti da misure a luce strutturata o a tempo di volo. Il campo di misura tipico va da 0,3 a 10 metri. - Coppie di telecamere stereo: calcolano la profondità triangolando le caratteristiche corrispondenti tra due telecamere. Soluzione software, con telecamere RGB standard. - Fotogrammetria: ricostruisce nuvole di punti 3D da più fotografie sovrapposte. Usata per mappatura e ispezione.

Operazioni comuni sulle nuvole di punti: - Filtraggio: rimuovere rumore, valori anomali o punti del piano del pavimento. Il sottocampionamento a griglia di voxel riduce la densità preservando la struttura. - Segmentazione: separare la nuvola di punti in cluster significativi (singoli oggetti, superfici, regioni). I metodi comprendono il clustering euclideo, il fitting di piani con RANSAC e approcci di deep learning come PointNet. - Registrazione: allineare più nuvole di punti acquisite da posizioni diverse in un unico modello coerente. ICP (Iterative Closest Point) è l'algoritmo classico. - Rilevamento degli oggetti: identificare e classificare gli oggetti all'interno della nuvola di punti. Fondamentale per la guida autonoma e la manipolazione robotica. - Ricostruzione delle superfici: convertire punti discreti in superfici mesh continue per CAD, simulazione o visualizzazione.

La Point Cloud Library (PCL) e Open3D sono le due principali librerie open source per l'elaborazione delle nuvole di punti in robotica. ROS integra i dati delle nuvole di punti tramite il tipo di messaggio sensor_msgs/PointCloud2.

Perché è importante

La nuvola di punti è la moneta comune della percezione 3D: il formato in cui LiDAR, telecamere di profondità e fotogrammetria restituiscono tutti la loro visione del mondo. Capirla è importante perché quasi ogni pipeline 3D è una sequenza di operazioni sulle nuvole di punti: filtrare, sottocampionare, segmentare, registrare, adattare. La sua proprietà distintiva è di non essere strutturata. A differenza di un'immagine, non c'è una griglia né una relazione di vicinato, ed è per questo che l'elaborazione 3D richiede strumenti diversi e che gli approcci ingenui sono così spesso troppo lenti per essere utilizzabili.

Applicazioni principali

  • Segmentazione degli oggetti e pianificazione della presa dall'uscita dei sensori di profondità
  • Registrazione e allineamento: unire le scansioni tra loro o far corrispondere una scansione a un modello CAD
  • Verifica dell'occupazione e delle collisioni per la pianificazione del movimento in spazi ingombri
  • Ricostruzione delle superfici: trasformare punti sparsi in una mesh per simulazione o stampa
  • Ispezione e metrologia: confrontare una scansione as-built con la geometria nominale
  • Analisi del terreno per robot con gambe e fuoristrada, classificando il terreno percorribile

In pratica

Una tipica pipeline di manipolazione prende la nuvola grezza da una telecamera di profondità e la riduce subito: ritaglio sull'area di lavoro, sottocampionamento con una griglia di voxel, rimozione dei valori anomali statistici, poi segmentazione del piano dominante per separare il tavolo dagli oggetti che vi poggiano. Ciò che resta viene raggruppato in oggetti candidati alla presa. Questa sequenza, di solito realizzata con la Point Cloud Library o Open3D, esiste perché una nuvola grezza di un singolo fotogramma può contenere centinaia di migliaia di punti, la grande maggioranza dei quali è pavimento, parete o rumore.

Idee sbagliate comuni

  • Una nuvola di punti è un modello 3D: è un insieme di campioni senza superfici, topologia né interno; convertirla in mesh è un passaggio separato e con perdita di informazioni
  • Le nuvole più dense sono sempre migliori: una densità superiore alla dimensione degli elementi di interesse aggiunge soprattutto costo di elaborazione
  • Le nuvole di punti sono misure prive di rumore: ogni punto porta con sé un errore del sensore che cresce con la distanza e l'angolo di incidenza
  • I punti di sensori diversi si possono semplicemente combinare: le nuvole vanno prima trasformate in un sistema di riferimento comune, il che richiede una calibrazione estrinseca accurata

Chi dovrebbe saperlo

  • Chiunque scriva codice di percezione che usa l'uscita di telecamere di profondità o LiDAR
  • Ingegneri che profilano una pipeline 3D che non riesce a stare al passo con il suo sensore
  • Sviluppatori che integrano più sensori 3D in un'unica vista coerente
  • Studenti che imparano perché le librerie di visione 3D sono così diverse dall'elaborazione di immagini 2D
  • Chiunque converta scansioni in mesh per simulazione, CAD o fabbricazione

Tecnologie correlate

  • Point Cloud Library (PCL)
  • Open3D
  • PointNet e PointNet++ (deep learning sulle nuvole di punti)
  • Registrazione con Iterative Closest Point (ICP)
  • Indicizzazione spaziale con octree e KD-tree
  • RANSAC per l'adattamento di primitive geometriche
  • Sottocampionamento a griglia di voxel
  • Ricostruzione delle superfici (Poisson, ball-pivoting)

Termini correlati

  • LIDAR
  • Depth Camera
  • SLAM
  • Sensor Fusion
  • ROS

Progetti correlati

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • Open3D: Modern library for 3D point cloud processing, mesh operations, and 3D machine learning
  • PCL: Industry-standard C++ library for point cloud processing in robotics perception
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • RTAB-Map: Versatile graph-based SLAM supporting RGB-D, stereo, and LiDAR with real-time operation

Video

  • What are Point Clouds, And How Are They Used?: dronegenuity

Wikipedia

  • Nuvola di punti

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.