Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Internet of Things-technologie

ROS 2 en DDS Interoperabiliteit: Een Praktische Gids voor Naadloze Integratie

ROS 2 en DDS Interoperabiliteit: Een Praktische Gids voor Naadloze Integratie

ROS 2 vertrouwt op DDS voor de onderliggende communicatielaag, maar het bereiken van foutloze interoperabiliteit tussen een native DDS deployment en ROS 2 kan nog steeds subtiele uitdagingen opleveren. Deze gids destilleert de praktische stappen en configuratietweaks die effectief zijn gebleken per de "Bouncy Bolson" (juli 2018) ROS 2 release, teams helpend om veelvoorkomende pitfalls te vermijden en de volledige kracht van Connext DDS binnen ROS 2 te benutten.

Huidige Staat van ROS 2

ROS 2 is een snel evoluerend framework, en toekomstige releases kunnen additionele interoperabiliteitsnuances introduceren. Echter, wanneer u ROS 2 draait met de rmw_connext_cpp RMW laag, gebruikt u nog steeds de native Connext DDS stack. Dat betekent dat u al Connext's geavanceerde features behoudt – zoals fijnmazige QoS controle en multi‑transport ondersteuning – terwijl u geniet van ROS 2's hogere‑level abstracties.

Belangrijkste Interoperabiliteitsinstellingen

Topic Namen & Partities

ROS 2 codeert de namespace van een topic in de topic naam of de DDS partitie. Alle ROS 2 gebruiker topics resideren in de "rt" (ROS Topic) namespace. In DDS wordt dit vertegenwoordigd als:

ROS 2 en DDS Interoperabiliteit: Een Praktische Gids voor Naadloze Integratie

Topic Datatypes

Wanneer de Connext RMW laag actief is, adverteert ROS 2 elk "rt/*" topic met een generieke serialisatietype. Als resultaat zal een zuivere DDS applicatie die de originele, sterk getype data publiceert, een QoS mismatch ervaren en niet kunnen connecteren.

ROS 2 en DDS Interoperabiliteit: Een Praktische Gids voor Naadloze Integratie

De meest voor de hand liggende remedie is om de automatische type‑code publicatie van ROS 2 deelnemers te onderdrukken. Voeg een USER_QOS_PROFILES.xml bestand toe aan de directory die uw ROS 2 nodes lanceert. Een minimale configuratie die de type code verbergt en type object sharing uitschakelt ziet er als volgt uit:

ROS 2 en DDS Interoperabiliteit: Een Praktische Gids voor Naadloze Integratie

Voel u vrij om de betrouwbaarheidsinstelling aan te passen aan uw applicatie; het bovenstaande voorbeeld gebruikt "Best Effort" als startpunt.

Onthoud dat dit QoS bestand alleen van toepassing is op ROS 2 nodes gestart vanuit dezelfde directory. Als u geïsoleerde configuraties nodig heeft, plaats een dedicated USER_QOS_PROFILES.xml naast elke node's launch folder.

Transport Selectie

Wanneer een DDS systeem en een ROS 2 systeem hetzelfde netwerk delen, kunnen waarschuwingen over ontbrekende of niet‑ondersteunde transports (bijv. udpv6 niet beschikbaar op een deelnemer die alleen udpv4 ondersteunt) verschijnen. Om dergelijke waarschuwingen te vermijden en betrouwbare connectiviteit te garanderen, configureer transportvoorkeuren expliciet.

  1. Definieer de toegestane transports in USER_QOS_PROFILES.xml door een <transport_builtin> mask toe te voegen binnen <participant_qos>:
<participant_qos> <transport_builtin> <mask>UDPV4|SHMEM</mask> </transport_builtin> </participant_qos> 
  1. Creëer een NDDS_DISCOVERY_PEERS bestand in de launch directory en lijst de peer adressen die u wilt ontdekken. Een komma‑gescheiden voorbeeld dat multicast discovery uitschakelt is:
localhost,192.168.1.12,shmem:// 

De RMW Laag Kiezen in ROS 2

Stel de RMW_IMPLEMENTATION omgevingsvariabele altijd in op rmw_connext_cpp voordat u ROS 2 nodes start:

export RMW_IMPLEMENTATION=rmw_connext_cpp 

Of geef het inline door bij het lanceren van een node:

RMW_IMPLEMENTATION=rmw_connext_cpp ros2 run demo_nodes_cpp talker 

Onbegrensde Sequences & Strings

Sommige ROS 2 topics bevatten onbegrensde sequences of strings. Als uw DDS applicatie deze topics moet consumeren of publiceren, schakel "Unbounded Support" in de DDS code generator in. Raadpleeg de RTI documentatie voor hoe u deze optie tijdens codegeneratie kunt togglen.

ROS 2 en DDS Interoperabiliteit: Een Praktische Gids voor Naadloze Integratie

Volgende Stappen met RTI

We zullen een tijdelijke kloof in de huidige ROS 2 feature set – record en replay van topic data – behandelen in de volgende aflevering van deze serie. Ondertussen, als u klaar bent om een robuuste, DDS‑ondersteunde ROS 2 oplossing te deployen, neem contact op met onze RTI experts. We helpen u uw configuratie fijn af te stellen en time‑to‑market te versnellen.


Internet of Things-technologie

  1. Expert Zware Machine Veldservice & Ter Plekk Reparaties – Sneller Terug Aan Het Werk
  2. Uitgebreide Gids voor Lasermarkering: Typen, Voordelen en Toepassingen
  3. ROS Robot: Terminal-gecontroleerde Navigatie op Raspberry Pi
  4. Snelle Fabricage: Productie Versnellen voor Custom en Laag-volume Onderdelen
  5. PCB-verstevigers onder de knie krijgen: complete gids voor flex PCB's
  6. OpenDDS vs. RTI Connext DDS: De Juiste Data Distribution Service Oplossing Kiezen
  7. ROS2 LiDAR Data Replayen met RTI Recording Service en DDS
  8. ROS2 Bouncy Bolson Voegt Gratis RTI Connext DDS Toe: Connectiviteit & Diagnostiek Boosten
  9. Qt integreren met DDS: Schaalbare IoT-applicaties bouwen
  10. IoT Revolutioniseert Veldservice: Voorspellend Onderhoud & Hogere ROI
  11. Industrial IoT Platform Kopergids: Expert Tips & Beslissingschecklist