-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Running execution takes lot of time compared to ROS1 #23
Comments
This sounds similar to FlexBE/flexbe_app#100 that you reported, so you are seeing the issue with both app and webui. Clearly unacceptable, but I can't think of FlexBE reason for this. I suspect we have issue with DDS discovery as it is bringing the messages online. Can I ask you to do two things.
Questions:
|
Separate from the timing issues, there is a UI issue
I am noting that and will look into that while I wait on feedback from networking test. |
We were running the standard DDS setup which comes with ROS2
After setting up the DDS server, the startup time was the same, if not more. I have also noticed another issue, that flexbe was complaining in the terminal, the message was the following:
I'm yet to try out other type of DDS, I will try to set up a test for you as soon as I have the time.
The default Fastrtps, network is wireless, maximum 4 machines, in a lab.
It does not actually hang for a long time, when starting the behavior, it takes around 40 seconds until I get some kind of a terminal message, and then it is not actually freezing, I am constantly getting the messages for every state which is being created. It just takes a lot of time, until it finishes the building of the behavior.
I tried to do topic list and echo, and they are working while it is building the behavior. I have one question too, when it finishes the building of the behavior/state is it normal if I am getting a message like 1450 entries and 1 collision? What does the collision mean? |
last question first. |
At this point, I've always logged the messages to console as each state is processed. With 1450 states, the IO does add a non-trival amount of processing time. I'll look into making this optional, or just eliminate. But that's still on the order of seconds of savings, not minutes. With regard to the "Service not available" timeouts. Normally, I write states that use 0 wait timeout in "on_start", and then have a wait for connection in on_enter to avoid these start up delays. If you are establishing service/action connections in on_start and assigning a wait time there it could account for some delay. |
I am also having another issue while using FastDDS Discovery server, I have a topic with these QoS settings: self._qos = QoSProfile(depth = 1,
history = QoSHistoryPolicy.KEEP_LAST,
reliability = QoSReliabilityPolicy.RELIABLE,
durability = QoSDurabilityPolicy.TRANSIENT_LOCAL) I can echo the topic and I am getting back the value, but when I create a state which is subscribing to the topic, I am getting a warning message which says: |
I have made some discoveries since my last comment, the issue is that if I am using the FastDDS Discovery Server, I am creating a topic type and name check with the help of self._node.get_topic_names_and_types() But it only returns the flexbe related topics like |
What is your network configuration? One local machine, or are you running |
First I tried to run the onboard on the robot and ran the behavior on another computer, and then I tried to run both the onboard and the behavior on the robot, I got the same results. |
I have tried to run the flexbe code by spinning one more time before running the function. It breaks the flexbe, and it deadlocked after the first state. |
After updating the flexbe behavior engine to 4.0.0, the big behavior startup time decreased a lot, good job on the new release. Now if I start the onboard engine, and then start the |
A suggestion for anyone seeing this later
|
When using FlexBE with ROS1, the execution of a large behavior (with nested concurrency containers and numerous behaviors) starts within seconds, typically within 5 seconds. However, with ROS2 Iron and the Flexbe WebUI, the same behavior takes more than 5 minutes to start.
Steps to Reproduce:
Expected Behavior:
The behavior execution should start within seconds, similar to the performance observed with ROS1.
Actual Behavior:
The behavior execution takes more than 5 minutes to start, with the WebUI incorrectly indicating that the behavior can be started again, and significant delays in logger messages and state building.
Picture of the high amount of building state entries
Environment:
ROS Version: ROS2 Iron
FlexBE Engine Version: 3.0.4
WebUI Version: beta
Operating System: Ubuntu 22.04
The text was updated successfully, but these errors were encountered: