Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
bjsowa opened this issue Mar 21, 2022 · 10 comments
Open

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

bjsowa opened this issue Mar 21, 2022 · 10 comments
Labels
enhancement New feature or request

Comments

@bjsowa
Copy link

bjsowa commented Mar 21, 2022

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.

@pablogs9 pablogs9 added the enhancement New feature or request label Mar 22, 2022
@pablogs9
Copy link
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?

@pablogs9
Copy link
Member

ping @bjsowa

@bjsowa
Copy link
Author

bjsowa commented May 27, 2022

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.

@pablogs9
Copy link
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.

@pablogs9
Copy link
Member

Amy update on this?

@bjsowa
Copy link
Author

bjsowa commented Aug 26, 2022

@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.

@pablogs9
Copy link
Member

pablogs9 commented Sep 5, 2022

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.

@Publicano
Copy link

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.

@elgarbe
Copy link

elgarbe commented Dec 20, 2023

--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.

@flabrosse
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants