Module Expr Str ImportFrom alias alias ImportFrom alias alias ImportFrom alias alias FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Return Call AttributeLoad NameLoad attr NameLoad decorator_list Assign TupleStore NameStore NameStore NameStore Call NameLoad Str Assign TupleStore NameStore NameStore NameStore Call NameLoad Str keyword Num Assign TupleStore NameStore NameStore NameStore Call NameLoad Str Assign TupleStore NameStore NameStore NameStore Call NameLoad Str Assign TupleStore NameStore NameStore NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr Str Str ListLoad NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str Str ListLoad NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str Str ListLoad Num AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str Str ListLoad Num AttributeLoad NameLoad attr Assign NameStore Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr Str BinOpMult NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str BinOpMult NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str BinOpMult NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str BinOpMult NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Str BinOpAdd BinOpAdd BinOpMult NameLoad AttributeLoad NameLoad attr BinOpMult NameLoad AttributeLoad NameLoad attr BinOpMult NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad BinOpMult NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad BinOpMult NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad BinOpMult NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad Assign NameStore ListLoad Expr Call AttributeLoad NameLoad attr BinOpSub NameLoad NameLoad Expr Call AttributeLoad NameLoad attr BinOpSub NameLoad NameLoad Expr Call AttributeLoad NameLoad attr BinOpSub NameLoad NameLoad Assign NameStore Call NameLoad NameLoad ListLoad NameLoad NameLoad NameLoad Print Str For NameStore ListLoad NameLoad NameLoad NameLoad body Print Call AttributeLoad Str attr Call NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Index NameLoad Assign NameStore ListLoad Str Assign NameStore ListLoad Str For NameStore ListLoad NameLoad NameLoad NameLoad NameLoad body Assign NameStore Call Call NameLoad NameLoad Str NameLoad Assign NameStore Call Call NameLoad NameLoad Str NameLoad Assign NameStore NameLoad If CompareEq NameLoad NameLoad body Assign NameStore NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad Assign NameStore ListLoad Str Assign NameStore ListLoad Str For NameStore ListLoad NameLoad NameLoad NameLoad NameLoad body Assign NameStore Call Call NameLoad NameLoad Str NameLoad Assign NameStore Call Call NameLoad NameLoad Str NameLoad Assign NameStore NameLoad If CompareEq NameLoad NameLoad body Assign NameStore NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad For NameStore BinOpAdd BinOpAdd BinOpAdd NameLoad NameLoad NameLoad NameLoad body Print NameLoad
N/A N/A Exercise 3.15 from Kane 1985.
A robot arm, composed of Rigid Bodies 'A', 'B', 'C', operates in Reference
Frame E. 'A*', 'B*', 'C*' are Points marking the centers of mass for the Rigid
Bodies 'A', 'B', 'C'.

Rigid Body 'D' also is lies in Reference Frame 'E'. The center of mass of 'D'
is marked as Point 'D*'. 'D' is fixed relative to 'C'.

Each Reference Frame has a set of mutually perpendicular vectors x, y, z. 'A'
is rotated by 'q0' relative to 'E' about an axis parallel to A.x. 'B' is
rotated by 'q1' relative to 'A' about an axis parallel to A.y. Point 'P' is
fixed in both 'A' and 'B'. A.x is parallel to E.x. A.y is parallel to B.y.

Point 'O' is a point fixed in both 'E' and 'A'. 'A*' is separated from 'O' by
'LA' * A.z. 'P' is separated from 'O' by 'LP' * A.z. 'B*' is separated from 'P'
by 'LB' * B.z. 'C*' is separated from 'B*' by 'q2' * B.z. 'D*' is separated
from 'C*' by 'p1'*B.x + 'p2'*B.y + 'p3'*B.z.

