Sånn lager utviklerne framtidas pantemaskin – med pantelapp på mobilen

Nå skal du ikke lenger trenge å vente til panteautomaten er ferdig. Vi besøkte Tomra, der utviklerne jobber med det de kaller fremtidens panteopplevelse.

Produktsjef Jonas Døvik i Tomra demonstrerer hvordan du kan pante flasker uten at du trenger å vente på pantelappen. 📸: Kurt Lekanger
Produktsjef Jonas Døvik i Tomra demonstrerer hvordan du kan pante flasker uten at du trenger å vente på pantelappen. 📸: Kurt Lekanger Vis mer

Hva om du kunne slippe å måtte pante én og én flaske og vente på pantelappen, og bare gå rett inn i butikken etter at du har tømt posen med tomflasker inn i panteautomaten?

Det er nettopp en slik løsning ingeniørene og utviklerne hos Tomra jobber med nå. Nå tester Tomra et konsept hvor du kan få pantelappen på mobilen, og ikke lenger behøve å vente til automaten er ferdig.

– Kundene ønsker å komme til maskinen, levere flaskene og gå, sier Rune Hamnvik, seniorutvikler i Tomra.

Vi besøkte Tomra i Asker for å høre om selskapets nye panteautomat, Tomra R2, og ikke minst få innblikk i koden bak panteautomaten. Her går det i mye C og C++, kan vi avsløre.

Selskapet har fra før av en panteautomat – R1 – der du også kan tømme alle flaskene inn i et hull. Men mens R1 krever ganske mye plass, skal R2 kunne brukes også i mindre butikker.

Produktsjef Jonas Døvik, kommunikasjonssjef Zara Lauder og Senior Software Engineer Rune Hamnvik. 📸: Kurt Lekanger
Produktsjef Jonas Døvik, kommunikasjonssjef Zara Lauder og Senior Software Engineer Rune Hamnvik. 📸: Kurt Lekanger Vis mer

Trenger ikke vente

Hamnvik er "software lead" på Tomras såkalte Revolver-prosjekt, som er prosjektet som jobber med å utvikle den nye Tomra R2-automaten. Mens R1 allerede kan brukes i over 600 butikker i 16 land, er R2 foreløpig bare under testing i seks ulike land – inkludert et par butikker i Norge.

Endelig lansering er i september.

Hamnvik forteller at en av nyvinningene i R2 er det som kalles "Drop and go", samt "digital voucher", som er under utvikling nå.

Slik virker Drop & Go:

  • Bruk mobilen til å skanne en QR-kode på skjermen til panteautomaten
  • Tøm alle flaskene dine i et stort hull i automaten
  • Du kan nå forlate maskinen og gå inn i butikken for å handle
  • Når maskinen er ferdig, får du pantelappen på mobilen

– Det maskinen ikke vil ta imot og gi pant for, blir sendt til bakrommet. Kunden kan velge å ikke få tilbake de flaskene maskinen ikke vil ha, men heller la butikken ta seg av dem, forklarer Hamnvik.

Det er opp til butikkene selv om de ønsker å håndtere flasker det ikke er pant for, men hvis butikkene vil det så slipper du altså å måtte drasse med deg flasker og bokser uten pant tilbake hjem igjen.

Produktsjef Jonas Døvik demonstrerer hvordan du kan tømme flaskene inn i panteautomaten, og få pantelappen på mobilen når automaten er ferdig. 📸: Kurt Lekanger
Produktsjef Jonas Døvik demonstrerer hvordan du kan tømme flaskene inn i panteautomaten, og få pantelappen på mobilen når automaten er ferdig. 📸: Kurt Lekanger Vis mer

Knytter pantesesjonen til mobiltelefonen

Hamnvik forklarer hvordan løsningen med pantelapp på mobilen – "digital voucher" – fungerer:

– I QR-koden som vises på skjermen på automaten ligger det en URL som tar deg til en webside. Når du kommer til websiden går det en beskjed til pantemaskinen med informasjon som knytter mobiltelefonen din til kundesesjonen.

– Digital Voucher er foreløpig kun en enkel webapp. For å tilby sanntidsfunksjonalitet i Digital Voucher, bruker vi Firebase Firestore. Brukerne logger seg inn anonymt ved hjelp av Firebase Authentication for anonyme brukere, sier Hamnvik.

