Ekspertyza · Systemy dla robotów
Oprogramowanie dla robotów: warstwa decydująca o ruchu, moduł widzenia i moduł słuchu. Dziś mamy weryfikację offline i symulację — nie mamy niczego, co steruje prawdziwym silnikiem.
Piszemy kinematykę, weryfikację trajektorii i odtwarzalną symulację fizyczną, z bramkami, które blokują, gdy brakuje dowodu. Do widzenia mamy prototyp na stałej kamerze, nie na robocie. Do dźwięku na robocie nie mamy nic zbudowanego, i strona mówi to wprost, zamiast pożyczać dowody z telefonii. Nie pracujemy z ROS.
Ofertă, cu condițiiAm rulat azi tot ce se poate rula. Stratul de control există și e serios, dar e offline: un modul propriu de cinematică pentru un braț cu șase axe, care a rezolvat 8.400 din 8.400 de puncte de traseu, și un validator de fizică pe MuJoCo 3.10.0 cu 34 de teste trecute, plus 14 teste pe partea de vizualizare. Amândouă declară în propria sursă că nu au transport către hardware și nu pot comanda un robot real. La vedere avem un prototip propriu — detecție și urmărire de persoane pe cameră IP fixă — cu un singur comit și cu directorul de teste gol. La audio pe robot avem zero: tot ce e pe disc e voce de call-center sau bibliotecă terță de telefonie, iar singura lucrare acustică proprie s-a încheiat cu un rezultat negativ, scris în aplicație. ROS: zero instalat, zero scris. Regula cere minimum două implementări proprii pentru „am făcut”; pe control le am, dar niciuna nu atinge hardware, iar celelalte două straturi ale serviciului sunt sub prag. Deci: ofertă cu condiții, cu granițele desenate.
Software-ul unui robot are trei straturi care se strică diferit: ce vede și aude, ce decide, și ce trimite spre motoare. Pe primele două avem lucrări proprii cu teste care rulează. Pe al treilea — puntea către hardware — nu avem nimic, iar asta e granița serviciului, nu un detaliu de implementare. Două dintre codurile noastre o spun în propriul lor antet, în engleză, exact ca să nu poată fi citite greșit: modulul de cinematică nu are transport către hardware și nu poate comanda un robot real.
Ce există pe partea de mișcare e verificare înainte de mișcare. Un modul propriu calculează cinematica directă, jacobianul și cinematica inversă pentru un braț cu șase axe, cu o rezervă impusă față de limitele fiecărei axe, și a fost folosit ca să verifice un traseu întreg: 8.400 de puncte cerute, 8.400 rezolvate, cu viteza maximă pe axă rămasă sub 8% din limita de catalog. Separat, un validator de fizică rulează pe MuJoCo 3.10.0 pe procesor, cu pas de calcul de o milisecundă, în șase scenarii, fiecare de câte două ori, cu aceeași sămânță — și cele două rulări dau amprente identice. Determinismul nu e o afirmație, e o comparație de sume de control.
Ce există pe partea de vedere e mai puțin, și e cinstit să spunem cât. Un prototip propriu face detecție și urmărire de persoane pe fluxuri de cameră IP, cu un detector mic din familia YOLO, un urmăritor multi-obiect, estimare de postură pentru cinci stări și control de rotire-înclinare-transfocare al camerei. Are un singur comit și directorul de teste gol. Iar diferența dintre asta și vederea unui robot e reală, nu formală: camera de pe un robot se mișcă odată cu el, scena e aproape, expunerea se schimbă la fiecare pas, iar bugetul de întârziere e altul, pentru că imaginea trebuie să ajungă la o decizie de mișcare, nu la un ecran. Nu avem cameră de adâncime, nu avem calibrare de cameră, nu avem odometrie vizuală.
Pe partea de audio pentru roboți nu avem nimic construit, și nu vom împrumuta dovezi din altă parte. Avem lucrări reale de voce pentru telefonie și pentru asistenți conversaționali, dar un microfon pe un robot are alte probleme: zgomotul propriu al mașinii, ventilatoare și servomotoare care pornesc exact când robotul se mișcă, direcția din care vine vocea, ecoul din încăpere și distanța variabilă. Singura lucrare acustică proprie pe care o avem s-a terminat cu un rezultat negativ, scris în aplicație, și îl publicăm ca atare — pentru că un rezultat negativ măsurat e mai util decât o promisiune.