<?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/306" />

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2006-06-26T05:37:48+00:00</updated>

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

		<entry>
		<author><name><![CDATA[dog]]></name></author>
		<updated>2006-06-26T05:37:48+00:00</updated>

		<published>2006-06-26T05:37:48+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=1232#p1232</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=1232#p1232"/>
		<title type="html"><![CDATA[Alternative for EPA Penetration depth]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=1232#p1232"><![CDATA[
Having just got around to implementing my penetration depth calcs the Erwin Coumans way (well roughly), I'm very pleased with how robust and simple it is. Thank you sir.<br><br>Now back to playing with Gauss maps...<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=60">dog</a> — Mon Jun 26, 2006 5:37 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Erin Catto]]></name></author>
		<updated>2006-06-23T05:39:41+00:00</updated>

		<published>2006-06-23T05:39:41+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=1216#p1216</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=1216#p1216"/>
		<title type="html"><![CDATA[Alternative for EPA Penetration depth]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=1216#p1216"><![CDATA[
I implemented some Gauss map stuff, which is essentially an incremental SAT. Unfortunately, it can easily get stuck at local minima, especially in the edge-edge case. However, I'm still hopefully that some other techniques can be combined with Gauss maps to find separating axes that are <em class="text-italics">good enough</em>.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=12">Erin Catto</a> — Fri Jun 23, 2006 5:39 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[dog]]></name></author>
		<updated>2006-06-23T01:07:35+00:00</updated>

		<published>2006-06-23T01:07:35+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=1214#p1214</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=1214#p1214"/>
		<title type="html"><![CDATA[Alternative for EPA Penetration depth]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=1214#p1214"><![CDATA[
Has any one had any luck implementing the approach described in <a href="http://gamma.cs.unc.edu/DEEP/tvcg.pdf" class="postlink">this paper</a>? They describe why Gino's EPA algorithm has issues (with diagrams!), but I have had no success getting the Gauss mapping robust when trying to emulate their approach.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=60">dog</a> — Fri Jun 23, 2006 1:07 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Erwin Coumans]]></name></author>
		<updated>2006-04-20T18:56:51+00:00</updated>

		<published>2006-04-20T18:56:51+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=911#p911</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=911#p911"/>
		<title type="html"><![CDATA[Alternative for EPA Penetration depth]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=911#p911"><![CDATA[
When using the Hybrid GJK, the penetration depth is either determined by GJK, using margins, or by another algorithm, once the depetration is deeper then the sum of the margins.<br><br>EPA is one good approach, but it is fairly complicated to get it 100% robust, and its performance has room for improvement.<br><br>A cheap alternative that works in practice is:<br><br>1) find a good approximation of the MTD (Minimum Translational Distance)<br>2) find the points on both objects that give the penetration vector<br><br>For (1) you can sample the projection of the origin onto the minkowski sum in a fixed number of directions. For example, in Bullet I use 42 directions, uniformly distributed over the unit sphere. To avoid the cost of 42 virtual function calls, a batch supportingVertex is used. This supportingVertex call can use the non-margin version, and can be optimized using SIMD very well.<br><br>For (2), once you found a translational distance, you move the objects out of penetration using the vector, and perform a GJK step to find the closest points. The difference in the distance reported by this GJK query, and the translational distance can be used to correct the estimation error. <br><br>This way, the estimated penetration vector exactly puts the objects in touching contact.<br><br>It is an approximation that works very well in practice, even tough slighly better directions might exist. Better then failing totally, or spiking in performance. Also, not much accuracy is needed, because deep penetrations should be resolved within a frame, and shallow penetrations are handled using the margins.<br><br>You can see implementation details here:<br><a href="http://www.continuousphysics.com/Bullet/BulletFull/MinkowskiPenetrationDepthSolver_8cpp-source.html#l00092" class="postlink">http://www.continuousphysics.com/Bullet ... tml#l00092</a><br><br>Erwin<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=2">Erwin Coumans</a> — Thu Apr 20, 2006 6:56 pm</p><hr />
]]></content>
	</entry>
	</feed>
