Projekt autonomne vožnje automobila – unutar tvornice

GlobalLogic nam je otkrio neke pojedinosti o zanimljivom projektu na kojem njihovi stručnjaci u Hrvatskoj trenutačno rade za jednog od vodećih svjetskih proizvođača automobila

Jedan od vodećih svjetskih proizvođača u automobilskoj industriji osmislio je rješenje daljinskog upravljanja automobila unutar tvornice u zaštićenom okruženju. Njihovo rješenje razvijeno je u suradnji sa vanjskim dobavljačima, a sastoji se od tri komponente:

  • Vanjska komponenta za daljinsko upravljanje automobila
  • Komponenta za sigurnost i razmjenu poruka u automobilu
  • Jedinica za upravljanje automobilom

Osim toga, tvornica je opremljena senzorima i kamerama koje u svakom trenutku prate poziciju automobila te na taj način osiguravaju praćenje i navođenje automobila u stvarnom vremenu. Ovime se osigurava da se automobil transportira od proizvodne linije do linije za distribuciju bez potrebe za osobom unutar samog automobila. Naime, prije su djelatnici prevozili aute preko testne linije do distribucijskog područja, a sada se daljinski upravlja vozilom pri čemu se koriste sustavi upravljanja ubrzanja, kočenja, i upravljanja smjerom.

Na tom putu, automobil prolazi i kroz razne testove poput prolaska preko neravne podloge, kontrole neočekivanih zvukova unutar automobila, testa vožnje, odnosno ubrzanja, kočenja, upravljanja i slično. Testovima se provjerava ispravnost automobila te omogućava sigurna distribucija na tržište.

Korist od projekta

Projekt donosi višestruke prednosti u odnosu na klasično upravljanje automobilom unutar tvornice. Prije svega, sigurnost je jedna od ključnih prednosti. S obzirom da se u vozilu ne nalazi vozač, smanjuje se mogućnost ozlijede/nesreće na radu. Također, smanjuje se i mogućnost ljudske pogreške kojom bi se mogao oštetiti novo proizvedeni automobil.

Projekt značajno doprinosi ubrzanju i automatizaciji proizvodnog procesa. U trenutku kada se unutar vozila ugradi programska podrška za daljinsko upravljanje, više nema potrebe za ljudsku interakciju s vozilom do točke distribucije. Automobil se tada daljinski navođen proveze kroz kompletno proizvodno i testno okruženje. Također, budući da djelatnici ne upravljaju automobilom, više automobila može se u isto vrijeme prevoziti preko testne linije do distribucijskog područja.

Navedene prednosti dovode do smanjenja troškova za samog klijenta. Razlog tome su smanjena potreba za ljudskim resursima unutar proizvodnje te smanjena mogućnost oštećenja samih automobila koja mogu dovesti do velikih gubitaka za klijenta.

Izvedba

Projekt je izveden u tri dijela:

  • Vanjska komponenta za daljinsko upravljanje automobila
  • Komponenta za sigurnost i razmjenu poruka u automobilu
  • Jedinica za upravljanje automobilom

Vanjska komponenta odnosi se na poslužitelje koji se nalaze unutar tvornice. Ona skuplja podatke sa senzora koji su postavljeni čitavim proizvodnim putem. Senzori koji se koriste su uglavnom kamere i LIDAR senzori koji služe za detekciju pozicije vozila i eventualnih prepreka unutar unaprijed zadane trase tvornice. S obzirom na te podatke, vanjska jedinica određuje putanju vozila i šalje naredbe vozilu putem sigurnih komunikacijskih protokola vozilu. Vozilo se određenim svjetlosnim signalima identificira prema kameri, te se tako dobiva pozicija vozila na vanjskoj komponenti za upravljanje.

Vanjska jedinica i jedinica za upravljanje vozilom međusobno komuniciraju putem posrednika koji se nalazi unutar programske podrške u vozilu. Posrednik osigurava sigurnu i pouzdanu razmjenu informacija te onemogućava korištenje funkcionalnosti daljinskog upravljanja vozila izvan proizvodnog pogona. Sigurna komunikacija je osigurana putem lanca certifikata i izvođenjem svih potrebnih sigurnosnih provjera (npr. provjera tvornice, provjera stvarnog vremena i sl.). U trenutku kada su obavljene sve sigurnosne provjere i kada je osigurana sigurna komunikacija, posrednička jedinica služi samo za prosljeđivanje poruka od vanjske jedinice do jedinice za upravljanje vozilom i obrnuto.

Jedinica za upravljanje vozilom služi kako joj i ime kaže, za upravljanje u vozilu. Zadužena je za neposredno upravljanje svim podsustavima volana, kočnica, pogonskog sklopa, itd. Naš tim radi na posredničkoj jedinici (Komponenta za sigurnost i razmjenu poruka u automobilu), te usko surađuje sa drugim timovima koji su odgovorni za sve ostale dijelove projekta. Ova jedinica se nalazi unutar ugradbene jedinice u vozilu, te je kao takva izvedena u ugradbenom okruženju. Napisana je u C++ programskom jeziku uz korištenje niza knjižnica funkcija otvorenog i zatvorenog koda.

Osim toga, razvojni tim je odgovoran za razvoj automatiziranih testova kojima je cilj u potpunosti automatizirati testiranje bez korištenja ostalih jedinica koje su dostupne samo u tvornici. To znači da je potrebno razviti aplikacije koje će oponašati ostale jedinice koje se koriste u projektu. Za automatizirane testove koristi se programski jezik Python uz korištenje Pytest radnog okvira, dok se za razvoj testnih okruženja koristi C++ programski jezik uz korištenje gRPC radnog okvira.

Tim

Na projektu sudjeluje više dobavljača koji razvijaju razne komponente sustava. S obzirom da je GlobalLogic zadužen za razmjenu poruka i sigurnosne komponente, izrazito su bitne Embedded vještine. Tako softverski inženjeri, ujedno i C++ developeri Marin Jurjević i Vuk Vojta na ovom projektu koriste vještine C++ 17, embedded Linux, SELinux, Python, Git, Yocto, CMake, OpenSSL, Zuul, Jenkins. S njima usko surađuje Automated Test Engineer Ivan Barišić, koristeći vještine Python/Pytest, embedded Linux, networking, QEMU.

Opisani projekt vam zvuči izazovno? Želite li se pridružiti GlobalLogicovom timu? Provjerite trenutačno otvorena radna mjesta na stranici Karijere.