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
Platform: Raspberry Pi 5 (using Ubuntu 22.04) connected to a PC (using Windows)
Steps To Reproduce
1°) On the one hand, by using the command line ros2 launch foxglove_bridge foxglove_bridge_launch.xml in the Ubuntu terminal, the address and the port are properly set judging by the terminal's feedback :
[INFO] [foxglove_bridge-1]: process started with pid [13913]
[foxglove_bridge-1] [INFO] [1721823866.109491784] [foxglove_bridge_component_manager]: Load Library: /opt/ros/humble/lib/libfoxglove_bridge_component.so
[foxglove_bridge-1] [INFO] [1721823866.120097007] [foxglove_bridge_component_manager]: Found class: rclcpp_components::NodeFactoryTemplate<foxglove_bridge::FoxgloveBridge>
[foxglove_bridge-1] [INFO] [1721823866.120203156] [foxglove_bridge_component_manager]: Instantiate class: rclcpp_components::NodeFactoryTemplate<foxglove_bridge::FoxgloveBridge>
[foxglove_bridge-1] [INFO] [1721823866.125399664] [foxglove_bridge]: Starting foxglove_bridge (humble, 0.7.7@) with WebSocket++/0.8.2
[foxglove_bridge-1] [INFO] [1721823866.126065432] [foxglove_bridge]: [WS] Server running without TLS
[foxglove_bridge-1] [INFO] [1721823866.126504308] [foxglove_bridge]: [WS] WebSocket server listening at ws://0.0.0.0:8765
[foxglove_bridge-1] [INFO] [1721823866.126538567] [foxglove_bridge]: [WS] WebSocket server run loop started
Therefore I can visualize things as expected in Foxglove Studio in the PC.
2°) On the other hand, I created the following launch file, which include the equivalent launch and other ROS2 functions:
from launch import LaunchDescription
from launch.actions import IncludeLaunchDescription, ExecuteProcess
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch_xml.launch_description_sources import XMLLaunchDescriptionSource
from launch_ros.actions import Node
import os
def generate_launch_description():
# Include rosbridge websocket [launch file] :
rosbridge_launch_path = os.path.join(get_package_share_directory('rosbridge_server'),
'launch',
'rosbridge_websocket_launch.xml')
rosbridge_launch = IncludeLaunchDescription( XMLLaunchDescriptionSource(rosbridge_launch_path) )
# Include foxglove bridge [launch file] :
foxglove_bridge_launch_path = os.path.join(get_package_share_directory('foxglove_bridge'),
'launch',
'foxglove_bridge_launch.xml')
foxglove_bridge_launch = IncludeLaunchDescription( XMLLaunchDescriptionSource(foxglove_bridge_launch_path) )
# Include xsarm moveit [launch file] :
xsarm_moveit_launch_path = os.path.join(get_package_share_directory('amlab_xsarm_moveit'),
'launch',
'xsarm_moveit.launch.py')
xsarm_moveit_launch = IncludeLaunchDescription( PythonLaunchDescriptionSource(xsarm_moveit_launch_path),
launch_arguments={'robot_model': 'wx250s', 'hardware_type': 'actual'}.items() )
# Include ros2_service_wrapper.py [executable] :
ros2_service_wrapper = ExecuteProcess( cmd=[ 'python3',
os.path.join(get_package_share_directory('amlab_xsarm_moveit'), 'ros2_service_wrapper.py') ],
output='screen')
# Launch the whole :
return LaunchDescription( [rosbridge_launch, foxglove_bridge_launch, xsarm_moveit_launch, ros2_service_wrapper] )
# Function to get packages paths :
def get_package_share_directory(package_name):
from ament_index_python.packages import get_package_share_directory
return get_package_share_directory(package_name)
In this way, the default address and port are not met as can be seen in the terminal feedback : [foxglove_bridge-3] [INFO] [1721824501.660898719] [foxglove_bridge]: [WS] WebSocket server listening at ws://[::1]:9090
It should be ws://0.0.0.0:8765 instead of ws://[::1]:9090), so of course Foxglove Studio cannot get the data :(
3°) I can solve this by:
a) Specifying the address and the port as launch arguments in my launch file:
b) Inverting the order of rosbridge_launch and foxglove_bridge_launch in return LaunchDescription([...]).
By doing so I obtain ws://0.0.0.0:8765 as expected and Foxglove Studio works.
Expected Behavior
The result obtained at step 3°) should appear at the step 2°), since the port and the address are set by default to "8765" and "0.0.0.0" in foxglove_bridge_launch.xml, which is the file called by my launch code. What is the reason for this error?
The text was updated successfully, but these errors were encountered:
The IncludeLaunchDescription action will basically copy-paste the contents of the target file into your launch description. This is what is causing the "port" argument to be overwritten in this case.
Description
Steps To Reproduce
1°) On the one hand, by using the command line
ros2 launch foxglove_bridge foxglove_bridge_launch.xml
in the Ubuntu terminal, the address and the port are properly set judging by the terminal's feedback :Therefore I can visualize things as expected in Foxglove Studio in the PC.
2°) On the other hand, I created the following launch file, which include the equivalent launch and other ROS2 functions:
In this way, the default address and port are not met as can be seen in the terminal feedback :
[foxglove_bridge-3] [INFO] [1721824501.660898719] [foxglove_bridge]: [WS] WebSocket server listening at ws://[::1]:9090
It should be
ws://0.0.0.0:8765
instead ofws://[::1]:9090
), so of course Foxglove Studio cannot get the data :(3°) I can solve this by:
a) Specifying the address and the port as launch arguments in my launch file:
b) Inverting the order of
rosbridge_launch
andfoxglove_bridge_launch
inreturn LaunchDescription([...])
.By doing so I obtain
ws://0.0.0.0:8765
as expected and Foxglove Studio works.Expected Behavior
The result obtained at step 3°) should appear at the step 2°), since the port and the address are set by default to "8765" and "0.0.0.0" in
foxglove_bridge_launch.xml
, which is the file called by my launch code. What is the reason for this error?The text was updated successfully, but these errors were encountered: