Expand description

Contains the math necessary for the skeleton solver.

At a high level, the skeleton has inputs and outputs. Inputs are things like Edge::input_rot_g, which is an (optional) constraint on the rotation of an Edge. Outputs are things like Edge::output_rot_g, which needs to be solved for.

The goal of the solver is to solve for all the outputs, using the inputs. For more info, see the skeleton module.

Structs

Neighbors 🔒
Argument to do_fk. Represents the neighbors of a PoppedNode.
PoppedNode 🔒
Argument to do_fk. Represents the node that was just popped off of the traversal queue. This node is already solved.

Enums

A node neighboring PoppedNode. This node may or may not already be solved, which is why this is an enum.

Functions

do_fk 🔒
Solves Neighbors by applying forward-kinematics from PoppedNode. This actually mutates the weights of the graph.