Configuration

class compas.robots.Configuration(joint_values=None, joint_types=None, joint_names=None)[source]

Bases: compas.data.data.Data

Represents the configuration of a robot based on the state of its joints. If the names of joints are also provided, the configuration behaves as a dictionary of joint name-value pairs.

This concept is also refered to as “Joint State”.

Parameters
  • joint_values (list of float) – Joint values expressed in radians or meters, depending on the respective type.

  • joint_types (list of compas.robots.Joint.SUPPORTED_TYPES) – Joint types, e.g. a list of compas.robots.Joint.REVOLUTE for revolute joints.

  • joint_names (list of str, optional) – List of joint names.

Attributes
  • joint_values (list of float) – Joint values expressed in radians or meters, depending on the respective type.

  • joint_types (list of compas.robots.Joint.SUPPORTED_TYPES) – Joint types, e.g. a list of compas.robots.Joint.REVOLUTE for revolute joints.

  • joint_names (list of str) – List of joint names.

  • data (dict) – The data representing the configuration.

  • prismatic_values (list of float) – Prismatic joint values in meters.

  • revolute_values (list of float) – Revolute joint values in radians.

Examples

>>> config = Configuration.from_revolute_values([math.pi/2, 0., 0.])
>>> config.joint_values
[1.5707963267948966, 0.0, 0.0]
>>> config = Configuration.from_prismatic_and_revolute_values([8.312], [math.pi/2, 0., 0., 0., 2*math.pi, 0.8])
>>> str(config)
'Configuration((8.312, 1.571, 0.000, 0.000, 0.000, 6.283, 0.800), (2, 0, 0, 0, 0, 0, 0))'
>>> from compas.robots import Joint
>>> config = Configuration([math.pi/2, 3., 0.1], [Joint.REVOLUTE, Joint.PRISMATIC, Joint.PLANAR])
>>> str(config)
'Configuration((1.571, 3.000, 0.100), (0, 2, 5))'

Attributes

data

The data representing the configuration.

has_joint_names

Returns True when there is a joint name for every value.

joint_dict

A dictionary of joint values by joint name.

joint_names

"List of joint names.

joint_types

Joint joint_types, e.g.

joint_values

Joint values expressed in radians or meters, depending on the respective type.

prismatic_values

Prismatic joint values in meters.

revolute_values

Revolute joint values in radians.

type_dict

A dictionary of joint types by joint name.

Inherited Attributes

DATASCHEMA

The schema of the data of this object.

JSONSCHEMA

The schema of the JSON representation of the data of this object.

JSONSCHEMANAME

dtype

The type of the object in the form of a '2-level' import and a class name.

guid

The globally unique identifier of the object.

jsondefinitions

Reusable schema definitions.

jsonstring

The representation of the object data in JSON format.

jsonvalidator

JSON schema validator for draft 7.

name

The name of the object.

Methods

check_joint_names

Raises an error if there is not a joint name for every value.

close_to

Returns True if the other Configuration's joint_values are within a certain range.

from_prismatic_and_revolute_values

Construct a configuration from prismatic and revolute joint values.

from_revolute_values

Construct a configuration from revolute joint values in radians.

get

items

iter_differences

Generator over the differences to another Configuration's joint_values.

keys

max_difference

Returns the maximum difference to another Configuration's joint values.

merge

Merge the configuration with another configuration in place along joint names.

merged

Get a new Configuration with this configuration merged with another configuration.

scale

Scales the joint positions of the current configuration.

scaled

Return a scaled copy of this configuration.

values

Inherited Methods

copy

Make an independent copy of the data object.

from_data

Construct an object of this type from the provided data.

from_json

Construct an object from serialized data contained in a JSON file.

from_jsonstring

Construct an object from serialized data contained in a JSON string.

to_data

Convert an object to its native data representation.

to_json

Serialize the data representation of an object to a JSON file.

to_jsonstring

Serialize the data representation of an object to a JSON string.

validate_data

Validate the object's data against its data schema (self.DATASCHEMA).

validate_json

Validate the object's data against its json schema (self.JSONSCHEMA).