I started a new job in September just after the last post. I was hired by Octopuz, a small company that makes offline robot programming software. OLRP is a technique used to streamline the use of the industrial robots used in many factories.
Users start by creating a model of their existing "robot cell." This is one or more six-axis robots, rails that the robots can be repositioned on, rotary tables the work pieces can be mounted on, tools (such as welding torches or cutters) attached to the robot, and obstacles like tables or walls. Our software ships with CAD models of most of the mechanical components our users have, and more can be added easily.
Once the cell has been defined, a CAD model of the part they want to work on is imported. They then create one or more "paths" the robot will follow around the part. The path contains the points to travel between, where to turn the tool on or off, how fast to travel, the angle the tool should be at, &c. A single path is then often duplicated several times to take advantage of translational, rotational or flip symmetries of the part. For instance, there might be a bar held onto a plate by 8 identical brackets on each side. The user would manually lay out the path to weld one bracket, then translate the path to each bracket on that side, and then flip them all to the other side.
We then analyze the paths to find how to best move each robot axis and any external positioners. Users can see a simulation of how the robot will follow the path they defined, and any problems we identified with it.
Finally, we generate an output program that can be provided to the robot to make it follow the paths the user created.
The alternative approach is to use a controller attached to the robot to steer it through the paths to follow, recording the points as you go. OLRP allows a new program to be created for the robot while it is working on a different part, improving utilization. It can also be much faster for complicated paths, as the software can provide shortcuts to quickly visit many points.