0
$\begingroup$

Rosanswers logo

Hi,

I'm trying to do a demo of mapping a large building with ROS2 Foxy, Slam Toolbox and a Rover Pro. I'm starting inside an office connected to wifi and then moving down a hallway where I lose wifi connection. If I have ROS_LOCALHOST_ONLY=0 then I have several nodes crash with error message tev: ddsi_udp_conn_write to udp/10.0.3.119:58679 failed with retcode: -1

image description

I then set ROS_LOCALHOST_ONLY=1 and am able to drive outside of wifi coverage but RVIZ2 fails to open with the error failed to find a free participant index for domain 0 so I am not able to see the map I'm creating.

image description

Here is my ROS2 doctor --report

NETWORK CONFIGURATION ether
: 1c:69:7a:00:c8:04 device : eno1 flags : 4099<UP,BROADCAST,MULTICAST> mtu
: 1500 inet : 127.0.0.1 inet4 : ['127.0.0.1'] inet6 : ['::1'] netmask : 255.0.0.0 device
: lo flags : 73<UP,LOOPBACK,RUNNING> mtu
: 65536 inet : 10.0.3.119 inet4 : ['10.0.3.119'] ether
: d0:c6:37:08:eb:ca inet6 : ['fe80::eef9:c514:2059:e7cb'] netmask : 255.255.248.0 device : wlp0s20f3 flags : 4163<UP,BROADCAST,RUNNING,MULTICAST> mtu : 1500 broadcast : 10.0.7.255 inet : 10.10.0.2 inet4 : ['10.10.0.2'] ether
: 9e:39:0f:d3:8b:c9 inet6 : ['fe80::9c39:fff:fed3:8bc9'] netmask
: 255.255.255.0 device : ztppirst4c flags : 4163<UP,BROADCAST,RUNNING,MULTICAST> mtu : 2800 broadcast : 10.10.0.255

PACKAGE VERSIONS builtin_interfaces : required=1.0.0, local=1.0.0 nav2_planner
: required=0.4.5, local=0.4.3 action_tutorials_cpp
: required=0.9.3, local=0.9.3 nav2_gazebo_spawner
: required=0.4.5, local=0.4.3 rosidl_typesupport_introspection_cpp
: required=1.1.0, local=1.0.1 actionlib_msgs
: required=2.0.3, local=2.0.3 ament_uncrustify
: required=0.9.5, local=0.9.5 ament_cmake_core
: required=0.9.7, local=0.9.6 cartographer_ros
: required=1.0.9002, local=1.0.9001 sdl2_vendor
: required=2.4.1, local=2.4.1 pendulum_control
: required=0.9.3, local=0.9.3 resource_retriever
: required=2.3.3, local=2.3.2 nav_msgs : required=2.0.3, local=2.0.3

