RoboLogix

Last updated
RoboLogix
Developer(s) Logic Design Inc.
Stable release
V7.1 / January 2021
Operating system Windows (Windows 7, Windows 8, Windows 10)
Type Robotics circuit simulation
License Proprietary
Website www.robologix.com

RoboLogix is a robotics simulator which uses a physics engine to emulate robotics applications. [1] The advantages of using robotics simulation tools such as RoboLogix are that they save time in the design of robotics applications and they can also increase the level of safety associated with robotic equipment since various "what if" scenarios can be tried and tested before the system is activated. [2] RoboLogix provides a platform to teach, test, run, and debug programs that have been written using a five-axis industrial robot in a range of applications and functions. These applications include pick-and-place, palletizing, welding, and painting.

Contents

RoboLogix was developed by Colin Simpson and John (Bud) Skinner. It is primarily intended as an educational resource, and is used by high schools, colleges, and universities [3] to provide laboratory simulation of industrial robots. Some institutions, such as George Brown College use RoboLogix as part of an online robotics distance education program. The simulation software allows for verification of the robot's reaching ability, travel ranges and collisions. This type of simulation software provides an increased level of reliability in the planning process and program development as well as reducing the overall completion/commissioning time.

RoboLogix work envelope RoboLogix Work Envelope.jpg
RoboLogix work envelope

The ability to preview the behavior of a robotic system in a virtual world allows for a variety of mechanisms, devices, configurations and controllers to be tried and tested before being applied to a "real world" system. RoboLogix has the capacity of real-time simulation of the motion of an industrial robot using both geometric modeling and kinematics modeling. [4]

RoboLogix enables programmers to write their own robot programs and use sensors such as video cameras, which are used for obtaining the desired position of the robot end effector. In addition, a teach pendant control panel is included with the simulator that allows the user to command the robot to pick up a tracked object and return it to a home location through jogged commands or pre-programmed positions.

Control panel

RoboLogix control panel ControlPanel.jpg
RoboLogix control panel

The RoboLogix control panel consists of both robot control functions as well as environment control functions such as conveyor system controls, on-off hard-wired control, etc. The control panel allows the user to command the robot to pick up a tracked object and return it to a home location through jogged commands or pre-programmed positions. With robotic systems in general, angular position movements are commonly used for large (course) motion and linear position movements are often used for smaller (fine) increments. [5] There are several command instructions on the control panel such as Reset, Home, Setup and Zero which are used to automatically set the robot to a specific position for calibration or realignment.

Vision system

One of the 12 camera views RoboLogixCameraView.JPG
One of the 12 camera views

RoboLogix provides 12 viewpoints, or camera angles for a given robot work envelope. These viewpoints are accessed by the twelve CAM keys and allow for the viewing from a variety of angles and perspectives. By using these camera viewpoints, the user can move around in a 3D animated environment in much the same way they would in the real-world. One of the camera views is from the robot's end effector, which allows for the real-time visualization and positioning of the end effector (gripper) as it approaches the workpiece.

Programming language

Like most robot programming languages, RoboLogix programs consist of data objects and program flow. The data objects reside in registers and the program flow represents the list of instructions, or instruction set, that is used to program the robot. RoboLogix program language is a type of scripting language that is used to control the software application.

Programming languages are generally designed for building data structures and algorithms from scratch, while scripting languages are intended more for connecting, or gluing, components and instructions together. [6] Consequently, the RoboLogix instruction set is a streamlined list of program commands that are used to simplify the programming process and provide rapid application development.

Instruction set

The RoboLogix instruction set contains 16 commands, which are usually written as a program on a line-by-line basis. These commands are used to instruct the robot to perform tasks such as moving to a specific location, picking up an object, executing a subroutine, waiting, etc. One of the more popular commands in the instruction set is the IF instruction, which compares numerical values located in two registers. If a register has a value that is greater than (>), less than (<), greater than/equal to (>=), less than/equal to (<=), equal to (=), or not equal to (<>) another register, it will execute the next line in the program if the condition is true. The IF command is often used with the JMP LBL instruction to control program execution.

RoboLogix Instruction Set RoboLogixInstructionSet.JPG
RoboLogix Instruction Set

All instruction set information is stored in registers, which are data locations capable of holding variable numeric values. There are two main types of registers used by RoboLogix: position registers and variable registers. Position registers contain both the linear and angular data point coordinates and include axis (joint) information for A1, A2, A3, etc. and for X, Y, Z linear, or Cartesian coordinates. There are also 32 variable registers which can be used for holding instruction set data such as position comparisons and time-delay information. In addition to position registers and variable registers, some robot software programs also have palletizing registers, which are used to manage the position of the stack point in palletizing applications.

Palletizing

Palletizing Stacking Pattern StackingPattern.JPG
Palletizing Stacking Pattern

Palletizing is one of the more popular applications for robots, and is accomplished by combining a series of commands into a palletizing routine. A RoboLogix palletizing routine consists of five program instructions, or lines. The first instruction is the Palletize instruction, which is followed by a linear motion instruction to move to the stack point. The stack point is the top-center of the workpiece, and a group of stack points forms a stacking pattern, as shown in the adjacent image. The first stack point in a stacking pattern is located at (1,1,1) (row, column, layer) and is incremented each time the palletizing routine is executed.

