All Projects → Aniruddha-Tapas → Obstacle-Detection-and-Path-Planning

Aniruddha-Tapas / Obstacle-Detection-and-Path-Planning

Licence: MIT license
Processing an Image to find obstacles and the minimum path between two similar objects using OpenCV.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Obstacle-Detection-and-Path-Planning

2019-UGRP-DPoom
2019 DGIST DPoom project under UGRP : SBC and RGB-D camera based full autonomous driving system for mobile robot with indoor SLAM
Stars: ✭ 35 (-42.62%)
Mutual labels:  path-planning
gennav
Python Package for Robot Navigation
Stars: ✭ 24 (-60.66%)
Mutual labels:  path-planning
Bitcamp-2019
Won the most innovative solution at Bitcamp 2019.🎖🎉
Stars: ✭ 15 (-75.41%)
Mutual labels:  opencv-python
SLAM AND PATH PLANNING ALGORITHMS
This repository contains the solutions to all the exercises for the MOOC about SLAM and PATH-PLANNING algorithms given by professor Claus Brenner at Leibniz University. This repository also contains my personal notes, most of them in PDF format, and many vector graphics created by myself to illustrate the theoretical concepts. Hope you enjoy it! :)
Stars: ✭ 107 (+75.41%)
Mutual labels:  path-planning
Pathplanning
Common used path planning algorithms with animations.
Stars: ✭ 3,418 (+5503.28%)
Mutual labels:  path-planning
camera-live-streaming
Camera Live Streaming with Flask and Open-CV
Stars: ✭ 69 (+13.11%)
Mutual labels:  opencv-python
Global path planning for USV
This repository uses the S-57 electronic chart to build the octree grid environment model, and proposes an improved A* algorithm based on sailing safety weight, pilot quantity and path curve smoothing to ensure the safety of the route, reduce the planning time, and improve path smoothness.
Stars: ✭ 52 (-14.75%)
Mutual labels:  path-planning
iterative-grabcut
This algorithm uses a rectangle made by the user to identify the foreground item. Then, the user can edit to add or remove objects to the foreground. Then, it removes the background and makes it transparent.
Stars: ✭ 35 (-42.62%)
Mutual labels:  opencv-python
Pythonrobotics
Python sample codes for robotics algorithms.
Stars: ✭ 13,934 (+22742.62%)
Mutual labels:  path-planning
rrt-simulator
Path planning using RRT
Stars: ✭ 85 (+39.34%)
Mutual labels:  path-planning
RustRobotics
Rust implementation of PythonRobotics such as EKF, DWA, Pure Pursuit, LQR.
Stars: ✭ 40 (-34.43%)
Mutual labels:  path-planning
CLF reactive planning system
This package provides a CLF-based reactive planning system, described in paper: Efficient Anytime CLF Reactive Planning System for a Bipedal Robot on Undulating Terrain. The reactive planning system consists of a 5-Hz planning thread to guide a robot to a distant goal and a 300-Hz Control-Lyapunov-Function-based (CLF-based) reactive thread to co…
Stars: ✭ 21 (-65.57%)
Mutual labels:  path-planning
visualize-voc-format-data
A simple utility programe to visualize pascal voc (format) dataset images with bounding boxes. Useful to check whether there is any error in forming annotation files.
Stars: ✭ 23 (-62.3%)
Mutual labels:  opencv-python
robot
Functions and classes for gradient-based robot motion planning, written in Ivy.
Stars: ✭ 29 (-52.46%)
Mutual labels:  path-planning
OpenCV-Object-Tracking
Object Tracking Using OpenCV and Python Plus Comparing different Trackers
Stars: ✭ 32 (-47.54%)
Mutual labels:  opencv-python
smartcar-vision
利用大规模视觉导航机器人进行快递分拣,涉及调度系统的设计、视觉导航机器人设计、大规模机器人模拟软件设计、路径规划算法研究,涉及技术栈java、C++、c、spring、swing、netty、openCV、ardunio、调度、路径规划、嵌入式、PID控制。——Using large-scale visual navigation robot for express sorting involves the design of scheduling system, visual navigation robot, large-scale robot simulation software, path planning algorithm research, and technology…
Stars: ✭ 29 (-52.46%)
Mutual labels:  path-planning
flask-ocr
use flask and tesseract to have a basic ocr, also you need opencv2, this code use opencv2 to have a basic image process
Stars: ✭ 27 (-55.74%)
Mutual labels:  opencv-python
image-segmentation-auto-labels
A service to auto-generate masks for image segmentation
Stars: ✭ 22 (-63.93%)
Mutual labels:  opencv-python
CarND-Path-Planning-Project-P1
Udacity Self-Driving Car Nanodegree - Path Planning Project
Stars: ✭ 20 (-67.21%)
Mutual labels:  path-planning
Intrusion Detection
Whenever founds internet connectivity confirms is it you, if not log you off and send you image of intruder.
Stars: ✭ 24 (-60.66%)
Mutual labels:  opencv-python

Obstacle Detection and Path Planning

Path planning is a technique used to find the shortest path between a source and destination. Path planning ensures that navigation is done in least time and in most optimized way, saving energy and providing a optimized way of the doing task.

Given:

A set of test images, each containing

  1. 10x10 grid, making 100 squares
  2. Obstacles marked as black square
  3. Objects defined by three features, viz. Shape, Size and Color

The squares are identified by the coordinate (x,y) where x is the column and y is the row to which the square belongs. Each square can be empty or have an Obstacle or have an Object.

The program returns 2 major findings:

  1. The coordinates of occupied grid:

    The code returns a python list having ‘n’ python tuples, where ‘n’ denotes number of occupied grid in test image. Grid is to be considered occupied if either grid has an Obstacle or an Object. Each tuple has two elements, first element is the x-coordinate of an Obstacle/Object and second element is the y-coordinate of the Obstacle.

  2. The minimum path:

    For each object in the test images, a matching object which is nearest to it is found using compare_ssim function from scikit-image. Object is said to be nearest to another Object, if length of path traversed between two objects is smallest. Traversal is done by moving either horizontally or vertically. The length of the path is determined by the number of moves made during traversal. A* search is used to find this shortest path.

The code return a python dictionary. Format for creating dictionary is as follows:

  • Key for dictionary is a tuple - (x,y) coordinate of an Object
  • first element of dictionary is a tuple - (x,y) coordinate of an object nearest to it
  • second element is a list of tuples having (x,y) coordinate of all grids traversed i.e all route path
  • third element of dictionary should be number of moves taken for traversal

Basic Usage

Run main.py to check the results. You can edit the test image from main.py to see different results.

The process_image.py contains the major code. Check that script to see the main functionality. Follow the comments to undertand the code better.

astarsearch.py contains the implementation of A* search algo.

traversal.py contains the script to traverse through the image to find objects/min path.

Dependencies

Use pip to install.

  1. Install OpenCV for Python

    For Windows

    For Ubuntu

  2. Install skimage (or scikit-image)

    Open command prompt and type in: pip install scikit-image

  3. Install numpy

    Open command prompt and type in: pip install numpy


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].