Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelpantic committed Sep 18, 2022
0 parents commit 1b74b8a
Show file tree
Hide file tree
Showing 79 changed files with 9,489 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
BasedOnStyle: Google
ColumnLimit: 80
36 changes: 36 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# CLION excludes
**/cmake-build-debug/*
**/.idea/*
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "rmpcpp_planner/nvblox"]
path = rmpcpp_planner/nvblox
url = [email protected]:Isarm/nvblox.git
Empty file added .nojekyll
Empty file.
59 changes: 59 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
This is the __preliminary__ code release for ICRA Submission "Obstacle avoidance using raycasting and Riemannian Motion Policies at kHz rates for MAVs"

While all the code for the policies & planner is included, we will add easy-to-run examples and
documentation soon (and clean up the code).

### Please check back in approx 2-3 weeks. ###


## Prerequisites:
- ROS Noetic
- CUDA (10.2 - 11.5 are tested by nvblox developers, others may or may not work)

System Dependencies for nvblox (nvblox itself is cloned as a submodule of this repository which is done automatically):

```
sudo apt-get install -y libgoogle-glog-dev libgtest-dev libgflags-dev python3-dev
cd /usr/src/googletest && sudo cmake . && sudo cmake --build . --target install
```

## Creating the environment and building
The following commands creates a new catkin environment, clones the required repositories and builds.
```
mkdir rmp_planning
cd rmp_planning
mkdir src
catkin init
cd src
git clone [email protected]:ethz-asl/eigen_catkin.git
wstool update
git clone https://github.com/ethz-asl/reactive_avoidance --recurse-submodules
catkin build
```

## Possible issues:

Gflags dependency conflict (build fails when compiling nvblox with errors about gflags). Go to the src directory and run:

```
rm -rf rmpcpp/rmpcpp_planner/nvblox
git clone -b gflags_namespace_fix [email protected]:Isarm/nvblox.git rmpcpp/rmpcpp_planner/nvblox
catkin build
```

# Architecture

All planner types are compiled into the same executable and can be selected via command line arguments.
See the `parser` class for the full list of options. I’ll briefly list the most important classes for the RMP planner.

The policies are implemented in
- NVBlox Raycasting obstacle avoidance policy: `rmpcpp_planner/src/policies/raycasting_CUDA.cc`
- Lidar ray obstacle avoidance policy: `rmpcpp_planner/src/policies/lidarray_CUDA.cc`
- ESDF policy: `rmpcpp_planner/src/policies/simple_ESDF.cc`


The `tester` class sets up testing runs, using the `worldgen` class to generate random worlds or load custom worlds.
There are a lot of options you can pass to the executable, which are all defined in the `parser` class.
Check out `rmpcpp_planner/src/testing/parser.cc` for the full list of options.


19 changes: 19 additions & 0 deletions rmpcpp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
cmake_minimum_required(VERSION 2.8.3)
project(rmpcpp)

find_package(catkin_simple REQUIRED)
catkin_simple(ALL_DEPS_REQUIRED)


add_definitions(-std=c++17 -Wall -Wextra)

#############
# LIBRARIES #
#############
cs_add_executable(rmpcpp_example example.cc)

##########
# EXPORT #
##########
cs_install()
cs_export()
5 changes: 5 additions & 0 deletions rmpcpp/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
References
=========

[1] N. Ratliff, J. Issac, D. Kappler, S. Birchfield, D. Fox;
Riemannian Motion Policies; arxiv:1801.02854v3
4 changes: 4 additions & 0 deletions rmpcpp/docs/.buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 2addfc989f070a5a38bc2383b01a71af
tags: 645f666f9bcd5a90fca523b33c5a78b7
Empty file added rmpcpp/docs/.nojekyll
Empty file.
Loading

0 comments on commit 1b74b8a

Please sign in to comment.