Closed Cryst4L9527 closed 2 years ago
I'm going to close the other 4 tickets since they all seem to be in the same theme - you're randomly generating parameters without knowledge of them and things aren't reacting reasonably due to that. That all falls under 1 ticket categorization (and renaming this ticket appropriately). You linked the other tickets here so they're still findable for the specific instance descriptions.
Due to the nature of your experiment, I just don't have the time to guess and check one of a hundred different parameters to know what's happening. To be more principled if you're trying to help make Nav2 robust against user misconfiguration is to change 1 parameter at a time so you know which is at fault due to a particular crash. Obviously there may be situations where multiple parameters interact to cause a crash, but fixing 1 step at a time to make this problem tractable and take bite-sized pieces. Then go to fuzzing 1 node at a time so you know where its isolated to, then the full system.
We also do not recommend the use of the goal_pose
topic to send navigation requests. We provide a robust and complete action API to Nav2, the only reason the subscription API still exists is for default out-of-the-box testing using Rviz2 (but even then, if you use Rviz2 configs in this repo, we replace the GoToPose tool with another that uses the Action API). I doubt that changes anything from your work, but more of an informational comment.
Okay,I'm trying to find the actual parameters which causes these crashes. In addition, some of the crashes happened before the goal_pose is submitted, so there will be no changes for my work. Thank you for your advice, I'll try to use the new API in my following work.
Bug report
Required Info:
Steps to reproduce issue
launch the following command together in processes:
and add another node to publish /goal_pose per 4s:
where, the 'fuzz' is a package of mine, it can be changed into whatever. there are also some files specially written, I've list their contents below. here is the mygazebo.py:
where the world_only.model is the original world model from the example in ros2_bringup. here is myburger.sdf:
configall.yaml, is a result of our fuzzing of configs, with some parameters not sensible. However, since it's user-defined, the bugs may still happen because of wrong user behavior. The following is the configall.yaml leading to a crash:
Expected behavior
Process should not crash.
Actual behavior
the program crashed with the Asan information below:
I'll also explore the root cause of this, just report the event first.