Giter Club home page Giter Club logo

pct_planner's Introduction

PCT Planner

Overview

This is an implementation of paper Efficient Global Navigational Planning in 3D Structures based on Point Cloud Tomography (submitted to TMECH). It provides a highly efficient and extensible global navigation framework based on a tomographic understanding of the environment to navigate ground robots in multi-layer structures.

Demonstrations: pct_planner

demo

Prerequisites

Environment

  • Ubuntu >= 20.04
  • ROS >= Noetic with ros-desktop-full installation
  • CUDA >= 11.7

Python

  • Python >= 3.8
  • CuPy with CUDA >= 11.7
  • Open3d

Build & Install

Inside the package, there are two modules: the point cloud tomography module for tomogram reconstruction (in tomography/) and the planner module for path planning and optimization (in planner/). You only need to build the planner module before use. In planner/, run build_thirdparty.sh first and then run build.sh.

cd planner/
./build_thirdparty.sh
./build.sh

Run Examples

Three example scenarios are provided: "Spiral", "Building", and "Plaza".

  • "Spiral": A spiral overpass scenario released in the 3D2M planner.
  • "Building": A multi-layer indoor scenario with various stairs, slopes, overhangs and obstacles.
  • "Plaza": A complex outdoor plaza for repeated trajectory generation evaluation.

Tomogram Construction

To plan in a scenario, first you need to construct the scene tomogram using the pcd file.

  • Unzip the pcd files in rsc/pcd/pcd_files.zip to rsc/pcd/.
  • For scene "Spiral", you can download the pcd file from 3D2M planner spiral0.3_2.pcd.
  • Run roscore, start RViz with the provided config (rsc/rviz/pct_ros.rviz).
  • In tomography/scripts/, run tomography.py with the --scene argument:
cd tomography/scripts/
python3 tomography.py --scene Spiral
  • The generated tomogram is visualized as ROS PointCloud2 message in RViz and saved in rsc/tomogram/.

Trajectory Generation

After the tomogram is constructed, you can run the trajectory generation example.

  • In planner/scripts/, run plan.py with the --scene argument:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/YOUR/DIRECTORY/TO/PCT_planner/planner/lib/3rdparty/gtsam-4.1.1/install/lib
cd planner/scripts/
python3 plan.py --scene Spiral
  • The generated trajectory is visualized as ROS Path message in RViz.

License

The source code is released under GPLv2 license.

For commercial use, please contact Bowen Yang [email protected].

pct_planner's People

Contributors

byangw avatar

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.