Informatii generale
- Categorie: Roboti
- Judetul: Brașov
- Surse: GitHub - Marcel-bot/Docs
Descriere
Marcel este un robot umanoid cu design prietenos construit de la 0.
Există multe cazuri în care interacțiunea cu oamenii este necesară,
printre acestea numărându-se: restaurantele, hotelurile, barurile etc. Din diverse cauze, cum ar fi lipsa personalului, unele locații aleg să digitalizeze procesul de interacțiune (ex. Check-In la hotel, comandat la restaurant) prin introducerea unor sisteme, de cele mai multe ori pe bază de tablete. Deși această soluție este una eficientă, nu este de cele mai multe ori cea mai potrivită. Pe lângă nevoia de interacțiune pe care ar avea-o un client cu un chelner, există detalii pe care o simplă aplicație pe o tabletă nu le poate oferi (ex. detalii amănunțite despre modul de preparare, stocul curent, informații pe care uneori poate doar bucătarul le știe).
MARCEL vine ca o soluție comună, încercând să digitalizeze aceste ramuri ale industriei, fără a pierde experiența și calitatea.
Tehnologii
𝐌𝐞𝐜𝐚𝐧𝐢𝐜𝐚:
-
Design și Construcție:
Baza robotului este un cadru octogonal sudat din țeavă de oțel, acoperit cu o placă de aluminiu și panouri laterale printate 3D pentru o structură rigidă și versatilă. Partea superioară și corpul sunt integral printate 3D pentru a permite forme complexe. -
Actuatori:
- 2 Motoare Pas cu Pas Nema 23: Pentru mișcarea precisă a bazei mobile.
- 10 Servomotoare MG966R: Pentru mișcările precise și cuplul mare al brațelor.
- 4 Servomotoare MG90S: Pentru sarcini cum ar fi mișcările încheieturii și ale cleștilor.
-
Mobilitate:
Baza robotului folosește ghidarea diferențială pentru navigație, acționată de motoarele pas cu pas.
Alimentare:
- Alimentare la Priză: Sursă de 24V 10A pentru utilizare staționară.
- Alimentare pe Baterii: Configurație 7s 5p de celule 18650, oferind 25.2V, asigurând mobilitatea.
Eficiență:
- Design Modular: Permite asamblarea, testarea și actualizarea ușoară.
- Printare 3D: Reduce costurile și permite prototiparea rapidă și forme complexe.
𝐄𝐥𝐞𝐜𝐭𝐫𝐨𝐧𝐢𝐜𝐚:
-
Raspberry Pi:
Folosit pentru procesarea datelor și conectarea la server pentru AI. -
ESP32:
Pentru sarcini care necesită procesare mai puternică și mai mult RAM decât un arduino Nano, precum comunicarea și controlul ochilor. -
Arduino Nano:
Controlează circuitele interioare: mâini, gât, mișcarea bazei. -
Motoare Nema 23:
Pentru roți, oferind cuplu mare. -
Servomotoare MG966R:
Pentru gât și mâini, oferind cuplu mare și precizie. -
Servomotoare MG90S:
Pentru palma și încheietură, compacte și accesibile. -
Ecrane pentru Ochi:
Pentru expresivitate și personalitate.
-Senzori de Distanță Ultrasonici:
Pentru prevenirea coliziunilor și mișcare sigură.
𝐒𝐨𝐟𝐭𝐰𝐚𝐫𝐞:
Proiectul conține 3 componente software principale:
- Aplicația desktop
- Server-ul sau “Creierul”
- Microcontrollere
- Aplicația desktop
Aplicația MARCEL este destinată controlului robotului umanoid MARCEL, având șase pagini principale: Acasă, Debug, Cameră, Chat, Mâini și Ochi, fiecare controlând o funcționalitate specifică a robotului.
Tehnologii
Se utilizează NextJS, React, Tailwind și Electron.
Pagini
Acasă
Pagina de acasă permite interacțiunea rapidă cu MARCEL, incluzând chat, gesturi, acțiuni rapide, vorbire, statusul robotului, vizualizarea camerei și o bară de unelte pentru controlul componentelor robotului.
Debug
Pagina de debug facilitează depanarea prin acces la un terminal Linux, console seriale pentru mișcarea mâinii și afișajul ochilor, și jurnale de evenimente ale robotului.
Cameră
Pagina de cameră oferă control asupra camerei, incluzând vizualizarea imaginii, schimbarea rezoluției și modelului de recunoaștere, capturarea instantanee a imaginilor și încărcarea imaginilor pentru vizualizare.
Chat
Pagina de chat permite gestionarea comportamentului conversațional al lui MARCEL, incluzând moduri de comunicare, gestionarea conversațiilor, controlul volumului audio și setările modelului de chat și limbii utilizate.
- Creierul
Creierul lui Marcel funcționează pe un sistem bazat pe evenimente și acțiuni în care anumite input-uri pot cauza alte outputuri.
Inputurile principale:
- Comunicare directă prin chat
- Convorbiri
- Cameră
- Event-uri prestabilite din trecut
- Check-uri temporale
Outputurile principale:
- Executarea comenzilor de terminal
- Programarea altor event-uri
- Pozarea
- Vorbitul
- Ochii cu ecran
- Mișcarea mâinilor, a capului și a roților
Întreg sistemul are și un istoric care poate fi salvat într-un fișier specializat.
- Embedded
MARCEL conține mai multe microcontrolere (Arduino Nano și ESP32) care gestionează diferitele părți hardware.
Ochi
Ochi sunt controlați de un ESP32 în cap. Acesta comunică cu cel din trunchi, primind comenzi de la acesta și afișându-le folosind randare diferențială pe ambii ochi.
Trunchi
Trunchiul și toate componentele atașate sunt gestionate de un ESP32 principal. Acesta primește comenzi direct de la bază și le transmite mai departe către mâini și cap.
Cameră
Camera este separată de restul mecanismului, comunicând direct prin protocolul http cu creierul. Utilizează codul implicit ESP32 cam.
Mâini
Mâinile execută mișcări motorii pre-calculate primite din exterior. Niciun calcul nu este realizat pe Arduino Nano, totul fiind făcut extern și venit pre-calculat.
Picioare
Picioarele (senzori de distanță + roți) sunt controlate de un Arduino Nano și un ESP32. Arduino Nano citește constant ieșirea senzorului și o trimite pentru procesare, în timp ce ESP32 controlează roțile și mișcarea direct prin ghidarea diferențială.
Cerinte sistem
AI hosting:
- 16 GB ram
- 15 GB disk space
- 2 GHz Cpu
- Nvidia RTX 3070
App: - 1.5 Ghz Cpu
- 2 GB Ram
- 512 MB
Realizatori
Stefan Istratie
- Scoala: Colegiul Național de Informatică „Gr. Moisil” Brașov
- Clasa: 10
- Judet: Brașov
- Oras: Brașov