We define:'q0d' = 'u1', 'q1d' = 'u2', 'q2d' = 'u3'.
'LA', 'LB', 'LP', 'p1', 'p2', 'p3' are constants.
 sympy.physics.mechanics dynamicsymbols MechanicsStrPrinter sympy.physics.mechanics ReferenceFrame Point sympy solve symbols msprint N/A N/A expr N/A N/A N/A pr N/A MechanicsStrPrinter N/A N/A N/A pr doprint expr N/A N/A N/A q0 q1 q2 N/A dynamicsymbols q0 q1 q2 N/A N/A q0d q1d q2d N/A dynamicsymbols q0 q1 q2 level 1 N/A N/A u1 u2 u3 N/A dynamicsymbols u1 u2 u3 N/A N/A LA LB LP N/A symbols LA LB LP N/A N/A p1 p2 p3 N/A symbols p1 p2 p3 N/A E N/A ReferenceFrame E N/A A N/A N/A E orientnew A Axis N/A q0 N/A E x N/A B N/A N/A A orientnew B Axis N/A q1 N/A A y N/A C N/A N/A B orientnew C Axis N/A 0 N/A B x N/A D N/A N/A C orientnew D Axis N/A 0 N/A C x N/A pO N/A Point O N/A pAs N/A N/A pO locatenew A* N/A LA N/A A z N/A pP N/A N/A pO locatenew P N/A LP N/A A z N/A pBs N/A N/A pP locatenew B* N/A LB N/A B z N/A pCs N/A N/A pBs locatenew C* N/A q2 N/A B z N/A pDs N/A N/A pCs locatenew D* N/A N/A N/A p1 N/A B x N/A p2 N/A B y N/A p3 N/A B z N/A N/A N/A A set_ang_vel E N/A u1 N/A A x N/A N/A N/A B set_ang_vel A N/A u2 N/A B y N/A N/A N/A pCs set_vel B N/A u3 N/A B z N/A N/A N/A pO set_vel E 0 N/A N/A N/A pAs v2pt_theory pO E A N/A N/A N/A pP v2pt_theory pO E A N/A N/A N/A pBs v2pt_theory pP E B N/A N/A N/A pCs v1pt_theory pBs E B N/A N/A N/A pDs set_vel B N/A N/A pCs vel B N/A N/A N/A pDs v1pt_theory pBs E B N/A kinematic_eqs N/A N/A N/A N/A kinematic_eqs append N/A u1 q0d N/A N/A N/A kinematic_eqs append N/A u2 q1d N/A N/A N/A kinematic_eqs append N/A u3 q2d N/A soln N/A solve kinematic_eqs N/A q0d q1d q2d N/A kinematic equations: N/A qd N/A q0d q1d q2d N/A N/A N/A N/A {0} = {1} format N/A msprint qd N/A msprint N/A soln N/A qd N/A ang_vels N/A 
angular velocities: N/A ang_accs N/A 
angular accelerations: N/A rf N/A A B C D N/A N/A ang_v N/A N/A getattr rf ang_vel_in E N/A ang_a N/A N/A getattr rf ang_acc_in E N/A express_rf B N/A N/A rf A N/A N/A express_rf A N/A N/A N/A ang_vels append N/A N/A ang vel {0} wrt {1} = {2} format rf E N/A N/A ang_v express express_rf N/A N/A N/A ang_accs append N/A N/A ang acc {0} wrt {1} = {2} format rf E N/A N/A ang_a express express_rf N/A vels N/A 
velocities: N/A accs N/A 
accelerations: N/A point N/A pAs pBs pCs pDs N/A N/A v N/A N/A getattr point vel E N/A a N/A N/A getattr point acc E N/A express_rf B N/A N/A point pAs N/A N/A express_rf A N/A N/A N/A vels append N/A N/A vel {0} wrt {1} = {2} format point E N/A N/A v express express_rf N/A N/A N/A accs append N/A N/A acc {0} wrt {1} = {2} format point E N/A N/A a express express_rf N/A results N/A N/A N/A ang_vels ang_accs vels accs N/A N/A results