If you intend to use a six-axis robot arm, such as Mecademic'sMeca500used in this tutorial as an example, you are most probably interested in positioning and orienting the robot's tool (end-effector) in various locations (poses). Therefore, you'll certainly want to know the set of locations that you can reach with a specific end-effector mounted on a specific six-axis robot arm. You'll probably ask for some kind of diagram showing the “working area,” “working volume,” “working envelope,” or “working range” of the robot. And, unfortunately, you'll often be presented with a simplistic diagram like the one shown bellow, or worse yet, with the so-calledreachof the robot.

This is not the workspace of the Meca500 robot
This is not the workspace of the Meca500 robot

In robotics, the proper term for what you are looking for is robotworkspace。The reach is nothing but the maximum distance between the robot'swrist center(the intersection point of the axes of the last three joints of the robot) and the axis of joint 1. The gray area in the figure above is the area attainable by the wrist center, for a given rotation of joint 1. This area, or even the volume swept by rotating this area about the axis of joint 1, is NOT the workspace of the robot. There is absolutely no guarantee that you can reach a position in this volume with the tooltip of a particular end-effector, let alone reach that position with any orientation. In fact, if you mount a relatively long end-effector, you won't be able to reach any position from this volume with the tip of your tool.

The workspace of a six-axis robot is the set of all poses (positions and orientations) attainable by a particular end-effector mounted on that robot. Thus, (1) no one can tell you what is the workspace of a specific six-axis robot arm, unless you specify what is the end-effector that you intend to use, and (2) that workspace is a six-dimensional entity that is generally impossible to represent graphically.

"The workspace of a six-axis robot is the set of all poses attainable by a particular end-effector mounted on that robot."

Of course, there are a few exceptions in the field of robotics, when it comes to graphical representation. The workspace of a six-axis Cartesian robot such as the one shown below is trivial to describe but only for one specific choice of tooltip. Indeed, if the tooltip of the robot's end-effector coincides with the intersection point of the axes of the three revolute joints, then this six-axis robot can position its tooltip anywhere inside the yellow cuboid, with absolutely any tool orientation.

The workspace of a six-axis Cartesian robot is extremely easy to describe
The workspace of a six-axis Cartesian robot is extremely easy to describe

Alas, the vast majority of six-axis industrial robots are not Cartesian, for various practical reasons. For example, the Cartesian robot above has a very small workspace in terms of positioning. The typical six-axis robot arm, often bizarrely referred to as avertically articulated robot, consists of seven links (bodies), connected in series through six actuated revolute joints. The first of these bodies is the robot's base, and the last is the robot'sflange(also calledmechanical interface). Also, the axis of the first joint is vertical, the axes of joints 2 and 3 are horizontal, the axis of joint 4 is normal to the axis of joint 3, and the axes of the last three joints typically intersect at one point.

While industrial robot arms are generally sold without any tooling, an end-effector (such as a gripper or a touch probe) is eventually attached to the robot's flange. The user must then associate atool reference frame, fixed to this end-effector. This tool reference frame is defined with respect to theflange reference frame。The origin of the tool reference frame is called theTCP(tool center point). Ultimately, you must therefore be interested in the set of poses with respect to the robot'sbase reference frame, where the robot can bring a specific tool reference frame. Thus, the robot workspace is the set of poses attainable by the robot's tool reference frame.

In a typical six-axis robot arm, such as ourMeca500, whatever the end-effector, for each feasible position of the TCP, the range of attainable tool orientations is completely different, due to mechanical interferences, joint limits, and link length limitations. On top of this high coupling between the positioning and the orienting capabilities of typical six-axis robot arms, these robots have so-calledsingularities。在一个奇点,机器人不能certain directions. This is a physical blockage, not some kind of mathematical problem, and absolutely all six-axis robot arms (including the Cartesian one shown above) have singularities. For example, when all joints in the Meca500 are at zero degrees, as in the left figure below, the robot's end-effector cannot move along a line parallel to the base y-axis (the green one). To move along this line, joints 4 and 6 would have to rotate ±90° first (in opposite directions).

Crossing a wrist singularity
Crossing a wrist singularity

Singularities are a very important phenomenon (or rather nuisance) in robotics and are treated in aseparate tutorial。Here, it suffices to say that even if a path is inside the workspace of a robot, as in the example above, the robot's tool reference frame might not be able to follow it continuously (i.e., without pauses in the motion of the TCP), because of singularities.

