Robot, control method of robot and program for controlling robot
The robot system addresses the imbalance in conventional methods by using adjustable filters to prioritize either motion speed or vibration suppression, ensuring accurate and timely robot operations.
Patent Information
- Application Number
- JP2024039791
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-14
- Publication Date
- 2025-09-29
AI Technical Summary
Conventional robot control methods do not effectively balance positional accuracy and processing time according to user preferences, failing to reflect the user's intention in determining which to prioritize.
A robot system with a filter processing unit that includes a band-elimination filter and a low-pass filter with adjustable cutoff frequencies, allowing users to prioritize either motion speed or vibration suppression, thereby generating drive signals that align with user intentions.
Enables the robot to perform operations that achieve appropriate positional accuracy and processing time based on the work requirements by adjusting filter settings to match user preferences.
Smart Images

Figure 2025140407000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a robot, a method for controlling a robot, and a program for controlling a robot. [Background technology]
[0002] Conventional technologies exist for reducing residual vibration in robots. The technology described in Patent Document 1 performs the following process: A first low-pass filter with a low cutoff frequency is applied to a velocity command profile generated according to the constant acceleration method, with the operating velocity set to the maximum velocity, to calculate the acceleration / deceleration time. The acceleration / deceleration time is the acceleration time and the deceleration time. In the constant acceleration method, the acceleration time and the deceleration time are the same value. A second low-pass filter with a high cutoff frequency is applied to the velocity command profile generated according to the constant acceleration method, to calculate the acceleration / deceleration time. The respective acceleration / deceleration times are compared, and the acceleration / deceleration times are adjusted until they become equal. The process of generating a velocity command profile according to the constant acceleration method, calculating the acceleration / deceleration time when the first low-pass filter is applied, and calculating the acceleration / deceleration time when the second low-pass filter is applied is repeated. As a result, a velocity command profile that is less likely to generate stopping vibration and has a deceleration time equivalent to that when a low-pass filter with a low cutoff frequency is applied can be generated. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2011-224694 Summary of the Invention [Problem to be solved by the invention]
[0004] However, the technology of Patent Document 1 does not reflect the user's intention as to which of positional accuracy and processing time should be prioritized, which are difficult to achieve at the same time in the operation of a robot. For this reason, the technology of Patent Document 1 does not reflect the user's intention in determining an operation that achieves appropriate positional accuracy and processing time according to the work to be performed by the robot. [Means for solving the problem]
[0005] The present disclosure has been made to solve at least part of the above-mentioned problems, and can be realized in the following aspects.
[0006] According to one embodiment of the present disclosure, there is provided a robot system. The robot system includes an arm, one or more motors that move the arm in response to drive signals, a control unit that controls the one or more motors, and an input unit that receives instructions from an external device. The control unit includes one or more sets including a filter processing unit that filters a position command to generate a filtered command, and a drive signal generation unit that generates the drive signal using the filtered command. The filter processing unit includes a band-elimination filter used in the filtering process and a low-pass filter that is used in the filtering process and has a changeable cutoff frequency. When an instruction is received indicating that priority should be given to the motion speed of the arm versus vibration suppression of the arm, the cutoff frequency is set to a first frequency. When an instruction is received indicating that priority should be given to vibration suppression of the arm versus the motion speed of the arm, the cutoff frequency is set to a second frequency lower than the first frequency. [Brief explanation of the drawings]
[0007] [Figure 1] FIG. 1 is an explanatory diagram illustrating a robot system 10 according to an embodiment. [Figure 2] 1 is a block diagram showing the configurations of a robot 100, a robot control device 300, and a robot teaching device 600. FIG. [Figure 3] 2 is a block diagram showing the relationship between each functional unit of the robot control device 300 and the components of the robot 100. FIG. [Figure 4] FIG. 9 is a block diagram showing the configuration of a VRT filter processing unit 900. [Figure 5] 10 is a flowchart illustrating processing executed in the robot control device 300. [Figure 6] 6 is a flowchart showing the processing executed in the robot teaching device 600 and the robot control device 300. [Figure 7] This is an image displayed on the display unit 602 of the robot teaching device 600 in step S120. [Figure 8] 10 is a graph showing the operation of driving the servo motors 410 of the joints X11, X12, and X13 in synchronization to place the robot at a destination point. [Figure 9] This is a graph showing the case where a low-pass filter 914 having a cutoff frequency smaller than fc1 is applied only to the position command of the joint X13. [Figure 10] This is a graph showing the case where a low-pass filter 914 having a cutoff frequency smaller than fc1 is applied only to the position command of the joint X11. [Figure 11] FIG. 7 is a diagram showing a modified example of the user interface displayed on the display unit 602 of the robot teaching device 600 in step S120 of FIG. [Figure 12] 6 is a flowchart showing the processing executed in the robot teaching device 600 and the robot control device 300. [Figure 13] FIG. 10 is a diagram showing a user interface UI20 displayed on the display unit 602 of the robot teaching device 600 in step S120B. [Figure 14] 10 is a table showing the process of changing the cutoff frequency executed in step S136 and the results thereof. [Figure 15]FIG. 13 is a diagram showing a user interface UI32 displayed on the display unit 602 of the robot teaching device 600 in step S120B of FIG. [Figure 16] FIG. 13 is a diagram showing a user interface UI34 displayed on the display unit 602 of the robot teaching device 600 in step S120B of FIG. DETAILED DESCRIPTION OF THE INVENTION
[0008] A. First embodiment: A1. Configuration and operation of the first embodiment: 1 is an explanatory diagram showing a robot system 10 according to one embodiment. The robot system 10 of this embodiment includes a robot 100, an end effector 200, a robot control device 300, and a robot teaching device 600.
[0009] The robot 100 is a six-axis robot having an arm 110 with six rotational joints X11 to X16 (see the upper part of Figure 1). The joints X11, X14, and X16 are torsion joints. The joints X12, X13, and X15 are bending joints. The arm 110 of the robot 100 is driven by rotating each of the six joints X11 to X16 with a servo motor 410. That is, the six servo motors 410 move the arm 110 in response to a drive signal xd. As a result, the end effector 200 attached to the tip of the arm 110 can be positioned at a specified position in three-dimensional space in a specified orientation.
[0010] The workpiece W01 is an object on which the robot 100 performs work (see the center of the middle section of FIG. 1). The workpiece W01 is placed on a support table 500.
[0011] The robot control device 300 is connected to the robot 100 via an interface (see the lower right part of FIG. 1). The robot control device 300 controls the operation of the robot 100. More specifically, the robot control device 300 controls and drives servo motors 410, which serve as actuators that move the joints X11 to X16 of the robot 100.
[0012] FIG. 2 is a block diagram showing the configuration of the robot 100, robot control device 300, and robot teaching device 600. The robot control device 300 is a computer equipped with a CPU 306, which is a processor, a RAM 307, and a ROM 308 (see the middle part of FIG. 2). The RAM 307 includes a main memory, which is a semiconductor memory, and a hard disk, which is an auxiliary storage device. The CPU 306 loads computer programs stored on the hard disk into the main memory and executes them to realize various functions for controlling the robot. The robot control device 300 is connected to the robot teaching device 600 via an interface.
[0013] The robot control device 300 is taught by the robot teaching device 600 the motion to be specified for the robot 100. Prior to actually operating the robot 100, the robot teaching device 600 first teaches the robot the motion. The robot control device 300 stores the teaching results as data in the RAM 307. When the robot 100 is to be operated, the robot control device 300 controls the robot 100 based on the data representing the teaching results stored in the RAM 307.
[0014] The robot teaching device 600 receives external instructions related to the robot's operation (see the lower right part of Figure 1). The robot teaching device 600 is a computer equipped with a display unit 602 and an operation unit 604. The display unit 602 can display information. Specifically, the display unit 602 is a liquid crystal display that can display characters and images. The operation unit 604 receives instructions from a user. Specifically, the operation unit 604 includes a numeric keypad for inputting numbers, cursor keys for specifying positions, and an enter key for confirming input.
[0015] The robot teaching device 600 includes a CPU 606, which is a processor, a RAM 607, and a ROM 608 (see the lower part of Figure 2). The RAM 607 includes a main memory, which is a semiconductor memory, and a hard disk, which is an auxiliary storage device. The CPU 606 loads computer programs stored on the hard disk into the main memory and executes them, thereby realizing various functions for specifying the movements of the robot 100. The robot teaching device 600 is connected to the robot control device 300 via an interface.
[0016] The robot teaching device 600 can receive, for example, an instruction to prioritize the motion speed of the arm 110 over vibration suppression of the arm 110. The robot teaching device 600 can receive an instruction to prioritize the vibration suppression of the arm 110 over the motion speed of the arm 110. Display and input in the robot teaching device 600 will be described later.
[0017] The end effector 200 is attached to the tip of the arm 110 (see the middle center of FIG. 1). The end effector 200 is controlled by the robot control device 300 to grasp a workpiece W01 on the support table 500 and to release the grasped workpiece W01. As a result, for example, the robot 100 and the end effector 200 are controlled by the robot control device 300 to grasp and move the workpiece W01 on the support table 500.
[0018] 3 is a block diagram showing the relationship between each functional unit of the robot control device 300 and the components of the robot 100. The robot control device 300 includes a command generation unit 310, a filter setting unit 345, a VRT filter processing unit 900, a position control unit 320, a speed control unit 330, a torque control unit 350, and a servo amplifier 360. The components of the robot control device 300 shown in FIG. 3 and the servo motor 410 and position sensor 420 of the robot 100 are collectively referred to as the "motor unit 120."
[0019] A position sensor 420 is attached to each servo motor 410 that drives each joint of the robot 100 (see the middle right part of FIG. 3 and the top part of FIG. 2). The position sensor 420 detects the rotational position and rotational speed of the servo motor 410 and transmits them to the robot control device 300. The robot control device 300 performs feedback control using the output of the position sensor 420 (see the bottom center part of FIG. 3).
[0020] The command generation unit 310 generates a position command x0 that indicates a target position where the end effector 200 should be located, and outputs it to the VRT filter processing unit 900 (see the upper left part of FIG. 3). The command generation unit 310 also outputs a command that indicates the operation currently being executed by the robot 100 to the filter setting unit 345.
[0021] Prior to the robot 100 performing an operation, the filter setting unit 345 receives an instruction Ins from the robot teaching device 600 indicating which of the two should be prioritized: vibration suppression of the arm 110 or the operating speed of the arm 110 (see the upper left part of Figure 3 and the lower right part of Figure 1).
[0022] When an action is performed by the robot 100, the filter setting unit 345 receives a command representing the action being performed from the command generating unit 310 (see the upper left part of FIG. 3). The filter setting unit 345 generates and outputs a command instructing one or more frequencies to be removed from the position command x0 in accordance with the command received from the command generating unit 310 and the instruction Ins received from the robot teaching device 600.
[0023] The VRT filter processing unit 900 receives a position command x0 from the command generation unit 310 (see the middle left part of FIG. 3). The VRT filter processing unit 900 receives a command for a frequency to be removed from the filter setting unit 345. While the robot 100 is performing an operation, the VRT filter processing unit 900 performs filtering on the position command x0 output by the command generation unit 310 to remove the frequency component specified by the filter setting unit 345, and generates and outputs a new position command. The new position command generated by the VRT filter processing unit 900 is called a filtered command xfo.
[0024] Some of the frequency components removed by the VRT filter processing unit 900 are frequency components that are predetermined in accordance with the command representing the operation being executed. These frequencies are the resonant frequencies of the operation being executed by the robot 100. The resonant frequencies of the operation of the robot 100 are, for example, (i) the resonant frequency of the robot 100 in the posture at the end of the operation, and (ii) if the robot 100 is holding a workpiece W01 at the end of the operation, the resonant frequency of the robot 100 holding the workpiece W01 at the end of the operation. By performing such processing, it is possible to prevent the robot 100 from resonating at the resonant frequency at the end of the operation.
[0025] Furthermore, in the VRT filter processing unit 900, components having frequencies equal to or higher than a specified frequency are also reduced in accordance with the instruction Ins, making it even more difficult for the robot 100 to vibrate.
[0026] Hereinafter, in this specification, a technology for reducing resonance of a controlled object due to a frequency by reducing a predetermined frequency component in a command such as a position command, a torque command, or a speed command is referred to as VRT (Vibration Reduction Technology). A specific configuration example of the VRT filter processing unit 900 will be described later.
[0027] The position control unit 320 receives the position command x0 processed by the VRT filter processing unit 900 (see the middle left part of FIG. 3). The position control unit 320 also receives the rotational position of each servo motor 410 from the position sensor 420 of the robot 100 as position feedback. Based on this information, the position control unit 320 generates and outputs a speed command for each servo motor 410 of the robot 100.
[0028] The speed control unit 330 receives a speed command from the position control unit 320 (see the center of the middle row in FIG. 3). The speed control unit 330 also receives the rotational speed of each servo motor 410 from the position sensor 420 of the robot 100 as speed feedback. The speed control unit 330 generates and outputs a torque command based on the speed command and the rotational speed of each servo motor 410.
[0029] The torque control unit 350 receives a torque command from the speed control unit 330 (see the middle right part of FIG. 3). It also receives a feedback signal indicating the amount of current to be supplied to each servo motor 410 from the servo amplifier 360. The torque control unit 350 determines the amount of current to be supplied to each servo motor 410 based on the torque command and the current feedback signal of each servo motor 410, and drives each servo motor 410 via the servo amplifier 360.
[0030] The position control unit 320, the speed control unit 330, the torque control unit 350, and the servo amplifier 360 function as a drive signal generation unit that generates a drive signal for the servo motor as an actuator using the filtered command xfo generated by the VRT filter processing unit 900 (see the middle part of Figure 3).
[0031] In FIG. 3, in order to facilitate the understanding of the technology, one motor unit 120 is shown. However, in the robot 100 of the present embodiment, six sets of motor units 120 are provided for the six servo motors 410 that rotate the joints X11 to X16 respectively.
[0032] FIG. 4 is a block diagram showing the configuration of the VRT filter processing unit 900 (see the left part in the middle of FIG. 3). The VRT filter processing unit 900 includes a band-stop filter 912 and a low-pass filter 914. Both the band-stop filter 912 and the low-pass filter 914 are used for filter processing in the VRT filter processing unit 900.
[0033] With such a configuration, compared with a mode in which the VRT filter processing unit 900 does not include a low-pass filter, resonance can be further reduced in the operation of the servo motor 410 by the filtered command xfo with the component of the target frequency fe reduced. However, the low-pass filter greatly delays the position command compared to the band-stop filter. Therefore, the adjustment of the characteristics of the low-pass filter applied to the position command greatly affects the cycle time and vibration amount of the operation of the robot.
[0034] The band-stop filter 912 reduces the component of the target frequency fe (see the left part of FIG. 4). More specifically, the band-stop filter 912 reduces the frequency components in the band from the cut-off frequency fL to fH including the target frequency fe from the input signal (fL < fe < fH). The cut-off frequencies fL and fH of the band-stop filter 912 are set according to the target frequency fe included in the command output from the filter setting unit 345.
[0035] The low-pass filter 914 reduces frequency components higher than a cutoff frequency fc from the input signal (see the right part of FIG. 4). The cutoff frequency fc of the low-pass filter 914 can be changed. More specifically, the cutoff frequency fc of the low-pass filter 914 can be changed in response to an instruction Ins input via the robot teaching device 600 and the filter setting unit 345.
[0036] With this configuration, the cutoff frequency fc of the low-pass filter 914 can be set to reflect the user's intentions, and the drive signal xd for the robot can be generated.
[0037] On the other hand, the cutoff frequencies fL, fH of the band-elimination filter 912 are not changed according to the instruction Ins input to the robot teaching device 600 (see the left part of FIG. 4). In this embodiment, by setting the target frequency fe to be reduced by the band-elimination filter 912 to the resonant frequency of the robot, it is possible to generate a drive signal xd that does not cause the robot to resonate significantly, regardless of the user's instruction Ins.
[0038] Fig. 5 is a flowchart for explaining the processing executed in the robot control device 300. The control method for the robot 100 is executed by the processing in Fig. 5. The frequencies to be reduced in each movement included in the work to be performed by the robot 100 are stored in the VRT filter processing unit 900 via the filter setting unit 345 prior to the processing in Fig. 5 (see the upper left part of Fig. 3).
[0039] To facilitate understanding of the technology, the following description focuses on only one of the servo motors 410 arranged at the six joints X11 to X16 and explains the generation of its drive signal. However, the processing in Fig. 5 is executed in parallel for the six servo motors 410 arranged at the six joints X11 to X16.
[0040] In step S220, the command generator 310 generates a position command x0 (see the upper left part of FIG. 3).
[0041] In step S240, the VRT filter processing unit 900 filters the position command x0 to generate a filtered command xfo (see the middle left part of FIG. 3). In this embodiment, in step S242, a band-elimination filter 912 is first applied to the position command x0. Then, in step S244, a low-pass filter 914 is applied to the position command that has been filtered by the band-elimination filter 912.
[0042] In step S260, the position control unit 320, the speed control unit 330, the torque control unit 350, and the servo amplifier 360, which serve as drive signal generation units, use the filtered command xfo generated by the VRT filter processing unit 900 to generate a drive signal xd for the servo motor, which serves as an actuator (see the middle part of Figure 3).
[0043] FIG. 6 is a flowchart showing the processing executed in the robot teaching device 600 and the robot control device 300 prior to the processing of FIG. 5 in the robot 100 and the robot control device 300 (see the lower right part of FIG. 1).
[0044] In step S120, the robot teaching device 600 receives an instruction from the user (see the lower right part of FIG. 1). The VRT filter processing unit 900 of the robot control device 300 receives an instruction Ins from the user via the robot teaching device 600 (see the lower right part of FIG. 1).
[0045] 7 shows an image displayed on the display unit 602 of the robot teaching device 600 in step S120 (see the lower right part of FIG. 1). The robot teaching device 600 displays a user interface UI12 on the display unit 602.
[0046] The user interface UI12 is a user interface for specifying whether or not to prioritize vibration suppression in the filter processing. Specifically, the user interface UI12 is a checkbox displaying "Priority on vibration suppression." The robot teaching device 600 receives, as an instruction Ins, a specification of whether or not to prioritize vibration suppression from the user via the user interface UI12.
[0047] Checking the user interface UI12, which is a checkbox, means that an instruction to prioritize vibration suppression in the filter processing is input to the robot teaching device 600. Not checking the user interface UI12 means that an instruction to prioritize operation speed in the filter processing is input to the robot teaching device 600.
[0048] That is, the user can input an instruction Ins that prioritizes vibration suppression by operating the robot teaching device 600 and specifying on the user interface UI12 that vibration suppression should be prioritized. On the other hand, the user can input an instruction Ins that prioritizes operation speed by operating the robot teaching device 600 and specifying on the user interface UI12 that vibration suppression should not be prioritized.
[0049] 6, the cutoff frequency of the low-pass filter 914 is set in accordance with the instruction Ins. Specifically, the VRT filter processing unit 900 of the robot control device 300 performs the following processing.
[0050] In step S120, if an instruction Ins is received indicating that priority should be given to the operation speed of the arm 110 over the vibration suppression of the arm 110, the cutoff frequency of the low-pass filter 914 is set to the first frequency fc1.
[0051] In step S120, if an instruction Ins is received indicating that priority should be given to vibration suppression of the arm 110 or the operating speed of the arm 110, the cutoff frequency of the low-pass filter 914 is set to a second frequency fc2 lower than the first frequency fc1.
[0052] The processing of step S140 is executed in parallel for the six servo motors 410 arranged in the six joints X11 to X16. In Fig. 6, a plurality of step S140 are shown overlapping each other to indicate that the processing of step S140 is executed in parallel for the six servo motors 410.
[0053] When suppressing vibration is prioritized in robot operation, the robot's operating speed decreases. As a result, the cycle time of the robot's work also increases. On the other hand, when the robot's operating speed or the cycle time of the work is prioritized, the motor acceleration and peak torque increase during operation, making vibration more likely to occur. Furthermore, the amplitude of the generated vibration also increases.
[0054] In this embodiment, the user selects fc1 or fc2 as the cutoff frequency of the low-pass filter 914 by checking or unchecking a checkbox in the user interface UI12. As a result, the robot can be made to perform operations that achieve appropriate positional accuracy and processing time according to the work that the robot is to perform.
[0055] In step S140 of FIG. 6, the six sets of VRT filter processing units 900 corresponding to the six servo motors 410 set the cutoff frequencies of the six sets of low-pass filters 914 to equal values in accordance with the instructions Ins input to the robot teaching device 600.
[0056] Fig. 8 is a graph showing the operation of synchronously driving the servo motors 410 of the joints X11, X12, and X13 to move the end effector 200 in a diagonal direction and place it at a destination point. The operation shown in Fig. 8 is used, for example, when avoiding an obstacle. The horizontal axis of Fig. 8 shows the angular positions of the joints X11 and X12. The vertical axis of Fig. 8 shows the angular position of the joint X13. The angular position (0,0,0) of the servo motors 410 of the joints X11, X12, and X13 is the destination point.
[0057] In the example of Figure 8, a band-elimination filter 912 that reduces the frequency component of the target frequency fe, which is the resonant frequency of the robot 100 during this movement, is applied to the position command of each servo motor 410 that drives the joints X11, X12, and X13 (see the left part of Figure 4). Furthermore, a low-pass filter 914 having the same cutoff frequency fc2 is applied to the position command of each servo motor 410 that drives the joints X11, X12, and X13 (see the right part of Figure 4). As shown in the lower left part of Figure 8, the servo motors 410 of the joints X11, X12, and X13 are driven and finish their movements at the same timing, so that each joint X11, X12, and X13 is driven to the end and their movements finish at the destination point.
[0058] FIG. 9 is a graph showing the same operation as in FIG. 8, but with a low-pass filter 914 having a cutoff frequency greater than fc2 applied only to the position commands of the servo motors 410 that drive joint X13. Other points of the example shown in FIG. 9 are the same as those of the example shown in FIG. 8. The horizontal axis of FIG. 9 shows the angular positions of joints X11 and X12. The vertical axis of FIG. 9 shows the angular position of joint X13. The angular position (0,0,0) of each servo motor 410 of joints X11, X12, and X13 is the destination point.
[0059] As shown in the lower left part of FIG. 9 , joint X13 reaches the target angular position earlier than joints X11 and X12. Therefore, the end effector 200 does not perform a diagonal movement that displaces the angular positions of all of the joints, but performs a movement that displaces only joints X11 and X12 shown on the horizontal axis, and then terminates the movement. In such a case, for example, if the end effector 200 starts to descend too early, the end effector 200 may not be able to sufficiently avoid an obstacle and may come into contact with the obstacle. Also, if the end effector 200 completes its descent too early, the end effector 200 may rub against the surface of the object to be grasped or the support base 500.
[0060] FIG. 10 is a graph showing the same operation as FIG. 8 , but with a low-pass filter 914 having a cutoff frequency greater than fc2 applied only to the position command of each servo motor 410 that drives joint X11. A low-pass filter 914 having a cutoff frequency fc2 is applied to the position command of each servo motor 410 that drives joints X12 and X13. The horizontal axis of FIG. 10 represents the difference Δfc between the cutoff frequency of joints X12 and X13 and the cutoff frequency of joint X11. At the right end of FIG. 10 , the difference between the cutoff frequency of joints X12 and X13 and the cutoff frequency of joint X11 is zero. Moving leftward, the cutoff frequency of joint X11 increases relative to the cutoff frequencies of joints X12 and X13. The vertical axis of FIG. 10 represents the magnitude of the positional deviation Δp at the target point. The positional deviation Δp at the target point is the positional deviation from the target point represented by the position command x0 when no filtering is performed by the VRT filter processing unit 900.
[0061] As shown in FIG. 10, the greater the difference Δfc between the cutoff frequency of the joints X12 and X13 and the cutoff frequency of the joint X11, the greater the positional deviation Δp at the target point (see the upper left part of FIG. 10).
[0062] In step S140 of this embodiment, the six sets of VRT filter processing units 900 corresponding to the six servo motors 410 set the cutoff frequencies of the six sets of low-pass filters 914 to equal values in accordance with instructions input to the robot teaching device 600.
[0063] By performing such settings, the position commands x0 of the multiple servo motors 410 that move the arm 110 are processed in the same manner by the filter processing of each VRT filter processing unit 900. As a result, it is possible to reduce the possibility that some of the multiple servo motors 410 will finish operating earlier, causing the arm 110 to move along a trajectory different from the trajectory specified in the position command x0 (see FIGS. 8 to 10).
[0064] More specifically, in step S140 of FIG. 6, the cutoff frequencies applied to the filtering process of the position commands x0 of the six servo motors 410 are set as follows:
[0065] The VRT filter processing unit 900 processes the position command x0 of the main servo motor 410, which moves the most among the six servo motors 410 in the operation to be performed by the arm 110, and sets the cutoff frequency of the low-pass filter 914 in accordance with the command Ins input to the robot teaching device 600. The main servo motor 410 which moves the most in the operation to be performed by the arm 110 can be determined based on the position command x0 of each servo motor 410. The amount of operation of each servo motor 410 in a certain operation is the integrated value of the operation pulses given to each motor in that operation.
[0066] The VRT filter processing units 900 of the six servo motors 410 other than the main servo motor 410 set the cutoff frequency of the low pass filter 914 to a value equal to the cutoff frequency of the low pass filter 914 of the main servo motor 410 .
[0067] By performing this processing, the user can determine the operation of the entire arm 110 that effectively reduces the vibration of the main servo motor 410, which moves the most during operation, while achieving appropriate positioning accuracy and processing time for the task to be performed by the robot, with a reasonable processing load.
[0068] The robot teaching device 600 of this embodiment is also referred to as the "input unit." The VRT filter processing unit 900 is also referred to as the "filter processing unit." The servo motor 410 is also referred to as the "motor." The main servo motor 410 is also referred to as the "main motor." The position control unit 320, the speed control unit 330, the torque control unit 350, and the servo amplifier 360 are also referred to as the "drive signal generation unit." The robot control device 300 and the robot teaching device 600 are also referred to as the "computer."
[0069] Any servo motor 410 other than the main servo motor 410 is also referred to as a "second motor." A drive signal for any servo motor 410 other than the main servo motor 410 is also referred to as a "second drive signal." A position command for any servo motor 410 other than the main servo motor 410 is also referred to as a "second position command." The VRT filter processing unit 900, which filters the position command for any servo motor 410 other than the main servo motor 410 to generate a filtered command, is also referred to as a "second filter processing unit." The filtered command xfo, which is generated by filtering the position command for any servo motor 410 other than the main servo motor 410, is also referred to as a "second filtered command." The band rejection filter 912 of the VRT filter processing unit 900, which generates a filtered command for any servo motor 410 other than the main servo motor 410, is also referred to as a "second band rejection filter." The low-pass filter 914 of the VRT filter processing unit 900, which generates a filtered command for any servo motor 410 other than the main servo motor 410, is also referred to as a "second low-pass filter." The position control unit 320, the speed control unit 330, the torque control unit 350, and the servo amplifier 360, which generate drive signals using the filtered command for any servo motor 410 other than the main servo motor 410, are also referred to as a "second drive signal generation unit."
[0070] A2. Modification of the first embodiment: Fig. 11 is a diagram showing a modified example of the user interface displayed on the display unit 602 of the robot teaching device 600 in step S120 of Fig. 6. In this modified example of the first embodiment, the robot teaching device 600 displays a user interface UI14 on the display unit 602 in place of the user interface UI12 in step S120. Other points in this modified example of the first embodiment are the same as those in the first embodiment.
[0071] The user interface UI14 is a user interface for specifying the degree to which vibration suppression should be prioritized in the filtering process. Specifically, the user interface UI14 is a slider with the display "Vibration Suppression" at the upper part and the displays "Low" and "High" at both the left and right ends.
[0072] The fact that the user interface UI14, which is a slider, is arranged to the right of the center means that an instruction to prioritize vibration suppression in the filtering process is input to the robot teaching device 600. The more the slider is set to the right in the user interface UI14, the more it means that an instruction to suppress vibration more strongly is input to the robot teaching device 600. As a result, the cut-off frequency fc of the low-pass filter 914 is set lower as the slider is set to the right in the user interface UI14.
[0073] The fact that the user interface UI14, which is a slider, is arranged to the left of the center means that an instruction to prioritize the operating speed in the filtering process is input to the robot teaching device 600. The more the slider is set to the left in the user interface UI14, the more it means that an instruction to prioritize the operating speed more is input to the robot teaching device 600. As a result, the cut-off frequency fc of the low-pass filter 914 is set higher as the slider is set to the left in the user interface UI14.
[0074] In a modification of the first embodiment, the cut-off frequency fcr set when the user interface UI14, which is a slider, is arranged to the right of the center and an instruction to prioritize vibration suppression is given is lower (fcr < fcl) than the cut-off frequency fcl set when the slider is arranged to the left of the center and an instruction to prioritize the operating speed is given. That is, the user interface UI14 functions as a user interface for specifying whether vibration suppression should be prioritized in the filtering process.
[0075] Even in this embodiment, the user can input an instruction to prioritize vibration suppression by operating the robot teaching device 600 and specifying that vibration suppression should be prioritized. The user can also input an instruction to prioritize motion speed by operating the robot teaching device 600 and specifying that vibration suppression should not be prioritized.
[0076] In the modified example of the first embodiment, the cutoff frequency fcr that is set when the user interface UI14, which is a slider, is located to the left of the center and an instruction to prioritize operation speed is given is also referred to as the “first frequency.” The cutoff frequency fcr that is set when the user interface UI14, which is a slider, is located to the right of the center and an instruction to prioritize vibration suppression is also referred to as the “second frequency.”
[0077] B. Second embodiment: B1. Operation of the second embodiment: 12 is a flowchart showing the processing executed in the robot teaching device 600 and the robot control device 300 prior to the processing of FIG. 5 in the robot 100 and the robot control device 300 (see the lower right part of FIG. 1). In the second embodiment, steps S120B and S140B are executed instead of steps S120 and S140. Furthermore, the processing of step S130 is executed between step S120B and step S140B. In other respects, the robot system 10 of the second embodiment is the same as the robot system 10 of the first embodiment.
[0078] In step S120B, the robot teaching device 600 first performs the same process as step S120 in Fig. 7. The robot teaching device 600 receives, as an instruction, a designation from the user as to whether vibration suppression should be prioritized or not via the user interface UI12 (see Fig. 7).
[0079] When the user interface UI12, which is the “vibration suppression priority” checkbox, is checked and the input of an instruction to prioritize vibration suppression is confirmed, the robot teaching device 600 further displays the user interface UI20 on the display unit 602.
[0080] FIG. 13 is a diagram showing the user interface UI20 displayed on the display unit 602 of the robot teaching device 600 in step S120B (see the lower right part of FIG. 1). The user interface UI20 is a user interface for specifying the tolerable vibration amount. Specifically, the user interface UI20 is an input window displaying "Tolerable Vibration Amount." The robot teaching device 600 accepts the specification of the tolerable vibration amount via the user interface UI20 as part of an instruction Ins that prioritizes vibration suppression. In the example of FIG. 13, 150 μm is specified as the tolerable vibration amount.
[0081] In this embodiment, the user can operate the robot teaching device 600 to specify that vibration suppression should be prioritized, and further specify the amount of vibration that is tolerable, thereby determining the behavior of the robot 100.
[0082] 12, the robot teaching device 600 determines the cutoff frequency fc to be set in the low-pass filter 914. Specifically, the robot teaching device 600 performs the processes of steps S132 to S136.
[0083] In step S132, the robot teaching device 600 causes the robot control device 300 to perform the process of Fig. 5 on a trial basis, thereby operating the robot 100. When executing step S132 for the first time in the process of Fig. 12, the robot teaching device 600 sets the cutoff frequency fc of the low-pass filter 914 to the cutoff frequency fc0, which is set by default. The robot teaching device 600 measures the amount of vibration at the end of the operation.
[0084] In step S134, the robot teaching device 600 determines whether or not a termination condition is satisfied. The termination condition will be described later. If the termination condition is satisfied, the process proceeds to step S140B. If the termination condition is not satisfied, the process proceeds to step S136.
[0085] In step S136, the robot teaching device 600 changes the cutoff frequency fc of the low-pass filter 914. If the vibration amount of the first test operation using the default cutoff frequency fc0 is smaller than the allowable vibration amount input in step S120B, the robot teaching device 600 increases the cutoff frequency fc of the low-pass filter 914 in step S136. If the vibration amount of the first test operation using the default cutoff frequency fc0 is larger than the allowable vibration amount input in step S120B, the robot teaching device 600 decreases the cutoff frequency fc of the low-pass filter 914 in step S136. The same applies to the second and subsequent executions of step S136. The process then returns to step S132.
[0086] FIG. 14 is a table showing the process of changing the cutoff frequency executed in step S136 and the results thereof. The first row shows the coefficient by which the default cutoff frequency fc0 is multiplied in the temporary setting of the cutoff frequency in step S136. The second row shows the cycle time of the operation executed as a result. The cycle time is the time from the start time of the operation at the position command x0 to the end time of the operation. The third row shows the overshoot of the operation executed. The overshoot is the distance by which the control point exceeds the destination point due to vibration during the operation. The overshoot is usually the maximum value of the vibration amount. The fourth row shows the peak torque of the operation executed.
[0087] As can be seen from Figure 14, the larger the coefficient by which the default cutoff frequency fc0 is multiplied, i.e., the higher the provisionally set cutoff frequency, the shorter the cycle time. The larger the coefficient by which the cutoff frequency fc0 is multiplied, the larger the overshoot. The larger the coefficient by which the cutoff frequency fc0 is multiplied, the larger the peak torque.
[0088] If the vibration amount of the first test operation at the default cutoff frequency fc0 is smaller than the allowable vibration amount, the robot teaching device 600 increases the cutoff frequency fc of the low-pass filter 914 in step S136 as follows: In the first step S136, the robot teaching device 600 sets the cutoff frequency fc to 1.1 times the default cutoff frequency fc0 (see the upper center part of FIG. 14). In the second step S136, the robot teaching device 600 sets the cutoff frequency fc to 1.2 times the default cutoff frequency fc0. Similarly, in subsequent steps S136, the coefficient by which the cutoff frequency fc0 is multiplied is increased by 0.1.
[0089] In the example of Fig. 14, the vibration amount of the first trial operation with the default cutoff frequency fc0 is 60 µm, which corresponds to a coefficient of 1.0. That is, this is smaller than the allowable vibration amount of 150 µm input in step S120B (see Fig. 13). Therefore, in step S136, the robot teaching device 600 increases the cutoff frequency fc of the low-pass filter 914 by 0.1.
[0090] If the vibration amount of the first trial operation at the default cutoff frequency fc0 is greater than the allowable vibration amount, the robot teaching device 600 reduces the cutoff frequency fc of the low-pass filter 914 in step S136 as follows: In the first iteration of step S136, the robot teaching device 600 sets the cutoff frequency fc to 0.95 times the default cutoff frequency fc0 (see the upper center part of FIG. 14 ). In the second iteration of step S136, the robot teaching device 600 sets the cutoff frequency fc to 0.9 times the default cutoff frequency fc0. Similarly, in subsequent steps S136, the coefficient by which the cutoff frequency fc0 is multiplied is reduced by 0.05. The amount by which the cutoff frequency is reduced is smaller than the amount by which the cutoff frequency is increased.
[0091] In step S134, which is executed after the processes of steps S136 and S132, the robot teaching device 600 determines whether or not the termination condition is satisfied.
[0092] If the vibration amount of the first test operation using the default cutoff frequency fc0 is smaller than the allowable vibration amount input in step S120B, the termination condition is that the vibration amount of the last test operation performed in step S132 is greater than the allowable vibration amount input in step S120B, or that the cutoff frequency exceeds the first frequency fc1, which is the cutoff frequency when priority is given to operating speed.
[0093] If the termination condition is met, the cutoff frequency fc of low-pass filter 914 is returned to the cutoff frequency that is provisionally set immediately before the currently provisionally set cutoff frequency, and the process proceeds to step S140B.
[0094] 14, the vibration amount exceeds the allowable vibration amount of 150 μm when the coefficient is 1.3. Therefore, the robot teaching device 600 returns the cutoff frequency fc of the low-pass filter 914 to 1.2 times the default cutoff frequency fc0, and proceeds to step S140B.
[0095] By performing such processing, even in the second embodiment, the cutoff frequency that is set when the checkbox in the user interface UI12 is checked to indicate that vibration suppression should be prioritized is lower than the cutoff frequency fc1 that is set when an instruction is given to prioritize operating speed.
[0096] If the vibration magnitude of the first test operation at the default cutoff frequency fc0 is greater than the allowable vibration magnitude input in step S120B, the termination condition is that the vibration magnitude of the last test operation executed in step S132 is less than the allowable vibration magnitude input in step S120B. If the termination condition is met, the process proceeds to step S140B.
[0097] In step S140B, the robot teaching device 600 determines the cutoff frequency that is provisionally set at that time as the cutoff frequency fc to be set in the low-pass filter 914 during the operation of the robot 100.
[0098] By performing this processing, the robot can be made to perform operations that achieve appropriate positional accuracy and processing time for the task being performed by the robot while reflecting the user's intention regarding the amount of vibration. For example, if 100 μm is specified as the allowable amount of vibration, the cutoff frequency is set to 1.1 times the default cutoff frequency fc0 (see the center of the lower part of Figure 14). If 300 μm is specified as the allowable amount of vibration, the cutoff frequency is set to 1.4 times the default cutoff frequency fc0 (see the center of the lower part of Figure 14). If 50 μm is specified as the allowable amount of vibration, the cutoff frequency is set to 0.95 times the default cutoff frequency fc0 (see the left part of the lower part of Figure 14).
[0099] B2. Modification of the second embodiment: (1) Modification 1 of the second embodiment: The robot system of the second embodiment can also be configured as described below. Below, the robot system of Modification 1 of the second embodiment will be described in terms of the differences from the robot system 10 of the second embodiment. Other aspects of the robot system of Modification 1 of the second embodiment are the same as those of the robot system of the second embodiment.
[0100] In variant example 1 of the second embodiment, in step S120B of FIG. 12, when the user interface UI12, which is the checkbox for "prioritize vibration suppression," is not checked and the input of an instruction to prioritize operation speed is confirmed, the robot teaching device 600 further displays the user interface UI32 on the display unit 602.
[0101] FIG. 15 is a diagram showing the user interface UI32 displayed on the display unit 602 of the robot teaching device 600 in step S120B of FIG. 12 (see the lower right part of FIG. 1). The user interface UI32 is a user interface for specifying an acceptable cycle time. Specifically, the user interface UI32 is an input window displaying "Cycle Time." The robot teaching device 600 accepts the specification of the acceptable cycle time via the user interface UI32 as part of an instruction to prioritize the operating speed. In the example of FIG. 15, 18 seconds is specified as the acceptable cycle time.
[0102] 12, the robot teaching device 600 causes the robot control device 300 to perform the process of FIG. 5 on a trial basis, thereby operating the robot 100. When executing the process of step S132 for the first time in the process of FIG. 12, the robot teaching device 600 sets the default cutoff frequency fc0 as the cutoff frequency fc of the low-pass filter 914. The robot teaching device 600 measures the cycle time of the operation.
[0103] In step S134, the robot teaching device 600 determines whether or not a termination condition is satisfied. The termination condition will be described later. If the termination condition is satisfied, the process proceeds to step S140B. If the termination condition is satisfied, the process proceeds to step S136.
[0104] In step S136, the robot teaching device 600 changes the cutoff frequency fc of the low-pass filter 914. If the cycle time of the first test operation using the default cutoff frequency fc0 is longer than the allowable cycle time input in step S120B, the robot teaching device 600 increases the cutoff frequency fc of the low-pass filter 914 in step S136. If the cycle time of the first test operation using the default cutoff frequency fc0 is shorter than the allowable cycle time input in step S120B, the robot teaching device 600 decreases the cutoff frequency fc of the low-pass filter 914 in step S136. The same applies to the second and subsequent executions of step S136. The process then returns to step S132.
[0105] In the first modification of the second embodiment, the method of increasing the cutoff frequency and the method of decreasing the cutoff frequency in step S136 are the same as those in the second embodiment.
[0106] In step S134, which is executed after the processes of steps S136 and S132, the robot teaching device 600 determines whether or not the termination condition is satisfied.
[0107] If the cycle time of the first test operation using the default cutoff frequency fc0 is greater than the allowable cycle time input in step S120B, the termination condition is that the cycle time of the last test operation performed in step S132 is less than the allowable cycle time input in step S120B. If the termination condition is met, processing proceeds to step S140B.
[0108] If the cycle time of the first test operation using the default cutoff frequency fc0 is shorter than the allowable cycle time input in step S120B, the termination condition is as follows: the cycle time of the last test operation performed in step S132 exceeds the allowable cycle time input in step S120B, or the cutoff frequency is lower than the second frequency fc2, which is the cutoff frequency when priority is given to vibration suppression. If the termination condition is met, the cutoff frequency fc of low-pass filter 914 is returned to the provisionally set cutoff frequency immediately before the provisionally set cutoff frequency at that time, and processing proceeds to step S140B.
[0109] In step S140B, the robot teaching device 600 determines the cutoff frequency that is provisionally set at that time as the cutoff frequency fc to be set in the low-pass filter 914 during the operation of the robot 100.
[0110] By performing such processing, in variant example 1 of the second embodiment, the cutoff frequency that is set when the user interface UI12, which is a check box, is not checked and an instruction is given to prioritize operating speed is given is higher than the cutoff frequency fc2 that is set when an instruction is given to prioritize vibration suppression.
[0111] 15, the user can operate the robot teaching device 600 to specify the cycle time of the work to be performed by the robot system 10 and determine the operation of the robot. Then, by the processing of step S130, the robot can be made to perform an operation that achieves appropriate positional accuracy and processing time according to the work to be performed by the robot, while reflecting the user's intention regarding the cycle time.
[0112] (2) Modification 2 of the Second Embodiment: The robot system of the second embodiment can also be configured as described below. Below, the differences between the robot system of Modification 2 of the second embodiment and the robot system of Modification 1 of the second embodiment will be described. Other points of the robot system of Modification 2 of the second embodiment are the same as those of the robot system of Modification 1 of the second embodiment.
[0113] In variant example 2 of the second embodiment, in step S120B of FIG. 12, when the user interface UI12, which is the checkbox for "prioritize vibration suppression," is not checked and the input of an instruction to prioritize operation speed is confirmed, the robot teaching device 600 further displays the user interface UI34 on the display unit 602.
[0114] FIG. 16 is a diagram showing the user interface UI34 displayed on the display unit 602 of the robot teaching device 600 in step S120B of FIG. 12 (see the lower right part of FIG. 1). The user interface UI34 is a user interface for specifying the maximum allowable motion speed. Specifically, the user interface UI34 is an input window displaying "motion speed." The robot teaching device 600 receives the specification of the allowable motion speed via the user interface UI34 as part of an instruction to prioritize the motion speed. In the example of FIG. 15, 600 pulses / second is specified as the maximum allowable motion speed.
[0115] 12, the robot teaching device 600 causes the robot control device 300 to perform the process of FIG. 5 on a trial basis, thereby operating the robot 100. The robot teaching device 600 measures the maximum value of the movement speed during the movement. Other aspects of the process of step S132 in the second modification of the second embodiment are the same as the process of step S132 in the first modification of the second embodiment.
[0116] In step S134, the robot teaching device 600 determines whether or not a termination condition is satisfied. The termination condition will be described later. If the termination condition is satisfied, the process proceeds to step S140B. If the termination condition is satisfied, the process proceeds to step S136.
[0117] In step S136, the robot teaching device 600 changes the cutoff frequency fc of the low-pass filter 914. If the maximum value of the movement speed of the first test movement using the default cutoff frequency fc0 is greater than the maximum allowable movement speed input in step S120B, the robot teaching device 600 increases the cutoff frequency fc of the low-pass filter 914 in step S136. If the maximum value of the movement speed of the first test movement using the default cutoff frequency fc0 is smaller than the maximum allowable movement speed input in step S120B, the robot teaching device 600 decreases the cutoff frequency fc of the low-pass filter 914 in step S136. The same applies to the second and subsequent processing of step S136. Then, the process returns to step S132.
[0118] In the second modification of the second embodiment, the method of increasing the cutoff frequency and the method of decreasing the cutoff frequency in step S136 are the same as those in the second embodiment.
[0119] In step S134, which is executed after the processes of steps S136 and S132, the robot teaching device 600 determines whether or not the termination condition is satisfied.
[0120] If the maximum operating speed of the first test operation using the default cutoff frequency fc0 is greater than the maximum allowable operating speed input in step S120B, the termination condition is that the maximum operating speed of the last test operation performed in step S132 is less than the maximum allowable operating speed input in step S120B. If the termination condition is met, the process proceeds to step S140B.
[0121] If the maximum operating speed of the first test operation using the default cutoff frequency fc0 is smaller than the maximum allowable operating speed input in step S120B, the termination condition is as follows: the maximum operating speed of the last test operation performed in step S132 exceeds the maximum allowable operating speed input in step S120B, or the cutoff frequency is lower than the second frequency fc2, which is the cutoff frequency when priority is given to vibration suppression. If the termination condition is met, the cutoff frequency fc of low-pass filter 914 is returned to the provisionally set cutoff frequency immediately before the provisionally set cutoff frequency at that time, and processing proceeds to step S140B.
[0122] In step S140B, the robot teaching device 600 determines the cutoff frequency that is provisionally set at that time as the cutoff frequency fc to be set in the low-pass filter 914 during the operation of the robot 100.
[0123] 16, the user can operate the robot teaching device 600 to specify the operating speed of the servo motor 410 and determine the operation of the robot. Then, by the processing of step S130, the robot can be made to perform an operation that achieves appropriate positional accuracy and processing time according to the task to be performed by the robot, while reflecting the user's intention regarding the operating speed of the servo motor 410.
[0124] C. Other Embodiments: C1. Alternative Embodiment 1: (1) In the first embodiment, the arm 110 of the robot 100 is driven by rotating each of six joints X11 to X16 with a servo motor 410 (see FIGS. 1 to 3). However, the robot arm may be driven by rotating each joint with a single servo motor. The number of joints and servo motors may be two to five, or seven or more.
[0125] (2) In the first embodiment, the VRT filter processing unit 900 performs filtering on the position command x0 generated by the command generation unit 310 while the robot 100 is performing an operation, to generate a filtered command xfo (see the middle left part of FIG. 3 and FIG. 5). The filtering in the filter processing unit may be performed on the position command generated by the command generation unit, or may be performed on a command generated by performing some processing on the position command generated by the command generation unit. In this specification, such an embodiment is also included in the term "filtering a position command to generate a filtered command."
[0126] (3) In the first embodiment, in step S242, first, band-elimination filter 912 is applied to position command x0. Then, in step S244, low-pass filter 914 is applied to the position command to which band-elimination filter 912 has been applied (see FIGS. 4 and 5). However, first, the low-pass filter may be applied to the position command, and then the band-elimination filter may be applied.
[0127] (4) In the first embodiment, the VRT filter processing unit 900 includes a band-elimination filter 912 and a low-pass filter 914. However, the filter processing unit may include multiple band-elimination filters. One or more band-elimination filters may include a notch filter, which reduces a narrower range of frequency components than a narrow-sense band-elimination filter. In this specification, the term "band-elimination filter" is used to include a so-called notch filter. The filter processing unit may include multiple low-pass filters. The order in which these filters are applied to a position command can be any order.
[0128] (5) In the first modification of the second embodiment, the robot teaching device 600 displays the user interface UI32 and receives input of an allowable cycle time (see FIG. 15). In the second modification of the second embodiment, the robot teaching device 600 displays the user interface UI34 and receives input of a maximum allowable operating speed (see FIG. 16). However, the robot teaching device 600 can display both and receive input of at least one of the allowable cycle time and the maximum allowable operating speed.
[0129] (6) In the second embodiment, if the vibration amount of the first test operation using the default cutoff frequency fc0 is smaller than the allowable vibration amount input in step S120B, the robot teaching device 600 increases the cutoff frequency fc of the low-pass filter 914 in step S136 (see FIG. 12). If the vibration amount of the first test operation using the default cutoff frequency fc0 is larger than the allowable vibration amount input in step S120B, the robot teaching device 600 decreases the cutoff frequency fc of the low-pass filter 914 in step S136.
[0130] If the vibration amount of the first test operation using the default cutoff frequency fc0 is equal to the allowable vibration amount input in step S120B, the robot teaching device 600 may increase or decrease the cutoff frequency fc of the low-pass filter 914 in step S136. However, it is preferable that the cutoff frequency fc of the low-pass filter 914 is consistently increased or decreased in the repeatedly executed step S136. This is also true in the modified example of the second embodiment. Furthermore, the amount of decrease in the cutoff frequency fc may be equal to or greater than the amount of increase in the cutoff frequency fc.
[0131] (7) In the second embodiment, the robot teaching device 600 displays the user interface UI20 and receives input of the allowable vibration amount (see FIG. 13). In the first modification of the second embodiment, the robot teaching device 600 displays the user interface UI32 and receives input of the allowable cycle time (see FIG. 15). In the second modification of the second embodiment, the robot teaching device 600 displays the user interface UI34 and receives input of the maximum allowable operating speed (see FIG. 16). However, instead of these, the robot teaching device 600 may display a user interface for receiving input of the allowable peak torque and receive input of the allowable peak torque (see the lower part of FIG. 14).
[0132] (8) In the second embodiment, the user interface UI20 is a user interface for specifying an allowable vibration amount. Specifically, the user interface UI20 is an input window displaying "allowable vibration amount" (see FIG. 13). In the first modification of the second embodiment, the user interface UI32 is a user interface for specifying an allowable cycle time. Specifically, the user interface UI32 is an input window displaying "cycle time" (see FIG. 15). In the second modification of the second embodiment, the user interface UI34 is a user interface for specifying a maximum allowable operating speed. Specifically, the user interface UI34 is an input window displaying "operating speed" (see FIG. 16).
[0133] However, instead of these input windows, sliders for specifying the allowable vibration amount, the allowable cycle time, or the allowable operation speed may be displayed as the user interface.
[0134] (9) In the first embodiment, the VRT filter processing unit 900 includes one set of a band rejection filter 912 and a low-pass filter 914 (see FIG. 4). However, the filter processing unit may include multiple sets of a band rejection filter and a low-pass filter, and these sets may be switched for use.
[0135] In such an embodiment, the filter processing unit can include a first filter unit, a second filter unit, a switching unit, and a synthesis unit. The first filter unit processes a signal based on a position command to reduce a component of a first target frequency, thereby generating a first command. The second filter unit processes a signal based on the position command to reduce a component of a second target frequency, thereby generating a second command. The switching unit selectively inputs the position command generated by the command generation unit to the first filter unit or the second filter unit. The synthesis unit generates a filtered command using the sum of the signal based on the first command and the signal based on the second command.
[0136] In such an embodiment, a filtered command is generated using the sum of a signal based on the first command and a signal based on the second command, while the position command generated by the command generation unit is selectively input to the first filter unit and the second filter unit, thereby enabling rapid switching of the frequency of vibration to be reduced.
[0137] In the robot of the above aspect, the switching unit can be configured to selectively input the position command generated by the command generating unit by selectively executing the following processes in response to input of an instruction to switch filter processing: (i) Process of inputting 0 as a position command to the second filter unit, and inputting the position command generated by the command generating unit to the first filter unit; (ii) Process of inputting 0 as a position command to the first filter unit, and inputting the position command generated by the command generating unit to the second filter unit. With this configuration, it is possible to easily switch between filter processes by switching between the input of position commands to the first filter section and the second filter section.
[0138] C2. Alternative Embodiment 2: In the first embodiment, the robot teaching device 600 displays a user interface UI12 on the display unit 602 (see FIG. 7 and S120 in FIG. 6). The user interface UI12 is a user interface for specifying whether or not to prioritize vibration suppression in the filter processing. In a modified example of the first embodiment, the robot teaching device 600 displays a user interface UI14 on the display unit 602 (see FIG. 11 and S120 in FIG. 6). The user interface UI14 functions as a user interface for specifying whether or not to prioritize vibration suppression in the filter processing.
[0139] However, the technology disclosed herein may also be embodied in a manner that does not display a user interface for specifying whether vibration suppression should be prioritized in such filtering. For example, one or more of user interfaces UI20, UI32, and UI34 may be displayed to receive input of one or more of the allowable vibration amount, the allowable cycle time, and the maximum allowable operating speed without first displaying user interface UI12 or user interface UI14 (see FIGS. 13, 15, and 16). In such an embodiment, the cutoff frequency fc of the low-pass filter 914 may be set according to the allowable vibration amount, the allowable cycle time, or the maximum allowable operating speed, without being limited by the first frequency fc1 or the second frequency fc2. In such an embodiment, the input value ultimately specifies whether vibration suppression should be prioritized.
[0140] C3. Alternative Embodiment 3: In the second embodiment, when the user interface UI12, which is the "vibration suppression priority" checkbox, is checked, the robot teaching device 600 further displays a user interface UI20 on the display unit 602 (see FIG. 13). The user interface UI20 is a user interface for specifying the amount of vibration that is tolerable. However, as shown in the first embodiment, the modified example of the first embodiment, and the modified example of the second embodiment, the technology of the present disclosure can also be configured in a manner in which the user interface for specifying the amount of vibration that is tolerable is not displayed (see FIGS. 15 and 16).
[0141] C4. Alternative Embodiment 4: In Modification 1 of the second embodiment, if the user interface UI12, which is the checkbox for "vibration suppression priority," is not checked in step S120B of Fig. 12, the robot teaching device 600 displays the user interface UI32 on the display unit 602 (see Fig. 15). The user interface UI32 is a user interface for specifying an allowable cycle time.
[0142] In Modification 2 of the second embodiment, if the user interface UI12, which is the checkbox for "vibration suppression priority," is not checked in step S120B of Fig. 12, the robot teaching device 600 displays the user interface UI34 on the display unit 602 (see Fig. 16). The user interface UI34 is a user interface for specifying the maximum allowable operating speed.
[0143] However, as shown in the first embodiment, the modified example of the first embodiment, and the second embodiment, the technology of the present disclosure can also be configured in a manner in which a user interface for specifying the operating speed of the motor or the cycle time of the work performed by the robot system is not displayed (see FIG. 13).
[0144] C5. Alternative Embodiment 5: In the first embodiment described above, the six sets of VRT filter processing units 900 corresponding to the six servo motors 410 set the cutoff frequencies of the six sets of low-pass filters 914 to the same value in response to the instructions Ins input to the robot teaching device 600 (see S140 in FIG. 6). However, the multiple filter processing units corresponding to the multiple servo motors may independently set the cutoff frequencies of their respective low-pass filters in response to instructions input to the input units. In such an embodiment, the cutoff frequencies of the low-pass filters can be set to reflect the characteristics of each joint and the arm portion connected to that joint.
[0145] C6. Alternative Embodiment 6: In the first embodiment, the VRT filter processing unit 900 that processes the position command x0 of the main servo motor 410, which moves the most in the operation to be performed by the arm 110 among the six servo motors 410, sets the cutoff frequency of the low-pass filter 914 in accordance with the command Ins input to the robot teaching device 600. The VRT filter processing units 900 of the other servo motors 410 set the cutoff frequencies of their low-pass filters 914 to a value equal to the cutoff frequency of the low-pass filter 914 of the main servo motor 410. However, the cutoff frequency of the low-pass filter 914 of each servo motor 410 may be determined by other methods.
[0146] For example, if the control point causes the robot to move in a straight line, the motor closest to the base on which the robot is installed among the multiple motors driving the arm can be designated as the main motor, regardless of the amount of movement of each motor.If the control point causes the robot to move in an arc, one or more motors including the motor closest to the end effector can be designated as the main motor, regardless of the amount of movement of each motor.
[0147] C7. Alternative Embodiment 7: In the above embodiment, the cutoff frequencies fL, fH of the band-stop filter 912 are not changed in response to the instruction Ins input to the robot teaching device 600 (see the left part of FIG. 3). However, the cutoff frequencies fL, fH of the band-stop filter 912 may be changed in response to the instruction Ins input to the robot teaching device 600. They may also be changed in response to other instructions.
[0148] D. Other forms: The present disclosure is not limited to the above-described embodiments and can be realized in various forms without departing from the spirit thereof. For example, the present disclosure can also be realized in the following forms. The technical features in the above embodiments corresponding to the technical features in each form described below can be appropriately replaced or combined to solve some or all of the problems of the present disclosure or to achieve some or all of the effects of the present disclosure. Furthermore, if a technical feature is not described as essential in this specification, it can be appropriately deleted.
[0149] (1) According to one aspect of the present disclosure, there is provided a robot system. The robot system includes an arm, a motor that moves the arm in response to a drive signal, a control unit that controls the motor, and an input unit that receives instructions from an external device. The control unit includes a filter processing unit that filters a position command to generate a filtered command, and a drive signal generation unit that generates the drive signal using the filtered command. The filter processing unit includes a band-elimination filter used in the filtering process and a low-pass filter that is used in the filtering process and has a changeable cutoff frequency. When the input unit receives an instruction that prioritizes the motion speed of the arm over vibration suppression of the arm, the cutoff frequency is set to a first frequency. When the input unit receives an instruction that prioritizes the motion speed of the arm over vibration suppression of the arm, the cutoff frequency is set to a second frequency lower than the first frequency. In this manner, the user can adjust the cutoff frequency of the low-pass filter to reflect the user's intentions and cause the robot to perform operations that achieve appropriate positional accuracy and processing time according to the task to be performed by the robot.
[0150] (2) In the robot system of the above form, the input unit may be provided with a display unit capable of displaying information, and a user interface for specifying whether vibration suppression should be prioritized in the filter processing may be displayed on the display unit, and the specification of whether vibration suppression should be prioritized may be received via the user interface as at least part of the instruction. In this manner, the user can input an instruction to prioritize vibration suppression by operating the input unit and specifying that vibration suppression should be prioritized, and can input an instruction to prioritize operating speed by operating the input unit and specifying that vibration suppression should not be prioritized.
[0151] (3) In the robot system of the above form, the input unit can display a user interface on the display unit for specifying the amount of vibration that is acceptable, and can accept the specification of the amount of vibration that is acceptable via the user interface as at least part of the instruction that vibration suppression should be prioritized. With this configuration, the user can operate the input unit to specify that vibration suppression should be prioritized, specify the amount of vibration that is acceptable, and determine the operation of the robot.
[0152] (4) In the robot system of the above form, the input unit may be provided with a display unit capable of displaying information, and a user interface for specifying at least one of the operating speed of the motor and the cycle time of the work performed by the robot system may be displayed on the display unit, and at least one of the operating speed of the motor and the cycle time of the work performed by the robot system may be received via the user interface as at least part of an instruction to prioritize the operating speed. In this manner, the user can operate the input unit to specify at least one of the motor operating speed and the cycle time of the work to be performed by the robot system, thereby determining the operation of the robot.
[0153] (5) The robot system of the above aspect may further include a second motor that moves the arm in response to a second drive signal, and the control unit further controls the second motor. The control unit may further include a second filter processing unit that filters a second position command to generate a second filtered command, and a second drive signal generation unit that generates the second drive signal using the second filtered command. The second filter processing unit may include a second band-elimination filter used in the filtering process by the second filter processing unit, and a second low-pass filter that is used in the filtering process by the second filter processing unit and has a changeable cutoff frequency. The second filter processing unit may set the cutoff frequency of the second low-pass filter to a value equal to the cutoff frequency of the low-pass filter in response to the instruction input to the input unit. With this configuration, the position command of the motor that moves the arm and the second position command of the second motor are similarly processed by the filter processing of the filter processing unit and the second filter processing unit, thereby reducing the possibility that one of the motor and the second motor will finish operating earlier, causing the arm to move along a trajectory different from the trajectory specified in the position command.
[0154] (6) In the robot system of the above aspect, the motor may be a main motor that moves the most in the operation to be performed by the arm, the filter processing unit sets the cutoff frequency of the low-pass filter in accordance with an instruction input to the input unit, and the second filter processing unit sets the cutoff frequency of the second low-pass filter to a value equal to the cutoff frequency of the low-pass filter. In this manner, the user can determine the movement of the entire arm that will achieve the appropriate positional accuracy and processing time according to the task to be performed by the robot.
[0155] (7) In the robot system of the above aspect, the filter processing unit may be configured not to change the cutoff frequency of the band-elimination filter in response to the instruction input to the input unit. With this configuration, the robot drive signal can be generated by reflecting the user's intention in setting the cutoff frequency of the low-pass filter. On the other hand, by setting the cutoff frequency of the band-elimination filter to the robot's resonant frequency, a drive signal can be generated that does not cause the robot to resonate significantly, regardless of the user's instructions.
[0156] (8) According to another aspect of the present disclosure, there is provided a control method for a robot including an arm and a motor that moves the arm in response to a drive signal. The control method includes a drive signal generation step of filtering a position command to generate a filtered command and generating the drive signal using the filtered command, the drive signal generation step being performed on the motor. The filtering step of generating the filtered command includes applying a band-stop filter and a low-pass filter with a variable cutoff frequency to the position command. The control method includes receiving an external instruction and setting the cutoff frequency of the low-pass filter in response to the instruction before applying the low-pass filter to the position command. The setting the cutoff frequency of the low-pass filter includes setting the cutoff frequency to a first frequency when an instruction is received indicating that priority should be given to the motion speed of the arm versus vibration suppression of the arm, and setting the cutoff frequency to a second frequency lower than the first frequency when an instruction is received indicating that priority should be given to vibration suppression of the arm versus the motion speed of the arm. With this configuration, the user can generate a drive signal for the robot's operation that achieves appropriate positional accuracy and processing time according to the task that the robot is to perform.
[0157] (9) In the robot control method of the above aspect, the step of receiving an instruction from outside can include a step of displaying a user interface on a display unit for specifying whether vibration suppression should be prioritized in the filter processing, and a step of accepting, as at least part of the instruction, a specification of whether vibration suppression should be prioritized via the user interface. In this manner, the user can input an instruction that vibration suppression should be prioritized by specifying that vibration suppression should be prioritized, and can input an instruction that operating speed should be prioritized by specifying that vibration suppression should not be prioritized.
[0158] (10) In the robot control method of the above aspect, the step of receiving instructions from outside can include a step of displaying a user interface on the display unit for specifying an acceptable amount of vibration, and a step of accepting the specification of the acceptable amount of vibration via the user interface as at least part of an instruction to prioritize vibration suppression. With this configuration, the user can operate the input unit to specify that vibration suppression should be prioritized, specify the amount of vibration that is acceptable, and determine the operation of the robot.
[0159] (11) In the robot control method of the above aspect, the step of receiving an instruction from outside can include a step of displaying a user interface on a display unit for specifying at least one of the operating speed of the motor and the cycle time of the work performed by the robot, and a step of accepting at least one of the operating speed of the motor and the cycle time of the work performed by the robot via the user interface as at least part of an instruction to prioritize the operating speed. In this embodiment, the user can specify at least one of the operating speed of the motor and the cycle time of the work to be performed by the robot to determine the operation of the robot.
[0160] (12) In the control method for the robot of the above aspect, the robot includes a second motor that moves the arm in response to a second drive signal, and the control method includes a second drive signal generating step of filtering a second position command to generate a second filtered command and generating a second drive signal using the second filtered command, the second drive signal generating step including applying a second band-elimination filter and a second low-pass filter, the cutoff frequency of which is variable, to the second position command, and the control method includes a step of setting a cutoff frequency of the second low-pass filter in response to the instruction prior to applying the second low-pass filter to the second position command, and the step of setting the cutoff frequency of the second low-pass filter is a step of setting the cutoff frequency of the second low-pass filter to a value equal to the cutoff frequency of the low-pass filter. In this embodiment, the position command of the motor that moves the arm and the second position command of the second motor are processed in the same manner by filtering, thereby reducing the possibility that one of the motor and the second motor will finish operating first, causing the arm to move along a trajectory different from the trajectory specified in the position command.
[0161] (13) In the robot control method of the above aspect, the motor may be a main motor that moves the most in the operation to be performed by the arm, and in the step of setting the cutoff frequency of the low-pass filter applied to the position command, the cutoff frequency of the low-pass filter is set in accordance with the instruction, and in the step of setting the cutoff frequency of the second low-pass filter, the cutoff frequency of the second low-pass filter is set to a value equal to the cutoff frequency of the low-pass filter. In this manner, the user can generate a drive signal that realizes appropriate positional accuracy and processing time for the operation of the entire arm according to the task to be performed by the robot.
[0162] (14) In the robot control method of the above aspect, the cutoff frequency of the band rejection filter may be not changed in response to the instruction. With this configuration, the robot drive signal can be generated by reflecting the user's intention in setting the cutoff frequency of the low-pass filter. On the other hand, by setting the cutoff frequency of the band-elimination filter to the robot's resonant frequency, a drive signal can be generated that does not cause the robot to resonate significantly, regardless of the user's instructions.
[0163] (15) According to yet another aspect of the present disclosure, there is provided a computer program for controlling, using a computer, a robot including an arm and a motor that moves the arm in response to a drive signal. The computer program causes the computer to perform, for the motor, a function of filtering a position command to generate a filtered command and a function of generating the drive signal using the filtered command. The function of filtering the position command to generate the filtered command includes a function of applying a band-rejection filter and a low-pass filter with a variable cutoff frequency to the position command, a function of receiving an external instruction, and a function of setting the cutoff frequency of the low-pass filter in response to the instruction prior to applying the low-pass filter to the position command. The function of setting the cutoff frequency of the low-pass filter includes a function of setting the cutoff frequency to a first frequency when an instruction is received to prioritize the operating speed of the arm over the vibration suppression of the arm, and a function of setting the cutoff frequency to a second frequency lower than the first frequency when an instruction is received to prioritize the vibration suppression of the arm over the operating speed of the arm.
[0164] The present disclosure can also be realized in various forms other than a robot, a robot control method, and a program for controlling a robot, such as a robot setting device, a robot setting method, a computer program for realizing the method, or a non-transitory recording medium on which the computer program is recorded. [Explanation of symbols]
[0165] 10...Robot system, 100...Robot, 110...Arm, 120...Motor unit, 200...End effector, 300...Robot control device, 306...CPU, 307...RAM, 308...ROM, 310...Command generation unit, 320...Position control unit, 330...Speed control unit, 345...Filter setting unit, 350...Torque control unit, 360...Servo amplifier, 410...Servo motor, 420...Position sensor, 600...Robot teaching device, 602...Display unit, 604...Operation unit, 606...CPU, 607...RAM, 608...ROM, 900...VRT filter processing unit, 912...Band rejection filter, 91 4...Low-pass filter, Ins...Instruction, UI12...User interface, UI14...User interface, UI20...User interface, UI32...User interface, UI34...User interface, W01...Workpiece, X11~X16...Joint, fH...Cutoff frequency, fL...Cutoff frequency, fc...Cutoff frequency, fc0...Default cutoff frequency, fc1...First frequency, fc2...Second frequency, x0...Position command, xd...Drive signal, xfo...Filtered command, Δfc...Cutoff frequency difference, Δp...Position deviation at target point.
Claims
1. 1. A robotic system comprising: Arm and a motor that moves the arm in response to a drive signal; a control unit that controls the motor; an input unit that receives instructions from an external device, The control unit a filtering section for filtering the position command to generate a filtered command; a drive signal generator that generates the drive signal using the filtered command; Including, The filter processing unit a band rejection filter used in the filtering process; a low-pass filter used in the filtering process, the low-pass filter having a changeable cutoff frequency; setting the cutoff frequency to a first frequency when an instruction to prioritize the operation speed of the arm over the vibration suppression of the arm is received by the input unit; a robot system that sets the cutoff frequency to a second frequency lower than the first frequency when the input unit receives an instruction indicating that priority should be given to vibration suppression between vibration suppression of the arm and the operating speed of the arm.
2. The robot system according to claim 1, The input unit A display unit capable of displaying information is provided, a user interface for specifying whether or not vibration suppression should be prioritized in the filtering process can be displayed on the display unit; The robot system can receive, as at least a part of the instruction, a designation of whether vibration suppression should be prioritized or not via the user interface.
3. The robot system according to claim 2, The input unit A user interface for specifying an allowable amount of vibration can be displayed on the display unit, The robot system can accept, via the user interface, a designation of an allowable amount of vibration as at least a part of the instruction to prioritize vibration suppression.
4. The robot system according to claim 1, The input unit A display unit capable of displaying information is provided, a user interface for specifying at least one of an operating speed of the motor and a cycle time of the work performed by the robot system can be displayed on the display unit; The robot system can receive, via the user interface, at least one of an operating speed of the motor and a cycle time of the work to be performed by the robot system as at least part of the instruction to prioritize the operating speed.
5. The robot system according to claim 1, further comprising: a second motor that moves the arm in response to a second drive signal; The control unit further controls the second motor, The control unit a second filtering unit that filters the second position command to generate a second filtered command; a second drive signal generator configured to generate the second drive signal using the second filtered command; The second filter processing unit a second band rejection filter used in the filtering process by the second filtering unit; a second low-pass filter used in the filtering process by the second filtering unit, the second low-pass filter having a changeable cutoff frequency; The second filter processing unit sets the cutoff frequency of the second low-pass filter to a value equal to the cutoff frequency of the low-pass filter in accordance with the instruction input to the input unit.
6. The robot system according to claim 5, the motor is a main motor that moves the most in the movement to be performed by the arm; the filter processing unit sets a cutoff frequency of the low-pass filter in response to an instruction input to the input unit; The second filter processing unit sets the cutoff frequency of the second low-pass filter to a value equal to the cutoff frequency of the low-pass filter.
7. 7. The robot system according to claim 1, The filter processing unit A robot system that does not change the cutoff frequency of the band-stop filter in response to the instruction input to the input unit.
8. A method for controlling a robot including an arm and a motor that moves the arm in response to a drive signal, comprising: filtering the position command to generate a filtered command; generating the drive signal using the filtered command; a drive signal generating step for executing the above for the motor; filtering the position command to generate a filtered command; applying a band rejection filter and a low pass filter with a variable cutoff frequency to the position command; The control method includes: receiving instructions from an external source; and setting a cutoff frequency of the low-pass filter in response to the instruction prior to application of the low-pass filter to the position command; The step of setting the cutoff frequency of the low-pass filter includes: setting the cutoff frequency to a first frequency when an instruction is received indicating that priority should be given to the operation speed of the arm out of the vibration suppression of the arm and the operation speed of the arm; a step of setting the cutoff frequency to a second frequency lower than the first frequency when an instruction is received indicating that priority should be given to vibration suppression between the vibration suppression of the arm and the operating speed of the arm.
9. 9. A method for controlling a robot according to claim 8, The step of receiving an instruction from an external source includes: displaying, on a display unit, a user interface for specifying whether or not vibration suppression should be prioritized in the filtering process; and receiving, as at least part of the instruction, via the user interface, a designation of whether vibration suppression should be prioritized.
10. A method for controlling a robot according to claim 9, The step of receiving an instruction from an external source includes: displaying a user interface on the display unit for specifying an allowable amount of vibration; and receiving, via the user interface, a designation of an allowable amount of vibration as at least part of an instruction to prioritize vibration suppression.
11. 9. A method for controlling a robot according to claim 8, The step of receiving an instruction from an external source includes: displaying, on a display unit, a user interface for specifying at least one of an operating speed of the motor and a cycle time of a task performed by the robot; and receiving, via the user interface, at least one of an operating speed of the motor and a cycle time of an operation to be performed by the robot, as at least part of an instruction to prioritize the operating speed.
12. 9. A method for controlling a robot according to claim 8, the robot includes a second motor that moves the arm in response to a second drive signal; The control method includes: filtering the second position command to generate a second filtered command; generating a second drive signal using the second filtered command; a second drive signal generating step of executing the above for the second motor; The step of generating the second filtered command comprises: applying a second band-stop filter and a second low-pass filter whose cutoff frequency is variable to the second position command; The control method includes: and setting a cutoff frequency of the second low-pass filter in response to the instruction prior to application of the second low-pass filter to the second position command; The step of setting the cutoff frequency of the second low-pass filter includes: A method for controlling a robot, the method comprising the step of setting the cutoff frequency of the second low-pass filter to a value equal to the cutoff frequency of the first low-pass filter.
13. A method for controlling a robot according to claim 12, comprising: the motor is a main motor that moves the most in the movement to be performed by the arm; in the step of setting a cutoff frequency of the low-pass filter applied to the position command, the cutoff frequency of the low-pass filter is set in accordance with the instruction, A method for controlling a robot, wherein in the step of setting the cutoff frequency of the second low-pass filter, the cutoff frequency of the second low-pass filter is set to a value equal to the cutoff frequency of the low-pass filter.
14. A method for controlling a robot according to any one of claims 8 to 13, comprising: A method for controlling a robot, wherein the cutoff frequency of the band rejection filter is not changed in response to the instruction.
15. A computer program for controlling, using a computer, a robot including an arm and a motor that moves the arm in response to a drive signal, the computer program comprising: A function for filtering the position command to generate a filtered command; generating the drive signal using the filtered command; causing the computer to realize a function for executing the above for the motor; The function of filtering the position command to generate a filtered command may include: a function of applying a band rejection filter and a low pass filter with a variable cutoff frequency to the position command; The function of receiving instructions from the outside, and a function of setting a cutoff frequency of the low-pass filter in response to the instruction, prior to application of the low-pass filter to the position command; The function of setting the cutoff frequency of the low-pass filter is setting the cutoff frequency to a first frequency when an instruction is received indicating that priority should be given to the operation speed of the arm out of the vibration suppression of the arm and the operation speed of the arm; a computer program including a function of setting the cutoff frequency to a second frequency lower than the first frequency when an instruction is received indicating that priority should be given to vibration suppression between vibration suppression of the arm and the operating speed of the arm.
Citation Information
Patent Citations
Method for generating speed command profile of multi-joint robot
JP2011224694A