Robots

class jacobi.Robot

Bases: Element

__init__(*args, **kwargs)
static from_model(model: str) Robot
set_speed(self: Robot, speed: float) None
property model

The model name of the robot

class jacobi.RobotArm

Bases: Robot

__init__(*args, **kwargs)
calculate_tcp(self: RobotArm, joint_position: list[float]) Frame

Calculates the forward_kinematics and returns the frame of the robot’s TCP.

Parameter joint_position:

The joint position of the robot.

Returns:

The frame of the robot’s TCP.

calculate_tcp_speed(self: RobotArm, joint_position: list[float], joint_velocity: list[float]) float

Calculates the forward_kinematics and returns the norm of the Cartesian velocity of the robot’s TCP.

Parameter joint_position:

The joint position of the robot.

Parameter joint_velocity:

The joint velocity of the robot.

Returns:

The Cartesian speed of the TCP.

inverse_kinematics(*args, **kwargs)

Overloaded function.

  1. inverse_kinematics(self: jacobi.RobotArm, waypoint: jacobi.CartesianWaypoint) -> Optional[list[float]]

Computes the inverse kinematics for a Cartesian waypoint.

Parameter waypoint:

The Cartesian waypoint to compute the inverse kinematics for.

Returns:

An optional Config object representing the joint positions of the robot.

  1. inverse_kinematics(self: jacobi.RobotArm, tcp: jacobi.Frame, reference_config: Optional[list[float]] = None) -> Optional[list[float]]

Computes the inverse kinematics for a Cartesian position and a reference configuration.

Finds a joint position so that the robot’s TCP is at the given frame, which is defined in the world coordinate system. In general, the solution will try to stay close to the reference_config parameter. We use a numerical optimization for robots with more than 6 degrees of freedom. Then, the reference configuration is used as a starting point for the optimization. This method does not take the environment’s collision model into account.

Parameter tcp:

The Cartesian position to compute the inverse kinematics for.

Parameter reference_config:

The reference configuration to use for the inverse kinematics.

Returns:

An optional Config object representing the joint positions of the robot.

set_speed(self: RobotArm, speed: float) None

Sets the velocity, acceleration, and jerk limits to a factor [0, 1] of their respective default (maximum) values.

Parameter speed:

A double representing the speed to be set for the robot.

property default_position

The default robot position - used for initializing the current robot position.

property degrees_of_freedom

The degrees of freedom (or number of axis) of the robot.

property end_effector

Get the (optional) end effector attached to the robot’s flange.

Returns:

An (optional) end effector attached to the robot’s flange.

property end_effector_obstacle

internal An (optional) obstacle attached to the robot’s flange.

property flange_to_tcp

internal The transformation from the robot’s flange to the robot’s TCP, e.g., for using inverse kinematics or an item obstacle.

property item

Get the (optional) obstacle attached to the robot’s TCP.

Returns:

An (optional) obstacle attached to the robot’s TCP.

property item_obstacle

internal An (optional) obstacle attached to the robot’s TCP.

The obstacles for each robot link.

property max_acceleration

Maximum absolute acceleration for each joint. [rad/s^2]

property max_jerk

Maximum absolute jerk for each joint. [rad/s^3]

property max_position

Maximum position for each joint. [rad]

property max_velocity

Maximum absolute velocity for each joint. [rad/s]

property min_position

Minimum position for each joint. [rad]

property tcp

Retrieves the frame of the robot’s TCP.

Returns:

A Frame representing the frame of the robot’s TCP.

property tcp_acceleration

Retrieves the Cartesian acceleration of the robot’s TCP.

Returns:

A Twist representing the Cartesian acceleration of the robot’s TCP.

property tcp_position

Retrieves the frame of the robot’s TCP.

Returns:

A Frame representing the frame of the robot’s TCP.

property tcp_velocity

Retrieves the Cartesian velocity of the robot’s TCP.

Returns:

A Twist representing the Cartesian velocity of the robot’s TCP.

class jacobi.robots.DualArm

Bases: Robot

__init__(self: DualArm, left: RobotArm, right: RobotArm) None
property left

The left arm of the robot

property right

The right arm of the robot

class jacobi.robots.ABBGoFaCRB1500010

Bases: RobotArm

__init__(self: ABBGoFaCRB1500010) None
class jacobi.robots.ABBIRB1200590

Bases: RobotArm

__init__(self: ABBIRB1200590) None
class jacobi.robots.ABBIRB1200770

Bases: RobotArm

__init__(self: ABBIRB1200770) None
class jacobi.robots.ABBIRB1300714

Bases: RobotArm

__init__(self: ABBIRB1300714) None
class jacobi.robots.ABBIRB1600612

Bases: RobotArm

__init__(self: ABBIRB1600612) None
class jacobi.robots.ABBIRB260012185

Bases: RobotArm

__init__(self: ABBIRB260012185) None
class jacobi.robots.ABBIRB460060205

Bases: RobotArm

__init__(self: ABBIRB460060205) None
class jacobi.robots.ABBIRB6700150320

Bases: RobotArm

