yzlicloud / qea_2_gauntlet

Robot vacuum localization and path planning for the Quantitative Engineering Analysis 2 Final Project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

qea_2_gauntlet

Code and project files for the Quantitative Engineering Analysis 2 Final Project

Krishna Suresh, James Jagielski, and Evan Lockwood 4/30/2022 - 5/10/2022

Demos

Particle Filter:

RRT*:

Potential field gradient:

IMG_3461.1.mp4

Objective

The objective of this project was to drive a NEATO robot vacuum through a room from a start position to a target zone (the cylinder) while avoiding the obstacles (the boxes and walls).

Levels

This project was split into levels of difficulty where we removed information available for navigation at each level.

Level 1

Task: Navigate to cylinder given map, start position, end position, obstacles.

Method:

  1. Calculate a potential field based on walls, obstacles and goal position
  2. Numerically solved function gradient for parametric.
  3. Follow parametric using Frenet–Serret vectors and apply PIDVA control system

Result:

Level 1 Simulated Script: level1.m

Level 1 Real Script: level1Real.m

Level 2

Task: Navigate to cylinder given start position and end position.

Method:

  1. Place robots at random locations in room and read LIDAR data or collect scans during navigation
  2. Prune data and apply RANSAC classifier to detect edges
  3. Generate potential field function based on target location and obstacles
  4. Follow gradient similar to level1

Result:

Level 2 Simulated Script: level2.m

Level 3

Task: Navigate to cylinder given start position and cylinder size.

Method:

  1. Use similar data capture and obstacle fitting as with level2
  2. Fit circle to remaining lidar data using RANSAC
  3. Once circle position is found plan path using gradient method from level1

Result:

Level 3 Simulated Script: level3.m

Level 4

Task: Navigate to cylinder with near-optimial path given start position and end position.

Method:

  1. Use RRT* to plan near optimal path to goal
  2. Follow path using pure pursuit controller

Result:

Level 4 Simulated Script: level4.m Level 4 RRT* Script: testrrtstar.m

Level 5

Task: Navigate to cylinder with goal location and map (no start position).

Method:

  1. Use a particle filter to localize robot using lidar data.
  2. Once particles have converged, plan to goal with RRT*
  3. Navigate to target using optimal path

Result:

Particle Filter Convergence Script: level5.m

Report

Final_Report.pdf

About

Robot vacuum localization and path planning for the Quantitative Engineering Analysis 2 Final Project


Languages

Language:MATLAB 99.6%Language:M 0.2%Language:Objective-C 0.2%