Method of programming a manipulator, control system and industrial robot

CN117222499BActive Publication Date: 2026-08-21ABB (SCHWEIZ) AG
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180097289.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-29
Publication Date
2026-08-21
Estimated Expiration
2041-04-29

AI Technical Summary

Technical Problem

这是一个相当缓慢且繁琐的过程,尤其是当需要修改、添加和/或删除大量编程点时

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117222499B_ABST
    Figure CN117222499B_ABST
Patent Text Reader

Abstract

A method of programming a manipulator (12), the method comprising providing a movement path (40) to be executed by the manipulator (12), the movement path (40) comprising a plurality of points (42a-42e), including a start point (42a) and an end point (42e) and at least one movement segment (44a-44d) between the plurality of points (42a-42e); moving the manipulator (12) to a path modification position (56a-56c); upon receiving a modification input (58a-58c) from a user (16), modifying the movement path (40) from the start point (42a) to the end point (42e) based on the path modification position (56a-56c). A control system (14) for programming a manipulator (12) is also provided, as well as an industrial robot (10) comprising a manipulator (12) and a control system (14).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to the programming of robot manipulators. Specifically, it provides methods for programming manipulators, control systems for programming manipulators, and industrial robots that include manipulators and control systems. Background Technology

[0002] Manipulators in industrial robots are typically programmed using lead-through programming. In lead-through programming, a human can physically guide the manipulator to a specific target point and use a programming device (such as a teach pendant unit, TPU) to record the joint angles of the manipulator at each point. Then (e.g., through interpolation), a movement path comprising multiple segments between these points can be generated to provide the robot program. Positioning the manipulator using lead-through programming is generally easier for the user than gently pushing it to different points using a joystick or similar device.

[0003] In traditional guided programming, points are added in the same order as the movements the manipulator will make. That is, each new point is added at the end of the movement path. Therefore, the user doesn't need to consider where to add new points to the robot program. Thus, this guided programming is relatively straightforward.

[0004] However, it's not always certain that users want to add new points at the end of the movement path. Modifications to the movement path, such as changing, adding, or deleting intermediate points, are often cumbersome with traditional programming. If you want to add a point in the middle of the movement path, the user might have to find the relevant movement segment in the robot program within the TPU, move the cursor to that segment, and add the new instruction. Furthermore, if you want to modify a programming point, you need to find it in the robot program within the TPU before modifying it. These operations are particularly difficult in block programming because there are no visible pointers for selecting blocks. Additionally, in both examples, the user must switch attention between the motion manipulator and the TPU to ensure the robot program is created correctly. This is a rather slow and tedious process, especially when a large number of programming points need to be modified, added, and / or deleted.

[0005] US2020009730 A1 discloses an industrial robot having a manipulator and a robot controller configured to control the movement of the manipulator. The robot controller is configured to compare the robot position or robot orientation with at least one virtual position or virtual orientation defined in space during guided programming of the robot, and to actively control the movement of the robot relative to the at least one virtual position or virtual orientation when the difference between the robot position or robot orientation and the at least one virtual position or virtual orientation is less than an offset value. Summary of the Invention

[0006] One object of this disclosure is to provide an improved method for programming a manipulator.

[0007] Another object of this disclosure is to provide a method for programming a manipulator that allows for relatively simple modifications to the movement path.

[0008] Another object of this disclosure is to provide a user-friendly method for programming a manipulator.

[0009] Another object of this disclosure is to provide a method for programming a manipulator that enables the use of a less complex user interface.

[0010] Another object of this disclosure is to provide a method for programming a manipulator that addresses some or all of the foregoing objects in combination.

[0011] Another object of this disclosure is to provide a control system for programming a manipulator that addresses one, several, or all of the aforementioned objects.

[0012] Another object of this disclosure is to provide an industrial robot including a manipulator and a control system, which solves one, several or all of the aforementioned objects.

[0013] According to a first aspect, a method for programming a manipulator is provided, the method comprising providing a movement path for execution by the manipulator, the movement path including a plurality of points including a start point and an end point and at least one movement segment between the plurality of points; moving the manipulator to a path modification location; and modifying the movement path from the start point to the end point based on the path modification location once modification input is received from a user.

[0014] This method modifies movement paths by adjusting the location based on the manipulator's path. It uses the physical manipulator's actual location as input to modify existing movement paths. By using the path-modifying location as the basis for modifying movement paths, this method provides a new level of interaction between the user and the manipulator.

[0015] Furthermore, because the actual position of the physical manipulator is used as input for modifying the movement path, this method enables a very simple user interface. In some variations that use manipulator-guided movement, only a single input element (such as a physical or virtual button) is needed to modify the movement path.

[0016] The method may also include executing a modified movement path by the manipulator. Alternatively or additionally, the method may also include continuously or repeatedly reading the position of the manipulator as it is moved.

[0017] Each segment of a movement path can connect two adjacent points. A movement path refers to the geometry of movement in space. Conversely, a movement trajectory can contain a specific velocity distribution and a specific acceleration distribution along such a movement path. A movement path can be two-dimensional or three-dimensional. Path modification locations can be on or outside the movement path.

