Overview
In a team of three, we designed a cognitive architecture for a TIAGo robot working autonomously after an earthquake. We designed the components, their interfaces and interactions first, then built the architecture as a ROS Noetic prototype with one node per component, custom messages and services. The nodes use stub logic: the purpose of the prototype is to validate the design and its data flow.

Architecture
- Sensing: LiDAR and sonar, an RGB-D camera, a microphone and a wrist force sensor.
- Navigation: 3D SLAM, path planning and a navigation controller.
- Victim handling: victim detection, triage and a speaker service to talk to people.
- Structural risk: crack and weak-wall detection, published as a
RiskReportmessage. - Supervision: real-time victim and risk alerts, mission reports, and a GUI from which a human supervisor can send manual requests.
The design uses the Observer and Strategy patterns and is documented with component, sequence and ROS-graph diagrams.
My contribution
I was the main contributor to the repository:
- Refined the component and sequence diagrams and the ROS graph.
- Documented the triage system and added the
RiskReportmessage. - Added launch files and rosbag test data.
- Set up rostest integration tests, with a GitHub Actions workflow that builds the workspace and runs them in a ROS container on every push and pull request.