MPC for UGVs in Unknown Environments

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

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