Learn how to use the HAL Robotics Framework.
• documentation homea.k.a digital model
the process of virtualizing, or digitally recreating, the work environment including all relevant physical, mechanical and communication systems.
a.k.a station, layout, session, scene
a set of simulated objects. A cell is typically built around controlled mechanisms and their associated controller. References are used to organize the relative positioning of the objects in a cell.
a.k.a robot computer
a (virtual or physical) computer controlling the joints of one or more mechanisms. A controller can share data via electric signals or communication protocols.
a.k.a assembly, kinematic system
a set of parts connected together by joints or connections. A mechanism also has sockets on which parts can be attached, and one or more end-points, that can be used in kinematic calculations. Robots, positioners and tools are all types of mechanism.
a.k.a robot
specific type of mechanism which is the primary controlled element of a controller. Multiple manipulators can share a single cell.
a.k.a tool
specific type of mechanism which performs a process e.g. welding torch, spindle, gripper or camera. End effectors can either be mounted onto a mechanism or be installed elsewhere in the cell, referred to as stationary tools, with a mechanism moving a part towards the end effector. The term end effector is preferred over tool as a an end effector can actually be composed of multiple tools, for example a gripper and camera mounted simultaneously to identify objects before picking.
a.k.a external axis
specific type of mechanism which supports the work of a manipulator by moving its base or parts around to facilitate access. Tracks and rotary tables are both examples of positioners. Multiple positioners can be installed in a single cell.
a.k.a articulation, axis
an articulated link between two parts. A joint can be active (controlled) or passive.
a.k.a joint index
the index a joint should be assigned during export. This is typically only required with external axes to set the index of a joint within a main program.
a.k.a rigid joint
a fixed link between parts.
a.k.a tool center point
tip of a mechanism which should attempt to reach any programmed targets. A single mechanism can have multiple endpoints but only one should be active at a time.
a.k.a object, body, link
a physical body. A part is a reference with a geometry and a mass.
a.k.a coordinate system, reference frame, basis, work object
a coordinate system upon which targets and other objects can be located. References can be linked to other references and parts by connections and be made mobile if they are connected to a mechanism.
a.k.a i/o, electrical signal
signals are used to send electrical data between connected devices. Electrical signals can be either input (receivers) or output (senders), this pairing leads to their common pseudonym i/o (pronounced ‘I-O’). Theses signals can also be either digital, with only high or low values, or analog, with values anywhere between their minimum and maximum voltages.
a.k.a telling a machine what to do
creation of procedures from CAD data or other sources
a.k.a program, task, process, job, module, routine
a set of actions to be executed by a controller.
a.k.a command, instruction, function, method, operation, nested procedure
an operation executable by a controller. As actions can be nested and combined, a procedure is a graph of actions.
Typical actions include: motion (move), assembly (change tool, pick), signal (set I/O) and thread actions (wait).
a.k.a move
instructs one or more mechanisms to reach a target using specified motion settings.
a.k.a wait, pause, halt
instructs a controller to temporarily pause its execution. Execution can be resumed automatically, e.g. after a fixed period of time, upon a signal change or synchronization, or manually via an operator interaction e.g. by pressing a button.
a.k.a set signal
changes the value of a signal at runtime. This is typically used to trigger the (de)activation of a tool or announce a change of state to a connected device.
a.k.a function
exports a piece of code to call a function which already exists in the controller.
a.k.a waypoint, frame, pose
a position to be reached by one or more mechanisms, expressed in joint space or Cartesian space.
a.k.a motion sequence
series of targets through which the endpoint of mechanism will move to perform a process e.g. milling.
a.k.a space of the manipulator
the positions in which a mechanism can be by moving its joints, expressed as a position for each joint.
a.k.a operational space, task space, space of the end-effector
the positions in which tool can be, expressed in Cartesian coordinates
a.k.a approximation, zone, corner path
depicts tolerances within which a target will be considered “reached”. Increasing these tolerances allows a mechanism to perform continuous motion: it will not stop at each target.
a.k.a digital execution
virtual execution and validation of one or more programmed procedures
a.k.a validation
computing how a procedure will run when executed and logging any potential issues such as out of reach targets or singularities.
a.k.a accessible space
the set of points that can be reached by a mechanism’s end effector. Targets outside a mechanism’s workspace are out of reach.
a.k.a degeneracy
a location in a mechanism workspace where a change of joint position does not result in a change of end effector position. This happens when two or more joints line up, meaning the movement of one is canceled out by the other’s.
a.k.a real-world connection
any interaction that allows digital information to be passed to real-world controllers, sensors or mechanisms.
a.k.a code generation, post-processing
process by which procedures are converted into the relevant programming language for a target controller, e.g. ABB RAPID, KUKA KRL or Universal Robots URScript.
a.k.a transfer
moving of files from one device to another. Typically exported procedures can be uploaded to a real controller and, if supported, executed.
these are how we organize what a controller can do and draw parallels between different manufacturers’ controllers. Capabilities are things like the ability to upload code to the controller from a PC or the ability to read the values of signals remotely. The standard capabilities are listed below. Extensions may add others but equally, not all will be available for every controller, and above all, not all will be of use in every situation.
Name | Description |
---|---|
File Manager | Edits the files and directories of a remote controller including copying files to and from it. |
Upload | Loads any procedures associated with the controller into the memory of a remote controller. |
Execution | Executes any procedures associated with the controller on a remote controller. |
Execution Monitoring | Monitors the execution status of a remote controller. |
Monitor | Monitors the controller state. |
Stream | Enables state streaming to the controller. |
Logger | Records events of a controller. |
Language | Exports any procedures associated with the controller into native robot code. |
Read Signals | Reads the state of signals on a remote controller. |
Write Signals | Writes the state of signals on a remote controller. |
Backup | Backs up the contents of a remote controller. |
a.k.a. options
these are similar to the options you have in your controller. They are the actual software modules that implement different capabilities. Details of different subsytems can be found in the manufacturer-specific documentation.