launch_testing_ament_cmake
: required=0.10.3, local=0.10.2 rosbag2_compression
: required=0.3.5, local=0.3.4 rcl_action
: required=1.1.9, local=1.1.7 rosidl_generator_cpp
: required=1.1.0, local=1.0.1 ament_cmake_target_dependencies
: required=0.9.7, local=0.9.6 rclcpp_components
: required=2.2.0, local=2.1.0 nav2_costmap_2d
: required=0.4.5, local=0.4.3 ros2lifecycle
: required=0.9.7, local=0.9.7 lifecycle
: required=0.9.3, local=0.9.3 tinyxml_vendor
: required=0.8.0, local=0.8.0 gazebo_msgs
: required=3.5.0, local=3.5.0 cv_bridge
: required=2.2.1, local=2.2.1 ament_lint_auto
: required=0.9.5, local=0.9.5 nav2_map_server
: required=0.4.5, local=0.4.3 ament_cmake_flake8
: required=0.9.5, local=0.9.5 rqt_py_common
: required=1.0.6, local=1.0.6 uncrustify_vendor
: required=1.4.0, local=1.4.0 demo_nodes_py
: required=0.9.3, local=0.9.3 topic_monitor
: required=0.9.3, local=0.9.3 rclcpp_lifecycle
: required=2.2.0, local=2.1.0 geographic_msgs
: required=1.0.4, local=1.0.4 rmw_fastrtps_shared_cpp
: required=1.2.2, local=1.2.0 eigen3_cmake_module
: required=0.1.1, local=0.1.1 ros2launch
: required=0.11.0, local=0.10.2 demo_nodes_cpp
: required=0.9.3, local=0.9.3 rcpputils
: required=1.3.1, local=1.3.0 sqlite3_vendor
: required=0.3.5, local=0.3.4 rviz_default_plugins
: required=8.2.0, local=8.2.0 rosidl_typesupport_fastrtps_cpp
: required=1.0.1, local=1.0.1 kdl_parser
: required=2.4.1, local=2.4.1 rcl
: required=1.1.9, local=1.1.7 python_cmake_module
: required=0.8.0, local=0.8.0 rqt_gui_cpp
: required=1.0.6, local=1.0.6 ament_cmake_version
: required=0.9.7, local=0.9.6 qt_gui_py_common
: required=1.1.2, local=1.1.1 rosidl_runtime_py
: required=0.9.0, local=0.9.0 pcl_msgs : required=1.0.0, local=1.0.0 turtlesim
: required=1.2.5, local=1.2.5 camera_info_manager
: required=2.3.0, local=2.3.0 rosidl_typesupport_cpp
: required=1.0.0, local=1.0.0 rviz_ogre_vendor
: required=8.2.0, local=8.2.0 examples_rclcpp_minimal_publisher
: required=0.9.3, local=0.9.3 rosidl_parser
: required=1.1.0, local=1.0.1 pcl_conversions
: required=2.2.0, local=2.2.0 ros2bag : required=0.3.5, local=0.3.4 rqt_gui_py
: required=1.0.6, local=1.0.6 ament_cmake_pep257
: required=0.9.5, local=0.9.5 launch_yaml
: required=0.10.3, local=0.10.2 logging_demo
: required=0.9.3, local=0.9.3 message_filters
: required=3.2.4, local=3.2.4 rttest
: required=0.9.0, local=0.9.0 dwb_plugins
: required=0.4.5, local=0.4.3 libstatistics_collector
: required=1.0.1, local=1.0.1 rosidl_default_runtime
: required=1.0.0, local=1.0.0 rosidl_cmake
: required=1.1.0, local=1.0.1 rqt_console
: required=1.1.1, local=1.1.1 examples_rclcpp_minimal_subscriber
: required=0.9.3, local=0.9.3 rmw_fastrtps_cpp
: required=1.2.2, local=1.2.0 laser_geometry
: required=2.2.0, local=2.2.0 nav2_behavior_tree
: required=0.4.5, local=0.4.3 rviz_assimp_vendor
: required=8.2.0, local=8.2.0 interactive_markers
: required=2.1.2, local=2.1.2 rosidl_typesupport_c
: required=1.0.0, local=1.0.0 tf2_ros : required=0.13.6, local=0.13.5 rosidl_typesupport_interface
: required=1.1.0, local=1.0.1 ament_cmake_pytest
: required=0.9.7, local=0.9.6 ament_copyright
: required=0.9.5, local=0.9.5 image_tools
: required=0.9.3, local=0.9.3 rmw_implementation
: required=1.0.1, local=1.0.0 spdlog_vendor
: required=1.1.2, local=1.1.2 rosbag2_transport
: required=0.3.5, local=0.3.4 map_msgs : required=2.0.2, local=2.0.2 quality_of_service_demo_cpp
: required=0.9.3, local=0.9.3 composition_interfaces
: required=1.0.0, local=1.0.0 ament_pep257
: required=0.9.5, local=0.9.5 examples_rclcpp_minimal_service
: required=0.9.3, local=0.9.3 rcl_logging_spdlog
: required=1.0.1, local=1.0.1 rmw_dds_common
: required=1.0.1, local=1.0.1 rclpy
: required=1.0.4, local=1.0.4 examples_rclpy_minimal_action_client
: required=0.9.3, local=0.9.3 dummy_sensors
: required=0.9.3, local=0.9.3 behaviortree_cpp_v3
: required=3.5.3, local=3.5.0 tf2
: required=0.13.6, local=0.13.5 ament_cmake_python
: required=0.9.7, local=0.9.6 launch_xml
: required=0.10.3, local=0.10.2 rviz2 : required=8.2.0, local=8.2.0 rosbag2_converter_default_plugins
: required=0.3.5, local=0.3.4 rqt_topic
: required=1.1.0, local=1.1.0 nav2_waypoint_follower
: required=0.4.5, local=0.4.3 rqt_action
: required=1.0.1, local=1.0.1 ament_cmake_cppcheck
: required=0.9.5, local=0.9.5 ament_cmake_xmllint
: required=0.9.5, local=0.9.5 depthimage_to_laserscan
: required=2.3.0, local=2.3.0 rqt_service_caller
: required=1.0.3, local=1.0.3 dwb_msgs : required=0.4.5, local=0.4.1 rosgraph_msgs
: required=1.0.0, local=1.0.0 camera_calibration_parsers
: required=2.3.0, local=2.3.0 ament_lint_cmake
: required=0.9.5, local=0.9.5 nav2_bt_navigator
: required=0.4.5, local=0.4.3 librealsense2
: required=2.34.0, local=2.34.0 robot_state_publisher
: required=2.4.1, local=2.4.0 tf2_geometry_msgs
: required=0.13.6, local=0.13.5 tf2_eigen
: required=0.13.6, local=0.13.5 teleop_twist_keyboard
: required=2.3.2, local=2.3.2 rqt_graph
: required=1.1.0, local=1.0.4 ros2pkg : required=0.9.7, local=0.9.7 nav2_voxel_grid
: required=0.4.5, local=0.4.3 image_geometry
: required=2.2.1, local=2.2.1 test_msgs
: required=1.0.0, local=1.0.0 rosidl_generator_py
: required=0.9.3, local=0.9.3 ros2topic
: required=0.9.7, local=0.9.7 gazebo_ros
: required=3.5.0, local=3.5.0 diagnostic_msgs
: required=2.0.3, local=2.0.3 stereo_msgs
: required=2.0.3, local=2.0.3 rqt_publisher
: required=1.1.0, local=1.1.0 dummy_robot_bringup
: required=0.9.3, local=0.9.3 std_srvs : required=2.0.3, local=2.0.3 geometry_msgs
: required=2.0.3, local=2.0.3 quality_of_service_demo_py
: required=0.9.3, local=0.9.3 ament_package
: required=0.9.2, local=0.9.2 geometry2
: required=0.13.6, local=0.13.5 example_interfaces
: required=0.9.0, local=0.9.0 karto_sdk
: required=, local=1.1.4 tracetools
: required=1.0.4, local=1.0.2 joy
: required=2.4.1, local=2.4.1 ament_cmake_auto
: required=0.9.7, local=0.9.6 qt_gui_cpp
: required=1.1.2, local=1.1.1 nav2_controller
: required=0.4.5, local=0.4.3 ament_cmake_export_libraries
: required=0.9.7, local=0.9.6 ament_cmake_test
: required=0.9.7, local=0.9.6 launch_testing
: required=0.10.3, local=0.10.2 std_msgs
: required=2.0.3, local=2.0.3 rqt_reconfigure
: required=1.0.6, local=1.0.6 robot_localization
: required=3.1.1, local=3.1.1 action_tutorials_interfaces
: required=0.9.3, local=0.9.3 gazebo_dev
: required=3.5.0, local=3.5.0 ament_cmake_export_dependencies
: required=0.9.7, local=0.9.6 ament_cmake_copyright
: required=0.9.5, local=0.9.5 navigation2
: required=0.4.5, local=0.4.3 rviz_common
: required=8.2.0, local=8.2.0 ament_xmllint
: required=0.9.5, local=0.9.5 ros2service
: required=0.9.7, local=0.9.7 sros2
: required=0.9.3, local=0.9.2 ament_cmake_uncrustify
: required=0.9.5, local=0.9.5 examples_rclcpp_multithreaded_executor : required=0.9.3, local=0.9.3 class_loader
: required=2.0.1, local=2.0.1 ament_cmake_export_include_directories : required=0.9.7, local=0.9.6 examples_rclcpp_minimal_action_server : required=0.9.3, local=0.9.3 console_bridge_vendor
: required=1.2.2, local=1.2.2 ros_core : required=0.9.2, local=0.9.2 rqt_py_console
: required=1.0.0, local=1.0.0 rosidl_generator_c
: required=1.1.0, local=1.0.1 rqt_gui : required=1.0.6, local=1.0.6 examples_rclcpp_minimal_client
: required=0.9.3, local=0.9.3 tinyxml2_vendor
: required=0.7.3, local=0.7.3 dwb_core : required=0.4.5, local=0.4.3 libyaml_vendor
: required=1.0.2, local=1.0.2 ament_cmake_include_directories
: required=0.9.7, local=0.9.6 ament_cmake_export_targets
: required=0.9.7, local=0.9.6 joint_state_publisher
: required=2.2.0, local=2.2.0 rcl_lifecycle
: required=1.1.9, local=1.1.7 ament_cpplint
: required=0.9.5, local=0.9.5 launch_testing_ros
: required=0.11.0, local=0.10.2 ament_lint_common
: required=0.9.5, local=0.9.5 examples_rclpy_minimal_service
: required=0.9.3, local=0.9.3 trajectory_msgs
: required=2.0.3, local=2.0.3 rclcpp
: required=2.2.0, local=2.1.0 rosbag2 : required=0.3.5, local=0.3.4 nav2_core
: required=0.4.5, local=0.4.3 rclcpp_action
: required=2.2.0, local=2.1.0 ament_flake8
: required=0.9.5, local=0.9.5 xacro
: required=2.0.3, local=2.0.3 dynamixel_sdk
: required=3.7.30, local=3.7.30 urdf
: required=2.4.0, local=2.4.0 rmw_implementation_cmake
: required=1.0.2, local=1.0.1 tango_icons_vendor
: required=0.0.1, local=0.0.1 ament_index_cpp
: required=1.0.1, local=1.0.0 rosbag2_storage_default_plugins
: required=0.3.5, local=0.3.4 tf2_tools
: required=0.13.6, local=0.13.5 ros2multicast
: required=0.9.7, local=0.9.7 examples_rclpy_minimal_action_server
: required=0.9.3, local=0.9.3 nav2_system_tests
: required=0.4.5, local=0.4.3 image_transport
: required=2.3.0, local=2.3.0 osrf_pycommon
: required=0.1.10, local=0.1.10 zstd_vendor
: required=0.3.5, local=0.3.4 lifecycle_msgs
: required=1.0.0, local=1.0.0 ros_base : required=0.9.2, local=0.9.2 nav2_common
: required=0.4.5, local=0.4.3 nav2_dwb_controller
: required=0.4.5, local=0.4.3 dwb_critics
: required=0.4.5, local=0.4.3 tlsf
: required=0.5.0, local=0.5.0 ament_cmake_export_interfaces
: required=0.9.7, local=0.9.6 ament_cmake_export_link_flags
: required=0.9.7, local=0.9.6 ament_cmake_gmock
: required=0.9.7, local=0.9.6 rqt_shell
: required=1.0.0, local=1.0.0 diagnostic_updater
: required=2.0.4, local=2.0.4 examples_rclcpp_minimal_timer
: required=0.9.3, local=0.9.3 nav2_bringup
: required=0.4.5, local=0.4.3 ros_workspace
: required=1.0.1, local=1.0.1 examples_rclpy_minimal_client
: required=0.9.3, local=0.9.3 ament_cppcheck
: required=0.9.5, local=0.9.5 action_msgs
: required=1.0.0, local=1.0.0 statistics_msgs
: required=1.0.0, local=1.0.0 nav2_amcl
: required=0.4.5, local=0.4.3 pendulum_msgs
: required=0.9.3, local=0.9.3 ros2cli : required=0.9.7, local=0.9.7 tf2_sensor_msgs
: required=0.13.6, local=0.13.5 ament_cmake_ros
: required=0.9.0, local=0.9.0 ros_environment
: required=2.5.0, local=2.5.0 ros2param
: required=0.9.7, local=0.9.7 rmw_cyclonedds_cpp
: required=0.7.5, local=0.7.4 launch
: required=0.10.3, local=0.10.2 nav_2d_utils
: required=0.4.5, local=0.4.3 rqt_image_view
: required=1.1.0, local=1.0.4 launch_ros
: required=0.11.0, local=0.10.2 examples_rclpy_minimal_publisher
: required=0.9.3, local=0.9.3 nav2_rviz_plugins
: required=0.4.5, local=0.4.3 ament_cmake_lint_cmake
: required=0.9.5, local=0.9.5 nav2_lifecycle_manager
: required=0.4.5, local=0.4.3 intra_process_demo
: required=0.9.3, local=0.9.3 rqt_common_plugins
: required=1.0.0, local=1.0.0 nav2_msgs
: required=0.4.5, local=0.4.3 ros2run : required=0.9.7, local=0.9.7 examples_rclpy_executors
: required=0.9.3, local=0.9.3 nav2_recoveries
: required=0.4.5, local=0.4.3 rviz_rendering
: required=8.2.0, local=8.2.0 rosidl_runtime_c
: required=1.1.0, local=1.0.1 demo_nodes_cpp_native
: required=0.9.3, local=0.9.3 dummy_map_server
: required=0.9.3, local=0.9.3 tf2_bullet
: required=0.13.6, local=0.13.5 libcurl_vendor
: required=2.3.3, local=2.3.2 ament_lint
: required=0.9.5, local=0.9.5 nav2_util
: required=0.4.5, local=0.4.3 ament_index_python
: required=1.0.1, local=1.0.0 rosidl_typesupport_fastrtps_c
: required=1.0.1, local=1.0.1 qt_dotgraph
: required=1.1.2, local=1.1.1 rqt_top
: required=1.0.0, local=1.0.0 ros2interface
: required=0.9.7, local=0.9.7 rmw
: required=1.0.2, local=1.0.1 unique_identifier_msgs
: required=2.1.2, local=2.1.2 action_tutorials_py
: required=0.9.3, local=0.9.3 sros2_cmake
: required=0.9.3, local=0.9.2 rqt_plot : required=1.0.8, local=1.0.8 ament_cmake_cpplint
: required=0.9.5, local=0.9.5 tf2_kdl : required=0.13.6, local=0.13.5 ament_cmake_export_definitions
: required=0.9.7, local=0.9.6 rosidl_default_generators
: required=1.0.0, local=1.0.0 rqt_srv : required=1.0.1, local=1.0.1 ament_cmake
: required=0.9.7, local=0.9.6 yaml_cpp_vendor
: required=7.0.2, local=7.0.2 visualization_msgs
: required=2.0.3, local=2.0.3 nav2_navfn_planner
: required=0.4.5, local=0.4.3 rcutils : required=1.1.1, local=1.0.1 shared_queues_vendor
: required=0.3.5, local=0.3.4 shape_msgs
: required=2.0.3, local=2.0.3 gazebo_ros_pkgs
: required=3.5.0, local=3.5.0 ros2doctor
: required=0.9.7, local=0.9.7 rosidl_adapter
: required=1.1.0, local=1.0.1 tf2_py
: required=0.13.6, local=0.13.5 costmap_queue
: required=0.4.5, local=0.4.3 examples_rclcpp_minimal_action_client : required=0.9.3, local=0.9.3 common_interfaces
: required=2.0.3, local=2.0.3 composition
: required=0.9.3, local=0.9.3 domain_coordinator
: required=0.9.0, local=0.9.0 gazebo_plugins
: required=3.5.0, local=3.5.0 sensor_msgs
: required=2.0.3, local=2.0.3 rosidl_runtime_cpp
: required=1.1.0, local=1.0.1 ros2node : required=0.9.7, local=0.9.7 rcl_yaml_param_parser
: required=1.1.9, local=1.1.7 angles
: required=1.12.3, local=1.12.3 nav_2d_msgs
: required=0.4.5, local=0.4.1 ament_cmake_libraries
: required=0.9.7, local=0.9.6 slam_toolbox
: required=2.3.0, local=2.3.0 rosbag2_storage
: required=0.3.5, local=0.3.4 ros2component
: required=0.9.7, local=0.9.7 fastrtps_cmake_module
: required=1.0.1, local=1.0.1 rcl_interfaces
: required=1.0.0, local=1.0.0 ros2action
: required=0.9.7, local=0.9.7 rosidl_typesupport_introspection_c
: required=1.1.0, local=1.0.1 tlsf_cpp : required=0.9.0, local=0.9.0 ament_cmake_gtest
: required=0.9.7, local=0.9.6 rosbag2_cpp
: required=0.3.5, local=0.3.4 tf2_msgs : required=0.13.6, local=0.13.5 cartographer_ros_msgs
: required=1.0.9002, local=1.0.9001 qt_gui
: required=1.1.2, local=1.1.1 rpyutils : required=0.2.0, local=0.1.0 examples_rclcpp_minimal_composition
: required=0.9.3, local=0.9.3 pluginlib
: required=2.5.2, local=2.5.2 python_qt_binding
: required=1.0.5, local=1.0.5 rqt_msg : required=1.0.2, local=1.0.2 examples_rclpy_minimal_subscriber
: required=0.9.3, local=0.9.3

