Expertiză · Sisteme pentru roboți
Software pentru roboți: stratul care decide mișcarea, modulul de vedere și cel de auz. Azi avem verificare offline și simulare — nu avem nimic care comandă un motor real.
Scriem cinematică, verificare de traiectorie și simulare fizică reproductibilă, cu porți care blochează atunci când dovada lipsește. Pentru vedere avem un prototip pe cameră fixă, nu pe robot. Pentru audio pe robot nu avem nimic construit, și pagina spune asta în loc să împrumute dovezi de la telefonie. Nu lucrăm cu 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.