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) |
You can video demos of the project here
The website for the project is located at: https://cudelivery.azurewebsites.net/. Make sure to checkout our website to place new deliveries!
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 |
This project involves both software and 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)
- 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
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.
For more detailed information about the design of the project please refer to the Final Report and the diagrams folder.
For detailed instructions on how to set up the system please refer to Appendices B & C of the Final Report
For detailed instructions on how to run system please refer to Appendix D of the Final Report
- Make sure the robots are all set up by following the "Setting up the Project" step.
- Make sure the program is running on the robot.
- Navigate to the project website and register the robot to the website (ONLY SUPER USERS CAN DO THIS ACTION.)
- Click on the "Register" button if you do not have an account on the website.
- Login to the website using your newly created account.
- At the home page click on the "Launch a Delivery" button.
- Once you have created your delivery, you can select it on the home page to track its status.
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.
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.
As previously mentioned this is a continuous project. You can find the previous iterations of the project here for reference: