PiLiDAR  by PiLiDAR

DIY 360° 3D panorama scanner

created 11 months ago
1,672 stars

Top 25.8% on sourcepulse

GitHubView on GitHub
Project Summary

This project provides a DIY 360° 3D panorama scanner using a Raspberry Pi, a LiDAR sensor (LDROBOT LD06, LD19, or STL27L), and a Raspberry Pi HQ Camera. It's targeted at hobbyists and researchers interested in building custom 3D scanning hardware, offering a low-cost alternative to commercial solutions.

How It Works

The system integrates LiDAR data for 3D point cloud generation with stitched fisheye images for colorized 3D scenes. It uses a custom serial driver for LiDAR communication, CRC checks for data integrity, and hardware PWM for calibrated stepper motor control. Panorama stitching is handled by Hugin, with EXIF data and iterative optimization for consistent exposure and white balance. 3D scene assembly involves sampling vertex colors from panoramas and using Open3D for visualization and meshing, with global registration and ICP for aligning multiple scans.

Quick Start & Requirements

  • Install: Clone the repository and run the installer script (./install.sh).
  • Prerequisites: Raspberry Pi 4, LDRobot LD06/LD19/STL27L LiDAR, Raspberry Pi HQ Camera with M12 lens, NEMA17 stepper motor with A4988 driver, power supply. Specific GPIO pins are used for LiDAR, stepper, buttons, and LEDs.
  • Setup: Requires configuring GPIO pins, potentially enabling i2c-gpio, setting up a systemd service for a scan button, and managing serial port permissions (udev rules recommended).
  • Links: PiLiDAR-Hardware Repo, thingiverse.com, printables.com

Highlighted Details

  • Supports multiple LiDAR models (LD06, LD19, STL27L) with different sampling frequencies.
  • Offers 2D live visualization and export (NumPy/CSV), and 3D scene visualization/export (PCD, PLY, e57) via Open3D.
  • Includes hardware PWM calibration and stepper motor control with a 3D-printed planetary gearbox.
  • Features a power button for wake-up/shutdown and a scan button for triggering scans.
  • Provides guidance on remote Jupyter Notebook access and troubleshooting common Raspberry Pi issues (GPIO, serial permissions, VS Code performance).

Maintenance & Community

The project appears to be a personal or small-team effort with references to other LiDAR implementations and tutorials. There are no explicit mentions of active community channels, regular updates, or major contributors beyond the primary repository owner.

Licensing & Compatibility

The README does not explicitly state a license. The project utilizes various libraries and tools, some of which may have their own licenses (e.g., Hugin, Open3D). Compatibility for commercial use or closed-source linking would require clarification of the project's licensing.

Limitations & Caveats

The project is explicitly marked as "WORK IN PROGRESS." Poisson Surface Meshing is noted as "very slow on Pi4" and recommended for PC execution. The setup involves significant hardware assembly and software configuration, including GPIO management and potential troubleshooting of serial port permissions and library compatibility (e.g., RPi.GPIO vs. LGPIO). Building pye57 requires manual compilation on ARM64.

Health Check
Last commit

3 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
1
Star History
83 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.