Sunday, March 21, 2010
I have tried to pick up my ever growing queue of interesting local avoidance / velocity planning methods. There are certain things I liked about my TOI-sampling scheme, but the results were not quite what I would like it to be.
One of the things that initially got me into creating the TOI-sampling scheme was an assumption that it is good idea to move at maximum velocity most of the time. In practice this seems to be a faulty assumption. It creates a rushing behavior, much a like a headless chicken running around. Especially in crowded situations.
So one thing I have have been pondering is that what might happen if I just removed that assumption and used huge amount of samples instead to test different speeds too. Much like what RVOlib does.
You can see the results in the above video. I think it is much improved now. I used the sample scoring scheme as my previous TOI sampling used. The good thing about it is that it handles all kinds of nasty things really well.
One problem that this custom hRVO suffers is aliasing. The H is in lower case as the method does not quite use the hybrid-RVO method, but does has similar side bias as HRVO does. As clearly visible from the take over situation with 4 agents, the agents favor to pass each other from right. This reduces velocity selection flickering a lot in head-to-head and overtaking situations.
Another trick I added was to favor velocities close to the current velocity. In my previous attempts this has always resulted the agents to favor the wrong solutions too much, resulting cases where the agents hug each other each other, skip towards the sundown and live happily ever after.
In this experiment I also used the pathfinder from the previous blog post to avoid static obstacles.
Anyways, I think this was a successful experiment, even if not completely practical because of the huge number of samples per agent. Inspired by the Geometric Methods of Multi-agent Collision Avoidance video, I think I'm going to try the ORCA method the next to see if I can get similar quality with cheaper calculations.