tag:blogger.com,1999:blog-1272803659321539598.post1361536418229671675..comments2024-03-28T00:38:03.399-07:00Comments on Digesting Duck: Custom hRVOMikko Mononenhttp://www.blogger.com/profile/11900996590678707801noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-1272803659321539598.post-8047942582043895182010-04-11T13:10:40.692-07:002010-04-11T13:10:40.692-07:00Awesome! Can't believe I just found your blog?...Awesome! Can't believe I just found your blog?!Christopher Evanshttps://www.blogger.com/profile/10530882605276071317noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-89872163568889566882010-03-22T03:55:17.695-07:002010-03-22T03:55:17.695-07:00I think the ORCA collision avoidance distance depe...I think the ORCA collision avoidance distance depends on how much the code is truncated. In case of ORCA, it is hard constrain, but with TOI sampling method, it is more softer constrain.<br /><br />Can you tell, how you distribute the samples?<br /><br />Can it handle similar cases like the 2 agents head-to-head in a corridor in above video?Mikko Mononenhttps://www.blogger.com/profile/11900996590678707801noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-74987422090622716412010-03-22T03:46:53.749-07:002010-03-22T03:46:53.749-07:00By 0 prediction I meant that ORCA (in the article ...By 0 prediction I meant that ORCA (in the article examples) seems to avoid at the last possible moment resulting in lots of contacts between entities where RVO or HRVO tries to avoid collisions earlier (I'm not a good expert on those methods as I haven't implemented one yet).<br /><br />FYI the method I'm working on at Golaem involves a velocity space sampling method using only 200 samples and it works pretty well !Clodérichttps://www.blogger.com/profile/14317773944696952700noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-58180171106593945832010-03-22T02:31:16.999-07:002010-03-22T02:31:16.999-07:00For the sample locations, it uses 31x31 grid, wher...For the sample locations, it uses 31x31 grid, where samples outside the circular area are thrown away. That is somewhere around 700 samples, which is a lot. But the resolution is not quite enough. I use jitter within single cell to improve the changes of getting better results. Works, but results are of course unpredictable.<br /><br />RVOlib uses 250 random samples. I tried that too, but the "head-to-head chicken in corridor" case cannot be solved with so few samples. Also some of the other tight locations become quite unpredictable with that little samples.<br /><br />The most costly part is the time-of-collision raycast, and I think it should be possible to just cast that into N directions and then deduce the slower/faster samples from that. I have try that later if this method proves to be good.<br /><br />Further, I think it should be possible to use some kind of focusing or edge aware adaption to further reduce the sample count. There is quite high temporal coherence there too.Mikko Mononenhttps://www.blogger.com/profile/11900996590678707801noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-83494822888041599822010-03-22T02:15:10.457-07:002010-03-22T02:15:10.457-07:00I like your idea to sample movement possibilities ...I like your idea to sample movement possibilities based on different velocities a lot and am blown away by the results you show. I like this approach as it is very individual or entity based and because I assume that our brain is working (predicting) quite similar when we move.<br /><br />You say that the number of sampled needed per entity are too many - how many samples are we talking about? <br />How many different velocities are you testing with (low-medium-high?)? <br />Might it be possible to apply a metric to the "fitness" of a sample so you could first only run a few samples and if they don't fit the fitness metric more samples are run?<br /><br />Cheers,<br />Bjoernbjoernknaflahttps://www.blogger.com/profile/10971448057807030555noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-17716639404369826512010-03-22T01:48:27.242-07:002010-03-22T01:48:27.242-07:00Correction: 4 way case = 5 agent case.Correction: 4 way case = 5 agent case.Mikko Mononenhttps://www.blogger.com/profile/11900996590678707801noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-43812602021860442682010-03-22T01:44:02.076-07:002010-03-22T01:44:02.076-07:00By prediction you mean to use multiple forward ite...By prediction you mean to use multiple forward iterations when selecting the velocity?<br /><br />If so, the above implementation is not using it either. Usually you need a lot of precision to solve the example cases in the video, which means lots of samples to find the first good sample, which in turn means it is not very practical to do another iteration.<br /><br />It's kinda crappy that geometric methods are too exact, they tend to get into deadlocks really easily (see the 4 way case in that Geometric Methods of Multi-agent Collision Avoidance video), while ramdom sampling adds just enough noise there so that you get higher propability of gettings thigs resolved, and at the same it suffers from aliasing.<br /><br />If you have some experience on doing multiple forward iterations, I'd love to hear about it :)Mikko Mononenhttps://www.blogger.com/profile/11900996590678707801noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-21958944095232606372010-03-22T01:26:11.019-07:002010-03-22T01:26:11.019-07:00I don't think you'll get the same quality ...I don't think you'll get the same quality using ORCA velocity obstacles, it seems it does 0 prediction. But for behavior LOD it seems great. Anyway I'm interested by your feeback !Clodérichttps://www.blogger.com/profile/14317773944696952700noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-41500986541126926532010-03-21T11:57:55.745-07:002010-03-21T11:57:55.745-07:00Always interesting to read your blog :)Always interesting to read your blog :)Sander van Rossenhttps://www.blogger.com/profile/13955123864686957569noreply@blogger.com