ApolloAuto / apollo

An open autonomous driving platform
Apache License 2.0
25.07k stars 9.68k forks source link

Can I make cyber channel fastRTPS messages more reliable? #15029

Open jumogehn opened 1 year ago

jumogehn commented 1 year ago

System information

I would like to ask a question about the case where a cyber channel is operated across two systems. In this environment, after setting the value of the variable CYBER_IP to the IP of each system in /apollo/cyber/setup.bash within the Apollo Docker container of each system, /apollo/scripts/bootstrap.sh was executed in the environment that sourced it. At this time, after running cyber_monitor in the Apollo Docker container of each system, if you run the modules using the SETUP button on the dreamview web screen of one system, several modules are executed. Because the modules to be executed in the two systems are separated, predefined modules are executed in each system. In addition, sending and receiving messages of each module can be observed in the cyber_monitor of each system. In this situation, I will write down the questions below.

  1. If two systems share the cyber channel like this, will each module communicate based on shared memory or fast RTPS/UDP?
  2. Can I change the settings by designating the communication method of a specific module as shared memory or Fast RTPS/UDP?
  3. In the case of a specific message, when transmission/reception is performed within one system, the frame ratio is confirmed to be high in cyber_monitor. However, when transmission/reception is performed via the network on two systems, the frame ratio in cyber_monitor becomes very unstable. The numbers are much lower. Why does the frame ratio drop when transmitting/receiving via the network?
  4. As in question 3, the drop in frame ratio seems to be due to packet loss. Is there any way to prevent this kind of packet loss?
  5. Since the communication is based on RTPS, it seems likely that packets will be lost if the delay exceeds the deadline. So, can we adjust that deadline time to set a larger margin?
  6. When a specific message or node competes for participation in a cyber channel, it seems that reliability can be increased if priority is raised over competitors. Can a particular message or node increase the message priority?
  7. Is it impossible to send and receive RTPS messages with guaranteed reliability in the first place? If not, is there a way?

Thank you very much in advance!

cherishTMYY commented 4 months ago

May I ask if there is a conclusion to your question now?