[0018] The manipulator may include a tool center point TCP. In this case, moving the manipulator to a path modification location may include moving the TCP to the path modification location. The path modification location may include both the TCP's position and orientation. Each point may define the TCP's position (e.g., a Cartesian position), and optionally, the TCP's orientation at that point may also be defined.

[0019] Extensive modifications to input from users are possible. Some examples include physical buttons, virtual buttons, voice commands, and gestures.

[0020] A manipulator is a robot manipulator for an industrial robot. Industrial robots can be collaborative robots. A collaborative robot can be a true collaborative robot, meaning it is constructed to not harm humans. A true collaborative robot may weigh 100 kg or less. Alternatively or additionally, a true collaborative robot may include one or more arms driven by less than 80W of power. A true collaborative robot differs from the original non-cooperative industrial robot; it is modified with sensors to make it collaborative. (ABB's...) This is an example of a true collaborative robot.

[0021] The manipulator can be programmable on three or more axes, such as six or seven axes. In this disclosure, the manipulator can be a robotic arm.

[0022] The method according to the first aspect can be used with a control system according to the second aspect and / or an industrial robot according to the third aspect.

[0023] Modifying a movement path can include modifying one of the points, deleting one of the points, or adding another point. Therefore, the path modification position to which the manipulator has been moved can indicate where a point should be moved, which point should be deleted, or where another point should be added.

[0024] Modifying or deleting a point may include moving the manipulator to a point selection area among multiple point selection areas, each point selection area being associated with a unique point among multiple points; selecting a point associated with the point selection area to which the manipulator has been moved as the point to be modified or deleted; and modifying or deleting the selected point based on the path modification location.

[0025] In this way, the actual position of the physical manipulator can be used as a selection tool for choosing a movement path. This solution contrasts with existing solutions where the user must first review the robot program in the programming device. In this variation of the method, the actual position of the physical manipulator is used to select where modifications should be made in the robot program.

[0026] Furthermore, the use of point selection areas makes it easier to select points using a manipulator. In other words, the manipulator does not need to be precisely positioned on the point to be selected.

[0027] Each point selection region can be a three-dimensional volume surrounding the associated point, such as a sphere. The point can be located at the center of the three-dimensional volume. In the case of a sphere, each point selection region can represent a threshold distance between the TCP and the associated point.

[0028] The method according to this variant may include moving the TCP to a point selection area. In this case, the method may also include continuously or repeatedly checking whether the TCP is within any point selection area.

[0029] The method may also include providing feedback to the user indicating that the manipulator is located within one of the point selection areas. Feedback can be provided if the TCP is located within one of the point selection areas.

[0030] Adding additional points may include moving the manipulator to a movement segment selection area within at least one movement segment selection area, each movement segment selection area being associated with a unique movement segment among at least one movement segment; selecting a movement segment associated with a movement segment selection area to which the manipulator has already been moved as the movement segment to be modified; and adding additional points associated with the selected movement segment based on the path modification location.

[0031] In this way, the actual position of the physical manipulator can be used as a selection tool to select the movement segment adjacent to the point to be added to the movement path. The use of at least one movement segment selection area makes it easier to select movement segments with the aid of the manipulator. That is, the manipulator does not need to be precisely positioned on the movement segment to be selected in order to add the point associated with that movement segment.

[0032] Each mobile segment selection region can be a three-dimensional volume surrounding the associated mobile segment, such as a cylindrical volume. The mobile segment can be located at the center inside the three-dimensional volume. In the case of a cylindrical volume, each mobile segment selection region can represent a threshold distance between the TCP and the associated mobile segment.

[0033] The method according to this variant may include moving the TCP to a mover segment selection region. In this case, the method may also include continuously or repeatedly checking whether the TCP is within any of at least one mover segment selection region.

[0034] The point selection area and at least one movement segment selection area can be mutually exclusive. That is, each position reachable by the manipulator can be assigned to either the point selection area or the movement segment selection area, but not both simultaneously. Not all reachable positions of the manipulator need to be assigned to either the point selection area or the movement segment selection area. In some variations, the point selection area and at least one movement segment selection area can together define a continuous volume covering only a portion of the positions reachable by the manipulator.

[0035] The method may also include providing feedback to the user indicating that the operator is within at least one of the mobile segment selection areas. Feedback can be provided if the TCP is located within one of the at least one mobile segment selection areas.

[0036] The selection of points associated with a point selection area or the selection of movement segments associated with a movement segment selection area can be based on user input.

[0037] Point selection can include receiving selection input from the user when the manipulator is located in the point selection area. Selection and modification inputs for modifying or deleting points can be provided by a common input element or by different input elements. When using a common input element, modification input can be a first type of input to the input element (such as a "press and hold" operation or a click) to modify the point, and selection input can be a second type of input to the input element, different from the first type (such as a release or double-click), to delete the point. Alternatively, a first input element can be used to provide selection input and modification input for modifying the point, and a second input element can be used to provide selection input and modification input for deleting the point. Both the first and second input elements can be buttons and / or can be provided on the manipulator.

[0038] When the selected point is modified, the manipulator position when providing selection input can differ from the manipulator position when providing modification input. The manipulator position when providing modification input, i.e., the position of the modified point, can be inside or outside the point selection area.

[0039] When the selected point is deleted, the manipulator position when providing selection input can be the same as when providing modification input. In any case, the manipulator position when providing modification input for deleting the selected point can be within the point selection area.

[0040] The selection of a movement segment may include receiving selection input from the user when the manipulator is located in the point selection area. The selection input for selecting a movement segment may be the same as the selection input for selecting a point. When the manipulator is positioned in the movement segment selection area and selection input is received, the method enters point addition mode. When the manipulator is positioned in the point selection area and selection input is received, the method enters point modification mode or point deletion mode.

[0041] When adding another point, the manipulator position when providing selection input can differ from the manipulator position when providing modification input. The manipulator position when providing modification input, i.e., the position of the added point, can be inside or outside the movement segment selection area.

[0042] If the point selection area and at least one movement segment selection area are mutually exclusive, it can be concluded that when the manipulator is in the point selection area when it receives selection input, the point should be modified or deleted. Conversely, it can be concluded that when the manipulator is not in the point selection area when it receives selection input, the point should be added.

[0043] This feedback can include force feedback in the manipulator. Force feedback can be, for example, tactile feedback. For instance, different vibration patterns of the manipulator can be emitted depending on various positional relationships between the manipulator and the movement path, such as when the manipulator enters one of the point selection areas, leaves one of the point selection areas, enters one of the movement segment selection areas, and / or leaves one of the movement segment selection areas.

[0044] Alternative types of feedback include visual and auditory feedback. For example, the manipulator can emit light of a first color when it is in a point selection area, and light of a second color different from the first color when it is in a movement segment selection area. In this case, one or more light emitters can be provided on the manipulator.

[0045] The method may further include moving the manipulator to a modification type selection location; and, based on the modification type selection location, selecting at least one path modification type from a plurality of path modification types to modify the movement path. That is, the decision about whether to modify, delete, or add a point can be at least partially based on the modification type selection location, for example, when a selection input from the user is received. An example of a modification type selection location is the position of the manipulator within a point selection area and at least one movement segment selection area. Positioning the manipulator within one of the point selection areas can trigger a point modification mode and / or a point deletion mode. Positioning the manipulator within one of at least one movement segment selection areas can trigger a point addition mode. A method according to this variation may include moving the TCP to the modification type selection location.

[0046] Movement of the manipulator can include moving the manipulator via guidance. This variant of the method greatly facilitates the modification of existing movement paths. For example, a user can modify the movement path by interacting only with the manipulator (rather than with a programming device or other manipulation device).

[0047] As an alternative to movement by means of guidance, the manipulator can be moved by means of a programmable device, such as by moving a joystick on it.

[0048] The method may also include providing force feedback toward the movement path during the movement of the manipulator. The force feedback force may increase as the distance between the TCP and the movement path increases. In this way, channel (holding) assistance is provided to the user when the manipulator is moved along the movement path by means of guidance. The method according to this variation may include forcing the TCP toward the movement path during the movement of the TCP.

[0049] According to a second aspect, a control system for programming a manipulator is provided, the control system comprising at least one data processing device and at least one memory, the at least one memory storing thereon at least one computer program including program code, which, when executed by the at least one data processing device, causes the at least one data processing device to perform the following steps: providing a movement path executed by the manipulator, the movement path including a plurality of points, the plurality of points including a start point and an end point and at least one movement segment between the plurality of points; continuously or repeatedly determining path modification positions based on the current position of the manipulator; and modifying the movement path from the start point to the end point based on the path modification positions once modification input from a user is received.

[0050] The at least one computer program may further include program code that, when executed by the at least one data processing device, causes the at least one data processing device to perform or commands the execution of the steps according to the method of the first aspect.

[0051] According to a third aspect, an industrial robot is provided, which includes a manipulator and a control system according to the second aspect. The industrial robot may include any type of manipulator as described in conjunction with the first aspect.

[0052] Industrial robots may also include input elements located on the manipulator for providing modification input. Input elements can also be used to provide selection input. Input elements may be, for example, buttons.

[0053] Selection and modification of input can be provided in various ways. Selection can be provided by pressing a button, and modification can be provided by releasing the button. Alternatively, selection can be provided by pressing the button once, and modification can be provided by pressing the button a second time. Selection for modification can be a single click of the button, and selection for deletion can be a double click of the button.

[0054] Industrial robots may also include programming devices. These devices can be configured to display information associated with the movement path. They can be configured to display a graphical representation of the movement path or other data representing the movement path (such as text).

[0055] When the programming device is configured to display a graphical representation of the movement path, it can also be configured to display the current position of the manipulator relative to the movement path. The programming device can also be configured to display a point selection area and / or at least one movement segment selection area associated with the movement path.

[0056] The programming device may be a teach pendant unit, or a TPU. Alternative examples of programming devices according to this disclosure include mobile phones, laptop computers, fixed computers, virtual reality (VR) devices, and augmented reality (AR) devices. Attached Figure Description

[0057] Further details, advantages, and aspects of this disclosure will become apparent from the following description taken in conjunction with the accompanying drawings, in which:

[0058] Figure 1 : A schematic side view of an industrial robot including a manipulator, control system, and programming equipment, as well as the movement path for the manipulator;

[0059] Figure 2 : Indicative representation Figure 1 The movement path in;

[0060] Figure 3 : This schematically represents the point selection area and the movement segment selection area associated with the movement path;

[0061] Figure 4a : Indicatively represents the movement of the manipulator along the movement path;

[0062] Figure 4b : Indicatively represents in Figure 4a The display of the programming device during the operation of the controller;

[0063] Figure 5a : Indicates, schematically, further movement of the manipulator along the movement path;

[0064] Figure 5b: Indicatively represents in Figure 5a The display during the operation of the controller;

[0065] Figure 6a This is an example illustrating further movement of the manipulator along the movement path and selection of input.

[0066] Figure 6b : Indicatively represents in Figure 6a The display during the operation of the controller;

[0067] Figure 7a This is an example illustrating the movement of the manipulator to the path modification location and the modification of the input.

[0068] Figure 7b : Indicatively represents in Figure 7a The display during the operation of the controller;

[0069] Figure 8 : An example illustrating a modified movement path;

[0070] Figure 9a : This schematically illustrates the movement of the manipulator along a movement path, another example of selecting input, and another example of modifying input;

[0071] Figure 9b : Indicatively represents in Figure 9a The display during the operation of the controller;

[0072] Figure 10 : Another example illustrating a modified movement path;

[0073] Figure 11a : Indicatively represents the movement of the manipulator along the movement path;

[0074] Figure 11b : Indicative representation Figure 11a The display during the operation of the controller;

[0075] Figure 12a : This is yet another example of moving the manipulator to a path-modifying location and another example of modifying the input;

[0076] Figure 12b : Indicatively represents in Figure 12a The display during the operation of the device; and

[0077] Figure 13 : Another example illustrating a modified movement path. Detailed Implementation

[0078] Below, methods for programming the manipulator, control systems for programming the manipulator, and industrial robots including the manipulator and control systems will be described. The same or similar reference numerals will be used to identify the same or similar structural features.

[0079] Figure 1 A schematic side view of an industrial robot 10 is shown. The industrial robot 10 includes a manipulator 12 and a control system 14. The manipulator 12 is illustrated herein as a real collaborative robot arm. Figure 1 Human user 16 is also shown.

[0080] The industrial robot 10 in this specific example also includes a teach pendant unit (TPU) 18. The TPU 18 is an example of a programming device according to this disclosure. The TPU 18 is optional.

[0081] The manipulator 12 in this specific example includes a base 20, a first link 22a rotatable relative to the base 20 at a first axis 24a, a second link 22b rotatable relative to the first link 22a at a second axis 24b, a third link 22c rotatable relative to the second link 22b at a third axis 24c, a fourth link 22d rotatable relative to the third link 22c at a fourth axis 24d, a fifth link 22e rotatable relative to the fourth link 22d at a fifth axis 24e, and a sixth link 22f rotatable relative to the fifth link 22e at a sixth axis 24f. One, several, or all of the links 22a-22f may also be designated by reference numeral "22". One, several, or all of the axes 24a-24f may also be designated by reference numeral "24".

[0082] However, Figure 1 Manipulator 12 is just one of many examples. Manipulator 12 may also include, for example, one or more translation axes.

[0083] Manipulator 12 also includes tool 26. Tool 26 is an example of an end effector. Tool 26 includes a tool center point TCP 28. In this example, tool 26 is rigidly connected to a sixth link 22f.

[0084] The manipulator 12 in this example also includes a button 30. The button 30 is an example of an input element according to this disclosure. The button 30 is here arranged on the sixth link 22f.

[0085] The control system 14 in this example includes a data processing device 32 and a memory 34. The memory 34 includes a computer program containing program code that, when executed by the data processing device 32, causes the data processing device 32 to perform or command the various steps described herein. The control system 14 communicates with the manipulator 12 and the TPU 18.

[0086] TPU 18 includes a display 36. However, the display 36 is not necessarily required to be provided in TPU 18. The display 36 may alternatively be provided in a personal computer (not shown) or a mobile phone, for example.

[0087] The TPU 18 in this example also includes a joystick 38. With the help of the joystick 38, the manipulator 12 can be gently pushed to different positions.

[0088] Figure 1 A movement path 40 executed by manipulator 12 is also shown. Movement path 40 includes multiple points 42a-42e. In this specific example, movement path 40 includes a first point 42a, a second point 42b, a third point 42c, a fourth point 42d, and a fifth point 42e. The first point 42a is the starting point, and the fifth point 42e is the ending point. One, several, or all of points 42a-42e may alternatively be referred to by the reference numeral "42".

[0089] Figure 2 schematic representation Figure 1 The movement path 40 is shown in the figure. In this example, the movement path 40 has been generated by interpolation between points 42a-42e. In addition to points 42a-42e, the movement path 40 also includes a first movement segment 44a connecting the first point 42a and the second point 42b, a second movement segment 44b connecting the second point 42b and the third point 42c, a third movement segment 44c connecting the third point 42c and the fourth point 42d, and a fourth movement segment 44d connecting the fourth point 42d and the fifth point 42e. One, several, or all of the movement segments 44a-44d may alternatively be referred to by the reference numeral "44".

[0090] Here, the moving segment 44a-44d is a linear interpolation between points 42a-42e. However, interpolation can be of various types, such as spline interpolation.

[0091] Points 42a-42e are the target points of manipulator 12. Manipulator 12 is programmed to move along movement path 40. In this example, TCP 28 follows movement path 40. In some examples, adjacent movement segments 44 may be merged with an overlap area, and TCP 28 may not necessarily pass precisely through points 42a-42e.

[0092] At each point 42a-42e, the position of each axis 24 is defined. This means that not only is TCP 28 continuously positioned at each point 42a-42e during the execution of the movement path 40, but TCP 28 is also positioned at each point 42a-42e with the defined orientation of TCP 28 and the defined attitude of the manipulator 12.

[0093] Figure 3The point selection areas 46a-46e and the movement segment selection areas 48a-48d associated with the movement path 40 are schematically shown. Figure 3 The diagram shows a first point selection region 46a associated with a first point 42a, a second point selection region 46b associated with a second point 42b, a third point selection region 46c associated with a third point 42c, a fourth point selection region 46d associated with a fourth point 42d, and a fifth point selection region 46e associated with a fifth point 42e. One, several, or all of the point selection regions 46a-46e may alternatively be referred to by the reference numeral "46". Each point selection region 46 is illustrated herein as a sphere with an associated point 42 at its center.

[0094] Figure 3 Also shown are a first moving segment selection area 48a associated with the first moving segment 44a, a second moving segment selection area 48b associated with the second moving segment 44b, a third moving segment selection area 48c associated with the third moving segment 44c, and a fourth moving segment selection area 48d associated with the fourth moving segment 44d. One, several, or all of the moving segment selection areas 48a-48d may alternatively be referred to by the reference numeral "48". Each moving segment selection area 48 here has a substantially cylindrical shape, with the associated moving segment 44 located at the center of the cylindrical shape.

[0095] As described herein, point selection area 46 and movement segment selection area 48 are used to facilitate the selection of point 42 and movement segment 44, respectively. Figure 3 As shown, the point selection area 46 and the movement segment selection area 48 are mutually exclusive within the continuous volume accessible by the manipulator 12. Therefore, the point selection area 46 and the movement segment selection area 48 do not overlap.

[0096] Figure 4a This schematically illustrates the movement of manipulator 12 along movement path 40, and Figure 4b Schematic representation in Figure 4a The display 36 is used during the operation of the controller 12. (See also...) Figure 4a and Figure 4b The manipulator 12 is in a guided mode. Therefore, the manipulator 12 is controlled to have reduced stiffness (or is controlled to be "floating"), allowing the user 16 to manually move the manipulator 12, for example, by grasping and pushing it. Figure 4a and Figure 4b The robot program for the manipulator 12, including the movement path 40, already exists. The robot program is implemented in the control system 14.

[0097] During the movement of manipulator 12, control system 14 continuously determines the position of TCP 28 to understand where manipulator 12 is located in the robot program. However, determining the position of TCP 28 is not necessary for this method. As an alternative, the position of axis 24 can be read instead.

[0098] Here, the manipulator 12 moves along the first moving segment 44a. During this movement, the manipulator 12 is forced toward the nearest moving segment 44 by means of force feedback 50. When TCP 28 is on the first moving segment 44a, the force of force feedback 50 is zero. If TCP 28 is moved laterally away from the first moving segment 44a, the restoring force of force feedback 50 increases with the increase of the distance between TCP 28 and the first moving segment 44a. Force feedback 50 thus serves as a channel (holding) aid for the manipulator 12, thereby keeping TCP 28 in contact with the moving path 40. For any increase in deviation between TCP 28 and the first moving segment 44a, the restoring force can be increased. When the manipulator 12 is moved, the user 16 will feel this restoring force in the manipulator 12. Thus, the user 16 is assisted by force feedback 50 to accurately guide TCP 28 along the moving path 40. Force feedback 50 thereby indicates that the manipulator 12 is located in one of the movement segment selection areas 48, provided that force feedback 50 is actuated only when the manipulator 12 is located in one of the movement segment selection areas 48, and is not actuated when the manipulator 12 is outside the movement segment selection area 48.

[0099] like Figure 4b As shown, a graphical representation of the movement path 40 is displayed on the display 36. When the control system 14 determines that TCP 28 is within the first movement segment selection area 48a, the first movement segment 44a is visually highlighted on the display 36. This informs the user 16 that the first movement segment 44a is suitable for selection, as described herein. Figure 4b As shown, the first moving segment 44a is represented by a dashed line, while the remaining moving segments 44b-44d are represented by solid lines. Therefore, the dashed lines are yet another example of feedback indicating to user 16 that TCP 28 is located in the first moving segment selection region 48a.

[0100] Figure 5a This schematically illustrates the further movement of manipulator 12 along movement path 40, and Figure 5b Schematic representation in Figure 5a The display 36 is used during the operation of the controller 12. (See also...) Figure 5a and Figure 5b TCP 28 is now located within the second point selection area 46b. The second point 42b is thus triggered for user 16 to select.

[0101] Manipulator 12 generates vibration 52 to notify user 16 that TCP 28 has entered the second point selection area 46b. This notifies user 16 that TCP 28 is approaching the second point 42b. Vibration 52 can also be emitted when TCP 28 leaves the second point selection area 46b. Vibration 52 constitutes another example of force feedback according to this disclosure. Vibration 52 provides user 16 with feedback indicating that manipulator 12 is located in one of the point selection areas 46. Force feedback 50 can continue to be emitted when TCP 28 has entered any of the point selection areas 46.

[0102] As an alternative to or supplement to force feedback 50 and 52, visual and / or auditory feedback may be used. For example, a light emitter may be provided on manipulator 12 to emit light of a first color when TCP 28 is in one of the movement segment selection areas 48, and to emit light of a second color different from the first color when TCP 28 is in one of the point selection areas 46.

[0103] like Figure 5b As shown, the second point selection area 46b is represented by a circle, while the remaining point selection areas 46a and 46c-46e are not displayed. Therefore, the display of the second point selection area 46b is yet another example of feedback indicating to user 16 that TCP 28 is located in the second point selection area 46b and close to the second point 42b.

[0104] Figure 6a This schematically illustrates the further movement of manipulator 12 along movement path 40, and Figure 6b Schematic representation in Figure 6a The display 36 is used during the operation of the manipulator 12. An example of modifying one of the points 42 on the movement path 40 will be described below.

[0105] Let's refer to each other. Figure 6a and Figure 6b TCP 28 is now located in the third point selection area 46c. Manipulator 12 has generated vibration 52 to notify user 16 that TCP 28 has entered the third point selection area 46c. Additionally, the third point selection area 46c is highlighted on display 36 to indicate to user 16 that TCP 28 is approaching the third point 42c. The third point 42c is now triggered for user 16 to select.

[0106] When TCP 28 is within the third point selection area 46c, user 16 provides selection input 54a. In this example, selection input 54a is a "press and hold" operation of button 30 by user 16. The third point 42c is now selected for modification. Once selection input 54a is received while TCP 28 is within the third point selection area 46c, control system 14 selects the third point 42c for modification and enters point modification mode. The position of TCP 28 can therefore be used as a basis for selecting one of the points 42a-42e to be modified.

[0107] Figure 7a The diagram schematically illustrates the movement of manipulator 12 in point modification mode, and Figure 7b Schematic representation in Figure 7a The display 36 is used during the operation of the controller 12. (See also...) Figure 7a and Figure 7b TCP 28 has been moved by user 16 to path modification location 56a. Here, path modification location 56a is the location where TCP 28 will be moved to from point 42c. Path modification location 56a can be within or outside the move segment selection area 48. In this example, path modification location 56a is within the second move segment selection area 48b.

[0108] like Figure 7b As shown, the path modification position 56a is continuously displayed on the display 36 relative to the movement path 40. The user 16 can thus easily understand how the third point 42c will be moved relative to the movement path 40.

[0109] As TCP 28 moves away from movement path 40, the restoring force of force feedback 50 towards movement path 40 increases. User 16 thus knows that TCP 28 is outside of movement path 40. However, the maximum force of force feedback 50 can be limited so that it does not actually prevent user 16 from moving TCP 28 to the desired position.

[0110] When user 16 is satisfied with the movement of the third point 42c, user 16 provides modification input 58a. In this example, modification input 58a is obtained by user 16 releasing button 30. Thus, user 16 can press and hold button 30 to select the point 42 for modification, and release button 30 at the desired position where point 42 should be moved. This constitutes an example of modifying the movement path 40 from the first point 42a to the fifth point 42e based on the path modification position 56a upon receiving modification input 58a from user 16.

[0111] When using bootstrap programming, this method enables particularly user-friendly programming of the manipulator 12. Although this example demonstrates programming the manipulator 12 using bootstrap programming, the principles of this method also apply to moving the manipulator 12 using other methods, such as via the joystick 38.

[0112] Figure 8 An example of a modified movement path 40a is illustrated. When user 16 provides modification input 58a in point modification mode, movement path 40 is modified to provide movement path 40a. Instead of the third point 42c, movement path 40a includes a secondary third point 42c2. The secondary third point 42c2 corresponds to the position of TCP 28 when modification input 58a is provided by user 16. Therefore, instead of adding a sixth point at the end of the point sequence 42a-42e, the third point 42c is moved to the position of the secondary third point 42c2.

[0113] The third point 42c can be modified without providing any input to the TPU 18. User 16 can thus modify the movement path 40 without removing their hand from the manipulator 12. Although the TPU 18 is optional for modifying the movement path 40, user 16 can view the TPU 18's display 36 if a more comprehensive understanding of what programming events are occurring is needed.

[0114] After modifying the third point 42c, the control system 14 automatically generates a secondary second moving segment 44b2 that interconnects the second point 42b and the secondary third point 42c2, and a secondary third moving segment 44c2 that interconnects the secondary third point 42c2 and the fourth point 42d. The robot program can then be updated by replacing the moving path 40 with the modified moving path 40a. The modified moving path 40a can then be executed by the manipulator 12.

[0115] Figure 9a This schematically illustrates the movement of manipulator 12 along movement path 40, and Figure 9b Schematic representation in Figure 9a The display 36 is used during the operation of the controller 12. Figure 9a In the middle, TCP 28 is in the same position as... Figure 6a The same location. An example of deleting one of point 42 from movement path 40 will be described below.

[0116] Let's refer to each other. Figure 9a and Figure 9b TCP 28 is now located at path modification position 56b within the third point selection area 46c. The third point selection area 46c is highlighted on the display 36 to indicate that TCP 28 is near the third point 42c. The third point 42c is thus triggered for selection by the user 16.

[0117] When TCP 28 is within the third point selection area 46c, user 16 now provides selection input 54b and subsequent modification input 58b, while TCP 28 is positioned at path modification location 56b within the third point selection area 46c. In this example, selection input 54b is the first press of button 30, and modification input 58b is the second press of button 30 at the same location on TCP 28 as when selection input 54b was provided.

[0118] The position of TCP 28 can therefore also be used as a basis for selecting one of the points 42a-42e to be deleted. Once modification input 58b is received, the control system 14 deletes the third point 42c from the movement path 40. This constitutes another example of modifying the movement path 40 from the first point 42a to the fifth point 42e based on the path modification position 56b once modification input 58b is received from the user 16.

[0119] As one of many alternatives to the input from user 16 for deletion point 42, selection input 54b can be a pressed and held operation of button 30, and modification input 58b can be a release of button 30 at the same location on TCP 28 as when selection input 54b was provided. Therefore, in some variations, the only difference between the input from user 16 at modification point 42 and deletion point 42 is whether the manipulator 12 is moved between pressing and releasing button 30.

[0120] Figure 10 Another example of a modified movement path 40b is illustrated schematically. Movement path 40 is modified to provide movement path 40b when user 16 provides modification input 58b. Movement path 40b does not include the third point 42c in contrast to movement path 40. The third point 42c can be deleted without providing any input to TPU 18. In the same way, user 16 can modify movement path 40 without removing their hand from manipulator 12.

[0121] After deleting the third point 42c, the control system 14 automatically generates a secondary second moving segment 44b3 that interconnects the second point 42b and the fourth point 42d. The robot program can then be updated by replacing the moving path 40 with the modified moving path 40b. The modified moving path 40b can then be executed by the manipulator 12.

[0122] Figure 11a This schematically illustrates the movement of manipulator 12 along movement path 40, and Figure 11b Schematic representation in Figure 11a The display 36 is used during the operation of the manipulator 12. Below, an example of adding point 42 to the movement path 40 will be described.

[0123] Let's refer to each other. Figure 11a and Figure 11b TCP 28 is now located within the first mobile segment selection area 48a. The first mobile segment 44a is highlighted on the display 36 to indicate that TCP 28 is located within the first mobile segment selection area 48a. The first mobile segment 44a is thus triggered for selection by the user 16.

[0124] When TCP 28 is within the first moving segment selection area 48a, user 16 provides selection input 54c. Similar to the modification of point 42, in this specific example, the selection input 54c used to add point 42 is obtained by user 16 pressing and holding button 30. When TCP 28 is within the first moving segment selection area 48a, once selection input 54c is received, control system 14 selects the first moving segment 44a to be modified by adding another point 42 associated with the first moving segment 44a, and enters point addition mode. Therefore, the position of TCP 28 can also be used as a basis for selecting one of the moving segments 44 to be modified by adding another point 42 associated with the moving segment 44.

[0125] Since TCP 28 enters point modification mode when receiving selection input 54a while it is within point selection area 46, it enters point addition mode when receiving selection input 54c while it is within mover segment selection area 48. Furthermore, since selection inputs 54a and 54c can be the same, point selection area 46 and mover segment selection area 48 constitute an example of a modification type selection position according to this disclosure. Therefore, the path modification type between point modification and point addition can be selected purely based on the position of manipulator 12 when selection inputs 54a and 54c are received.

[0126] Figure 12a The diagram schematically illustrates the movement of manipulator 12 in point-adding mode, and Figure 12b Schematic representation in Figure 12a The display 36 is used during the operation of the controller 12. (See also...) Figure 12a and Figure 12b TCP 28 has been moved to path modification location 56c by user 16 via bootstrap. Here, path modification location 56c is the location where TCP 28 will add a new point 42.

[0127] like Figure 12b As shown, the path modification position 56c relative to the movement path 40 is continuously displayed on the display 36. The user 16 can thus easily understand where the new point 42 will be added relative to the movement path 40.

[0128] As TCP 28 moves away from movement path 40, the force from force feedback 50 toward movement path 40 increases. User 16 thus knows that TCP 28 is outside of movement path 40.

[0129] When user 16 is satisfied with the path modification position 56c where a new point 42 will be added, user 16 provides modification input 58c. In this example, modification input 58c is obtained by user 16 releasing button 30. Thus, user 16 can press and hold button 30 to select the movement segment 44 for modification by adding another point 42 and release button 30 at the desired position where the new point 42 should be added. This constitutes another example of modifying the movement path 40 from the first point 42a to the fifth point 42e based on the path modification position 56c once modification input 58c is received from user 16. Furthermore, this variant enables particularly user-friendly programming of manipulator 12 when using guided programming, and also enables highly user-friendly programming when manipulator 12 is moved in ways other than guided programming.

[0130] Figure 13 Another example of a modified movement path 40c is illustrated schematically. When user 16 provides modification input 58c in point addition mode, movement path 40 is modified to provide movement path 40c. Movement path 40c differs from movement path 40 in that it additionally includes a secondary first point 42a2 located between the first point 42a and the second point 42b. The secondary first point 42a2 can be added without providing any input to TPU 18. In the same way, user 16 can thereby modify movement path 40 without removing his hand from manipulator 12.

[0131] After adding the secondary first point 42a2, the control system 14 automatically generates a primary first moving segment 44a1 that interconnects the first point 42a and the secondary first point 42a2, and a secondary first moving segment 44a2 that interconnects the secondary first point 42a2 and the second point 42b. The primary first moving segment 44a1 and the secondary first moving segment 44a2 of moving path 40c replace the first moving segment 44a of moving path 40. The robot program can then be updated by replacing moving path 40 with the modified moving path 40c. The modified moving path 40c can then be executed by the manipulator 12.

[0132] While this disclosure has been described with reference to exemplary embodiments, it should be understood that the invention is not limited to what has been described above. For example, it should be understood that the dimensions of the components can be changed as needed. Therefore, the invention is intended to be limited only by the scope of the appended claims.

Claims

1. A method for programming a manipulator (12), the method comprising: - Provide a movement path (40) executed by the manipulator (12), the movement path (40) including a plurality of points (42a-42e), the plurality of points (42a-42e) including a start point (42a) and an end point (42e) and at least one movement segment (44a-44d) between the plurality of points (42a-42e). - Move the manipulator (12) to the modification type selection position; - Select a location based on the modification type, and select at least one path modification type from among multiple path modification types to modify the movement path (40). - Move the manipulator (12) to the path modification location (56a-56c); as well as - Upon receiving modification input (58a-58c) from user (16), modify the movement path (40) from the starting point (42a) to the ending point (42e) based on at least one selected path modification type and the path modification location (56a-56c).

2. The method according to claim 1, wherein, The modification of the movement path (40) includes modifying one of the points (42a-42e), deleting one of the points (42a-42e), or adding another point (42a2).

3. The method according to claim 2, wherein, The modification or deletion of points (42a-42e) includes: - Move the manipulator (12) to a point selection area (46a-46e) among a plurality of point selection areas (46a-46e), each point selection area (46a-46e) being associated with a unique point (42a-42e) among the plurality of points (42a-42e); - Select the point (42a-42e) associated with the point selection area (46a-46e) to which the manipulator (12) has been moved as the point (42a-42e) for modification or deletion; and - Modify or delete the selected point (42a-42e) based on the path modification location (56a-56c).

4. The method of claim 3, further comprising providing the user (16) with feedback (52) indicating that the manipulator (12) is located in one of the point selection areas (46a-46e).

5. The method according to any one of claims 2 to 4, wherein, The addition of the other point (42a2) includes: - Move the manipulator (12) to a movement segment selection area (48a-48d) among at least one movement segment selection area (48a-48d), each movement segment selection area (48a-48d) being associated with a unique movement segment (44a-44d) among the at least one movement segment (44a-44d). - Select the moving segment (44a-44d) associated with the moving segment selection area (48a-48d) to which the manipulator (12) has been moved as the moving segment (44a-44d) for modification; and - Based on the path modification location (56a-56c), add the additional point (42a2) associated with the selected moving segment (44a-44d).

6. The method according to claim 5 when it is subordinate to claim 3, wherein, The point selection area (46a-46e) and the at least one moving segment selection area (48a-48d) are mutually exclusive.

7. The method of claim 5, further comprising providing the user (16) with feedback (50, 52) indicating that the manipulator (12) is in one of the at least one movement segment selection areas (48a-48d).

8. The method according to claim 3, wherein, The selection of the point (42a-42e) associated with the point selection area (46a-46e) or the selection of the movement segment (44a-44d) associated with the movement segment selection area (48a-48d) is based on the selection input (54a-54c) from the user (16).

9. The method according to claim 4 or 7, wherein, The feedback (50, 52) includes force feedback in the manipulator (12).

10. The method according to any one of claims 1-4, wherein, The movement of the manipulator (12) includes moving the manipulator (12) by means of guidance.

11. The method of claim 10, further comprising providing force feedback (50) toward the movement path (40) during movement of the manipulator (12).

12. A control system (14) for programming a manipulator (12), the control system (14) comprising at least one data processing device (32) and at least one memory (34), the at least one memory (34) storing thereon at least one computer program, the at least one computer program comprising program code, the program code causing the at least one data processing device (32) to perform the following steps when executed by the at least one data processing device (32): - Provide a movement path (40) executed by the manipulator (12), the movement path (40) including a plurality of points (42a-42e), the plurality of points (42a-42e) including a start point (42a) and an end point (42e) and at least one movement segment (44a-44d) between the plurality of points (42a-42e). - Read the position of the manipulator continuously or repeatedly; - Based on the modification type selection position of the manipulator, select at least one path modification type from multiple path modification types to modify the movement path; - Based on the current position of the manipulator (12), the path modification position is determined continuously or repeatedly (56a-56c). as well as - Upon receiving modification input (58a-58c) from user (16), modify the movement path (40) from the starting point (42a) to the ending point (42e) based on at least one selected path modification type and the path modification location (56a-56c).

13. An industrial robot (10) comprising a manipulator (12) and a control system (14) according to claim 12.

14. The industrial robot (10) according to claim 13 further includes an input element (30) on the manipulator (12) for providing the modification inputs (58a-58c).

Citation Information

Patent Citations

  • Method For Controlling An Industrial Robot During Lead-Through Programming Of The Robot And An Industrial Robot

    US20200009730A1

  • Robot movement control device and movement control method

    US5980082A