Skip to content

Eymo is a compact robotic companion blending machine learning and generative AI to create personalized and interactive experiences. It learns from its interactions, offering customized conversations, entertainment, and learning opportunities. Eymo is the perfect blend of technology and companionship, making every moment more engaging and enjoyable.

License

Notifications You must be signed in to change notification settings

xavi-burgos99/eymo

Repository files navigation

EYMO banner

EYMO

A compact robotic companion blending machine learning and generative AI to create personalized and interactive experiences.
Report bug · Request feature

Table of contents

Introduction

Eymo is a compact robotic companion blending machine learning and generative AI to create personalized and interactive experiences. It learns from its interactions, offering customized conversations, entertainment, and learning opportunities. Eymo is the perfect blend of technology and companionship, making every moment more engaging and enjoyable.

Video Demonstration

The video demonstration showcases EYMO's features and capabilities: Video

Features

  • Voice Assistant: Eymo includes a voice assistant that leverages cloud technology for advanced speech recognition. This enables Eymo to understand and respond to a wide range of voice commands, making interactions smooth and intuitive.

  • Mobile Control: Eymo can be controlled via dedicated mobile applications available for both Android and iOS. These apps provide a user-friendly interface to manage Eymo's functions, send commands, and receive updates, ensuring you stay connected with your robotic companion at all times.

  • Obstacle Detection and Avoidance: Eymo is equipped with sensors that detect obstacles and prevent it from colliding with objects or falling off edges, such as tables. This feature ensures Eymo navigates safely and reliably in various environments.

Mobile Apps

We have developed mobile applications to control the EYMO Robot from your smartphone. There are applications available for both major mobile operating systems:

  • Android Application: Our Android app allows you to easily control the robot and send commands, as well as to share phone's location with the robot voice assistant. If you want to have access to the application, please contact the developers.
  • iOS Application: Similarly, we have an iOS app for iPhone users, providing the same functionality for controlling the robot movement.

These applications enable seamless interaction with the robot, making it easy to operate and manage from anywhere.

Installation

This section will guide you through the installation process of the EYMO project. The project is divided into two main parts: the cloud and the physic robot.

The cloud part is responsible for the communication between the robot and the cloud, and the physic robot part is responsible for the robot's movements and sensors.

Prerequisites

Before you begin, ensure you have the following installed on your system:

  • Python 3.12 or higher

Cloud

To set up the cloud part of the project, follow these steps:

  1. Clone the repository and install the required packages:
    git clone https://github.com/xavi-burgos99/eymo.git
    cd eymo
    pip install -r requirements.txt
  2. Run the cloud server on port 7125:
    uvicorn src.cloud.main:app --reload --port 7125
    If you want to run it using HTTPS, use this command instead:
    uvicorn src.cloud.main:app --reload --port 7125 --ssl-keyfile ./src/cloud/static/key_tst.pem  --ssl-certfile ./src/cloud/static/cert_tst.pem
  3. The cloud server will be running on http://localhost:7125/ or your server IP address.

Physic Robot

  1. Clone the repo and run the eymo.sh script to install all dependencies and prepare the Raspberry Pi for the robot:
cd eymo
./eymo.sh

The eymo.sh script will handle the installation of all necessary dependencies and set up your Raspberry Pi for the robot. Once the script completes, the robot will be ready to receive commands from the cloud and execute them. It will also be capable of sending information back to the cloud.

What's included

Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this:

src/
├── rpi/
│    ├── logs/
│    ├── models/ 
│    ├── services/
│    ├── static/
│    └── main.py     
├── arduino/
│   ├── MotorControlModule/
│   ├── ObstacleDetectionModule/
│   ├── ServoMovementModule/
│   ├── utilities.hpp
│   ├── arduino-eymo.h
│   └── arduino.ino
└── cloud/
    ├── actions/
    │   ├── gemini/
    │   ├── test/
    │   ├──BaseAction.py
    │   └── ...
    ├── externals/
    │   ├── TextToSpeech.py
    │   ├── BaseApi.py
    │   └── ...
    ├── routers/
    │   ├── model/
    │   ├── .env.template
    │   ├── Security.py
    │   └── ActionRouter.py
    ├── dependencies.py
    └── main.py 
LICENSE.md
README.md

Bugs and feature requests

Have a bug or a feature request? Please, search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue.

Creators

  1. Xavier Burgos

  2. Yeray Cordero

  3. Javier Esmorris

  4. Gabriel Juan

  5. Samya Karzazi

Acknowledgement

This project has been made for the RLP (Robotics, Language and Planning) subject of the Computer Engineering degree at the UAB (Universitat Autònoma de Barcelona). We would like to thank our professor Fernando Vilariño for his support and guidance throughout the project.

The Cloud project was built for the MS (Multimedia Systems) subject in the Computer Engineering degree at UAB (Universitat Autònoma de Barcelona). We want to express our gratitude to our professor Jordi Serra for his assistance and support during this project in GCP (Google Cloud Platform).

References

License

Code and documentation copyright 2024 EYMO. Code released under the MIT License.

About

Eymo is a compact robotic companion blending machine learning and generative AI to create personalized and interactive experiences. It learns from its interactions, offering customized conversations, entertainment, and learning opportunities. Eymo is the perfect blend of technology and companionship, making every moment more engaging and enjoyable.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published