__init__(self: ABBIRB6700150320) None
class jacobi.robots.ABBYuMiIRB14000

Bases: DualArm

__init__(self: ABBYuMiIRB14000) None
class jacobi.robots.FanucCRX30iA

Bases: RobotArm

__init__(self: FanucCRX30iA) None
class jacobi.robots.FanucLR10iA10

Bases: RobotArm

__init__(self: FanucLR10iA10) None
class jacobi.robots.FanucLRMate200iD7L

Bases: RobotArm

__init__(self: FanucLRMate200iD7L) None
class jacobi.robots.FanucM20iB25

Bases: RobotArm

__init__(self: FanucM20iB25) None
class jacobi.robots.FanucM20iD25

Bases: RobotArm

__init__(self: FanucM20iD25) None
class jacobi.robots.FanucM710iC45M

Bases: RobotArm

__init__(self: FanucM710iC45M) None
class jacobi.robots.FlexivRizon4

Bases: RobotArm

__init__(self: FlexivRizon4) None
class jacobi.robots.FlexivRizon4S

Bases: RobotArm

__init__(self: FlexivRizon4S) None
class jacobi.robots.FlexivRizon10

Bases: RobotArm

__init__(self: FlexivRizon10) None
class jacobi.robots.FlexivRizon10S

Bases: RobotArm

__init__(self: FlexivRizon10S) None
class jacobi.robots.FrankaPanda

Bases: RobotArm

__init__(self: FrankaPanda) None
class jacobi.robots.KinovaGen37DoF

Bases: RobotArm

__init__(self: KinovaGen37DoF) None
class jacobi.robots.KukaIiwa7

Bases: RobotArm

__init__(self: KukaIiwa7) None
class jacobi.robots.KukaKR6R700sixx

Bases: RobotArm

__init__(self: KukaKR6R700sixx) None
class jacobi.robots.KukaKR70R2100

Bases: RobotArm

__init__(self: KukaKR70R2100) None
class jacobi.robots.MecademicMeca500

Bases: RobotArm

__init__(self: MecademicMeca500) None
class jacobi.robots.UfactoryXArm7

Bases: RobotArm

__init__(self: UfactoryXArm7) None
class jacobi.robots.UniversalUR5e

Bases: RobotArm

__init__(self: UniversalUR5e) None
class jacobi.robots.UniversalUR10

Bases: RobotArm

__init__(self: UniversalUR10) None
class jacobi.robots.UniversalUR10e

Bases: RobotArm

__init__(self: UniversalUR10e) None
class jacobi.robots.UniversalUR20

Bases: RobotArm

__init__(self: UniversalUR20) None
class jacobi.robots.YaskawaGP12

Bases: RobotArm

__init__(self: YaskawaGP12) None
class jacobi.robots.YaskawaGP50

Bases: RobotArm

__init__(self: YaskawaGP50) None
class jacobi.robots.YaskawaGP180

Bases: RobotArm

__init__(self: YaskawaGP180) None
class jacobi.robots.YaskawaGP180120

Bases: RobotArm

__init__(self: YaskawaGP180120) None
class jacobi.robots.YaskawaHC10

Bases: RobotArm

__init__(self: YaskawaHC10) None
class jacobi.robots.YaskawaHC20

Bases: RobotArm

__init__(self: YaskawaHC20) None

Warning

Custom robots are in a beta preview with rudimentary support right now. If possible, use robots from our supported robot library, as they will be significantly faster to compute and easier to use.

class jacobi.robots.CustomRobot

Bases: RobotArm

A custom robot arm that can be loaded from a URDF file.

The CustomRobot class extends the RobotArm class and provides the functionality to load a robot’s configuration from a URDF (Unified Robot Description Format) file. It also includes methods for handling inverse kinematics and filtering relevant configurations.

class JointType

Bases: pybind11_object

Types of joints that can be present in the robot.

Members:

Revolute : A revolute joint that allows rotation.

Continuous : A continuous joint that allows unlimited rotation.

Prismatic : A prismatic joint that allows linear motion.

Fixed : A fixed joint that does not allow any motion.

__init__(self: JointType, value: int) None
property name
__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: jacobi.robots.CustomRobot, degrees_of_freedom: int) -> None

  2. __init__(self: jacobi.robots.CustomRobot, degrees_of_freedom: int, number_joints: int) -> None

static load_from_urdf_file(file: os.PathLike, base_link: str = 'base_link', end_link: str = 'flange') CustomRobot

Load the robot from a URDF file

Loads a custom robot from a *.urdf file, and sets the robot arm to the kinematic chain between the given base_link and the end_link.

Parameter file:

The path to the URDF file.

Parameter base_link:

The name of the base link in the URDF.

Parameter end_link:

The name of the end link in the URDF.

Returns:

A shared pointer to the loaded robot.

property child

Possible child robot.

property config_joint_names

Names of the joints corresponding to a specific joint configuration.

property joint_axes

Axes of the joints in the robot.

property joint_names

Names of the joints in the robot.

property joint_types

The type of the joints: Currently revolute, continuous, prismatic, and fixed joints are supported.