Machine: This is the robots physiology. The bones, joints, actuators, colliders, ik solvers, and any skeleton mounted sensors are here. Full robots are Machines made up of Components. A Component is an individual arm, or other individually distinguishable part, like a Head is a Component.

Motion: The motion engine is built on a simple Trajectory or list of [x,y,z] points. Finite State Machines of Trajectories form Motions. From there, a Machine has any number of Input Channels for the Motions to run on. A walking gait on the Quad is 4 Motion Channels that run simultaneously. Using XNode, you can make noodles of your Motions, and export them to a SQLite database, where they are accessed at runtime.

Task: A Task is like an application or program. It is in this area, that CREK starts to look like a mock OS. A Task is a FSM of TaskItems. XNode is used to noodle out a Task, and exported to a SQLite database for runtime use.

Planner: The Planner is the math and algorithms. It generates the Trajectories and such.

Shell: I believe the Shell is the secret weapon of CREK. Once you've created a robot and you start to add functionality, you start to get to this point where you not sure how to access all the functions you're creating. All the parts of CREK have a shell interface. You can send a text command and it will run the command. The Shell forwards commands to any of the parts. The Shell also lets you run defined Trajectories, Motions, and Tasks.

Collaborator: One of the cool things this system tries is a Collaborator Model. Instead of a single large complex robot which contains all the body parts of a complete humanoid, You design your robot as several stand alone separate robots. Each of these separate robots can operate and perform their own functions entirely. They work together by making function requests to each other in attempt to accomplish the big picture goal. Collaborator messages are sent through a MQTT client, so you will need to install a broker to use it.

A second motive to the Collaborator Model is AR, VR, XR, and duality. I hope to one day see video games blended with robots. Just imagine if part of your robot was augmented reality. Or what if you had a real robot duplicating the actions of a game character in VR?