Difference between revisions of "ROS2 Suite/set ros domain id"
(Created page with "= Introduction = <span style="font-size:larger;">ROS 2 uses for communication is DDS. In DDS, the primary mechanism for having different logical networks share a physical netw...") |
|||
Line 18: | Line 18: | ||
<span style="font-size:larger;">It can also be manually set ROS_DOMAIN_ID in host or container by following steps.</span><br> | <span style="font-size:larger;">It can also be manually set ROS_DOMAIN_ID in host or container by following steps.</span><br> | ||
*Set ROS_DOMAIN_ID in host | *Set ROS_DOMAIN_ID in host | ||
− | + | Please refer to [[ROS2_Suite/Q&A#How_to_set_ROS_DOMAIN_ID_in_host|Q&A : How to set ROS_DOMAIN_ID in host]] | |
*Set ROS_DOMAIN_ID in docker container | *Set ROS_DOMAIN_ID in docker container |
Latest revision as of 06:35, 29 May 2023
Introduction
ROS 2 uses for communication is DDS. In DDS, the primary mechanism for having different logical networks share a physical network is known as the Domain ID. ROS 2 nodes on the same domain can freely discover and send messages to each other, while ROS 2 nodes on different domains cannot. All ROS 2 nodes use domain ID 0 by default. To avoid interference between different groups of computers running ROS 2 on the same network, a different domain ID should be set for each group.
You'll have to set ROS domain ID while installation, for Advantech ROS2 Suite, you can choose a domain ID between 0 and 101.
Prerequisite
Please make sure that ROS2 Suite v1.3.0 or higher have been installed in your environment.
Currently, this function only supports for ROS2 humble.
How to
Set ROS_DOMAIN_ID
Command for set ROS_DOMAIN_ID of the ROS2 Suite application.
$ cd /usr/local/Advantech/ros $ bash -i change-ros-domain-id.sh
It can also be manually set ROS_DOMAIN_ID in host or container by following steps.
- Set ROS_DOMAIN_ID in host
Please refer to Q&A : How to set ROS_DOMAIN_ID in host
- Set ROS_DOMAIN_ID in docker container
Step1: open docker-compose.yml
$ cd /usr/local/Advantech/ros/container/edge-ros2-foxy/docker-compose/<docker_container_name> $ vim docker-compose.yml
Step2: set ROS_DOMAIN_ID=<your_domain_id>
.
.
.
environment:
- ROS_DOMAIN_ID=<your_domain_id>
.
.
.
Step3: restart container for update environment variables of docker container
$ cd /usr/local/Advantech/ros/container/edge-ros2-foxy $ ./stop.sh <docker_container_name> $ ./launch.sh <docker_container_name>