Robot Workbench

Introduction
The Robot Workbench is a tool to simulate a standard 6-axis industrial robot, like Kuka.

You can do the following tasks:
 * Set up a simulation environment with a robot and work pieces.
 * Create and fill up movement trajectories.
 * Decompose features of a CAD part to a trajectory.
 * Simulate the robot movement and reaching distance.
 * Export the trajectory to a robot program file.

To get started try the Robot tutorial, and see the programming interface in the RobotExample.py example file.



Tools
Here the principal commands you can use to create a robot set-up.

Robots
The tools to create and manage the 6-Axis robots


 * [[Image:Robot_CreateRobot.png|30px]] Create a robot: Insert a new robot into the scene
 * [[Image:Robot_Simulate.png|30px]] Simulate a trajectory: Opens the simulation dialog and lets you simulate
 * [[Image:Robot_Export.png|30px]] Export a trajectory: Export a robot program file
 * [[Image:Robot_SetHomePos.png|30px]] Set home positon: Set the home position of a robot
 * [[Image:Robot_RestoreHomePos.png|30px]] Restore home positon: move the robot to its home position

Trajectories
Tools to create and manipulate trajectories. There are two kinds, the parametric and non parametric ones.

non parametric trajectories

 * [[Image:Robot_CreateTrajectory.png|30px]] Create a trajectory: Inserts a new empty trajectory-object into the scene
 * [[Image:Robot_SetDefaultOrientation.png|30px]] Set the default orientation: Set the orientation way-points gets created by default
 * [[Image:Robot_SetDefaultValues.png|30px]] Set the default speed parameter: Set the default values for way-point creation
 * [[Image:Robot_InsertWaypoint.png|30px]] Insert a waypoint: Insert a way-point from the current robot position into a trajectory
 * [[Image:Robot_InsertWaypointPre.png|30px]] Insert a waypoint: Insert a way-point from the current mouse position into a trajectory

parametric trajectories

 * [[Image:Robot_Edge2Trac.png|30px]] Create a trajectory out of edges: Insert a new object which decompose edges to a trajectory
 * [[Image:Robot_TrajectoryDressUp.png|30px]] Dress-up a trajectory: Lets you override one or more properties of a trajectory
 * [[Image:Robot_TrajectoryCompound.png|30px]] Trajectory compound: Create a compound out of some single trajectories

Scripting
This section is generated out of: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py You can use this file directly if you want.

Example how to use the basic robot class Robot6Axis which represents a 6-axis industrial robot. The Robot module is dependent on Part but not on other modules. It works mostly with the basic types Placement, Vector and Matrix. So we need only:

Basic robot stuff
create the robot. If you do not specify another kinematic it becomes a Puma 560

accessing the axis and the Tcp. Axes go from 1-6 and are in degree:

move the first axis of the robot:

the Tcp has changed (forward kinematic)

move the robot back to start position (reverse kinematic):

the same with axis 2:

Waypoints:

generate more. The trajectory always finds automatically a unique name for the waypoints

create a trajectory

see a list of all waypoints:

Working with the document objects
Working with the robot document objects: first create a robot in the active document

Define the visual representation and the kinematic definition (see Robot 6-Axis and VRML Preparation for Robot Simulation for details about that)

start positon of the Axis (only that which differ from 0)

retrieve the Tcp position

move the robot

create an empty Trajectory object in the active document

get the Trajectory

add the actual TCP position of the robot to the trajectory

insert some more Waypoints and the start point at the end again:

Simulation
To be done.....

Exporting the trajectory
The trajectory is exported by Python. That means for every control cabinet type there is a post-processor Python module. Here is in detail the Kuka post-processor described

and that's kind of how it's done:

Tutorials

 * Robot 6-Axis
 * VRML Preparation for Robot Simulation