Final Project: Search and Rescue#
Overview#
Due Date |
May 9, 2026, 11:59 PM EST (preferred); May 12, 2026, 11:59 PM EST (hard deadline) |
Total Points |
100 points |
Submission |
Canvas (zip the |
Collaboration |
Groups of 2. |
Late Policy |
10% deduction per calendar day, up to 3 days. Zero after 3 days. |
Peer Review |
Final grade: 60% assignment grade + 40% peer review score. |
Description
This is a group project (2 students per group). You will
build a ROS 2 system that commands a rosbot to perform a
search and rescue mission in a simulated disaster zone. The
robot must:
Navigate to a series of predefined search zones using Nav2.
At each zone, call a simulated detection service (no vision – a simple dictionary lookup) to check for survivors.
If a survivor is found, broadcast a TF frame marking their location and call a notification service to report the find.
After visiting every zone, return to the base station.
The robot’s decision-making is orchestrated by a behavior tree
built with py_trees and py_trees_ros. All mission
parameters (search zones, base station pose, BT tick rate) are
loaded from a YAML parameter file – see the
Parameter File section in
Requirements for the exact schema.
Learning Objectives
Design and implement a multi-level behavior tree with
conditions, actions, and composites (Sequence and
Selector). Understand memory=True vs memory=False
for reactive and resuming behavior.
Use the NavigateToPose action to send the robot to
goal poses on a known map. Handle navigation success and
failure within the behavior tree.
Define and implement custom .srv interfaces
(DetectSurvivor and ReportSurvivor). Call them
from behavior tree action nodes using synchronous service
clients.
Broadcast static TF frames for discovered survivors
relative to the map frame. Use tf2_ros to publish
and verify transforms.
Load mission parameters (search zones, base station pose, BT tick rate) from a YAML file. Expose at least one value as a launch argument for runtime override.
Write a Python launch file that starts all required nodes, loads the parameter file, and exposes launch arguments. Integrate with the Nav2 stack and Gazebo simulation.
Suggested Timeline
You have two weeks (April 27 → May 9, preferred; May 12 hard deadline). The schedule below is a suggestion; adjust based on your group’s pace.
Period |
Duration |
Tasks |
|---|---|---|
Days 1 to 3 |
3 days |
Read the assignment carefully. Review Lectures 12 and 13
(behavior trees, Nav2). Launch the simulation, build a
map of the world with |
Days 4 to 7 |
4 days |
Implement the behavior tree leaf nodes: |
Days 8 to 11 |
4 days |
Assemble the full behavior tree in the entry point script. Write the launch file. Integrate with Nav2. Test the full pipeline end to end: all zones visited, survivors detected and reported, TF frames broadcast, robot returns to base. |
Days 12 to 14 |
3 days |
Write |