Inconsistent use of node name vs executable/artifact in rossystem.rossystem.j2
As far as I understood, the rossystem.rossystem.j2 template is mixing two different identifiers:
node_identifier, derived from the ROS graph node full name:
|
{% set node_identifier = node.name.full_name.lstrip('/') %} |
- and
exec_name, derived from node.executable:
|
{% set exec_attr = node|attr('executable') %} |
|
{% set exec_name = exec_attr if exec_attr is not undefined and exec_attr else (node_identifier.lstrip('/') if node_identifier else '') %} |
|
{% if exec_name == '' %} |
|
{% set exec_name = node_identifier %} |
|
{% endif %} |
The from: key uses exec_name but it seems that the DSL expects the node name:
|
from: "{{ pkg }}.{{ exec_name }}" |
rossystem.xtext:
RosNode returns RosNode:
{RosNode}
name=EString':'
BEGIN
'from:'from=[ros::Node|EString]
So, If you define a .ros2 file like the following:
ros_gz_bridge:
artifacts:
parameter_bridge:
node: /gz_pipe_pose_bridge
the template generates:
"/gz_pipe_pose_bridge":
from: "ros_gz_bridge.parameter_bridge"
and I get this error in eclipse:
Description Resource Path Location Type Couldn't resolve reference to Node 'ros_gz_bridge.parameter_bridge'.
the DSL seems to expect:
"/gz_pipe_pose_bridge":
from: "ros_gz_bridge./gz_pipe_pose_bridge"
Inconsistent use of node name vs executable/artifact in
rossystem.rossystem.j2As far as I understood, the
rossystem.rossystem.j2template is mixing two different identifiers:node_identifier, derived from the ROS graph node full name:ros2model/templates/rossystem.rossystem.j2
Line 7 in 0fd8d9e
exec_name, derived fromnode.executable:ros2model/templates/rossystem.rossystem.j2
Lines 8 to 12 in 0fd8d9e
The
from:key usesexec_namebut it seems that the DSL expects the node name:ros2model/templates/rossystem.rossystem.j2
Line 15 in 0fd8d9e
rossystem.xtext:
So, If you define a .ros2 file like the following:
the template generates:
and I get this error in eclipse:
the DSL seems to expect: