You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
But when I launch ros1_bridge, it automatically adds the --ros-args argument, which causes an InvalidNameException when the parameter file is not provided as an argument.
Steps to Reproduce:
Create a launch file and use the Node class from launch_ros.actions to launch ros1_bridge without explicitly passing the --ros-args argument.
Launch the launch file.
Expected Behavior:
The ros1_bridge should launch without any errors, bridging the specified topics between ROS 1 and ROS 2.
Actual Behavior:
The ros1_bridge fails to launch with the following error:
[parameter_bridge-1] terminate called after throwing an instance of 'ros::InvalidNameException'
[parameter_bridge-1] what(): Character [-] is not valid as the first character in Graph Resource Name [--ros-args]. Valid characters are a-z, A-Z, / and in some cases ~.
[ERROR] [parameter_bridge-1]: process has died [pid XXXX, exit code -6, cmd 'ros2_ws/install/ros1_bridge/lib/ros1_bridge/parameter_bridge --ros-args']
Workaround:
Use the ExecuteProcess class from the launch.actions module instead of the Node class to launch ros1_bridge. Pass the command and arguments explicitly using the cmd parameter.
Hi Yuchen,
I am encountering the same issue with Ubuntu 22.04 & Humble why trying to launch parameter_bridge from Python launch file. Have you found another solution apart from using ExecuteProcess?
Bug report
I want to launch parameter_bridge in a customed launch.py file. The code is like this:
But when I launch
ros1_bridge
, it automatically adds the--ros-args
argument, which causes anInvalidNameException
when the parameter file is not provided as an argument.Steps to Reproduce:
Node
class fromlaunch_ros.actions
to launchros1_bridge
without explicitly passing the--ros-args
argument.Expected Behavior:
The
ros1_bridge
should launch without any errors, bridging the specified topics between ROS 1 and ROS 2.Actual Behavior:
The
ros1_bridge
fails to launch with the following error:Workaround:
Use the
ExecuteProcess
class from thelaunch.actions
module instead of theNode
class to launchros1_bridge
. Pass the command and arguments explicitly using thecmd
parameter.Although there is a workaround, I am still wondering if I could launch the node directly using launch_ros.actions.Node.
Thanks for any advice!
The text was updated successfully, but these errors were encountered: