Are ROS2 namespaces fully supported by Matlab/simulink?

7 次查看(过去 30 天)
I'm currently working with ros2 nodes generated from simulink, and I need several instances of these nodes with different names running in the same network.
Using Humble, R2023b and Ubuntu 22.04 I don't need the workaround used in this previous question to launch each node.
However, the namespace is only applied to the node name, not to the topics.
Is it a bug? Or is this functionality still in development?
Just in case, I add the python launch file:
from launch import LaunchDescription
from launch_ros.actions import Node
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
def generate_launch_description():
# Declare the namespace launch argument
namespace = DeclareLaunchArgument(
'car_namespace',
default_value='kitt',
description='Namespace for the ROS2 node'
)
# Define the launch value for the namespace
namespace_arg = LaunchConfiguration('car_namespace')
# Launch the ROS2 node with the specified namespace, package, and executable
node = Node(
package='car_control_system',
executable='CAR_CONTROL_SYSTEM',
namespace=namespace_arg
)
return LaunchDescription([
namespace,
node
])

采纳的回答

Diego
Diego 2024-5-13
I have the answer, and it happens the same in some other ros2 codes, like the ros_gz_bridge:
If you declare your topics starting by slash, they won't be affected by namespaces.
Now that I changed my topic names so that they do not start by slash, it works perfectly.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 ROS Network Access in Simulink 的更多信息

标签

产品


版本

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by