Robotics with GPU computing
Cupoch is a library that implements rapid 3D data processing for robotics using CUDA.
The goal of this library is to implement fast 3D data computation in robot systems. For example, it has applications in SLAM, collision avoidance, path planning and tracking. This repository is based on Open3D.
This library is packaged under 64 Bit Ubuntu Linux 20.04 and CUDA 11.7. You can install cupoch using pip.
pip install cupoch
Or install cupoch from source.
git clone https://github.com/neka-nat/cupoch.git --recurse
cd cupoch
mkdir build
cd build
cmake ..; make install-pip-package -j
You can also install cupoch using pip on Jetson Nano. Please set up Jetson using jetpack and install some packages with apt.
sudo apt-get install xorg-dev libxinerama-dev libxcursor-dev libglu1-mesa-dev
pip3 install cupoch
Or you can compile it from source. Update your version of cmake if necessary.
wget https://github.com/Kitware/CMake/releases/download/v3.18.4/cmake-3.18.4.tar.gz
tar zxvf cmake-3.18.4.tar.gz
cd cmake-3.18.4
./bootstrap -- -DCMAKE_USE_OPENSSL=OFF
make && sudo make install
cd ..
git clone -b jetson_nano https://github.com/neka-nat/cupoch.git --recurse
cd cupoch/
mkdir build
cd build/
export PATH=/usr/local/cuda/bin:$PATH
cmake -DBUILD_GLEW=ON -DBUILD_GLFW=ON -DBUILD_PNG=ON -DBUILD_JSONCPP=ON ..
sudo make install-pip-package
docker-compose up -d
# xhost +
docker exec -it cupoch bash
Please see how to use cupoch in Getting Started first.
The figure shows Cupoch's point cloud algorithms speedup over Open3D. The environment tested on has the following specs:
You can get the result by running the example script in your environment.
cd examples/python/basic
python benchmarks.py
If you get the following error when executing an example that includes 3D drawing, please start the program as follows.
$ cd examples/basic
$ python visualization.py
Load a ply point cloud, print it, and render it
MESA: warning: Driver does not support the 0xa7a0 PCI ID.
libGL error: failed to create dri screen
libGL error: failed to load driver: iris
MESA: warning: Driver does not support the 0xa7a0 PCI ID.
libGL error: failed to create dri screen
libGL error: failed to load driver: iris
Error: unknown error phong_shader.cu:330
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia python visualization.py
This demo works in the following environment.
# Launch roscore and rviz in the other terminals.
cd examples/python/ros
python realsense_rgbd_odometry_node.py
Point Cloud | Triangle Mesh | Kinematics |
---|---|---|
Voxel Grid | Occupancy Grid | Distance Transform |
---|---|---|
Graph | Image |
---|---|
@misc{cupoch,
author = {Kenta Tanaka},
year = {2020},
note = {https://github.com/neka-nat/cupoch},
title = {cupoch -- Robotics with GPU computing}
}