PLATFORM INFORMATION system
: Linux platform info : Linux-5.4.0-52-generic-x86_64-with-glibc2.29 release : 5.4.0-52-generic processor : x86_64

RMW MIDDLEWARE middleware name : rmw_cyclonedds_cpp

ROS 2 INFORMATION distribution name : foxy distribution type : ros2 distribution status : active release platforms : {'ubuntu': ['focal']}

TOPIC LIST topic : none publisher count : 0 subscriber count : 0


Originally posted by shoemakerlevy9 on ROS Answers with karma: 545 on 2020-11-07

Post score: 3

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

That looks like Cyclone DDS being unhappy ... 😔

The CYCLONEDDS_URI environment variable can be set to a list of XML file(s) and/or embedded XML fragments to configure Cyclone DDS, and there you can configure the network interface to use, as well as deal with the pesky "failed to find a free participant index".

Use the CycloneDDS/Domain/General/NetworkInterfaceAddress element to specify either the name of the interface, or the IP address of the host on that interface, or (for IPv4 networks) the network address (so the host bits cleared).

For the "participant index" thing: it really prefers multicast for discovery, but the default configuration of a Linux loopback interface (at least on some distributions) falsely claims not to support multicast ... because of that it falls back to unicast discovery, but then it:

  • needs a set of well-known port numbers at which to reach the processes, which is where this thing called "participant index" shows up in the specification;
  • needs to actually send packets to all of those ports periodically if it is to deal correctly with all nasty edge cases with flaky networks, and the larger that set the worse those bursts become (this is just a consequence of how the DDSI-RTPS specification works), which, combined with a bit of ancient history, resulted in limiting it to 10 by default;
  • hits that limit ...