See also

Related Research Articles

<span class="mw-page-title-main">Computer program</span> Instructions to be executed by a computer

A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components.

In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an implementation.

<span class="mw-page-title-main">Industrial robot</span> Robot used in manufacturing

An industrial robot is a robot system used for manufacturing. Industrial robots are automated, programmable and capable of movement on three or more axes.

In computer science, imperative programming is a programming paradigm of software that uses statements that change a program's state. In much the same way that the imperative mood in natural languages expresses commands, an imperative program consists of commands for the computer to perform. Imperative programming focuses on describing how a program operates step by step, rather than on high-level descriptions of its expected results.

The Burroughs Large Systems Group produced a family of large 48-bit mainframes using stack machine instruction sets with dense syllables. The first machine in the family was the B5000 in 1961. It was optimized for compiling ALGOL 60 programs extremely well, using single-pass compilers. It evolved into the B5500. Subsequent major redesigns include the B6500/B6700 line and its successors, as well as the separate B8500 line.

In computer science, computer engineering and programming language implementations, a stack machine is a computer processor or a virtual machine in which the primary interaction is moving short-lived temporary values to and from a push down stack. In the case of a hardware processor, a hardware stack is used. The use of a stack significantly reduces the required number of processor registers. Stack machines extend push-down automata with additional load/store operations or multiple stacks and hence are Turing-complete.

G-code is the most widely-used computer numerical control (CNC) programming language. It is used mainly in computer-aided manufacturing to control automated machine tools, as well as from a 3D-printing slicer app. It has many variants.

Quantum programming is the process of assembling sequences of instructions, called quantum circuits, that are capable of running on a quantum computer. Quantum programming languages help express quantum algorithms using high-level constructs. The field is deeply rooted in the open-source philosophy and as a result most of the quantum software discussed in this article is freely available as open-source software.

In software engineering, profiling is a form of dynamic program analysis that measures, for example, the space (memory) or time complexity of a program, the usage of particular instructions, or the frequency and duration of function calls. Most commonly, profiling information serves to aid program optimization, and more specifically, performance engineering.

An instruction set simulator (ISS) is a simulation model, usually coded in a high-level programming language, which mimics the behavior of a mainframe or microprocessor by "reading" instructions and maintaining internal variables which represent the processor's registers.

Robot software is the set of coded commands or instructions that tell a mechanical device and electronic system, known together as a robot, what tasks to perform. Robot software is used to perform autonomous tasks. Many software systems and frameworks have been proposed to make programming robots easier.

<span class="mw-page-title-main">Microsoft Robotics Developer Studio</span>

Microsoft Robotics Developer Studio is a discontinued Windows-based environment for robot control and simulation that was aimed at academic, hobbyist, and commercial developers and handled a wide variety of robot hardware. It requires a Microsoft Windows 7 operating system or later.

<span class="mw-page-title-main">Robotics simulator</span>

A robotics simulator is a simulator used to create an application for a physical robot without depending on the physical machine, thus saving cost and time. In some case, such applications can be transferred onto a physical robot without modification.

<span class="mw-page-title-main">AnyKode Marilou</span> Software

anyKode Marilou is a modeling and simulation environment for mobile robots, humanoids, articulated arms and parallel robots operating in real-world conditions that respect the laws of physics. This robotics suite is used in research centers and industry for various projects like humanoid architectures, wheeled and multi legged vehicles, and multi-robot systems (Multi-agents).

<span class="mw-page-title-main">Emulator</span> System allowing a device to imitate another

In computing, an emulator is hardware or software that enables one computer system to behave like another computer system. An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate another program or device.

<span class="mw-page-title-main">SimSpark</span>

SimSpark is a generic simulation system for various multiagent simulations. It supports developing physical simulations for AI and robotics research with an open-source application framework. It is commonly used in academic research and education.

The following outline is provided as an overview of and topical guide to robotics:

<span class="mw-page-title-main">RoboCup 3D Soccer Simulation League</span>

The RoboCup 3D Simulated Soccer League allows software agents to control humanoid robots to compete against one another in a realistic simulation of the rules and physics of a game of soccer. The platform strives to reproduce the software programming challenges faced when building real physical robots for this purpose. In doing so, it helps research towards the RoboCup Federation's goal of developing a team of fully autonomous humanoid robots that can win against the human world soccer champion team in 2050.

<span class="mw-page-title-main">MikroSim</span>

MikroSim is an educational software computer program for hardware-non-specific explanation of the general functioning and behaviour of a virtual processor, running on the Microsoft Windows operating system. Devices like miniaturized calculators, microcontroller, microprocessors, and computer can be explained on custom-developed instruction code on a register transfer level controlled by sequences of micro instructions (microcode). Based on this it is possible to develop an instruction set to control a virtual application board at higher level of abstraction.

References

  1. RoboLogix general applications
  2. Advantages of robotic simulation
  3. Reference to RoboLogix use in schools
  4. Article regarding RoboLogix functionality
  5. Colin Simpson (2008) Introduction to Robotics, McMillan-Warner Publishing, P. 227 ISBN   978-0-9686860-2-7
  6. Programming language reference