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

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2007-05-23T09:21:39+00:00</updated>

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

		<entry>
		<author><name><![CDATA[Antonio Martini]]></name></author>
		<updated>2007-05-23T09:21:39+00:00</updated>

		<published>2007-05-23T09:21:39+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4303#p4303</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4303#p4303"/>
		<title type="html"><![CDATA[Integrating angular velocities]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4303#p4303"><![CDATA[
<blockquote class="uncited"><div><blockquote class="uncited"><div>that looks like the exponential map approach to me, axis and magnitude, where the magnitude is the angular speed scaled by the time step. <br>Formula (1) behaves badly when the angular velocity is close to zero.<br>the link to the paper i posted earlier(see Section 3) shows how the problem can be solved by a simple Taylor expansion.<br><br>cheers,<br>Antonio</div></blockquote>A Taylor expansion doesn't make it fully stable. It is still unstable with regard to rotations around the middle axis, if the moment of inertia is non-homogeneous. Thus, problem not solved.<br><br>It is quite strange though, that methods from Molecular Dynamics haven't made it to computer graphics yet.</div></blockquote>could you elaborate a bit more please? the Taylor expansion is mainly used in order to convert from the exponential map to a quaternion, so there is no inertia there. The sinc(x) function is evaluated by a Taylor expansion just because it's not already in the standard maths libs.<br><br>cheers,<br>Antonio<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=145">Antonio Martini</a> — Wed May 23, 2007 9:21 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dirk Gregorius]]></name></author>
		<updated>2007-05-23T08:31:40+00:00</updated>

		<published>2007-05-23T08:31:40+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4301#p4301</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4301#p4301"/>
		<title type="html"><![CDATA[Integrating angular velocities]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4301#p4301"><![CDATA[
<blockquote class="uncited"><div>It is quite strange though, that methods from Molecular Dynamics haven't made it to computer graphics yet.</div></blockquote>What you mean by this? Any examples or resources?<br><br>Thanks,<br>-Dirk<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14">Dirk Gregorius</a> — Wed May 23, 2007 8:31 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[KenB]]></name></author>
		<updated>2007-05-22T21:25:05+00:00</updated>

		<published>2007-05-22T21:25:05+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4298#p4298</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4298#p4298"/>
		<title type="html"><![CDATA[Integrating angular velocities]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4298#p4298"><![CDATA[
<blockquote class="uncited"><div>that looks like the exponential map approach to me, axis and magnitude, where the magnitude is the angular speed scaled by the time step. <br>Formula (1) behaves badly when the angular velocity is close to zero.<br>the link to the paper i posted earlier(see Section 3) shows how the problem can be solved by a simple Taylor expansion.<br><br>cheers,<br>Antonio</div></blockquote><br>A Taylor expansion doesn't make it fully stable. It is still unstable with regard to rotations around the middle axis, if the moment of inertia is non-homogeneous. Thus, problem not solved.<br><br>It is quite strange though, that methods from Molecular Dynamics haven't made it to computer graphics yet.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=1339">KenB</a> — Tue May 22, 2007 9:25 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Antonio Martini]]></name></author>
		<updated>2007-05-19T15:51:51+00:00</updated>

		<published>2007-05-19T15:51:51+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4280#p4280</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4280#p4280"/>
		<title type="html"><![CDATA[Integrating angular velocities]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4280#p4280"><![CDATA[
<blockquote class="uncited"><div>Maybe it's already been implied in the thread, but there is also the closed form integration technique for quaternions.  See for instance htttp://graphics.stanford.edu/~rachellw/files/articulated.pdf. Page 4, eq 1.<br><br>Don't remember the exat source of it, think it might be NASA?</div></blockquote>that looks like the exponential map approach to me, axis and magnitude, where the magnitude is the angular speed scaled by the time step. <br>Formula (1) behaves badly when the angular velocity is close to zero.<br>the link to the paper i posted earlier(see Section 3) shows how the problem can be solved by a simple Taylor expansion.<br><br>cheers,<br>Antonio<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=145">Antonio Martini</a> — Sat May 19, 2007 3:51 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[mhx]]></name></author>
		<updated>2007-05-19T15:07:55+00:00</updated>

		<published>2007-05-19T15:07:55+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4279#p4279</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4279#p4279"/>
		<title type="html"><![CDATA[Integrating angular velocities]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4279#p4279"><![CDATA[
Maybe it's already been implied in the thread, but there is also the closed form integration technique for quaternions.  See for instance htttp://graphics.stanford.edu/~rachellw/files/articulated.pdf. Page 4, eq 1.<br><br>Don't remember the exat source of it, think it might be NASA?<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=1696">mhx</a> — Sat May 19, 2007 3:07 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Antonio Martini]]></name></author>
		<updated>2007-05-07T15:57:37+00:00</updated>

		<published>2007-05-07T15:57:37+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4158#p4158</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4158#p4158"/>
		<title type="html"><![CDATA[Integrating angular velocities]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4158#p4158"><![CDATA[
<blockquote class="uncited"><div>So which method is more accurate and why?</div></blockquote>b) and c) should be the same. see also the following paper for the advantages/disadvantages:<br><br><a href="http://www.cs.cmu.edu/~spiff/moedit99/expmap.pdf" class="postlink">http://www.cs.cmu.edu/~spiff/moedit99/expmap.pdf</a><br><br>the exponential map integration is drift free, so there is no need of normalizing. The immediate consequence is that you can integrate for much larger time steps. For example If we measure the angular error in a control scheme(motors) and then we numericallly integrate by using the quaternion derivative, our control scheme would take longer to converge as the way we measure the error and the way we fix it is not fully consistent as there is some drift proportional to the timestep.<br>so with the exponential map you can reach zero angular error in one numerical integration step.<br><br>cheers,<br>Antonio<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=145">Antonio Martini</a> — Mon May 07, 2007 3:57 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dirk Gregorius]]></name></author>
		<updated>2007-05-07T13:49:19+00:00</updated>

		<published>2007-05-07T13:49:19+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4153#p4153</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4153#p4153"/>
		<title type="html"><![CDATA[Integrating angular velocities]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4153#p4153"><![CDATA[
So which method is more accurate and why?<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14">Dirk Gregorius</a> — Mon May 07, 2007 1:49 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Erwin Coumans]]></name></author>
		<updated>2007-05-07T13:34:17+00:00</updated>

		<published>2007-05-07T13:34:17+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4151#p4151</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4151#p4151"/>
		<title type="html"><![CDATA[Integrating angular velocities]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4151#p4151"><![CDATA[
Bullet implements 2 different strategies, so you can trade performance versus accuracy. <br><br>I'm not away that SOLID uses an exponential map. Where is that implemented?<br><br>Erwin<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=2">Erwin Coumans</a> — Mon May 07, 2007 1:34 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dirk Gregorius]]></name></author>
		<updated>2007-05-07T13:18:12+00:00</updated>

		<published>2007-05-07T13:18:12+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4149#p4149</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4149#p4149"/>
		<title type="html"><![CDATA[Integrating angular velocities]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=4149#p4149"><![CDATA[
I am aware of three ways to integrate angular velocities:<br><br>a) Using the quaternion derivative: q' = 0.5 * w * q<br>b) Creating an finite rotation from the angular velocity and the timestep dt, basicall alpha = Length( w ) * dt and axis = Normalize( w )<br>c) Bullet has also something called exponential map (I think SOLID has this as well)<br><br>So what are the differences between them and what are the advantages/disadvantages of one over the other? Are there any other decision criteria, but performance (e.g. simulation quality)?<br><br><br>Also in this context:<br>How do you damp angular velocity? Simply using something like: w *= 0.995 before integrating torques makes my solver results worse. Any ideas why this is so and what is a good strategy to damp the angular velocity (e.g. preventing non-linearities because of high angular velocities. We could damp as a function of the actual angular speed in order to damp high velocities down quickly, but don't touch moderate ones).<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14">Dirk Gregorius</a> — Mon May 07, 2007 1:18 pm</p><hr />
]]></content>
	</entry>
	</feed>
