Closed FranklinBF closed 2 years ago
I meet some bug sometimes when running this project, and I find may be this line is wrong.
Sorry for replying so late, since I have been working on a paper submission recently. Could you describe how the bug looks like? I have exam the code but can't fig out the negative affect of the current version.
Hello, if you have no other questions, please close this issue.
Sorry for late replying. I'm not sure if it will cause an error, just find sometimes it is not stable, and I changed it and it then has less error.
Also, the logic here, I think is to take "else if(occ && last_occ)" not just "else if(occ)“. This is what I think. I don't know if it is correct from your point of view.
I also want to thank for your work! I have use your ego planner for 2D trajectory planning in dynamic environment for my master thesis, which shows good performance due to fast replanning and not need for a collision-free initial guess.
I examed the code again. If the code is modified as you said, this line is true only if "i==order". That can cause a negative effect since the later points with "i>order" will never take as occuped in this function.
However, if you modified as I said same_occ_state_times will still counting the points that continuously in occupany.
The following condition can be met. same_occ_state_times > ENOUGH_INTERVAL
Also, another question, why you are searching here for points with continuous same states, otherthan points with continuous occupied states?
For the modified code, since this line is always false except when "i==order_", "flag_got_start" will not get true. Then it results in the occupied segment be ignored at this line.
For the question: the reason for this trick is to make sure each segment has enough length and two adjacent segments have enough interval.
I see. I thought it is used to find the first grid that meets a collision. Thank you very much for the detailed explanation. By the way, I meet another challenge using EGO planner in dynamic environment: If start_pos or first 3 points is in collision, then EGO planner cannot execute the optimization. Is there any solution to this problem?
It should not happen. This error means the drone is in obstacles now, which indicates a collision in the realworld. Note that we use an inflated map for planning. So please subscribe the inflated map in rviz and check why this happens.
Thank you so much for the explanation and the issue is solved.
The problem I meant was not in the EGO-Planner project (EGO planner runs perfectly), but in my own project, where I have modified your EGO planner method for a diff-drive robot planning in an environment with crowds.
很抱歉迟到。我不确定它是否会导致错误,只是发现有时它不稳定,我改变了它,然后它的错误更少。
另外,这里的逻辑,我认为是采取“否则如果(occ &last_occ)”而不仅仅是“否则如果(occ)”。这就是我的想法。我不知道从你的角度来看是否正确。
我还要感谢你的工作!我的硕士论文中使用了您的自我规划器在动态环境中进行2D轨迹规划,由于快速重新规划并且不需要无碰撞的初始猜测,因此表现出良好的性能。 Hello, I see that you use 2D for planning, and now I also want to use 2D, may I ask how to modify the code? Thank you for your guidance
Line 80: should be :
else if(occ && last_occ) { ++same_occ_state_times; }