Developer(s) | Logic Design Inc. |
---|---|
Stable release | V3.0 / January 2011 |
Operating system | Windows (2000, XP, Vista, or Windows 7) |
Type | Robotics circuit simulation |
License | Proprietary |
Website | www.robologix.com |
Contents |
RoboLogix is a robotics simulator which uses a physics engine to emulate real-world robotics applications. The advantages of using robotics simulation tools are that they save time in the design of robotics applications and they can also greatly increase the level of safety associated with robotic equipment since various "what if" scenarios can be tried and tested before the system is activated.[1] By using RoboLogix, it is possible to teach, test, run, and debug programs that have been written using a five-axis industrial robot in a wide range of practical applications. These simulated applications include pick-and-place, palletizing, welding, and painting. RoboLogix allows for the execution of robot software programs to test and visually examine the operation of robot programs and control algorithms, while plotting instantaneous joint accelerations, velocities and positions.
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 [2] 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.
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 receives control signals, determines if contact or collision between objects in the system has occurred, and returns simulated sensor information as feedback. This system has the capacity of real-time simulation of the motion of an industrial robot through 3D animation[3]. The principles of 3D motion simulation and both geometric modeling and kinematics modeling are presented in the RoboLogix virtual environment.
RoboLogix enables programmers to write their own robot programs, modify the environment and use the available sensors. These sensors include 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.
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 conveyor controls can move either conveyor in the forward or reverse direction. Motion control of the robot accomplished by moving the robot from one location position to another. This movement is achieved by setting the angular (A1 -A5) coordinates and the linear (X, Y, Z) coordinates. 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.[4]
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. The Reset instruction is used to clear program errors and reset the system. The Home instruction will return the robot to its home base position, and the Zero instruction will reset the robot arm coordinates to zero. The Setup key provides access to a dialog box with setting adjustments for conveyor speed, as well as feed rates for angular (deg/sec) and linear (cm/sec) jog instructions. In addition, the Setup dialog box also allows for independent adjustment of the A5 rotary tool feedrate.
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. When programming the robot, the camera views allow you to make fine adjustments to the arm and gripper position, or to view the entire work envelope and surrounding area. One of the camera views is from the robot's end effector. This viewpoint allows for the real-time visualization and positioning of the end effector (gripper) as it approaches the workpiece.
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.[5] 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.
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.
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 is one of the more popular applications for robots[6], 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 image to the right. 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.