Letšoao la Klepsydra

Klepsydra ROS2 Multi Core Ring Buffer Executor

Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-sehlahisoa-setšoantšo

Tlhahisoleseding ya Sehlahiswa

Litlhaloso

  • E bobebe, e modular, 'me e lumellana le lits'ebetso tse sebelisoang haholo
  • Plugin ea ROS2 Executor e khona ho sebetsana le data e fetang makhetlo a 10 ka phokotso ea 50% ea tšebeliso ea CPU.
  • GPU (Setsi sa Ts'ebetso ea Graphic) bakeng sa ho bapisa ho holimo le ho eketseha ha sekhahla sa ts'ebetso ea data le ts'ebeliso ea GPU
  • Klepsydra AI
  • Klepsydra SDK
  • Klepsydra GPU
  • Bokhoni ba ho phallela
  • Klepsydra ROS2 executor plugin ts'ebeliso ea lefats'e ka bophara

Litaelo tsa Tšebeliso ea Sehlahisoa

  1. Boemo: Parallel Processing
    Sehlahisoa sena se etselitsoe ho sebetsana le liphephetso tse amanang le ts'ebetso ea boto lits'ebetsong tsa sebaka, moo ts'ebeliso ea CPU, bophahamo ba data, le litlhoko tsa matla li amehang. E fana ka tharollo bakeng sa lisebelisoa tsa sejoale-joale le software ea khale ka ho sebetsana le li-volume tsa data tse mahareng hantle.
  2. Bapisa le ho Fetolana
    "Bapisa le ho fapanyetsana" ke algorithm e sebelisoang ho multithreading ho fihlela tumellano. E bapisa likahare tsa sebaka sa memori le boleng bo fanoeng, 'me, ha feela li tšoana, li fetola likahare tsa sebaka seo sa mohopolo ho boleng bo bocha bo fanoeng. Ts'ebetso ena e etsoa e le ts'ebetso e le 'ngoe ea athomo. Sehlahisoa se sebelisa algorithm ena e le karolo ea ts'ebetso ea eona.

Melemo le Melemo ea ho Lock-Free Programming
Sehlahisoa se sebelisa mekhoa ea mananeo a notletsoeng, a nang le advantages le disadvantages

  • Melemo:
    • Tšebeliso ea CPU e fokotsehile
    • Ho sebetsana ka katleho le bophahamo ba data
  • Mathata:
    • Ho rarahana ho kenngwa tshebetsong
    • E hloka tšehetso ho tsoa ho lisebelisoa tse ka tlase (li-hardware tsa sejoale-joale li ts'ehetsa mananeo a se nang senotlolo)

ROS2 Mophethahatsi
Sehlahisoa se kenyelletsa ROS2 Executor e hlophisang ts'ebeliso ea ROS2 ka ho laola li-callback tsa lipeeletso, melaetsa, lits'ebeletso, li-timers le li-node. E sebelisa melaetsa e tsoang meleng e ka tlaase ea DDS e bohareng ebe e e romela hore e phethoe ho e 'ngoe ea likhoele. Moahloli a ka hlophisoa ho etsa li-callback ka tatellano kapa ka ho bapisa.

Baphethahatsi ba ROS2 ba maemo a holimo
Sehlahisoa se kenyelletsa Baphethahatsi ba boemo bo holimo ba ROS2 ba fanang ka maano a fapaneng a ts'ebetso.

  • Mophethahatsi ea nang le Khoele a le Mong: E etsa li-callback ka tatellano 'me nako le nako e lekola sebopeho sa ts'ebeliso ho ntlafatsa li-node, lipeeletso, lits'ebeletso, jj.
  • Mophethahatsi oa likhoele tse ngata: E etsa li-callback ka ho tsamaisana 'me nako le nako e hlahloba sebopeho sa ts'ebeliso ho ntlafatsa tlhaloso ea bothata.

Mophethi oa Phallo
Sehlahisoa se hlahisa moetsi oa phallo ea fapaneng le ea fetisitsoeng ka likhoele ka likarolo tse 'maloa.

  • Ha e ntlafatse lenane le sebetsang bakeng sa phetisetso e ngoe le e ngoe.
  • Li-node tsohle, lihlopha tsa callback, li-timers, lipehelo, joalo-joalo li entsoe ka nako ea kaho.
  • Lipeeletso tsohle tse ka har'a node li etsoa khoeleng e le 'ngoe, ho sa tsotelehe palo ea li-cores tse sebelisetsoang ho qala ho phallela.
  1. Mophethahatsi oa Phallo ea Klepsydra
    Sehlahisoa sa phallo ea lihlahisoa se etselitsoe ka ho khetheha ho sebetsana le lihlooho tsa ho phallela ho sebelisa lipara tsa baphatlalatsi. E fana ka melaetsa ka katleho ho ba ngolisitseng li-node tsohle, tse amoheloang ho tloha bohareng ba lisebelisoa ka rmw. Loop ea ketsahalo e laola lihlooho tsena, e netefatsa hore data e phalla hantle.
  2. Sebaka sa Klepsydra
    Sebaka sa Klepsydra ke karolo ea moahloli oa phallo ea sebetsang e le mohlophisi. E hokahanya ts'ebetso ea bahlahisi le bareki ka har'a sethala sa ho phallela.
  3. Moetsi
    Moetsi o ikarabella bakeng sa ho hlahisa data e tla sebelisoa ke ba ngolisitseng. Sehlahisoa se tšehetsa bahlahisi ba bangata ho setupong sa ho phallela.
  4. Moreki
    Moreki o na le boikarabello ba ho sebetsa le ho sebelisa data e hlahisoang ke bahlahisi. Sehlahisoa se tšehetsa bareki ba bangata ho setupong sa ho phallela.

Lipotso tse atisang ho botsoa (FAQ)

  1. Ke litsamaiso life tse sebetsang tse lumellanang le sehlahisoa?
    Sehlahisoa se lumellana le lisebelisoa tse sebelisoang hangata.
  2. Ts'ebetso ea sehlahisoa e ka ba le data e kae ha e bapisoa le mekhoa ea setso?
    Sehlahisoa se khona ho sebetsana le lintlha tse fihlang ho makhetlo a 10 ka phokotso ea 50% ea tšebeliso ea CPU ha e bapisoa le mekhoa ea setso.
  3. Na sehlahisoa se sebelisa ho bapisa GPU?
    E, sehlahisoa se sebelisa GPU (Graphic Processing Unit) bakeng sa ho bapisa ho holimo, ho eketsang sekhahla sa ts'ebetso ea data le ts'ebeliso ea GPU.

Mokhoa oa ho ntlafatsa ntle le Marang-rang bakeng sa Likopo tsa Multi-Core ROS2: Multi-Core Ring-Buffer ROS2 Executor

ROS Meetup Stuttgart 2023

Ngaka Pablo Ghiglino ( pablo.ghiglino@klepsydra.com )

Mophethahatsi oa Phallo ea ROS2

TŠEBELETSO: TŠEBELETSO E PAPALE

  • Mathata a ho sebetsa ka botongKlepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (1)
  • Hardware ea sejoale-joale le software ea khale:
    • Likhomphutha li ngata haholo ka data e tlase ho isa ho e mahareng
    • Tšebeliso e mpe ea lisebelisoa
    • Matla a feteletseng bakeng sa ts'ebetso ea data e tlase

Liphetho bakeng sa lits'ebetso tsa Space

  • Ho hloleha ha maikemisetso khafetsa ka lebaka la software
  • Ho fihlella data ea sensor ho tsoa Lefatšeng ho ja nako.
  • Lisathelaete li sokola ho fihlela litlhoko tsa matlaKlepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (2)

BAPANG LE PHAPALA

  • Bapisa le ho fapanyetsana (CAS) ke taeo e sebelisoang ho multithreading ho fihlela synchronization. E bapisa likahare tsa sebaka sa memori le boleng bo fanoeng, 'me, ha feela li tšoana, li fetola likahare tsa sebaka seo sa mohopolo ho boleng bo bocha bo fanoeng. Sena se etsoa joalo ka ts'ebetso e le 'ngoe ea athomo.
  • Bapisa-le-Swap esale e le karolo ea bohlokoa ea meralo ea IBM 370 ho tloha ka 1970.
  • Maurice Herlihy (1991) o pakile hore CAS e ka kenya tšebetsong li-algorithms tse ngata ho feta ho bala, ho ngola, ho lata le ho eketsa atomic.Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (3)

MELEMO LE MOSETSAHELO TSA HO SEBELISA LENANEO LE MAHALAKlepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (4)

Melemo

  • Ho hlokahala tšebeliso e fokolang ea CPU
  • Tekanyetso e tlase le ts'ebetso e phahameng ea data
  • Keketseho e kholo ea determinism

Mebe

  • Mokhoa o thata haholo oa ho etsa mananeo
  • E hloka processor e nang le litaelo tsa CAS (90% ea 'maraka e na le tsona, leha ho le joalo)

Klepsydra Ring-buffer

Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (5)

SEHLAHISO
E bobebe, e modular ebile e lumellana le lits'ebetso tse sebelisoang haholo

  • SDK – Software Development Kit
    Matlafatsa ts'ebetso ea data pheletsong bakeng sa lits'ebetso tse akaretsang le li-algorithms tse matla tsa processor
  • AI - Artificial Intelligence
    Enjene e phahameng ea ts'ebetso e tebileng ea neural network (DNN) ho tsamaisa AI efe kapa efe kapa mojule oa ho ithuta oa mochini pheletsong
  • Plugin ea ROS2 Executor
    Mophethahatsi oa ROS2 o khona ho sebetsana le data e fihlang makhetlo a 10 ka phokotso ea 50% ea tšebeliso ea CPU.
  • GPU (Setsi sa Ts'ebetso ea Litšoantšo)
    Phapang e phahameng ea GPU ho eketsa sekhahla sa ts'ebetso ea data le ts'ebeliso ea GPUKlepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (6)

Boemo: ROS1 sebakeng

  • Melemo:
  • E nolofalletsa boipuso, temoho, le taolo sebakengKlepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (1)
  • E feto-fetoha, e tloaelehileng, 'me e tšehetsoa ke sechaba se seholo.Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (2)
  • Examples:
    • Robonaut ea NASA 2 (R2) – Bonohe ba linaleli ba thusoang ho ISS
    • Astrobee ea NASA - Ts'ebetso e ikemetseng ho ISS
    • LIKHALA - Li-satellite tsa spherical bakeng sa lipatlisiso ho ISS
    • Dextre - Letsoho la robotiki bakeng sa ho qhekella le ho lokisa ho ISS
    • Google Lunar XPRIZE - E sebelisoa bakeng sa misio ea lunar roverKlepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (3)

Moelelo: Space-ROS

  • Moralo oa ROS tlhahlobo ea sebaka le liroboto
    Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (4)
  • E na le karolo e itseng e tšoanelehang bakeng sa tšebeliso ea Space
  •  Examphanyane:
    Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (5)
    • Bathusi ba liroboto bakeng sa bonohe ba linaleli
    • Patlisiso ea lipolanete ka li-rover tse ikemetseng
    • Ts'ebetso ea satellite le taolo
      Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (6)
    • Ho emisa sepakapaka se ikemetseng
    • Litšebeletso le litokiso tsa on-orbit
      Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (7)
  • Melemo:
    • E nolofalletsa boikemelo, puisano, le temoho
    • E potlakisa nts'etsopele le ts'ebetso ea thomo ea sebaka.Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (8)

Mophethi oa ROS2 O Hlalositsoe

Moahloli o hokahanya le ho hlophisa ts'ebeliso ea ROS2 ka ho laola li-callback tsa lipeeletso, melaetsa, lits'ebeletso, li-timers le li-node. Ho ROS2, moahloli ha a boloke letoto la melaetsa le li-callbacks, empa ho e-na le hoo o sebelisa melaetsa e tsoang meleng e ka tlaase ea DDS e bohareng, ebe o e romela hore e phethoe ho e 'ngoe ea likhoele.Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (9)

Maemo a phahameng haholo

Baphethahatsi ba ROS2

  • Sephethahatsi se le seng sa khoele: Khoele e le 'ngoe e botsa middleware ebe e etsa li-callback ka tatellano. E ntan'o hlahloba sebopeho le ho ntlafatsa li-node, lipeeletso, litšebeletso, joalo-joalo.
  • Sephethi se le seng sa Static, moo tlhahlobo le tlhaloso ea sebopeho li etsoang hang feela, nakong ea kaho. Li-node tsohle, lihlopha tsa callback, li-timers, lipehelo joalo-joalo li bōptjoa pele spin() e bitsoa.
  • The Multi-threaded executor e etsa palo ea likhoele tse tla phethisa li-callback ka ho bapa. Joalo ka sephethahatsi se le seng sa khoele, nako le nako e tla hlahloba sebopeho sa ts'ebeliso ebe e ntlafatsa tlhaloso ea bothata.

Mophethahatsi oa ho phallela Overview

  • Mophethahatsi oa Phallo o sebelisa Klepsydra Event Loop ho fana ka melaetsa ho ba ngolisitseng ho li-node tsohle, tse tsoang ho middleware ka rmw. Loop ea liketsahalo e laola lihlooho tsena ka lipara tsa baphatlalatsi.
  • Mophethahatsi oa phallo o sebetsa ka mokhoa o ts'oanang le oa static single threaded ka likarolo tse 'maloa. Taba ea pele, ha e lokise lethathamo le ka sebelisoang bakeng sa phetetso e ngoe le e ngoe. Li-node tsohle, lihlopha tsa callback, li-timers, lipehelo joalo-joalo li entsoe ka nako ea kaho. Taba ea bobeli, lipeeletso tsohle ka har'a node li etsoa khoeleng e le 'ngoe, ho sa tsotelehe palo ea li-cores tse sebelisetsoang ho seta ho phallela.

Mophethahatsi oa Phallo ea Klepsydra

Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (7)

Moetsi oa ho phallela

E sebetsa joang?

  • Sehlopha sa baphatlalatsi se entsoe bakeng sa sehlooho se seng le se seng se hlokoang ke node e fanoeng ea ROS2.
  • Ka hare, sehlopha se seng le se seng sa mohatisi se khetholloa ka mekhahlelo e 'meli: lebitso la node le lebitso la sehlooho. Ka mantsoe a mang, li-node tse peli tse fapaneng tse phatlalatsang sehlooho se le seng li tla laoloa ka boikemelo.
  • Lipara tsohle tsa baphatlalatsi tse amanang le lihlooho tsa node e le 'ngoe li laoloa ke loop e tšoanang ea ketsahalo.Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (10)

Sebapali sa ho phallela Single-core vs multi-coreKlepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (8)

  • Advantage ea ho phallela e executor ke hore ha ho na tlhokahalo ea tsamaiso ea multithreading ea ba ngolisitseng ka lebaka la hore kaofela ha bona ba laoloa ke khoele ea loop ea ketsahalo e amanang le eona, e leng ntho e tloaelehileng ho batho ba le bang le ba bangata.
  • Ea pele e sebetsa ka mokhoa o ts'oanang le moahloli ea tsitsitseng ea khoele e le 'ngoe, kaha ba ngolisitseng bohle libakeng tsohle ba kopuoa ke khoele e tšoanang.

Benchmark ea Ts'ebetso: Ref-System

Benchmark ea Ts'ebetso

  • Tlhophiso ea li-benchmarks tsa phallo ea Klepsydra:
    • Benchmark e ne e ipapisitse le sistimi ea litšupiso ea Autoware. E etsisa mokhoa oa sebele oa ho khanna.
    • Litekanyo tsohle li nkiloe ho sebelisoa Raspberry Pi 4B e nang le: ROS galactic, Ubuntu 20.04 le 4 GB ea pheleu, khafetsa ea 1.50GHz.
    • Setupo se lumellanang sa sistimi ea litšupiso, 'me ntle le ho itšehla thajana ha CPU
  • Li-processor tse lekiloeng:
    • Raspberry PI 4 (prosesa ea litšupiso bakeng sa RTWG)
    • Unibap's iX10 (NASA le Blue Origin Testbed)
    • Teledyne e2v LS1046

Benchmark ea Ts'ebetso

Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (9)

Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (10)

Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (12)

  • Sepheo sa algorithm ea liphatsa tsa lefutso ke ho fokotsa latency e tloaelehileng ea tsela ea bohlokoa.
  • Ke hore, nako e nkang ho tloha ha ho phatlalatsoa Lidar Data ho fihlela Object Collision Estimator e phethela mosebetsi oa eona.
  • Setšoantšo se bontša tsela ea bohlokoa eo lipatlisiso tsa rona li lekileng ho e ntlafatsa

Moetsi oa ho phallela
Klepsydra Streaming Distribution Optimiser (SDO)

  • Phapang e fapaneng ea mantlha ea sebatli sa phallo e sebetsa hantle ha kabo ea mojaro ea li-node har'a li-cores e ntlafalitsoe mme e ka etsa phapang e kholo ho latela latency, tšebeliso ea matla le phepelo ea data.
  • Leha ho le joalo, 'mapa oa li-cores ha se ntho e nyenyane ebile e hloka mokhoa o hlophisitsoeng. Mokhoa o ka khonehang ke oa ho hlalosa sepheo sa ts'ebetso e lekanyang ts'ebetso ea sistimi ho ipapisitsoe le tlhophiso ea mantlha.
  • Joale algorithm ea liphatsa tsa lefutso e ka sebelisoa ho ntlafatsa tlhophiso ea mantlha ka ho lekola khafetsa maemo a fapaneng le ho khetha tse sebetsang hantle ho latela sepheo. Ts'ebetso ena e tsoela pele ho fihlela sephetho se nepahetseng se fumaneha.
  • Mokhoa ona o lumella hore ho sebelisoe mekhoa e mengata ka katleho le ho netefatsa hore mojaro o ajoa ka tsela e nepahetseng ka ho fetisisa.

Kakaretso ea Liphetho

  • Bakeng sa mosebetsi o monyenyane oa li-node, ho rarahana ho eketsehileng ha ho fetole liphello tse molemo. The static single threaded, kaha e bonolo haholo, e feta baphethi ba bang kaofela.
  • Ka ho eketsa mosebetsi, Phallo ea Phallo ke mophethahatsi ea molemo ka ho fetisisa ea lateloang ke Static Single Threaded Executor.
  • Ho ne ho lebeletsoe hore Phallo ea Phallo e sebetse hantle ho feta ea khoele e le 'ngoe, kaha ts'ebeliso ha e fetole topology ea eona ha e ntse e sebetsa. Ho bontšoa hore ehlile ho joaloKlepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (13)
  • Liphetho tsa Raspberry PI4
  • Keketseho e ts'oanang ea ts'ebetso e fumanoeng bakeng sa Unibap's iX10 le Teledyne's LS1046Klepsydra-ROS2-Multi-Core-Ring-Buffer-Executor-01 (14)

Liqeto

Kakaretso

  • Sengoliloeng sena se fana ka mokhoa o mocha oa ho ntlafatsa mofuta oa ts'ebetso oa ROS2 o kopanyang ts'ebetso ea moahloli oa ROS2 e sa notleloang, le ts'ebeliso ea li-algorithms tsa liphatsa tsa lefutso ho ntlafatsa kabo ea mojaro oa ts'ebeliso ea liroboto ho li-cores tse fumanehang komporong e lebisitsoeng.
  • Motsoako ona o netefalitsoe hore o sebetsa hantle haholo bakeng sa sistimi e nang le moroalo o boima oa computational, joalo ka sistimi e hlalositsoeng kaholimo. Molemo o ka sehloohong oa lipatlisiso tse hlahisitsoeng ke ho ikamahanya le maemo ho likopo tse fapaneng: li-topology tse fapaneng tsa ROS2 tsa node li ka potlakisoa ka ho sebelisa mochine oa ho phallela hammoho le optimization ea liphatsa tsa lefutso, e leng e 'ngoe ea mathata ao ho buuoang ka 'ona ho ROS2.

Mosebetsi o Tlang

Kakaretso

  • Mabapi le mosebetsi oa nakong e tlang oa patlisiso ena, ho na le likarolo tse 'maloa tse lokelang ho kenyelletsoa ho sephethi sa phallo:
    • tšehetso ea ho ikokobetsa le ho sisinyeha,
    • ho lokolloa ha mohloli oa mohloli o le mong oa phallo ea phallo le
    • tšebeliso ea sensor multiplexer hammoho le loop ea liketsahalo bakeng sa lihlooho tse nang le ba ngolisitseng ba 'maloa.
    • Tlhahlobo ea meralo ea RISC-V

Litokomane / Lisebelisoa

Klepsydra ROS2 Multi Core Ring Buffer Executor [pdf] Bukana ea Mosebelisi
ROS2 Multi Core Ring Buffer Executor, ROS2, Multi Core Ring Buffer Executor, Ring Buffer Executor, Buffer Executor, Executor

Litšupiso

Tlohela maikutlo

Aterese ea hau ea lengolo-tsoibila e ke ke ea phatlalatsoa. Libaka tse hlokahalang li tšoailoe *