That limit can be raised by setting

CycloneDDS/Domain/Discovery/MaxAutoParticipantIndex

On Ethernet/WiFi you always have multicast and this problem doesn't exist. On WiFi you do have to make sure you avoid using multicast for data, and I don't know whether the auto-detection of wired vs WiFi will work if there is a VPN in between. So to be safe, you might want to limit the use of multicast to the initial discovery traffic only, by setting

CycloneDDS/Domain/General/AllowMulticast

to "spdp" (for Simple Participant Discovery Protocol)

For example, if you do have working multicast and there's WiFi behind a VPN:

<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
    <Domain id="any">
        <General>
            <NetworkInterfaceAddress>vpn</NetworkInterfaceAddress>
            <AllowMulticast>spdp</AllowMulticast>
        </General>
    </Domain>
</CycloneDDS>

or if you want to avoid multicast altogether (most of this is set automatically when the interface doesn't support multicast, but if you specifically want to avoid multicast on an interface that does support it, you need to do this yourself):

<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
    <Domain id="any">
        <General>
            <NetworkInterfaceAddress>lo</NetworkInterfaceAddress>
            <AllowMulticast>false</AllowMulticast>
        </General>
        <Discovery>
            <ParticipantIndex>auto</ParticipantIndex>
            <MaxAutoParticipantIndex>30</NetworkInterfaceAddress>
            <Peers>
                <Peer address="localhost"/>
            </Peers>
        </Discovery>
    </Domain>
</CycloneDDS>

Finally, as I remarked above, you can also put XML fragments in that environment variable, and then you're allowed make some abbreviations: (1) skipping the two top-level elements, (2) abbreviating names to the shortest unique prefix and (3) replacing all closing tags by "</>". So the first could also be done by

export CYCLONEDDS_URI="<Gen><Net>vpn</><Allow>spdp</></>"

And as a footnote to the final remark: do see https://github.com/eclipse-cyclonedds/cyclonedds/#configuration and see if your editor understands the XSD file that is referenced.


Originally posted by eboasson with karma: 91 on 2020-11-11

This answer was ACCEPTED on the original site

Post score: 4


Original comments

Comment by hapy-capy on 2023-01-04:
If you were to setup Cyclone as in the last full xml file you listed, do you have any things to lookout for if choosing lo as the NetworkInterface and false for AllowMulticast? I assume this is not "breaking" necessarily, but doesn't ROS depend on multicast?

$\endgroup$
0
$\begingroup$

Rosanswers logo

You clould start an AP an the robot. And connect direct to the robot.

    ROS_LOCALHOST_ONLY=0

And rviz should work properly.


Originally posted by duck-development with karma: 1999 on 2020-11-08

This answer was NOT ACCEPTED on the original site

Post score: 1


Original comments

Comment by ChriMo on 2020-11-08:
yes, hostapd with static ip address will be a temporary workaround solution. I use a WIFi USB stick as secondary wireless interface for off-road usage.

Comment by ChriMo on 2020-11-08:
maybe a dummy interface will help

sudo ip link add dummy0 type dummy

sudo ip addr add 10.11.99.1/24 dev dummy0

I've never tried it with dds

Comment by shoemakerlevy9 on 2020-11-10:
How do I tell ROS2 to use a certain interface? In ROS1 there was the variable ROS_IP and ROS_MASTER_URI, but from looking at this thread it sounds like that is no longer the case. https://github.com/ros2/ros2/issues/798

FYI I have a VPN setup to provide a static and persistent interface to point ROS2 to. So now I just need to know how to tell ROS2 to use it.

Comment by duck-development on 2020-11-10:
You may look at https://fast-dds.docs.eprosima.com/en/latest/fastdds/transport/tcp/tcp.html#transport-tcp-tcp.

Write your xml and export the path

  export FASTRTPS_DEFAULT_PROFILES_FILE=path/to/

https://fast-dds.docs.eprosima.com/en/latest/fastdds/use_cases/ros2/ros2.html

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.