An object representing part of a robot.
An object representing part of a robot. Overview A module represents part of a robot. A module might represent a robot link, tool, base, or joint of varying complexity: one module class may represent a simple, hollow tube serving as part of a manipulator link, while another may be an entire mobile robot with multiple manipulators. Each module may have one or more parameters which determine the module's properties, such as geometric dimensions or the selection of a motor and gearbox from a list of components. Modules provide an easy way for users and the synthesizer to construct robots.
Module types There are four general types of modules: links, tools, joints, and bases. Links are the least 'special' of modules; they have no special methods. Tools have methods for locating an end-effector's tool control point (TCP), while joints and bases can have active or passive degrees of freedom to allow the robot to move. Tools, joints, and bases all define their own methods, which may be overridden by derived classes. All of the basic module types are abstract base classes; actual modules must be created from derived classes which provide specific methods.
Connecting modules Modules are connected to each other by attachments to form a robot, called a 'configuration'. The attachments are made between connectors on different modules. The configuration's module graph is directed and acyclic, and each module's 'ref' member indicates the index of the module in the configuration's list of modules. A module that has an outgoing attachment is called the parent module of the modules on the other end of the attachment. To force the configuration graph to be directed, every child module must have a higher value of 'ref' than its parent. Each module's list of attachments only includes attachments to children (modules with a higher ref). The the attachment list is sorted by connector ID. Functions which modify configurations & modules should preserve this property.
Alphabetic index HTML hierarchy of classes or Java