eProsima / Fast-DDS-monitor

eProsima Fast DDS Monitor is a graphical desktop application aimed at monitoring DDS environments deployed using the eProsima Fast DDS library. Looking for commercial support? Contact info@eprosima.com
https://eprosima.com
GNU General Public License v3.0
40 stars 10 forks source link

How to use this tool to analyze Autoware? #168

Closed Li-Jun-SD closed 1 year ago

Li-Jun-SD commented 1 year ago

Hi, I am tring to use this tool to analyze latency of ros2 (humble) nodes in Autoware planning simulation scenario. I found that this tool is tend to stuck when I start simulation ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit. Even if it is not stucked, no topic sub or pub would show in DDS entities, only load_ndoe_xx would be showed in that panel. Could you help to answer some questions?

jparisu commented 1 year ago

Hi @Li-Jun-SD ,

With the current information I do not see any reason why your Fast DDS Monitor is not working correctly.

Answers

How powerful the computer should I use. (For now, my pc: CPU i7-12700H, MEM 16GB, GPU 3070Ti laptop 8GB)

This application could run in any standard computer. The only important feature that will change between architectures is the speed of the application.

Does ros2 launch have some influence on this tool

No, it does not. At least that we are aware of so far.

Autoware and Fast DDS Monitor running in 2 separated docker container, could I use it in container?

You can execute both applications in the same container (as long as the container has permission to use graphical interface) without problem.


Questions

These are my ideas of what could being going on and how to check it / solve it:

Domain Id

This may be trivial but, are you sure everything (Autoware and Fast DDS Monitor) are running in the same ROS DOMAIN ID? Is any of them running in a different one that the default (0) or using Discovery Server?

Network size

The number of DDS Entities in the network could become a problem with very huge deployments. Do you know the approximate number of Participants (1 per process in ROS 2) and Endpoints (1 per publisher or subscriber, 2 per service, 5 per action) that your network is running?

Docker communication

Depending on the docker configuration, it could happen that different dockers are not allowed to communicate to each other. Please, test a trivial example (as demo_nodes_cpp talker|listener) from one docker to the other in order to check that communication is correctly working. In case both containers are not able to communicate, it could be an issue of multicast or of docker network configuration. This would require a more exhaustive study of the architecture.

What are you seeing now?

Is load_ndoe_xx being shown as a Participant, an Endpoint, etc.? Are you seeing further information in the physical or logical panels? Are you seeing some entities before executing Autoware? Can you please retrieve a screenshot of what you are seeing so far?

Li-Jun-SD commented 1 year ago

Hi @Li-Jun-SD ,

With the current information I do not see any reason why your Fast DDS Monitor is not working correctly.

Answers

How powerful the computer should I use. (For now, my pc: CPU i7-12700H, MEM 16GB, GPU 3070Ti laptop 8GB)

This application could run in any standard computer. The only important feature that will change between architectures is the speed of the application.

Does ros2 launch have some influence on this tool

No, it does not. At least that we are aware of so far.

Autoware and Fast DDS Monitor running in 2 separated docker container, could I use it in container?

You can execute both applications in the same container (as long as the container has permission to use graphical interface) without problem.

Questions

These are my ideas of what could being going on and how to check it / solve it:

Domain Id

This may be trivial but, are you sure everything (Autoware and Fast DDS Monitor) are running in the same ROS DOMAIN ID? Is any of them running in a different one that the default (0) or using Discovery Server?

Network size

The number of DDS Entities in the network could become a problem with very huge deployments. Do you know the approximate number of Participants (1 per process in ROS 2) and Endpoints (1 per publisher or subscriber, 2 per service, 5 per action) that your network is running?

Docker communication

Depending on the docker configuration, it could happen that different dockers are not allowed to communicate to each other. Please, test a trivial example (as demo_nodes_cpp talker|listener) from one docker to the other in order to check that communication is correctly working. In case both containers are not able to communicate, it could be an issue of multicast or of docker network configuration. This would require a more exhaustive study of the architecture.

