Mechanical Joints

Spherical Joint

class uraeus.smbd.symbolic.components.joints.spherical(name, body_i=None, body_j=None)[source]

The spherical joint prevents the relative translational movement between the two connected bodies at a given common location, where the two bodies are free to rotate relative to each-other in all directions.

The joint definition requires one defintion point and one defintion axis.

Parameters:
  • name (str) – Name of the joint instance. Should mimic a valid python variable name.
  • body_i (body) – The 1st body isntance. Should be an instance of the body class.
  • body_j (body) – The 2nd body isntance. Should be an instance of the body class.

Revolute Joint

class uraeus.smbd.symbolic.components.joints.revolute(name, body_i=None, body_j=None)[source]

The revolute joint allows only one rotation freedome between the connected bodies around a common axis, thus it fully prevents the relative translation between the bodies at the joint definition location, as well as any rotation other-than around the joint definition axis.

The joint definition requires one defintion point and one defintion axis.

Parameters:
  • name (str) – Name of the joint instance. Should mimic a valid python variable name.
  • body_i (body) – The 1st body isntance. Should be an instance of the body class.
  • body_j (body) – The 2nd body isntance. Should be an instance of the body class.

Cylinderical Joint

class uraeus.smbd.symbolic.components.joints.cylinderical(name, body_i=None, body_j=None)[source]

The cylinderical joint allows only one relative rotation freedome and one relative translation freedome between the connected bodies along a common axis, thus it prevents any relative translation and rotation along any other direction, other-than around the joint definition axis.

The joint definition requires one defintion point and one defintion axis.

Parameters:
  • name (str) – Name of the joint instance. Should mimic a valid python variable name.
  • body_i (body) – The 1st body isntance. Should be an instance of the body class.
  • body_j (body) – The 2nd body isntance. Should be an instance of the body class.

Fixed Joint

class uraeus.smbd.symbolic.components.joints.fixed(name, body_i=None, body_j=None)[source]

A joint that constraints two bodies to be fixed relative to each-other, by imposing six algebraic constraints equations to deminish the relative six degrees-of-freedom between the constrained bodies.

The joint definition requires one defintion point and one defintion axis.

Parameters:
  • name (str) – Name of the joint instance. Should mimic a valid python variable name.
  • body_i (body) – The 1st body isntance. Should be an instance of the body class.
  • body_j (body) – The 2nd body isntance. Should be an instance of the body class.

Fixed Orientation Joint

class uraeus.smbd.symbolic.components.joints.fixed_orientation(name, body_i=None, body_j=None)[source]

A joint that constraints two bodies to have fixed relative orientation w.r.t each-other, by imposing three algebraic constraints equations to deminish the relative three relative orientation degrees-of-freedom between the constrained bodies.

The joint definition requires only one defintion axis.

Parameters:
  • name (str) – Name of the joint instance. Should mimic a valid python variable name.
  • body_i (body) – The 1st body isntance. Should be an instance of the body class.
  • body_j (body) – The 2nd body isntance. Should be an instance of the body class.

Translational Joint

class uraeus.smbd.symbolic.components.joints.translational(name, body_i=None, body_j=None)[source]

The translational joint allows only one relative translation freedome between the connected bodies along a common axis, thus it prevents all relative rotations between the connected bodies, and any relative translation along any other direction, other-than around the joint definition axis.

The joint definition requires one defintion point and one defintion axis.

Parameters:
  • name (str) – Name of the joint instance. Should mimic a valid python variable name.
  • body_i (body) – The 1st body isntance. Should be an instance of the body class.
  • body_j (body) – The 2nd body isntance. Should be an instance of the body class.

Universal Joint

class uraeus.smbd.symbolic.components.joints.universal(name, body_i=None, body_j=None)[source]

The universal joint prevents the relative translational movements between the connected bodies just like the spherical joint, but it also prevents the relative rotation/spin too, so, the connected body pair is only allowed to rotate around two common axes.

The joint definition requires one defintion point and two defintion axis.

Parameters:
  • name (str) – Name of the joint instance. Should mimic a valid python variable name.
  • body_i (body) – The 1st body isntance. Should be an instance of the body class.
  • body_j (body) – The 2nd body isntance. Should be an instance of the body class.