Skip to content

QuantumSpawner/robotics_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Retail Service Robot

Navigation system of the retail service robot for 2024 NTU Robotics final project.

You may find the project demo video on YouTube.

Gazebo Simulation

In addition to running in the real-world, the project can also be run in the Gazebo simulation environment.

where it receives simulated sensor data from the Gazebo simulator.

Installation

  1. This project uses Docker to simplify the setup of the environment. If you don't have Docker installed, please follow the instructions from Install Docker Engine to install Docker on your system.

  2. Clone this repository and its submodules and change to the project directory:

    git clone --recurse-submodules https://github.com/QuantumSpawner/robotics_project
    cd robotics_project
  3. Set up a Docker environment by:

    docker compose up -d
  4. Attach a shell to the Docker container by:

    docker exec -it robotics-ros bash
  5. Build and source the workspace:

    cd ~/ws
    catkin_make
    source devel/setup.bash

Running the Project

Run in the Real-World

roslaunch robotics robotics.launch

Run in the Simulation

roslaunch robotics simulation.launch

Project Structure

Hardware

We use Scout Mini as our platform and a laptop as the main computer. The robot uses a Hokuyo lidar, a webcam, and an IMU along with the built-in odometry from the Scout Mini to perceive the environment.

Navigation System

The navigation system is based on the ROS navigation stack, consisting of four main parts:

Extended Kalman Filter (EKF)

During development, we discovered that only relying on the Scout Mini’s odometry data is not accurate enough owing to the high wheel slippage of the robot in the indoor environment, especially when the robot is turning. Hence, in order to improve the accuracy of the robot’s pose estimation, we utilized robot_localization ROS package to implement the EKF for localization.

By fusing an additional inertial measurement unit (IMU) that provides accurate orientation data with the odometry data that provides relative accurate translation data, the EKF can provide localization data that is accurate in both orientation and translation.

Simultaneous Localization and Mapping (SLAM)

The ROS package slam_toolbox is selected for the SLAM algorithm over the gmapping package ubiquitous in ROS 1 projects. The slam_toolbox package can also be used as a localizer without requiring additional packages such as amcl provided by the navigation stack that is found not suitable for our inaccurate odometry system during testing, which is required by the gmapping package in order to localize the robot in the map.

The shopping scene is first mapped and stored using slam_toolbox as shown in the figure above, which is used to localize the robot for navigation tasks.

Global Planner

The ROS package global_planner provided by the navigation stack is used for path planning to generate a path from the current robot pose to the goal pose. The global_planner package is based on the Dijkstra algorithm to generate paths that are collision-free based on the map generated by the SLAM system.

The globally accurate localization data from the SLAM is used as references for the global planner to generate a path that is accurate relative to the map.

Local Controller

The ROS package dwa_local_planner provided by the navigation stack is used for local controller to generate velocity commands for the robot to follow the path generated by the global planner. The dwa_local_planner package is based on the dynamic window approach (DWA) algorithm to generate velocity commands that are collision-free based on the lidar data.

The globally accurate localization data from the SLAM is not suitable for the high-frequency local controller as the localization data has lower update frequency and jumps between estimates. Hence the higher-frequency and smooth pose estimates from the EKF are used as references for the local controller to generate velocity commands.

About

Navigation system of the retail service robot for 2024 NTU Robotics final project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published