Skip to content
 
 

Latest commit

 

History

102 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 final_project_arquitectura

Build Tests License: MIT Ubuntu 24.04 ROS 2 Jazzy

Final project for the 'Arquitectura Software para Robots' subject (2024–2025).

Built on ROS 2 Jazzy, this system allows a robot to detect a nearby person, initiate a dialogue, and autonomously guide them to the position where their chosen degree is taught using navigation and behavior trees.


🧠 What does this project do?

  • Detects people nearby using an ELP stereo camera and 3D point cloud processing.
  • Uses YOLO (v8) to detect people in the image.
  • Projects the 2D detection into a 3D point cloud to estimate real-world distance.
  • When a person approaches the "base" (less than 1 meter to the camera), the robot starts a dialogue to ask which degree program they are interested in.
  • A Kobuki robot with Nav2 autonomously navigates to the corresponding classroom or position, wait a few seconds, and returns to the base.
  • A Behavior Tree orchestrates the flow of the main computer (the one with the camera): Detection, dialogue and communication.
  • A FSM orchestrates the behaviour of the Kobuki Robot: Communication and autonomous navigation.

📦 How to install our proyect

Tested on Ubuntu 24.04 and ROS 2 Jazzy.

# Clone the repo inside your ROS 2 workspace
git clone https://github.com/Amanza17/final_project_arquitectura.git

# Install dependencies
cd ~/final_project_arquitectura
rosdep install --from-paths src --ignore-src -r -y
cs import src < src/hri/thirdparty.repos

# Build
colcon build --symlink-install

# Source
source install/setup.bash

📁 Project Structure

├── bt
│   └── pc.xml
├── LICENSE
├── README.md
├── src
│   ├── ThirdParty              # Dependencies for Kobuki
│   ├── depth_worker            # Transforms detections 2D to 3D
│   ├── elp_stereo_camera       # Drivers for 3D camera
│   ├── hri                     # Voice
│   ├── kobuki                  # Drivers for Kobuki
│   ├── navigation_robot        # Client and server for the navigation
│   ├── pfinal_pc               # Code for de main computer
│   ├── thirdparty              # Other dependencies
│   └── yolov8_ros              # Object detection
└── yolov8m.pt


How to execute

PC:

ros2 launch pfinal_pc final.launch.py
ros2 run pfinal_pc bt_runner

Kobuki:

ros2 launch kobuki kobuki.launch.py lidar_XX:=true  #change flag depending on lidar model
ros2 launch kobuki navigation.launch.py
ros2 run navigation_robot destination_parser
ros2 run navigation_robot server
ros2 run navigation_robot client

👥 Group Members


🎦 Multimedia

Behaviour of the main pc: Click here! Video trying both parts: Click here!


📄 License

This project is licensed under the MIT License.


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages