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

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2012-07-21T21:33:52+00:00</updated>

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

		<entry>
		<author><name><![CDATA[mikeshafer]]></name></author>
		<updated>2012-07-21T21:33:52+00:00</updated>

		<published>2012-07-21T21:33:52+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=28358#p28358</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=28358#p28358"/>
		<title type="html"><![CDATA[Re: Switch coordinate frame of angular velocity and inertia]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=28358#p28358"><![CDATA[
So I think this might help you.  GPG4 page 247 talks about a ball and socket joint.  It states:<br><blockquote class="uncited"><div>The shifting rule says that if a constraint is specified for points g1 and g2 relative to bodies 1 and 2, like this:<br><br>a1.dot(p1 + g1) + q1.dot(w1) + a2.dot(p1 + g2) + q2.dot(w2) = c<br><br>then the equivalent POR-relative constraint is<br><br>a1.dot(p1) + (q1 + g1.cross(a1)).dot(w1) + a2.dot(p2) + (q2 + g2.cross(a2)).dot(w2) = c<br><br>This shifting rule correctly trades off linear and angular velocity at the POR.  Applying this to the ball-and-socket joing for each u_i gives<br><br>u_i.dot(p1) + (g1.cross(u_i)).dot(w1) - u_i.dot(p2) - (g2.cross(u_i)).dot(w2)</div></blockquote>I'll go ahead and describe the variables:<br><br>a1/u_i = axis/basis vectors<br>p1/p2 = COM velocities<br>g1/g2 = vectors pointing from COM to where ball and socket meet<br>w1/w2 = angular velocities<br><br>I should've retyped p1/p2 as v1/v2 but that's how the author has it (with a dot on top).  That's about all I know.  I'm working on a rag-doll physics system and I didn't need to translate the moment of inertia.  Do you have a block solver set up?  I recommend reading <a href="http://erwincoumans.com/ftp/pub/test/physics/papers/IterativeDynamics.pdf" class="postlink">http://erwincoumans.com/ftp/pub/test/ph ... namics.pdf</a>.<br><br>HTH,<br>Mike<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=9133">mikeshafer</a> — Sat Jul 21, 2012 9:33 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[kingchurch]]></name></author>
		<updated>2012-07-21T19:39:35+00:00</updated>

		<published>2012-07-21T19:39:35+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=28356#p28356</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=28356#p28356"/>
		<title type="html"><![CDATA[Switch coordinate frame of angular velocity and inertia]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=28356#p28356"><![CDATA[
Let's say we have the angular velocity of a rigid body in its local coordinate frame in the form of (Rx, Ry, Rz) how to map it to a different coordinate frame (the world CF or another CF on a different location of the object? I assume you cannot simply multiply the transform matrix of the CF.<br><br>Similar question for inertia tensor 3x3 matrix for 3D rigid body: how to map it from the local CF to a different CF?<br><br>My actual use case is to map angular velocity and moment of inertia from the object space to the joint space that is anchored at an offset from the COM of the object.<br><br>Thanks!<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=9310">kingchurch</a> — Sat Jul 21, 2012 7:39 pm</p><hr />
]]></content>
	</entry>
	</feed>
