ShanmukhaManoj11 / RoboHub

Repo for robotics algorithms implemented in C++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RoboHub is a collection of C++ implementations of algorithms used in robotics

Build and run content

1. Using docker (Recommended)

# build content
$ ./docker_build.sh
# run docker interactvely
$ ./docker_run.sh

All the built content can be found in /workspace/build/ directory when the docker terminal is up

2. Native build (dependencies might need to be installed separately)

$ mkdir build && cd build
$ cmake ..
$ make

Details

  1. Currently this project doesn't use any of the pcl or ROS components. All imlementations are primarily based on STL and Eigen. Data generations and visualization for tests is made with python scripts (can be found in the scripts directory) that use numpy and matplotlib for 2d and mayavi for 3d visualizations

  2. API is header only. Implementations can be found in include directory

  3. All functionaly can be qualitatively and/or quantitatively tested using provided tests found in tests directory

Refer to docs for implementation and API details (NOTE: open file in browser - docs/html/index.html)

Running tests

Tests are provided as .sh files in scripts directory

$ cd scripts
  1. Test normal estimation
$ ./test_normal_estimation.sh
plane plane_normals
hemisphere hemisphere_normals
  1. Test plane extraction
    Input data for this test is taken from KITTI dataset
$ ./test_plane_extraction.sh
KITTI sample seg out
  1. Test A* planner
    Input map for this test is taken from here
$ ./test_astar.sh
map map_path_astar
  1. Test RRT planner
$ ./test_rrt.sh
map map_path_astar

TO-DO

  • RRT planner has still some issues, it is not generating consistent paths all the time. Need to implement RRT* which leads to more straighter and practical paths

  • Bidirectional RRT, RRT*

  • Occupancy map is being direclty used in planners, cost values need to be diffused to account for safe distances and obstacle & robot footprints

About

Repo for robotics algorithms implemented in C++


Languages

Language:C++ 81.4%Language:Python 14.4%Language:Shell 1.7%Language:Dockerfile 1.5%Language:CMake 1.0%