MPC for UGVs in Unknown Environments

Status: Completed Course: Foundation of Robotics Tools: Python, CasADi, PyBullet, ROS/Gazebo

Abstract

Course project implementing Model Predictive Control (MPC) for Unmanned Ground Vehicles (UGV) navigating unknown environments with obstacle avoidance. The system generates optimal waypoints and controls in real-time using perception-based waypoint generation.

System Model

The system uses a bicycle model with the following state and control variables:

Waypoint Generation

Perception module that converts camera images into navigable waypoints:

MPC Formulation

Results

Successfully demonstrated obstacle avoidance in static and dynamic environments with replanning frequency of 10 Hz. Tested in both PyBullet simulation and ROS/Gazebo environments on Husky robot platform.

Setup

Recommended: Create a separate conda environment

conda create -n FOR_Project python=3.8
conda activate FOR_Project
git clone https://github.com/prakrutk/MPC-for-UGV.git
cd MPC-for-UGV
pip install --upgrade pip
pip install -e .
pip install -r requirements.txt

Run MPC: python3 dynamics/MPC.py

Run Waypoint Generation: python3 Waypoint_generation/Waypoint_new.py