What are you seeing now?

Is load_ndoe_xx being shown as a Participant, an Endpoint, etc.? Are you seeing further information in the physical or logical panels? Are you seeing some entities before executing Autoware? Can you please retrieve a screenshot of what you are seeing so far?

Hi @Li-Jun-SD ,

With the current information I do not see any reason why your Fast DDS Monitor is not working correctly.

Answers

How powerful the computer should I use. (For now, my pc: CPU i7-12700H, MEM 16GB, GPU 3070Ti laptop 8GB)

This application could run in any standard computer. The only important feature that will change between architectures is the speed of the application.

Does ros2 launch have some influence on this tool

No, it does not. At least that we are aware of so far.

Autoware and Fast DDS Monitor running in 2 separated docker container, could I use it in container?

You can execute both applications in the same container (as long as the container has permission to use graphical interface) without problem.

Questions

These are my ideas of what could being going on and how to check it / solve it:

Domain Id

This may be trivial but, are you sure everything (Autoware and Fast DDS Monitor) are running in the same ROS DOMAIN ID? Is any of them running in a different one that the default (0) or using Discovery Server?

Network size

The number of DDS Entities in the network could become a problem with very huge deployments. Do you know the approximate number of Participants (1 per process in ROS 2) and Endpoints (1 per publisher or subscriber, 2 per service, 5 per action) that your network is running?

Docker communication

Depending on the docker configuration, it could happen that different dockers are not allowed to communicate to each other. Please, test a trivial example (as demo_nodes_cpp talker|listener) from one docker to the other in order to check that communication is correctly working. In case both containers are not able to communicate, it could be an issue of multicast or of docker network configuration. This would require a more exhaustive study of the architecture.

What are you seeing now?

Is load_ndoe_xx being shown as a Participant, an Endpoint, etc.? Are you seeing further information in the physical or logical panels? Are you seeing some entities before executing Autoware? Can you please retrieve a screenshot of what you are seeing so far?

Thanks for your help.

  1. ROS_DOMAIN_ID: I use export ROS_DOMAIN_ID=0 to make sure it is same in container for autoware and container for fast dds monitor.
  2. NETWORK SIZE: Too many topic, approximate number of Participants is over 600 in my scenario.
  3. DOCKER COMMUNICATION: I have tried demo_nodes_cpp, no problem occured. ros2 run demo_nodes_cpp talker and ros2 run demo_nodes_cpp listener run in two terminal first, no problem. Then, I use them as component in a component container, still work well, just load_nodeRequest and load_nodeReply added, DataWriter and DataReader of chatter is still available.
  4. WHAT I AM SEEING NOW

Only some node load service display on the panel. I could not see any ROS2 topic sub or pub here. (sometimes I could see /tf, but it not always in here).

You could see here are many entities, but only the first one really have something. I cannot open other entities by double click them.

If I start Fast DDS Monitor after Autoware start, monitor would be core dumped after I choose domain id. However, if it is not core dumped in some cases, I would get more datawrtiter and datareader about topic pub and sub.

fast_dds_monitor

jparisu commented 1 year ago

Hi @Li-Jun-SD As you said, there are too many topics to use the Fast DDS Monitor. Take into account that using Statistics with Fast DDS, the number of topics is increased and each Participant with active statistics multiplies the number of packages sent in the network. The Fast DDS Monitor is not thought to work with such amount of data. We suggest you to reduce the number of nodes that you want to motorize. This could be done by executing only a subset of the network. It could also be achieved by only using Statistics Topics in few Participants.

Li-Jun-SD commented 1 year ago

Hi @Li-Jun-SD As you said, there are too many topics to use the Fast DDS Monitor. Take into account that using Statistics with Fast DDS, the number of topics is increased and each Participant with active statistics multiplies the number of packages sent in the network. The Fast DDS Monitor is not thought to work with such amount of data. We suggest you to reduce the number of nodes that you want to motorize. This could be done by executing only a subset of the network. It could also be achieved by only using Statistics Topics in few Participants.

Thank you.