Architecture - SemRoCo/giskardpy GitHub Wiki

Giskard is designed as a ROS action server similar to MoveIt!, which lies between the user and a robot.

A user can make changes to the world model or define a motion task with a combination of predefined goal types. Once a motion has been requested by a user, Giskard will first translate it into a set of constraints and then instantiate a QP-Builder. The QP-Builder contains compiled C++ functions that will setup a QP parameterized with Giskard’s current state. It is used in the next step to generate trajectories. Giskard views the robot and environment as a single controllable system. Only once the trajectory has been created, are they divided according to the controllers on the robot and commanded simultaneously, e.g., a trajectory for the an arm controller and another one for a head controller.