因此,机器人奇点进一步限制了机器人工作空间的可用部分。事实上,典型的六轴机器人臂的工作空间是几个无奇点工作空间子集的组合,由奇点分开。机器人可以在总工作空间内的任何位置,在联合模式中,但仅在笛卡尔模式下的一个奇点工作空间子集中(即,当其TCP连续遵循特定路径时)。

"The workspace of a typical six-axis robot arm is the combination of several singularity-free workspace subsets, separated by singularities."

Each of these singularity-free workspace subsets corresponds to a specific robot configuration. Note that if a given pose seems to be inaccessible with the current robot configuration, it may be accessible with another configuration. For example, the tool reference frame pose in the figure below can only be attained in one of the eight robot configurations. Yet, a common mistake is to consider only one of the singularity-free workspace subsets instead of the total workspace (i.e., working in only one of the eight configuration modes). Note that if you specify a pose using x, y, z coordinates and Euler angles and then use the command MovePose, the robot will automatically find the best configuration. Unfortunately, however, users typically teach robot positions by jogging, rather than by specifying a pose.

This end-effector pose can be attained with only one robot configuration
This end-effector pose can be attained with only one robot configuration

Often, a user has already a set of end-effector poses to attain for their given application. For example, a workpiece must be taken from a conveyor, then presented in front of a camera in various orientations, and finally deposited on another conveyor. Finding the optimal placement for the camera, the optimal installation of the gripper and the optimal design for the fingers, is far from trivial. Unfortunately, as of now, there is no commercially-available automatic procedure for finding the optimal cell design — the only method is by trial and error.

Fortunately, you don't need to have the real setup for this; you can use simulation software likeRoboDK。你仍然需要一些机器人的技能,or else you might spend a lot of effort on trial and error. Thus, in what follows, we'll give you ten guidelines to make the best use of your robot's workspace. Although, we use our Meca500 as an example, these guidelines apply to any typical six-axis robotic arm.

Guideline 1:Place your TCP as close to the robot's flange as possible

在检查中,必须必须在具有大范围的方向的相机前面展示一部分。在这样的应用中,第一拇指规则是将工具参考帧放置到法兰参考帧的尽可能接近。换句话说,您必须设计一个抓握系统,允许您抓住要被检查的部分尽可能接近机器人的法兰。

Note that we supply our optional electric gripper with an adaptor plate that allows you to attach the gripper as shown above. However, for some applications it might be better to design your own adaptor plate to either attach the gripper in such a way that the fingers and the axis of joint 6 are in one plane, or to attach the gripper along the axis of joint 6 (as in this video). Another alternative might be to use L-shaped fingers.

Guideline 2:Don't move in Cartesian mode unless following a path

In inspection, you often need to rotate a part in different orientations. Of course, in these cases, it is much easier to use the command MoveLinRelTRF or to jog the robot in Cartesian mode. However, both approaches fail if a singularity is present along the rotation, as in the example illustrated in the figure below. In that example, you cannot rotate the end-effector about its y-axis (the green one) at 90°, because of a singularity (the axes of joints 4 and 6 become aligned).

因此,您必须了解如何使用euler角度并使用movepose命令。或者,您可以使用RoboDk。由于Robodk是一个模拟器,它允许您通过笛卡尔慢跑模式的奇点。无论奇异性如何,始终使用MovePose或MoveJoints命令,除非您希望TCP遵循特定路径。这些命令的使用通常导致最快的循环时间。

The robot cannot move from one of these two configurations to the other by rotating its end-effector about the tool y-axis, due to a wrist singularity
The robot cannot move from one of these two configurations to the other by rotating its end-effector about the tool y-axis, due to a wrist singularity

Guideline 3:如果布线限制接头6过多,请对齐关节1,4和6的轴

Although joint 6 is mechanically unlimited, if you use an end-effector that has cabling attached, like our gripper, the range of joint 6 will be limited to about ±180° or even less. If you need more range, you can align the axes of joints 4 and 6, or even of joints 1, 4 and 6. Of course, such a configuration will be singular, so you will need to use the MoveJoints command to rotate about these coincident axes

Guideline 4:If you use an end-effector with cabling, keep joint 6 as close as possible to zero degrees

