{"id":41530,"date":"2025-06-05T13:43:39","date_gmt":"2025-06-05T11:43:39","guid":{"rendered":"https:\/\/genesys-offenburg.de\/?post_type=smart-docs&#038;p=41530"},"modified":"2025-06-05T20:39:44","modified_gmt":"2025-06-05T18:39:44","slug":"ros-add-multiple-adma-systems","status":"publish","type":"smart-docs","link":"https:\/\/genesys-offenburg.de\/en\/support\/integrationsloesungen\/ros\/ros-add-multiple-adma-systems\/","title":{"rendered":"ROS &#8211; Add multiple ADMA Systems"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-introduction\">Introduction<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"406\" src=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/image-1024x406.jpg\" alt=\"\" class=\"wp-image-41532\" srcset=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/image-1024x406.jpg 1024w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/image-300x119.jpg 300w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/image-768x305.jpg 768w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/image-696x276.jpg 696w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/image-1068x424.jpg 1068w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/image.jpg 1253w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>This article outlines a ROS2 setup integrating two ADMA systems. The ROS driver ingests data from both ADMA units and publishes it across <a href=\"https:\/\/genesys-offenburg.de\/support\/integrationsloesungen\/ros\/ros-available-ros-topics\/\" target=\"_blank\" rel=\"noreferrer noopener\">all available ROS topics<\/a> provided by the driver.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-start-ros-node-for-adma-1\">Start ROS Node for ADMA 1<\/h2>\n\n\n\n<p>Adapt the ADMA 1 settings for your use. It is important to give both ADMA systems different IP addresses. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"534\" height=\"211\" src=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/ADMA_Config_ADMA1_marked.png\" alt=\"\" class=\"wp-image-41585\" srcset=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/ADMA_Config_ADMA1_marked.png 534w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/ADMA_Config_ADMA1_marked-300x119.png 300w\" sizes=\"(max-width: 534px) 100vw, 534px\" \/><\/figure>\n\n\n\n<p>Then adjust the Driver Config file to match the configuration settings of ADMA 1:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"645\" height=\"101\" src=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Configfile.png\" alt=\"\" class=\"wp-image-41553\" srcset=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Configfile.png 645w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Configfile-300x47.png 300w\" sizes=\"(max-width: 645px) 100vw, 645px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"483\" src=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-1024x483.png\" alt=\"\" class=\"wp-image-41557\" srcset=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-1024x483.png 1024w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-300x142.png 300w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-768x363.png 768w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-696x329.png 696w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-1068x504.png 1068w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked.png 1163w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now start the ADMA ROS driver with the namespace argument defined as <strong>adma1<\/strong>:<\/p>\n\n\n\n<div class=\"container_code\">\n    <button class=\"button_copy\">Copy<\/button>\n    <pre><code id=\"code_block\">mkdir -p ~\/ros2_ws\/data\/adma1\ncd ~\/ros2_ws\/data\/adma1\nros2 launch adma_ros2_driver adma_driver.launch.py adma_namespace:='adma1'<\/code><\/pre>\n<\/div>\n\n<script>\n    document.querySelectorAll('.button_copy').forEach(button => {\n        button.addEventListener('click', function() {\n            const code = this.parentElement.querySelector('pre code').innerText; \/\/ Selects the code inside <pre><code>\n            \n            navigator.clipboard.writeText(code).then(() => {\n                this.textContent = \"Copied!\";\n                setTimeout(() => this.textContent = \"Copy\", 2000);\n            }).catch(err => console.error(\"Copy failed\", err));\n        });\n    });\n<\/script>\n\n\n\n<div style=\"height:37px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-start-ros-node-for-adma-x\">Start ROS Node for ADMA X<\/h2>\n\n\n\n<p>Adapt the ADMA 2 settings for your use. It is important to give both ADMA systems different IP addresses. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"534\" height=\"211\" src=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/ADMA_Config_ADMA2_marked.png\" alt=\"\" class=\"wp-image-41588\" srcset=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/ADMA_Config_ADMA2_marked.png 534w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/ADMA_Config_ADMA2_marked-300x119.png 300w\" sizes=\"(max-width: 534px) 100vw, 534px\" \/><\/figure>\n\n\n\n<p>Then adjust the Driver Config file to match the configuration settings of ADMA 2:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"645\" height=\"101\" src=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Configfile.png\" alt=\"\" class=\"wp-image-41553\" srcset=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Configfile.png 645w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Configfile-300x47.png 300w\" sizes=\"(max-width: 645px) 100vw, 645px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"483\" src=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-1024x483.png\" alt=\"\" class=\"wp-image-41557\" srcset=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-1024x483.png 1024w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-300x142.png 300w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-768x363.png 768w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-696x329.png 696w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked-1068x504.png 1068w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/Config_Port_ADMA1_marked.png 1163w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>After that start the ADMA ROS driver with the namespace argument defined as <strong>adma2<\/strong>:<\/p>\n\n\n\n<div class=\"container_code\">\n    <button class=\"button_copy\">Copy<\/button>\n    <pre><code id=\"code_block\">mkdir -p ~\/ros2_ws\/data\/adma1\ncd ~\/ros2_ws\/data\/adma1\nros2 launch adma_ros2_driver adma_driver.launch.py adma_namespace:='adma2'<\/code><\/pre>\n<\/div>\n\n<script>\n    document.querySelectorAll('.button_copy').forEach(button => {\n        button.addEventListener('click', function() {\n            const code = this.parentElement.querySelector('pre code').innerText; \/\/ Selects the code inside <pre><code>\n            \n            navigator.clipboard.writeText(code).then(() => {\n                this.textContent = \"Copied!\";\n                setTimeout(() => this.textContent = \"Copy\", 2000);\n            }).catch(err => console.error(\"Copy failed\", err));\n        });\n    });\n<\/script>\n\n\n\n<div style=\"height:37px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-data-output-validation\">Data Output Validation<\/h2>\n\n\n\n<p>When the driver got started multiple times, we can open up a new terminal and use the following command to check all published ADMA ROS Topics:<\/p>\n\n\n\n<div class=\"container_code\">\n    <button class=\"button_copy\">Copy<\/button>\n    <pre><code id=\"code_block\">ros2 topic list<\/code><\/pre>\n<\/div>\n\n<script>\n    document.querySelectorAll('.button_copy').forEach(button => {\n        button.addEventListener('click', function() {\n            const code = this.parentElement.querySelector('pre code').innerText; \/\/ Selects the code inside <pre><code>\n            \n            navigator.clipboard.writeText(code).then(() => {\n                this.textContent = \"Copied!\";\n                setTimeout(() => this.textContent = \"Copy\", 2000);\n            }).catch(err => console.error(\"Copy failed\", err));\n        });\n    });\n<\/script>\n\n\n\n<div style=\"height:37px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"648\" src=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/MultipleADMA_Result_marked-1024x648.jpg\" alt=\"\" class=\"wp-image-41599\" srcset=\"https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/MultipleADMA_Result_marked-1024x648.jpg 1024w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/MultipleADMA_Result_marked-300x190.jpg 300w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/MultipleADMA_Result_marked-768x486.jpg 768w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/MultipleADMA_Result_marked-1536x972.jpg 1536w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/MultipleADMA_Result_marked-696x440.jpg 696w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/MultipleADMA_Result_marked-1068x676.jpg 1068w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/MultipleADMA_Result_marked-1320x835.jpg 1320w, https:\/\/genesys-offenburg.de\/wp-content\/uploads\/2025\/06\/MultipleADMA_Result_marked.jpg 1855w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Introduction This article outlines a ROS2 setup integrating two ADMA systems. The ROS driver ingests data from both ADMA units and publishes it across all available ROS topics provided by the driver. Start ROS Node for ADMA 1 Adapt the ADMA 1 settings for your use. It is important to give both ADMA systems different [&hellip;]<\/p>\n","protected":false},"author":148,"featured_media":0,"template":"","meta":{"_acf_changed":false,"_links_to":"","_links_to_type":0,"footnotes":""},"smartdocs_category":[812,890],"class_list":{"0":"post-41530","1":"smart-docs","2":"type-smart-docs","3":"status-publish","5":"smartdocs_category-integrationsloesungen","6":"smartdocs_category-ros"},"acf":[],"_links":{"self":[{"href":"https:\/\/genesys-offenburg.de\/en\/wp-json\/wp\/v2\/smart-docs\/41530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/genesys-offenburg.de\/en\/wp-json\/wp\/v2\/smart-docs"}],"about":[{"href":"https:\/\/genesys-offenburg.de\/en\/wp-json\/wp\/v2\/types\/smart-docs"}],"author":[{"embeddable":true,"href":"https:\/\/genesys-offenburg.de\/en\/wp-json\/wp\/v2\/users\/148"}],"version-history":[{"count":3,"href":"https:\/\/genesys-offenburg.de\/en\/wp-json\/wp\/v2\/smart-docs\/41530\/revisions"}],"predecessor-version":[{"id":41622,"href":"https:\/\/genesys-offenburg.de\/en\/wp-json\/wp\/v2\/smart-docs\/41530\/revisions\/41622"}],"wp:attachment":[{"href":"https:\/\/genesys-offenburg.de\/en\/wp-json\/wp\/v2\/media?parent=41530"}],"wp:term":[{"taxonomy":"smartdocs_category","embeddable":true,"href":"https:\/\/genesys-offenburg.de\/en\/wp-json\/wp\/v2\/smartdocs_category?post=41530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}