state-of-the-art / Handy3DScanner

Repository for Handy 3D Scanner
Apache License 2.0
72 stars 15 forks source link
android capture pcd pointcloud

Handy 3D Scanner

Join the chat at https://gitter.im/state-of-the-art/Handy-3D-Scanner

General purpose 3d scaner based on Intel Realsense D400 cameras.

Application to help build a cheap 3d scanner based on Intel RealSense D415/D435 cameras and your android smartphone, tablet or laptop.

Usage

Please check out the wiki page: Wiki

Requirements

Application

Overview

Basically have just 3 main functions:

Also there will be settings, skeletal animation and other stuff.

Applications

Features

Example data

You can find the examples & PCD/glb files on the wiki page: Example data

Price

With Intel Realsense D415 (~$140) and mobile app we can get a simple and cheap solution to provide a really cheap mid-range HD solution with advanced specifications:

Means that finally for ~$200 users can get simple solution to build second instagram, now in 3D - and the last piece is just a userspace software.

Plans

You can see all the feature requests/bugs on the github page:

But overall we have a huge plans to make this application better!

OpenSource

This is an experimental project - main goal is to test State Of The Art philosophy on practice.

We would like to see a number of independent developers working on the same project issues for the real money (attached to the ticket) or just for fun. So let's see how this will work.

License

Repository and it's content is covered by Apache v2.0 - so anyone can use it without any concerns.

If you will have some time - it will be great to see your changes merged to the original repository - but it's your choise, no pressure.

Build

Build process is quite hard, but requires a minimum dependencies (cmake will get all the requirements automatically).

NOTICE: Qt 5.12.4, 5.12.5 and 5.13.0 have an issue with gyro (QTBUG-77423) - so please use 5.12.3 if you want to use gyroscope.

Build in docker

For desktop
  1. Clone the repository:
    host$ git clone https://github.com/state-of-the-art/Handy3DScanner.git ~/Build/Handy3DScanner
  2. Run the docker container:
    host$ cd ~/Build/Handy3DScanner
    host$ docker run -it --rm --name h3ds-build --volume="${PWD}:/home/user/project" rabits/qt:5.13-desktop
  3. Install the required dependencies:
    docker$ sudo apt update
    docker$ sudo apt install -y libusb-1.0-0-dev
  4. Create build directory:
    docker$ mkdir project/build
    docker$ cd project/build
  5. Generate the build scripts
    docker$ cmake .. -G Ninja "-DCMAKE_PREFIX_PATH:PATH=${QT_DESKTOP}"
  6. Build the binaries:
    docker$ cmake --build .
  7. You can find the compiled binaries in the build directory
For android
  1. Clone the repository:
    host$ git clone https://github.com/state-of-the-art/Handy3DScanner.git ~/Build/Handy3DScanner
  2. Run the docker container (use -armv7 if you need armv7 binaries):
    host$ cd ~/Build/Handy3DScanner
    host$ docker run -it --rm --name h3ds-build --volume="${PWD}:/home/user/project" rabits/qt:5.13-android-arm64
  3. Install the required dependencies (build-essential for boost build system):
    docker$ sudo apt update
    docker$ sudo apt install -y imagemagick build-essential
  4. Create build directory:
    docker$ mkdir project/build
    docker$ cd project/build
  5. Generate the build scripts
    docker$ cmake .. -G Ninja "-DCMAKE_PREFIX_PATH:PATH=${QT_ANDROID}" "-DCMAKE_TOOLCHAIN_FILE:PATH=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" "-DANDROID_ABI:STRING=${ANDROID_NDK_TOOLCHAIN_ABI}" -DANDROID_NATIVE_API_LEVEL:STRING=29
  6. Build the binaries:
    docker$ cmake --build .
  7. Debug APK will be created automatically with help of tools/build-apk.sh - and you will see where it's

Build on host

You can use your host:

Dependencies
Variables

Already set in the docker images, but you need to set them to build on the host system (there is an examples, you need to choose yours):

To build the APK for android you need to set the next env variables in addition:

Build

Just follow the docker instructions (but without docker) - and you will be good.

Privacy policy

It's very important to save user private data and you can be sure: we working on security of our applications and improving it every day. No data could be sent somewhere without user notification and his direct approve. This application will work standalone without any internet connection and will not collect any user personal data anyway.