Solution for travelling ethiopia problem
# 🇪🇹 Travelling Ethiopia — AI Search Algorithms & Robot Simulation
This project implements various AI search algorithms for pathfinding across Ethiopia's city network and simulates robot navigation using **Gazebo** with ROS 2.
---
## Features
### Search Algorithms
- **BFS / DFS** — Uninformed search for finding paths
- **UCS** — Uniform Cost Search for optimal paths
- **A\*** — Heuristic search for faster pathfinding
- **MiniMax** — Adversarial search for coffee quality optimization
### Robot Simulation
- **Gazebo Physics Engine** — Full 3D simulation environment with ROS 2 (Jazzy)
- **Three-Wheel Differential Drive** — Custom URDF robot model
- **Sensor Suite** — Proximity sensor, gyroscope (IMU), and RGB camera
- **City World** — Ethiopia state-space map as a `.world` file with Cartesian coordinates
- **ROS 2 Navigation** — Path planning and execution via ROS 2 topics
---
## Project Structure
```
Travelling-Ethiopia/
├── data/ # Graph data and city coordinates
│ ├── graph1.py # BFS/DFS graph
│ ├── graph2.py # UCS/A* weighted graph
│ ├── graph3.py # Heuristics
│ ├── graph4.py # Coffee tree (MiniMax)
│ └── graph5.py # Robot navigation graph
├── search/ # Search algorithm implementations
│ ├── bfs_dfs.py # BFS and DFS
│ ├── ucs.py # Uniform Cost Search
│ ├── astart.py # A* Search
│ ├── advs.py # MiniMax
│ └── robot.py # Robot navigation logic
├── myrobot/ # ROS 2 workspace
│ └── src/
│ └── my_robot/
│ ├── my_robot/
│ │ ├── ethiopia_search.py # BFS ROS 2 search node
│ │ └── my_node.py # Base ROS 2 node
│ ├── urdf/
│ │ └── three_wheel_robot.urdf.xacro # Robot model
│ ├── worlds/
│ │ └── ethiopia.world # Gazebo world file
│ ├── set …