<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://pybullet.org/Bullet/phpBB3/app.php/feed/topic/10843" />

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2015-10-03T03:40:35+00:00</updated>

	<author><name><![CDATA[Real-Time Physics Simulation Forum]]></name></author>
	<id>https://pybullet.org/Bullet/phpBB3/app.php/feed/topic/10843</id>

		<entry>
		<author><name><![CDATA[Enhex]]></name></author>
		<updated>2015-10-03T03:40:35+00:00</updated>

		<published>2015-10-03T03:40:35+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36379#p36379</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36379#p36379"/>
		<title type="html"><![CDATA[Re: Manual recovery from penetration problem]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36379#p36379"><![CDATA[
<blockquote class="uncited"><div>You could compute the AABB of all penetration vectors and then chose the corner that is furthest from the origin.  Dunno if it works but is what I would try if I were doing the same thing.<br><br>The AABB combined with the sum of all penetration vectors could provide an even fancier solution.  I can imagine scenarios where the AABB extents could be nearly equal along one or two dimensions making it unclear what is really the best direction.  The sum of all penetrations could be used to differentiate.  For example, you could compute the point where the sum vector leaves the AABB and always use that.  I made an image that tries to communicate this: red vectors for all the penetration inputs, blue for their sum, and green for its projection against the AABB of the inputs.<br><br><img src="http://i.imgur.com/hQMibZm.png" class="postimage" alt="Image"></div></blockquote>Thanks, using corners works.<br>Using intersection with the sum of penetration isn't a good idea, imagine in my original image having gravity and penetration into the ground - using the intersection with the side of the AABB will only fully recover on the axis of the side's normal.<br>Using the corner of the AABB on the other hand makes sure you have full recovery on all axes.<br><blockquote class="uncited"><div>Just act on the largest penetration and ignore the others?</div></blockquote>Imagine having penetration from more than 1 direction, like the gravity &amp; ground example I just gave. Only using the largest doesn't guarantee you'll recover from all penetrations.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=10797">Enhex</a> — Sat Oct 03, 2015 3:40 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[gameover]]></name></author>
		<updated>2015-09-30T20:57:07+00:00</updated>

		<published>2015-09-30T20:57:07+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36369#p36369</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36369#p36369"/>
		<title type="html"><![CDATA[Re: Manual recovery from penetration problem]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36369#p36369"><![CDATA[
Just act on the largest penetration and ignore the others?<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=11501">gameover</a> — Wed Sep 30, 2015 8:57 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[drleviathan]]></name></author>
		<updated>2015-09-30T16:51:39+00:00</updated>

		<published>2015-09-30T16:51:39+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36366#p36366</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36366#p36366"/>
		<title type="html"><![CDATA[Re: Manual recovery from penetration problem]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36366#p36366"><![CDATA[
You could compute the AABB of all penetration vectors and then chose the corner that is furthest from the origin.  Dunno if it works but is what I would try if I were doing the same thing.<br><br>The AABB combined with the sum of all penetration vectors could provide an even fancier solution.  I can imagine scenarios where the AABB extents could be nearly equal along one or two dimensions making it unclear what is really the best direction.  The sum of all penetrations could be used to differentiate.  For example, you could compute the point where the sum vector leaves the AABB and always use that.  I made an image that tries to communicate this: red vectors for all the penetration inputs, blue for their sum, and green for its projection against the AABB of the inputs.<br><br><img src="http://i.imgur.com/hQMibZm.png" class="postimage" alt="Image"><p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=11033">drleviathan</a> — Wed Sep 30, 2015 4:51 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Enhex]]></name></author>
		<updated>2015-09-30T14:25:01+00:00</updated>

		<published>2015-09-30T14:25:01+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36365#p36365</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36365#p36365"/>
		<title type="html"><![CDATA[Re: Manual recovery from penetration problem]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36365#p36365"><![CDATA[
Ehsanizadi, that sounds like something that would affect dynamic objects, but not kinematic ones would it?<br>I did have a go with a dynamic character controller and this problem didn't happen.<br>But for more advanced controller I need to manually control the movement.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=10797">Enhex</a> — Wed Sep 30, 2015 2:25 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Ehsanizadi]]></name></author>
		<updated>2015-09-30T08:29:38+00:00</updated>

		<published>2015-09-30T08:29:38+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36363#p36363</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36363#p36363"/>
		<title type="html"><![CDATA[Re: Manual recovery from penetration problem]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36363#p36363"><![CDATA[
I think two parameters may affect this behaviour:<br><br>1) reducing the time increment<br>2) increasing the number of iterations of the solver (by default it is set to 20)<br><br>Let me know if this work or not.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=10588">Ehsanizadi</a> — Wed Sep 30, 2015 8:29 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Enhex]]></name></author>
		<updated>2015-09-30T02:35:38+00:00</updated>

		<published>2015-09-30T02:35:38+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36360#p36360</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36360#p36360"/>
		<title type="html"><![CDATA[Manual recovery from penetration problem]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=36360#p36360"><![CDATA[
I'm working on a character controller, and it uses manual recovery from penetration which is similar to the one used in the kinematic controller demo - moving back the penetration distance for each contact.<br><br>The problem is when there are several contact points at the same direction, the recovery distance gets stacked up and the character gets pushed far too much:<br><img src="http://i.imgur.com/TaJMpxp.png" class="postimage" alt="Image"><br><br>Anyone knows a way to properly handle this problem?<br>Or perhaps different approach for penetration recovery that works better?<br>Help would be greatly appreciated.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=10797">Enhex</a> — Wed Sep 30, 2015 2:35 am</p><hr />
]]></content>
	</entry>
	</feed>
