Giter VIP home page Giter VIP logo

voxbloxpy's Introduction

voxbloxpy CI pypi-version

voxblox is a ROS-based revolutionary project for online creation of signed distance field. This repository voxbloxpy provides the python-wrapper of the voxblox and some utils for volumetric rendering using plotly. This python package is standalone, that is, the package is ros-dependencies-free and can be installed from pypi.

The wrapper's core source code can be found in wrapper.cpp (lower-level) and python/voxbloxpy (higher-level) directory.

The following animation is created using point cloud collected by a robot rotating in our lab.

pr2_rotating_around_73b2room.mp4

This project is just a wrapper. So, please cite the paper (Oleynikova+, IROS 2017) for the original project when you use this in your research.

@inproceedings{oleynikova2017voxblox,
  author={Oleynikova, Helen and Taylor, Zachary and Fehr, Marius and Siegwart, Roland and  Nieto, Juan},
  booktitle={IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  title={Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning},
  year={2017}
}

Usage

from voxbloxpy import EsdfMap, CameraPose

esdf = EsdfMap(0.02)  # voxel size in meter
camera_pose = CameraPose(pos, quat_wxyz)  # set camera pose wrt world
esdf.udpate(camera_pose, cloud_wrt_camera)  # able to update as many as you want with different camera-cloud pair
sd_values = esdf.get_sd_batch(pts_wrt_world)

installation

NOTE: ROS not required

Install from pypi

sudo apt-get install libgoogle-glog-dev
pip3 install voxbloxpy

Note: Dependency on libgoogle-glog-dev is kind of a pain, though it can be resolved by apt install. I'm planning to remove this dependency by building glog from source and build a static library.

Source build

git clone https://github.com/HiroIshida/voxbloxpy.git
cd voxbloxpy
git submodule update --init
sudo apt-get install libeigen3-dev libgtest-dev libgflags-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler
pip3 install -e .

Run demo (real dataset)

download dataset (pickled pointcloud and camera poses)

pip3 install gdown  # if not installed yet
cd example/dataset/
./download_dataset.sh

The dataset is created by the scan when PR2 robot is directing toward the fridge with the opened door.

Then run esdf creation demo

python3 example/real_data.py --visualize

The bottom left figure shows the rviz-image at the scan time, and the bottom right figure shows the output of the visualization.

Run demo playing rosbag (you need to have ROS)

cd example/ros
bash download_rosbag.sh
roscore  # run in different terminal
rosbag play pr2_jsk_73b2_movearound.bag # run in different terminal
python3 example_node.py

The sequence of figures and interactive html will be dumped in /example/ros/figs. See the mp4 video at the top of this README for the visualization of the result.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.