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

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2013-11-14T01:00:54+00:00</updated>

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

		<entry>
		<author><name><![CDATA[archee]]></name></author>
		<updated>2013-11-14T01:00:54+00:00</updated>

		<published>2013-11-14T01:00:54+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32161#p32161</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32161#p32161"/>
		<title type="html"><![CDATA[Re: long stick behaviour in the air]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32161#p32161"><![CDATA[
Thanks guys, these helped me to find a solution. (and I also released a patch for the old Tricky Truck with good rotations)<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=10554">archee</a> — Thu Nov 14, 2013 1:00 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[bone]]></name></author>
		<updated>2013-11-13T15:50:54+00:00</updated>

		<published>2013-11-13T15:50:54+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32155#p32155</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32155#p32155"/>
		<title type="html"><![CDATA[Re: long stick behaviour in the air]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32155#p32155"><![CDATA[
<a href="http://math.ucsd.edu/~sbuss/ResearchWeb/accuraterotation/Swansea2011Talk.pdf" class="postlink">http://math.ucsd.edu/~sbuss/ResearchWeb ... 11Talk.pdf</a><br><br>That might help if you need more accurate methods. Sam Buss has an older paper somewhere if you want more explanation.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=1626">bone</a> — Wed Nov 13, 2013 3:50 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[archee]]></name></author>
		<updated>2013-11-13T15:28:51+00:00</updated>

		<published>2013-11-13T15:28:51+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32154#p32154</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32154#p32154"/>
		<title type="html"><![CDATA[Re: long stick behaviour in the air]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32154#p32154"><![CDATA[
I use a simple quantized method (I think, this is called Euler integration)<br><br>angularMomentum = worldTensor * angularVelocity;<br>translation.rotate(angularVelocity*timeStep);<br>updateWorldTensor();<br>angularVelocity = worldTensor.inverse() * angularMomentum;<br><br>Using smaller timeStep makes it more stable. The rotational Kinetic energy increases slowly and than heavily as the angular velocity approaches the minimum inertia axis.<br>As the engine is for gaming only, it would even solve the problem, if the energy was decreasing (as it would turn away from the minimum inertia axis)<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=10554">archee</a> — Wed Nov 13, 2013 3:28 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[RandyGaul]]></name></author>
		<updated>2013-11-13T07:13:39+00:00</updated>

		<published>2013-11-13T07:13:39+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32149#p32149</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32149#p32149"/>
		<title type="html"><![CDATA[Re: long stick behaviour in the air]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32149#p32149"><![CDATA[
What integration are you using. If you're using forward Euler then the problem you are describing is a result of poor tangent line approximations of the equation of motion you're trying to satisfy.<br><br>In other words, you need to use a different integration scheme in order to get more accurate predictions of future state. You can try semi-implicit (simplectic) Euler. If this does not seem to suit your needs I would recommend trying Runge Kutta. However I would note that I have yet to have problems with simplectic Euler.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=10235">RandyGaul</a> — Wed Nov 13, 2013 7:13 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[archee]]></name></author>
		<updated>2013-11-12T22:25:21+00:00</updated>

		<published>2013-11-12T22:25:21+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32144#p32144</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32144#p32144"/>
		<title type="html"><![CDATA[Re: long stick behaviour in the air]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32144#p32144"><![CDATA[
I found some explanation here, but unfortunately I can't understand it.<br>Anybody can explain to me in a simple way?<br><br><a href="http://farside.ph.utexas.edu/teaching/336k/newton/node61.html" class="postlink">http://farside.ph.utexas.edu/teaching/3 ... ode61.html</a><p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=10554">archee</a> — Tue Nov 12, 2013 10:25 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[archee]]></name></author>
		<updated>2013-11-12T18:35:17+00:00</updated>

		<published>2013-11-12T18:35:17+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32142#p32142</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32142#p32142"/>
		<title type="html"><![CDATA[long stick behaviour in the air]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=32142#p32142"><![CDATA[
I'm actually asking for help in making my own physics engine.<br>Some physics engines conserve the angular velocity of an object spinning in the air with no friction. I don't know if bullet does this.<br>However, according to physics books the angular momentum needs to be conserved.<br><br>To convert between angular velocity and angular momentum you need the inertia tensor. In case of a sphere or cube, this will be only-diagonal, with the same number, making the angular velocity always parallel to the angular momentum, and constant.<br><br>However, in case of a long piece of stick, the tensor is more distorted such as this:<br>50, 0, 0,<br>0, 0.1, 0,<br>0 , 0, 50<br>In this case the angular velocity and the angular momentum can be far from parallel. <br>Converting  the preserved angular momentum to angular velocity in every frame (120HZ) can do the trick for less thin sticks, but due to the quantization it rotates off the track, resulting in changing it's kinetic energy, and strange speedups.<br><br>I also modelled the same thing using wireframe physics, connecting dots with springs/dampers to simulate a long stick. In this test the angular velocity wasn't preserved, but the kinetic energy and the angular momentum was, and it looked right.<br><br>My question is simple, how to rotate long objects properly?<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=10554">archee</a> — Tue Nov 12, 2013 6:35 pm</p><hr />
]]></content>
	</entry>
	</feed>
