• Stars
    star
    232
  • Rank 172,847 (Top 4 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created almost 6 years ago
  • Updated over 1 year ago

Reviews

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

Repository Details

Robot path planning, mapping and exploration algorithms

Motion Planning

Python

Python code for several path planning algorithms is located inside python_src folder. Let's go through a couple of examples.

APF

In order to get familiar with the Artificial Potential Filds (APF) algorithm:

jupyter-notebook python_src/adaptive_formation/GradientBasedPlanning.ipynb

Real time potential fields-based obstacle avoidance method for robots formations with moving or static obstacles.

python python_src/adaptive_formation/gradient_interactive.py

RRT

Road map and path construction with Rapidly exploring Random Tree (RRT) algorithm:

python python_src/rrts/main_rrt2D.py

in 3D environment:

python python_src/rrts/3D/rrt3D.py

Here the RRT nodes and edges are depicted in blue, the retrieved path out of the tree is green, while the orange curve is a shortened trajectory .

Layered planner (RRT+APF)

An example of layered planner with RRT as a global path constructor and APF is responsible for local trajectory creation. The algorithm is provided not only for an ego-vechicle but also for a group of robots.

Multi-layered planner for formation of robots navigation based on RRT+APF algorithms:

python python_src/layered_planner/main_rrt_gradient.py

Take a look at the adaptive_swarm package for implementation details. There you will find how to apply a layered planner algorithm for a swarm of nano quadrotors.

Coverage Path Planning

Exploration of the environment with unknown obstacles location. Random walk algorithm implementation for a mobile robot equipped with 4 ranger sensors (front, back, left and right) for obstacles detection. An example of a robot with similar sensors setup could a Crazyflie drone with a multiranger deck mounted.

python python_src/exploration/random_goals_following/main.py
python python_src/exploration/random_walk/main.py

Coverage path planning for unknown map exploration. Robot's kinematics is taken into account in velocity motion model.

python python_src/exploration/coverage_path_planning/main3D.py

Mapping with a group of robots

Mapping of an unknown environment using one or swarm of robots equipped with 4 ranger sensors. Here we assume that robots localization data is provided (prerecorded in csv files here). The occupancy grid is constructed from multiranger pointcloud data using Bresenham raytracing algorithm.

python python_src/mapping/2robots_occupancy_grid.py

MATLAB

Computational Motion Planning course from Penn. Matlab implementation of the tasks can be found in matlab_src folder. Each of the subfolder includes run.m script for simulation launching and helper functions. In order to launch the algorithms simply execute from your Matlab command prompt:

run.m

Reference

License

Project is distributed under MIT License

Citation

Feel free to cite the package, if you find it useful for your research.

@software{Agishev_Robot_path_planning_2019,
author = {Agishev, Ruslan},
month = {9},
title = {{Robot path planning, mapping and exploration algorithms}},
url = {https://github.com/RuslanAgishev/motion_planning},
version = {0.0.1},
year = {2019}
}

More Repositories

1

adaptive_swarm

Multiple robots layered path planning algorithm implemented as a ROS node to control a swarm of nano quadrotors, Crazyflies 2.X, with real-time obstacle avoidance.
Jupyter Notebook
52
star
2

px4_control

PX4-firmware based drone control ROS node written in python
Python
31
star
3

quadrotor_simulator

Quadrotor simulator based on Coursera Aerial Robotics course from University of Pennsylvania
MATLAB
13
star
4

crazyflie-exploration

Motion planning and environment exploration with Bitcraze Crazyflie drones.
Python
10
star
5

bev-net

Bird-eye view map construction for a mobile robot based on RGB and point cloud input
Jupyter Notebook
6
star
6

swarmskin

Human-drone interaction project: small quadrotors landing on human arms
Python
2
star
7

Tello_src

Scripts to control DJI Ryze Tello Drone from laptop
JavaScript
2
star
8

ImageSynthUnity

Urban environment simulation in Unity3d. A model of sidewalk mobile robot is added with ROS integration. A synthetic data collection pipeline is available. Dynamic objects motion is provided with the help of NavMesh.
Jupyter Notebook
1
star
9

drone_stick

DroneStick
Python
1
star
10

router_crazyflies

Project on controlling swarm of crazyflies inspecting sub-areas with specified trajectories
Python
1
star
11

cs231n

CS231N Stanford University programming assignments
Jupyter Notebook
1
star
12

EDP

Experimental Data Processing course at Skoltech
MATLAB
1
star
13

convert

ROS node for sending localization data to pixhawk via mavros
Python
1
star
14

drone_arm

Project on teleoperation of a drone with robot arm.
Python
1
star
15

robot_scene_understanding

Collection of algorithms for a mobile robot visual perception.
Jupyter Notebook
1
star
16

udacity_flying_car

Udacity Flying car nanodegree program
Jupyter Notebook
1
star