The angular acceleration of the TCP for linear moves.
The target angular speed of the TCP for linear moves.
Whether the component is attached to its entity.
The ordered list of joints that are controlled by the robot controller.
Notifies when the component is detached from the entity.
Whether to apply gravity compensation to the robot joints.
Whether the component has been initialized.
The IO signals provided by the robot controller.
The joint acceleration/deceleration multiple for joint moves.
The target joint speed multiple for joint moves.
The robot controller can command a maximum joint speed of the motor's target speed scaled by this multiple. For example, a multiple of 2.0 allows the joints to move up to twice as fast as the target speed set on the motors that are bound to the joints. This is used only when performing joint moves.
The linear acceleration of the TCP for linear moves.
The target linear speed of the TCP for linear moves.
The frame of the current TCP in the local-space of the robot.
The component name.
The exportable robot programs.
The (optional) weights for the joints that are controlled by the robot controller.
Weights are used to penalize the motion of certain joints, causing the solver to prefer the motion of other joints. This is particularly useful for robots with redundant degrees of freedom, such as when using workpiece positioners or additional axes. Values are clamped to the range [0, 1]. A weight of 0 means that motion of the joint is not penalized. The weights are effectively normalized by the solver, meaning that the weights [0.5, 0.25] are identical to the weights [1, 0.5]. Setting all the weights to the same value is equivalent to not setting any weights at all. Values provided for joints that are not controlled by the robot controller are ignored.
The virtual world to which the owning entity belongs.
The frame of the current TCP in world-space.
Protected OptionaladdedAdded function called immediately after the component is attached to an entity.
Clear any errors, allowing the robot controller to continue execution.
Creates a new robot program and assigns it to the robot controller.
The (optional) unique name for the robot program.
The created program, or null if a program with the specified name already exists.
Finds a robot program with a given name.
The name of the program.
The found robot program.
Creates a handle (weak reference) to a trackable object.
The type of object that is to be referenced.
The object that is initially referenced by the handle.
A handle to a trackable object.
Protected OptionalinitializeAsynchronous initialization function called immediately before simulating when the model is initialized.
Calculates the inverse kinematics to find the active joint parameters that achieve the specified target frame.
The active joint parameters that achieve the target.
Commands the robot controller to perform a joint move.
The target frame, in the local-space of the reference frame or robot when no reference frame is specified.
The optional joint constraints at the target.
The optional entity whose local coordinate system the target frame is relative to.
The future, which resolves when the move has completed.
Commands the robot controller to perform a joint move to intercept the specified moving entity.
The future, which resolves when the move has completed.
Commands the robot controller to perform a linear move.
The target frame, in the local-space of the reference frame (or robot when no reference frame is specified).
The optional joint constraints at the target.
The optional entity whose local coordinate system the target frame is relative to.
The future, which resolves when the move has completed.
Commands the robot controller to perform a linear move to intercept the specified moving entity.
The future, which resolves when the move has completed.
Commands the robot controller to perform a path move.
The path along which the robot should move.
The optional joint constraints at the end of the path.
The optional entity that the path is attached to.
The future, which resolves when the move has completed.
Commands the robot controller to perform a servo move.
The servo index.
The target position.
The future, which resolves when the move has completed.
Commands the robot controller to perform a servos move.
The target positions.
The future, which resolves when the move has completed.
Commands the robot controller to execute a time-ordered joint-space trajectory.
The trajectory to execute.
The (optional) execution options.
The execution handle.
Retrieves the current active joint parameters/angles.
The current active joint parameters/angles.
Protected OptionalpostAsynchronous post-update function called after physics has been updated.
The timestep (seconds).
Removes a robot program with the specified name.
The name of the robot program to remove.
True if the robot program was removed, false otherwise.
Renames a robot program.
The current name of the robot program to rename.
The new name to assign to the robot program.
True if the robot program was renamed, false otherwise.
Immediately triggers asynchronous initialization if the component hasn't already been initialized.
Subscribes to a subscribable object.
Subscriptions created through this function are automatically unsubscribed when the component is detached/removed.
The subscribable object for which to subscribe.
The callback function that is triggered when the object's value is updated.
The time it will take to perform a joint move.
The time to complete the joint move.
The time it will take to perform a linear move.
The time to complete the linear move.
Unsubscribes from a subscribable object.
The object from which to unsubscribe.
The callback function for the subscription.
True if the subscription was canceled, false otherwise.
Protected OptionalupdateAsynchronous update function called every timestep when simulating.
The timestep (seconds).
Robot controller.
Remarks
Used to easily control any industrial robot, including: gantry/cartesian, SCARA, delta and articulated robots. The inverse kinematics for the robot are solved automatically. The robot can be programmed using simple exportable programs through the inspector, or by using createProgram and adding instructions using RobotProgram.add. Advanced scripted programs can be created using custom components by extending RobotProgramComponent and then calling calling the program using a CallScriptRobotInstruction. The main program (which exists by default and must be called "Main") is executed automatically when the simulation starts. This is the entry point for the robot controller, and can be used to call other programs. The main program is executed cyclically, meaning that once the last instruction in the main program has completed, the robot controller automatically executes the main program again. See RobotControllerIO for exchanging data between the robot controller and other components in the simulation using I/O signals.