Skip to main content

Objective

Lively allows for a wide range of robot with which users program robot motion. These 24 properties, which serve as building blocks for defining the behavior and motion of the robot, fit into five categories: Base, Bounding, Matchting, Mirroring, Liveliness, and Forces listed blow.

CategoryDescription
BaseRevolve around the fluidity of robot motion by limiting rapid changes and considering possible collisions between the links of the robot
BoundingLimit the space within which joints can assume angles and links can move or be oriented
MatchingSpecify exact positions and orientations of links or angles of joints, while bounding behavior properties set limits
MirroringAllow users to mirror the current state of a link's position or orientation in a different link, or the current angle of one joint in another
LivelinessAllow adding smooth, coordinated motion to joint angles or link positions/orientations
ForcesProximating the physcial forces applied to the robot

Customizing the priority of the Objective

The priority of the Objective is determined by the weight parameter. Higher weight indicates a higher priority for an objective. A value between 0 and 5 is suggestive, 5 to 40 is true goal-driven behavior, and after that it behaves more like a constraint.

Weight can be adjusted in real-time, allowing for prioritization of certain objectives and goals, or the deactivation of others, based on the current needs of the developer. Since Objectives are organized by key, and atomic updates are possible for goals and weights, only the needed changes need to be included each round of solve.

Import

For Javascript, there is no need for additional import. Only a object need to be constructed.

const objectives = {
"eePosition": {
type: "PositionMatch",
name: "EE Position",
link: "torso",
weight: 2},
"eeRotation": {
type: "OrientationMatch",
name: "EE Rotation",
link: "base",
weight: 3}}