Skip to content

A way to set a ROS namespace in the Agent #126

Open

Description

@bjsowa

I would like to have the ability to set an arbitrary ROS namespace of the node from the computer running the Agent. The way of doing this in ROSSerial is to just run the serial_node under a namespace. In micro-ROS it's a little more problematic because the namespace has to be passed to rclc_node_init_default function, so it has to be retrieved before the ROS communication is initialized.

The way I see it could work is when the Agent could be run with some parameters and the client had functions to retrieve these parameters. Then, I could just define the namespace parameter and retrieve it in the firmware before initializing the node.

Activity

  1. pablogs9 commented on Mar 22, 2022

    @pablogs9
    Member

    The name handling of the micro-ROS nodes is completely handled on the client-side. In fact, the micro-ROS agent does not do any modification on any property of the entities created by the client. I'll take a look at that.

    It would be important in your use case that the client knows in which namespace it is being exposed or it is ok if the agent just overrides the client name prepending a namespace?

  2. pablogs9 commented on May 17, 2022

    @pablogs9
    Member

    ping @bjsowa

  3. bjsowa commented on May 27, 2022

    @bjsowa
    Author

    It's not important that the client knows in which namespace it is running. As long as all names are mapped correctly on the agent side it's ok for me.

  4. pablogs9 commented on May 30, 2022

    @pablogs9
    Member

    @bjsowa here we have a PoC, could you test it? #145

    Just do:

    ros2 run micro_ros_agent micro_ros_agent serial --dev [DEVICE] -v6 --namespace-remapping /mynamespace

    And let us know if this is what you needed.

  5. pablogs9 commented on Jun 14, 2022

    @pablogs9
    Member

    Amy update on this?

  6. bjsowa commented on Aug 26, 2022

    @bjsowa
    Author

    @pablogs9 Any plan on continuing the PoC? The current implementation doesn't seem to work.

    Also, do you think it would be possible to implement Domain ID remapping? This is even more important for me than namespace remapping.

  7. pablogs9 commented on Sep 5, 2022

    @pablogs9
    Member

    No bandwidth to work on this right now. I'll keep this open for the future. If you make some advances do not hesitate to PR your progress.

  8. Publicano commented on May 9, 2023

    @Publicano

    I would also like to set up the ROS namespace in the agent instead of in the microcontroller. Has a possible solution been found for this yet?
    (I want to pass an id from the microros_agent launche file to the microcontroller)

    #145 has also not been resolved so far.

  9. elgarbe commented on Dec 20, 2023

    @elgarbe
    --namespace-remapping /mynamespace

    This is not working for me.
    I run:

    ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyACM0 --namespace-remapping /chori

    I also tried:

    from launch import LaunchDescription
    from launch_ros.actions import Node
    
    def generate_launch_description():
        return LaunchDescription([
            Node(
                package='micro_ros_agent',
                namespace='chori',
                output='screen',
                executable='micro_ros_agent',
                name='micro_ros_agent',
                arguments=["serial", "--dev", "/dev/ttyACM0"]
            )
        ])
    
    

    and, nothing, the topics comming from my board are located under / namespace.

  10. flabrosse commented on Mar 6, 2024

    @flabrosse

    I was wondering is there were any news on this. On top of what is mentioned above, I also tried to remap topic to include a namespace, using SetRemap in an ActionGroup or the remapping option in the Node itself, to no avail.

  11. tombaby97 commented on Mar 28, 2025

    @tombaby97

    Could someone provide an update on this issue, Is adding a namespace possible with micro-ROS,Tried passing ns arguments, pushRosNamespace functionality etc but still not working. If yes then how? If No, Are there any workarounds to achieve this ??

  12. TannerGilbert commented on May 24, 2025

    @TannerGilbert

    I would also be interested in this. I just tried the feature/namespace_override branch with ROS 2 Humble but it only remapped my node /ap -> /test/ap but all my topics still had the /ap namespace.

  13. princealy commented on Jul 24, 2025

    @princealy

    Is this still planned? Almost everyone who tries to do swarm drone simulation with ROS2 + Ardupilot will be stuck here.
    https://discuss.ardupilot.org/t/multiple-copters-but-both-micro-ros-agents-creating-two-ap-nodes/134083

    Are there any workarounds?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions