Skip to content

shrirag10/Gridwalk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gridwalk

Desktop mission planner for Autonomous Mobile Robots (AMRs). Loads lidar/SLAM-generated maps, lets you place waypoints interactively, and computes smooth any-angle paths using Theta*. Built for factory floor navigation.

Features

  • Theta path planning*: Any-angle pathfinding — shorter, smoother paths than grid-locked A*
  • Lidar map processing: Otsu thresholding + morphological cleanup on noisy JPEG inputs
  • Factory interior detection: Flood-fill exterior masking keeps paths inside walls
  • Bezier smoothing: Corner smoothing with edge classification (Straight / Bezier / Pivot)
  • Robot simulation: Animate the planned mission with configurable speed
  • DXF import: Convert AutoCAD floor plans to raster maps
  • Metric export: Path coordinates in both pixel and real-world units

Tech Stack

  • Python: 3.8+
  • GUI: Tkinter
  • Image processing: OpenCV, Pillow
  • Path planning: Custom Theta* implementation
  • CAD import: ezdxf

Architecture

amr_planner/
├── config.py               # Pipeline config and state
├── models.py               # Position, Pose, Location, Edge
├── enums.py                # Pipeline stages, edge types
├── converters/
│   ├── dxf_converter.py    # DXF -> raster
│   └── image_cleaner.py    # JPEG noise removal, Otsu threshold
├── planning/
│   ├── path_planner.py     # Theta*, occupancy grid, safety inflation
│   └── waypoint_manager.py
├── simulation/
│   └── simulator.py        # Robot animation
└── ui/
    ├── gui.py              # Main Tkinter app
    └── waypoint_placer.py  # Interactive waypoint placement

Image Processing Pipeline

Raw Lidar JPEG -> Gaussian Blur -> Otsu Threshold -> Morphological Cleanup -> Exterior Masking -> Binary Occupancy Grid

Setup

git clone https://github.com/shrirag10/Gridwalk.git
cd Gridwalk
pip install -r requirements.txt
python3 main.py

Usage

  1. File -> Open Image — load a lidar map (.jpg, .png) or DXF floor plan
  2. Click on the map to place waypoints
  3. Plan Mission — runs Theta* and renders the smoothed path
  4. Simulate — animates the robot traversing the route

Requirements

numpy>=1.21.0
opencv-python>=4.5.0
matplotlib>=3.4.0
Pillow>=8.3.0
ezdxf>=0.17.0

License

MIT

About

Desktop AMR mission planner using Theta* any-angle path planning on lidar/SLAM maps. Interactive waypoint placement, Bezier smoothing, DXF import, and robot simulation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages