• Stars
    star
    894
  • Rank 51,071 (Top 2 %)
  • Language
    C++
  • License
    MIT License
  • Created about 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Robotics with GPU computing

Robotics with GPU computing

Build status Build statusPyPI version PyPI - Python Version Downloads xscode

Buy Me A Coffee

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.

Core Features

Installation

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

Installation for Jetson Nano

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 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

Use Docker

Setting default container runtime to nvidia-container-runtime. Edit or create the /etc/docker/daemon.json.

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
         }
    },
    "default-runtime": "nvidia"
}

Restart docker daemon.

sudo systemctl restart docker
docker-compose up -d
# xhost +
docker exec -it cupoch bash

Getting Started

Please see how to use cupoch in Getting Started first.

Results

The figure shows Cupoch's point cloud algorithms speedup over Open3D. The environment tested on has the following specs:

  • Intel Core i7-7700HQ CPU
  • Nvidia GTX1070 GPU
  • OMP_NUM_THREAD=1

You can get the result by running the example script in your environment.

cd examples/python/basic
python benchmarks.py

speedup

Visual odometry with intel realsense D435

vo

Occupancy grid with intel realsense D435

og

Kinect fusion with intel realsense L515

kf

Stereo matching

sm

Fast Global Registration

fgr

Point cloud from laser scan

fgr

Collision detection for 2 voxel grids

col

Drone Path planning

dp

Visual odometry with ROS + D435

This demo works in the following environment.

  • ROS melodic
  • Python2.7
# Launch roscore and rviz in the other terminals.
cd examples/python/ros
python realsense_rgbd_odometry_node.py

vo

Visualization

Point Cloud Triangle Mesh Kinematics
Voxel Grid Occupancy Grid Distance Transform
Graph Image

References

Citing

@misc{cupoch,
   author = {Kenta Tanaka},
   year = {2020},
   note = {https://github.com/neka-nat/cupoch},
   title = {cupoch -- Robotics with GPU computing}
}

More Repositories

1

probreg

Python package for point cloud registration using probabilistic model (Coherent Point Drift, GMMReg, SVR, GMMTree, FilterReg, Bayesian CPD)
Python
842
star
2

kinpy

Simple kinematics calculation toolkit for robotics
Python
140
star
3

ddp-gym

Differential Dynamic Programming controller operating in OpenAI Gym environment.
Python
86
star
4

distributed_rl

Pytorch implementation of distributed deep reinforcement learning
Python
72
star
5

inv_rl

Inverse Reinforcement Learning Argorithms
Python
51
star
6

gazebo_domain_randomization

Domain randomization for gazebo simulator
C++
43
star
7

tensorboard-chainer

tensorboard for chainer
Python
40
star
8

python-forexconnect

Python binding of forexconnect api
C++
39
star
9

image_completion_tf2

"Globally and Locally Consistent Image Completion" with Tensorflow2 Keras
Python
31
star
10

dq3d

dual quaternion for 3d geometric operations
C++
28
star
11

pytorch-hdml

Hardness-Aware Deep Metric Learning (CVPR2019) in pytorch
Python
28
star
12

SBIcomm

Communicate with the SBI securities
Python
27
star
13

ur_ws

Universal robot with robotiq hand workspace
C++
26
star
14

python-octomap

python binding of octomap
Python
25
star
15

streamlit-mermaid

Streamlit component for mermaid
Python
25
star
16

vin-keras

This is an implimentation of Value Iteration Networks (NIPS2016 best paper) in keras
Python
18
star
17

awesome-cobots

A list of awesome collaborative robots.
17
star
18

sdrsac

Python package of SDRSAC(Global point cloud regitsration, CVPR2019 Oral)
Python
16
star
19

ros_np_multiarray

Convert between numpy ndarray and ros multiarray
CMake
16
star
20

mylangrobot

Language instructions to mycobot using GPT-4V
Python
16
star
21

xurdf

Parser for urdf and xacro
Rust
11
star
22

cad3dify

2D to 3D CAD Conversion Using GPT-4o
Python
11
star
23

humanoid_robot

Read "humanoid robot" and implement some algorithms
Python
9
star
24

pytorch-softtriple

SoftTriple (ICCV2019) in pytorch
Python
8
star
25

stenocaptioner

CLI tool for automatic subtitling using whisper.
Python
8
star
26

mycobot-rs

This is a Rust API for myCobot serial communication.
Rust
8
star
27

web-sam

React application using Segment Anything in browser
TypeScript
8
star
28

async-rl-noreward

Keras implementation of Curiosity-driven Exploration by Self-supervised Prediction
Python
8
star
29

fast-mm-rag

Fast Multimodal RAG on CPU
Python
8
star
30

cuimage

Rust implementation of image processing library with CUDA
Rust
7
star
31

ez_interactive_marker

Easily create interactive markers from yaml files.
Python
6
star
32

wgimage

Imageprocessing library with WebGPU
Rust
5
star
33

siskin

minimal pointcloud tools for Rust
Rust
5
star
34

sam-cpp-python

Python bindings for sam.cpp
C
5
star
35

kdtree-ts

KDTree for typescript
TypeScript
4
star
36

mmdetection3d-ros

Python
4
star
37

realsense-web-viewer

Realsense pointcloud viewer with webgl
TypeScript
4
star
38

reflex-firebase

A Reflex custom component firebase
Python
4
star
39

notionflow

Experiment tracking tool on Notion
Python
3
star
40

chainer-videogan

A chainer impelementation of Generating Videos with Scene Dynamics
Python
3
star
41

karmarkar

Rust implementation of Karmarkar's algorithm
Rust
2
star
42

burn-tutorial

Rust
2
star
43

sgm-rs

Semi-global matching for Rust
Rust
2
star
44

rust_cuda_test

Rust
2
star
45

ros_cvdnn

ROS packages for OpenCV DNN module
C++
2
star
46

fastmunk

Python package for fast munkres algorithm
Rust
2
star
47

wgstd

WebGPU based standard algorithms
Rust
2
star
48

mycobot-web

myCobot serial communication in your browser
TypeScript
2
star
49

ros-noetic-docker-compose

Docker compose for ROS noetic
Dockerfile
2
star
50

pendulum-rs

Pendulum simulations
Rust
2
star
51

stable-diffusion-tauri-ui

WebGPU based stable diffusion GUI
Rust
2
star
52

neka-nat.github.io

neka-nat homepage
1
star
53

ros-drcsim

Docker image to provide DRCSim environment.
1
star
54

anylabel-web

Web annotation tool
TypeScript
1
star
55

sagemaker-custom-pytorch-container

Python
1
star
56

player_zoo

Deep reinforcement learning implementations
Python
1
star
57

roslib-react-tutorials

TypeScript
1
star