Skip to content

3270939387/ME5413_Final_Project

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

150 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ME5413 Final Project

Autonomous navigation, perception, and localization pipeline for the NUS ME5413 final project.

This workspace is built for ROS Noetic on Ubuntu 20.04 and includes simulation, sensor fusion, and global/ local localization components.

Repository Overview

Top-level ROS packages in this workspace:

  • fast_gicp — fast Generalized ICP alignment and point cloud registration
  • hdl_global_localization — global localization service for point cloud matching
  • hdl_localization — local lidar-based localization and scan matching
  • interactive_tools — RViz plugin tools and interactive panels
  • jackal_description — Jackal robot description for simulation
  • me5413_world — world simulation, navigation, and perception pipeline for the project
  • ndt_omp — NDT-based registration optimized with OpenMP

Requirements

  • Ubuntu 20.04
  • ROS Noetic
  • Gazebo with gazebo_ros
  • catkin_make build tool
  • Python 3 for ROS Python nodes and utilities

Install Dependencies

From the workspace root:

cd ~/ME5413_Final_Project
rosdep install --from-paths src --ignore-src -r -y

Additional simulation dependencies may be required:

sudo apt update
sudo apt install -y \
  ros-noetic-sick-tim \
  ros-noetic-lms1xx \
  ros-noetic-velodyne-description \
  ros-noetic-pointgrey-camera-description \
  ros-noetic-jackal-control

If you use the number detector node, install the Python OCR dependency:

python3 -m pip install --user easyocr

Build Instructions

cd ~/ME5413_Final_Project
catkin_make
source devel/setup.bash

Gazebo Model Setup

The simulation expects Gazebo models to be available under ~/.gazebo/models.

mkdir -p ~/.gazebo/models

git clone https://github.com/osrf/gazebo_models.git
cp -r gazebo_models/* ~/.gazebo/models
cp -r ~/ME5413_Final_Project/src/me5413_world/models/* ~/.gazebo/models

Running the Project

Start the simulated world:

source ~/ME5413_Final_Project/devel/setup.bash
roslaunch me5413_world world.launch

Run the navigation and perception stack:

source ~/ME5413_Final_Project/devel/setup.bash
roslaunch me5413_world navigation.launch

Key Launch Files

  • src/me5413_world/launch/world.launch — starts the Gazebo environment and robot simulation
  • src/me5413_world/launch/navigation.launch — launches the full navigation pipeline

Project Features

  • ROS-based autonomous navigation using move_base and Jackal robot simulation
  • 3D localization support with global and local lidar registration
  • Waypoint navigation via src/me5413_world/scripts/waypoint_nav.py
  • Visual number detection pipeline via src/me5413_world/scripts/visual.py
  • RViz support for visualization and interactive tool panels

Notes

Waypoints are defined in src/me5413_world/config/waypoints.yaml.

The workspace is structured as a catkin workspace with a top-level src/ directory containing all ROS packages.

License

MIT License. See LICENSE for details.

About

NUS ME5413 Autonomous Mobile Robotics Final Project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 60.5%
  • C++ 33.8%
  • CMake 4.4%
  • Other 1.3%