Tomra har også utviklet mobilapper for Android og iOS, myTOMRA, som gir brukerne en "digital voucher" inne i en app i stedet for bare via en nettside. Denne appen er foreløpig bare tilgjengelig i Australia og noen deler av USA.

Tomra lager også appen myTOMRA der kundene kan samle panten sin. Denne kan foreløpig ikke brukes med pantemaskiner i Norge. 📸: Kurt Lekanger
Tomra lager også appen myTOMRA der kundene kan samle panten sin. Denne kan foreløpig ikke brukes med pantemaskiner i Norge. 📸: Kurt Lekanger Vis mer

– Hvilke digitale tjenester, som eksempelvis myTOMRA-appen, butikkene ønsker å tilby sine kunder bestemmes helt og holdent av dem selv. Fra Tomras side kan appen integreres med alle våre panteautomater.

Noen større butikker ønsker å integrere panteløsninger i sine egne kundeapper, til det har Tomra et eget "Digital Payout API".

Fem team

All programvare og maskinvare til pantemaskinene utvikles hos Tomra i Asker, der de som lager maskinvaren jobber tett på programvareutviklerne.

Rune Hamnvik har ledet arbeidet med programvaren til "Revolver"-prosjektet, som har blitt til den nye R2-pantemaskinen. 📸: Kurt Lekanger
Rune Hamnvik har ledet arbeidet med programvaren til "Revolver"-prosjektet, som har blitt til den nye R2-pantemaskinen. 📸: Kurt Lekanger Vis mer

Hamnvik forteller at det er to programvareavdelinger, én som lager programvaren til pantemaskinen og en som lager skyløsningen. Begge avdelingene har over 20 utviklere, og i Hamnviks avdeling er det fem funksjonelle team:

  1. Plattform: Jobber med utvikling av operativsystemet til pantemaskinene og skriver maskinvaredrivere og annen "lavnivå"-funksjonalitet.
  2. Infrastruktur: Lager felleskomponenter, for eksempel komponenter som håndterer konfigurasjon av maskinene.
  3. Transport: Jobber med det som har med "flaskeflyten" og sortering av flasker å gjøre.
  4. Recognition: Gjenkjenning og klassifisering av flasker.
  5. Maskinkontroll: Overordnet "brukerreise". Alt fra brukergrensesnitt til når luker i panteautomaten skal åpne seg, hva som skal skje underveis når man panter flasker, og så videre.

Teamene jobber på ulike måter, noen bruker sprint, andre Kanban – to ulike smidige metodikker.

– Typisk er det ett eller flere team som leverer software til et prosjekt, men i et prosjekt som dette har alle teamene vært involvert. Her er det jo ny hardware, vi trenger drivere, vi har nye motorer, nye sorterere – så alle har vært involvert, sier Hamnvik.

Det er et eget team som jobber med blant annet brukergrensesnittet og resten av "brukerreisen". UI-et kodes i C++ og Qml med Qt 6.5. 📸: Kurt Lekanger
Det er et eget team som jobber med blant annet brukergrensesnittet og resten av "brukerreisen". UI-et kodes i C++ og Qml med Qt 6.5. 📸: Kurt Lekanger Vis mer

Koder i C++

Alle som har pantet flasker før, er vant til at panteautomatene av og til nekter å ta imot flasker. Det kan være både fordi du prøver å pante en flaske eller boks det ikke er pant på, men kan også komme av at du putter inn flaske for fort, får "fingrene i lesesonen" eller andre ting.

De nye panteautomatene skal håndtere at du bare tømmer alle flaskene i automaten og forlater den. Derfor må den aldri stoppe opp eller forvente at du er i nærheten og kan gjøre en operasjon på nytt, eller for den saks skyld trykke på beskjeder på skjermen.

Et sinnrikt system sørger for at flaskene som kommer inn hulter til bulter, havner pent på rekke og rad før de passerer sensorene som avgjør om du skal få betalt for flasken eller ikke. 📸: Kurt Lekanger
Et sinnrikt system sørger for at flaskene som kommer inn hulter til bulter, havner pent på rekke og rad før de passerer sensorene som avgjør om du skal få betalt for flasken eller ikke. 📸: Kurt Lekanger Vis mer

Tomra har derfor jobbet mye med det som befinner seg på bakrommet, bak automaten kundene i butikken ser. Ettersom R2-maskinen skulle ta mye mindre plass enn R1, måtte ingeniørene i Tomra tenke nytt rundt veldig mye.

