Skip to content

The goal of this project is to have autonomous mail delivery in the Carleton University's tunnels using iRobot Create robots!

License

Notifications You must be signed in to change notification settings

bardia-p/carleton-mail-delivery-robot

Repository files navigation

Carleton Mail Delivery Robot System

Deployment Status: Build and deploy JAR app to Azure Web App - cudelivery

ROS Colcon Build Status: ROS Test

Web App Build Status: Java CI with Maven

Diagram Generation Status: Generate Diagrams

Team Members

Description

This project is being completed to fulfill the 2023 - 2024 Capstone project requirements for SYSC 4907 at Carleton University.

The Carleton Mail Delivery Robot system aims to automate Carleton's existing mail deliver system. With the placement of several Bluetooth beacons throughout the tunnels, the robot will be able to navigate across Carleton using a LiDAR sensor. For the purpose of this project, the robot's navigation system should allow it to reach its intended destination while detecting and avoiding any obstacles. The robot must be resilient and should be able to find its destination in the event that it strays off its original course. The system will be controlled through a web application component which will allow users to give the robot a desired destination.

Use Case Diagram (Web App) Use Case Diagram (System)

Demo

You can video demos of the project here

Implementation

Website

The website for the project is located at: https://cudelivery.azurewebsites.net/. Make sure to checkout our website to place new deliveries!

Robots

Here is a summary of the hardware implementations of the project:

Iteration 1 using iRobot CREATE 1 (LEGACY) Iteration 2 using iRobot CREATE 2 Iteration 3 using iRobot CREATE 3

Project Components

This project involves both software and hardware components.

Hardware Components

  • an iRobot CREATE 2 or 3
  • a 3D printed mailbox chassis to hold external components and mail
  • a power bank
  • a Raspberry Pi 4B to controls the robot's actions
  • a LiDAR to provide environmental data for navigation
  • 2 IR sensors (ONLY USED FOR CREATE 1)

Software Components

  • ROS 2 (Foxy or Humble) which is a set of libraries used to communicate with the robot
  • the AutonomyLab create_robot repository which allows us to program the robot using Python (USED ONLY FOR CREATE 1 and 2)
  • Slamtec Lidar Ros2 package to allow the robot to communicate with the LiDAR
  • Spring Boot for the web application

Project Design

The project is broken down into 2 major components:

  • ROS Backend: this package includes all the code related to the ROS portion of the application
  • Web App: this package includes all the code related to the web application portion of the project.

A component diagram summarizing the relationship between these packages.

For more detailed information about the design of the project please refer to the Final Report and the diagrams folder.

Setting up the Project

For detailed instructions on how to set up the system please refer to Appendices B & C of the Final Report

Running the Project

For detailed instructions on how to run system please refer to Appendix D of the Final Report

Using the Project

  1. Make sure the robots are all set up by following the "Setting up the Project" step.
  2. Make sure the program is running on the robot.
  3. Navigate to the project website and register the robot to the website (ONLY SUPER USERS CAN DO THIS ACTION.)
  4. Click on the "Register" button if you do not have an account on the website.
  5. Login to the website using your newly created account.
  6. At the home page click on the "Launch a Delivery" button.
  7. Once you have created your delivery, you can select it on the home page to track its status.

Miscellaneous

This miscellaneous section includes the all the design related aspects of the project. This includes CAD models for the robot chassis and frontend designs for the web app.

Tools

To help with the development of the project, the team has created a few tools that allow for quick tests. The tools are as follows:

  • Beacon Analyzer: This tool allows the developers to quickly measure the range and signal strength of the beacons and record them in a CSV file.
  • Wall Follow Simulator: This tool allows the developers to test the wall following algorithm of the robot in a Turtle simulator.
  • Firebase IP Service: This tool allows the Raspberry Pi to send its IP to a Firebase Realtime Database on boot for easy SSH access to the robot without connection to an external monitor.

Previous Iterations of the Project

As previously mentioned this is a continuous project. You can find the previous iterations of the project here for reference:

About

The goal of this project is to have autonomous mail delivery in the Carleton University's tunnels using iRobot Create robots!

Resources

License

Stars

Watchers

Forks

Packages

No packages published