# ROS_DOMAIN_ID Change

Source: https://forum.modalai.com/topic/5000/ros_domain_id-change
Category: VOXL 2 and VOXL 2 Mini (https://forum.modalai.com/category/26/voxl-2-and-voxl-2-mini)
Tags: voxl-2
Posted: 2026-01-21 01:17:19 UTC by yunwool
Replies: 5 · Views: 689

## yunwool · 2026-01-21 01:17:19 UTC

Dear Researchers and Developers,

I can see PX4-related ROS 2 messages even without explicitly running any ROS 2 nodes myself.
It looks like these messages are visible under ROS_DOMAIN_ID=0.
Could you please share guidance on how to change the ROS 2 domain ID for these PX4-related messages?
![PX4ROSMSG.png](https://forum.modalai.com/assets/uploads/files/1768958221477-px4rosmsg.png)

## Reply by ApoorvThapliyal · 2026-01-21 18:11:07 UTC

Hey @yunwool 
I would recommend writing ` export ROS_DOMAIN_ID=1` in your `~/.bashrc` and then restarting all terminals so the change takes effect. This should prevent other ROS 2 messages from appearing in your environment, since you’ll effectively be using your own domain.

Optionally, you may want to look into the [ROS_LOCALHOST_ONLY](https://docs.ros.org/en/foxy/Tutorials/Beginner-CLI-Tools/Configuring-ROS2-Environment.html#the-ros-localhost-only-variable) variable as well,  since I do believe if someone else sets their domain ID to 1, you would see their messages.

## Reply by yunwool · 2026-01-29 22:12:50 UTC (in reply to ApoorvThapliyal)

@ApoorvThapliyal 
Thank you for the reply.
Did you happen to add export ROS_DOMAIN_ID=1 to your ~/.bashrc?
When I do that, ROS 2 topics disappear in the VOXL shell. 
However, on my laptop where ROS_DOMAIN_ID=0, I can see the ROS topics.
That’s why I posted this.

## Reply by ApoorvThapliyal · 2026-01-29 23:34:09 UTC (in reply to yunwool)

Hey @yunwool 
Did you try setting the ROS_LOCALHOST_ONLY variable to limit the topics to your local device?

## Reply by yunwool · 2026-01-31 21:47:42 UTC (in reply to ApoorvThapliyal)

@ApoorvThapliyal 
Thank you again for the reply!
We are setting up a multi-robot system, so we are using ROS_LOCALHOST_ONLY=0.
For example, we want to set the ROS_DOMAIN_ID of drone 1 to 1 and the ROS_DOMAIN_ID of drone 2 to 2.
However, for both drones, PX4-related messages still appear under domain ID 0.
Have you tried this with two or more drones?

## Reply by ApoorvThapliyal · 2026-02-03 21:45:44 UTC (in reply to yunwool)

Hey @yunwool 
Just to be clear, consider only your first drone, if you run `export ROS_DOMAIN_ID=1`, then run `ros2 topic list`, you aren't seeing any topics right?

After you set the `ROS_DOMAIN_ID` of a drone to 1, to get the PX4 topics to show up, on `QGC > Analyze Tools > MAVLink Console`, run the following commands:
```bash
param set XRCE_DDS_DOM_ID 1
param save
```

Then power cycle the drone, give it like 15s after boot up, then the topics should come up directly when running `ros2 topic list` on that drone.