Selv om flaskene havner hulter til bulter når de tømmes inn i automaten, må maskineriet inne i panteautomaten sørge for at de kommer pent og pyntelig på rekke og rad før de går igjennom en ring med kameraer og sensorer som leser av strekkoder og flaskeform – Tomra kaller den for "OneRing".

image: Sånn lager utviklerne framtidas pantemaskin – med pantelapp på mobilen

Alt dette må skje svært raskt, og det er derfor sensorer som kan følge med på flaskene hele veien gjennom automaten. Og alt sammen styres selvfølgelig av programvare.

Det er mye som er bygget opp over tid, og en del legacy-systemer som er skrevet i C. Men ny funksjonalitet er skrevet i C++ og Qt.

Qt er et kryssplattformrammeverk som brukes for å lage grafiske brukergrensesnitt. Løsningen ble i sin tid utviklet av norske Trolltech, og leveres nå av finske Qt Group.

Alt sammen kjører på en skreddersydd Linux-løsning basert på The Yocto Project.

– Det er en del mikroservices, selvstendige komponenter som har har et ansvarsområde. Så kommuniserer disse komponentene via DBus.

Hamnvik synes det har vært spennende å være med på et prosjekt som har krevd så tett samarbeid mellom så mange ulike avdelinger.

– Det er ganske kult at vi har alt her og gjør alt her, og at vi jobber så tett både i softwaregruppen – men også på tvers av andre faggrupper.

Under kan du se noen bilder fra vårt besøk hos Tomra:

Tomras utviklingsavdeling holder til i Asker. 📸: Kurt Lekanger
Tomras utviklingsavdeling holder til i Asker. 📸: Kurt Lekanger Vis mer
Tomra har stilt ut både gamle og nye pantemaskiner. Maskinen lengst bort er R1, som er beregnet på store butikker. Den nye R2-maskinen kan også brukes av små butikker. 📸: Kurt Lekanger
Tomra har stilt ut både gamle og nye pantemaskiner. Maskinen lengst bort er R1, som er beregnet på store butikker. Den nye R2-maskinen kan også brukes av små butikker. 📸: Kurt Lekanger Vis mer
Slik ser en flaske ut etter at den er pantet. I tillegg til at den tar mindre plass, er det heller ikke mulig for noen å pante den på nytt. 📸: Kurt Lekanger
Slik ser en flaske ut etter at den er pantet. I tillegg til at den tar mindre plass, er det heller ikke mulig for noen å pante den på nytt. 📸: Kurt Lekanger Vis mer
Slik så Tomras første pantemaskin ut. Den ble lansert i 1972. 📸: Kurt Lekanger
Slik så Tomras første pantemaskin ut. Den ble lansert i 1972. 📸: Kurt Lekanger Vis mer
Det har definitivt skjedd mye siden 1972. Dette er innsiden av datidens panteautomat. 📸: Kurt Lekanger
Det har definitivt skjedd mye siden 1972. Dette er innsiden av datidens panteautomat. 📸: Kurt Lekanger Vis mer
...og dette er innsiden på dagens mest avanserte pantemaskin, Tomra R1. 📸: Kurt Lekanger
...og dette er innsiden på dagens mest avanserte pantemaskin, Tomra R1. 📸: Kurt Lekanger Vis mer

Noen flere bilder

Fra en av de "sosiale sonene" hos Tomra. 📸: Kurt Lekanger
Fra en av de "sosiale sonene" hos Tomra. 📸: Kurt Lekanger Vis mer
Kantinen hos Tomra får skryt av de ansatte. 📸: Kurt Lekanger
Kantinen hos Tomra får skryt av de ansatte. 📸: Kurt Lekanger Vis mer
Tomra har ansatte fra hele verden. På et stort kart ved kantinen har ansatte plassert knappenåler på stedet de kommer fra. 📸: Kurt Lekanger
Tomra har ansatte fra hele verden. På et stort kart ved kantinen har ansatte plassert knappenåler på stedet de kommer fra. 📸: Kurt Lekanger Vis mer
De av oss som har levd en stund husker sikkert noen av disse pantemaskinene. 📸: Kurt Lekanger
De av oss som har levd en stund husker sikkert noen av disse pantemaskinene. 📸: Kurt Lekanger Vis mer