-
Notifications
You must be signed in to change notification settings - Fork 35
World Tree
The internal world model of Giskard is structured as a single kinematic tree, a collection of links and joints. This gives us the ability to compute the forward kinematics between any pair of links. The joints are not limited to those implemented in urdf, but can contain any function to describe how free variable influence the transformation between the two links it connects. This concept is based on Kineverse.
We also do not distinguish between the robot and the environment. Instead it has the concept of groups to talk about a meaningful branch in the tree. For example, when a robot is added to the world, Giskard will create a group that includes all links of the robot and will give it the same name as it is specified in the urdf (unless configured otherwise). A group is characterized by a root link. Each link below the root link belongs to the group. The groups are also used to resolve name conflicts, e.g., if two PR2's are in Giskards world. Additional groups may be added to, e.g., talk about a robot's gripper. Most goals of Giskard have an optional group_name parameter that is used to tell Giskard which links and joints to use, if there are multiple with the same name.