Whenever possible, at a desired pose, try to keep joint 6 as close as possible to zero degrees. If, for example, you grab a workpiece in a robot position where joint 6 is at 170°, and then execute a MovePose command, joint 6 will most probably rotate a lot. For example, if at the new desired pose, joint 6 could be at 190°, the robot will automatically rotate its last joint 340° in the negative direction (rather than 20° in the positive direction).

指南5:If you need to orient a lot, position your TCP on the axis of joint 1

如果您需要涵盖各种方向,那么您必须将TCP放在关节轴上1,如下图所示。这种配置将使您围绕接头轴线旋转±175°围绕接头轴线6.从接头1的机器人手腕的中心越远,机器人的取向能力越少。

In this configuration, the robot can rotate its end-effector a lot
In this configuration, the robot can rotate its end-effector a lot

Guideline 6:Try all robot configurations

Sometimes, the robot will be too close to a singularity in one or more of the end-effector poses that are to be attained. In an inspection application, that might not be a problem, but if you need to pick or place an object, then you most probably need to arrive to and depart from the final pose in linear mode. In such a case, test all possible robot configurations and choose the one that is farthest from singularities. For example, in the figure bellow, the left configuration is too close to a singularity (axes 4 and 6 are almost aligned), but the right one is sufficiently far from a singularity.

In this example, the same end-effector pose can be attained in two different robot configurations, but one of them is singular
In this example, the same end-effector pose can be attained in two different robot configurations, but one of them is singular

Guideline 7:Consider more than just attainability

正如我们已经提到的,six-ax工作区is robot arm is a set of several workspace subsets separated by singularities. On top of that, not all attainable poses are equally “good.” Indeed, the workspace of a six-axis robot arm is highly heterogeneous, in terms of performance criteria such as speed and precision. We already mentioned that you need to be as far as possible from singularities, when moving in Cartesian mode. In addition, the more stretched the robot arm, the less its precision (the more flexible it is) and the more time it takes to suppress vibrations at the tooltip.

Guideline 8:Take advantage of the robot's redundancy if you don't need six degrees of freedom

In many cases, you only need five degrees of freedom. For example, if your end-effector is a gluing dispenser or a spindle, you probably don't care about orienting it about the axis of the needle or of the shaft, respectively. In addition, if you inspect a workpiece using an axisymmetric sensor such as a camera, in many cases you might be able to present the workpiece in any rotation about the axis of the sensor. In these cases, do not align the axis of joint 6 with the axis of symmetry of your tool or sensor and chose the best of the infinitely many robot positions for each pose that is to be attained. Best means far from singularities, but also closest to the preceding and succeeding poses to be attained.

Guideline 9:Fix your robot on an available support

As many industrial robots, the Meca500 can be attached in any orientation (e.g., upside-down, or on a wall). Start by exploring avaiable support surfaces before designing a dedicated support that will inevitably eat up valuable space.

Guideline 10:Measure seven times, cut once

英语拜访“测量两次,切割一次”,但是当谈到机器人细胞设计时,选择俄语版本“测量七次,切割一次”。如果您的单元格相对复杂,或者机器人的工作空间似乎受到限制,则必须使用机器人仿真包,并通过许多设计迭代,直到找到令人满意的解决方案。但是,不要完全依赖于模拟。像Robodk这样的通用模拟包不会模拟机器人的确切行为。例如,特定的线性运动可能在Robodk中是可行的,但由于奇点,在真正的机器人上不可能。因此,您还必须在真正的机器人上尝试您的程序。

Guideline 11 (bonus):Mount your robot on a linear guide

If the reach of a specific robot is too short for your application, don't immediately start looking for a bigger robot. Of course, if you need to be able to reach relatively far from the robot's base in various directions or if you need to follow relatively long paths, you probably need a bigger robot. However, if you simply need to service several areas that could be aligned in the design process, then the most compact and affordable solution is to simply mount your robot on a linear guide, as in the figure bellow and inthis video

You can easily increase your robot's workspace by using a linear guide
You can easily increase your robot's workspace by using a linear guide

In conclusion, unless your application involves only a few repetitive movements, you must fully understand the workspace of your robot and spend a considerable time designing your robot cell. Robot cell design is not only about being able to perform all robot movements; it's also about optimizing cycle time and other performance criteria (precision, energy consumption).

© Mecademic Reproducing this tutorial, in whole or in part, is strictly prohibitted.