IA712: Mobile Robotics - Final Project
Welcome to the final phase of the course. This phase is dedicated to synthesizing everything you have learned about ROS 2, Gazebo, SLAM, and Nav2 to build a fully autonomous robotic system.
Overview
- Duration: 18 hours (6 sessions) + possible after-school investment.
- Team structure: 8 teams (approx. 4 students per team).
- Objective: In the era of AI-assisted coding, our focus shifts from merely writing functional code to system integration and engineering validation. You will be evaluated on how well your components work together as a robust system.
Project requirements
All projects need to adhere to the following constraints:
- Software: ROS 2 and Gazebo.
- Decision making: Use Behavior Trees (BT) instead of Finite State Machines (FSM).
- One-click execution: A master launch file should start the entire stack (simulation + navigation).
- Example:
ros2 launch team_x_pkg bringup.launch.py
- Management: Version control via GitHub.
- Deadline: Project report submission by June 21st.
Deliverables
Each team must provide the following:
- GitHub repository: - A clean ROS 2 workspace structure.
- Custom nodes, launch files, Gazebo world files, etc.
- A comprehensive
README.md with installation, execution instructions, etc.
- Project report:
- Max 10 pages in PDF format.
- Content: team members and task distribution, system architecture (including a detailed diagram), and a “lessons learned” section detailing challenges and solutions.
- Final presentation:
- Session 18: 10-minute presentation + 10-minute Q&A, per team.
Suggested timeline
| Session |
Focus area |
Key milestones |
| L13 |
Kick-off |
Form teams and select projects. |
| L14 |
Architecture |
Define system architecture, initialize GitHub repo and basic launch files. |
| L15 |
Development |
Implementation of custom nodes and core logic. |
| L16 |
Development |
Continued coding and logic refinement. |
| L17 |
Integration |
System integration, debugging, and edge-case testing. |
| L18 |
Grand finale |
Final demonstrations and report submission. |
Projects
Project A: Multi-robot warehouse logistics
Scenario:
In a simulated warehouse environment, multiple autonomous mobile robots (AMRs) must coordinate to transport goods from one zone (e.g., unloading) to another (e.g., sorting) while avoiding deadlocks or collisions.
Challenges:
- Implement a centralized or decentralized traffic manager to prevent deadlocks in narrow aisles.
- Correctly manage namespaces and TF trees (e.g.,
/robot1/cmd_vel, /robot2/cmd_vel) within a shared global map.
- Develop dynamic responses to path blockages caused by other robots.
Deliverables:
- Multi-robot simulation launch files for at least 3 robots.
- Implementation of a conflict-resolution algorithm.
- Bonus: simulate communication failures (e.g., 30% packet loss) and demonstrate system robustness.
Project B: Autonomous search and rescue
Scenario:
In a simulated disaster zone, a robot must autonomously explore an unknown environment, locate “victims” (represented by AprilTags or specific colored cylinders), and report their precise coordinates.
Challenges:
- Implement autonomous exploration algorithms (e.g., frontier-based or RRT-based exploration) without human intervention.
- Maintain map quality during repeated searches (considering loop closure and SLAM stability).
- Use a camera to detect targets and project their positions from the camera frame to the
map frame using tf2.
Deliverables:
- An autonomous exploration node capable of mapping >90% of the zone.
- A final map marked with the identified locations of all victims.
- Bonus: Provide a quantitative comparison of “greedy frontier exploration” vs. “information gain-based exploration” regarding zone coverage over time.
Project C: Human-aware service robot
Scenario:
In a populated environment (e.g., a hospital or mall), the robot must navigate from Point A to Point B while adhering to social norms (e.g., maintaining a respectful distance from humans).
Challenges:
- Tune local planners to predict and avoid moving pedestrians.
- Use
nav2_costmap_filters to dynamically define social zones.
- Handle blocked goals gracefully (e.g., wait, retry, or back off).
Deliverables:
- Implementation of costmap filters for social zones.
- A Behavior Tree that dictates the robot’s strategy when encountering pedestrians.
- Bonus: Create a specific “trapped” scenario where the robot is surrounded by dynamic obstacles and implement recovery behaviors to resolve it.
Project D: High-speed autonomous racing
Scenario:
On a race track, the robot (preferably using an Ackermann steering model) must complete laps as quickly as possible without colliding with track boundaries.
Challenges:
- Manage the latency between perception and execution at high speeds.
- Implement advanced controllers like Pure Pursuit or Model Predictive Control (MPC), as default Nav2 plugins may be conservative.
- Calculate and follow the “racing line” rather than just the track centerline.
Deliverables:
- A custom controller plugin for Nav2 or a standalone high-speed control node.
- A comparison of lap times under conservative and aggressive parameter tuning.
- Bonus: Analyze the impact of odometry drift by introducing artificial noise into it and plot the resulting degradation in lap times.
Teams in 2026
| Project A |
Project B |
Project C |
Project D |
| AIBot (4) |
RobotZ (4) |
AgoraBot (4) |
Speedy Gonzales (4) |
| GazeBest (4) |
JazzyGo (4) |
Robobo (4) |
Sonic (3) |