WO2020149020A1 - ロボット制御装置、ロボット制御方法、及びロボット制御プログラム - Google Patents

ロボット制御装置、ロボット制御方法、及びロボット制御プログラム Download PDF

Info

Publication number
WO2020149020A1
WO2020149020A1 PCT/JP2019/046325 JP2019046325W WO2020149020A1 WO 2020149020 A1 WO2020149020 A1 WO 2020149020A1 JP 2019046325 W JP2019046325 W JP 2019046325W WO 2020149020 A1 WO2020149020 A1 WO 2020149020A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
information
route
path
speed
Prior art date
Application number
PCT/JP2019/046325
Other languages
English (en)
French (fr)
Inventor
心一 細見
茜 中島
章洋 鈴村
僚一 倉谷
岳史 小島
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Priority to EP19910125.4A priority Critical patent/EP3912767A4/en
Priority to CN201980059371.8A priority patent/CN112703090A/zh
Priority to US17/275,311 priority patent/US20220032460A1/en
Publication of WO2020149020A1 publication Critical patent/WO2020149020A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1607Calculation of inertia, jacobian matrixes and inverses
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1651Programme controls characterised by the control loop acceleration, rate control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1638Programme controls characterised by the control loop compensation for arm bending/inertia, pay load weight/inertia
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39178Compensation inertia arms
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/41Servomotor, servo controller till figures
    • G05B2219/41123Correction inertia of servo
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43046Determine time constant from command speed and needed max acceleration torque
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43099Select acceleration deceleration time constants as function of weight, load, position

Definitions

  • the present invention relates to a robot control device, a robot control method, and a robot control program.
  • Patent Document 1 discloses a load determination unit that compares a load applied to a component of the robot with a load determination value when the robot operates on a reference trajectory, and the load is determined from the load determination value.
  • a trajectory generation device for a robot which is provided with a speed reduction unit that reduces the speed of the robot when it is large.
  • Patent Document 2 when a velocity pattern is calculated using the Bobrow method, the position on the trajectory is converted into an angle and the calculation is performed, whereby the robot arm is either left-handed or right-handed.
  • a trajectory generation method for a multi-axis robot that obtains the fastest velocity pattern using both left and right hand systems.
  • the present invention has been made in view of the above points, and a robot control capable of adjusting the control amount for controlling the acceleration of the robot so that the robot operates at high speed regardless of the proficiency level of the user.
  • An object is to provide an apparatus, a robot control method, and a robot control program.
  • a first aspect of the disclosure is a robot control device, and relates to a first acquisition unit that acquires route information regarding a route of a robot and speed information regarding a speed at which the robot moves along the route, and specifications of the robot.
  • a second acquisition unit that acquires specification information, and determines a section in which the operation time of the robot is shortened based on the path information, the speed information, and the specification information even if a waypoint is added to the path.
  • the first acquisition unit acquires obstacle information regarding an obstacle
  • the determination unit determines whether or not the robot interferes with the obstacle based on the obstacle information.
  • the correction unit may correct the path of the robot again so that the robot does not interfere with the obstacle.
  • the posture information regarding the initial posture and the target posture of the robot and the obstacle information regarding the obstacle are acquired, and the route information is acquired based on the acquired posture information, the obstacle information, and the specification information. Also, it may be configured to include a route generation unit that generates the speed information.
  • the determination unit determines whether or not a section in which the operation time of the robot is determined to be short includes a section in which the route can be corrected, and the correction unit can correct the route.
  • the route may be corrected only for a section determined to be a different section.
  • the determining unit may determine a first motion time of the robot calculated from a speed profile represented by the speed information and speed information of each section divided by waypoints added to the route.
  • the second operation time of the robot calculated from the combined profile obtained by combining the velocity profiles represented by is compared, and if the second operation time is less than the first operation time, It may be determined that the operation time of the robot is short.
  • a second aspect of the disclosure is a robot control method, including a first acquisition step in which a computer acquires path information regarding a path of a robot and speed information regarding a speed at which the robot moves on the path, and the robot.
  • a third aspect of the disclosure is a robot control program, which causes a computer to acquire route information regarding a route of the robot and velocity information regarding a velocity when the robot travels along the route, the first obtaining unit of the robot. Based on a second acquisition unit that acquires specification information regarding specifications, the path information, the speed information, and the specification information, determine a section in which the operation time of the robot is shortened even if a waypoint is added to the path.
  • the correction unit Based on the determination unit, the route information, the speed information, and the specification information, the correction unit that corrects the route of the robot so that the inertia of the robot becomes small in a section where the operation time of the robot becomes short, A calculation unit that calculates a load acting on the joint of the robot based on the route information, the speed information, and the specification information, and the load of the robot so that the load calculated by the calculation unit satisfies a target load. It functions as an adjusting unit that adjusts the control amount for controlling the acceleration of the joint.
  • control amount for controlling the acceleration of the robot can be adjusted so that the robot operates at high speed regardless of the proficiency level of the user.
  • FIG. 3 is a flowchart showing a flow of robot control processing by the robot control device according to the first embodiment.
  • 1 is a diagram showing a schematic configuration of a robot and a robot controller.
  • the robot controller 10 is connected to the robot RB and adjusts parameters (operation command values) when the robot RB operates.
  • the robot controller 10 may be incorporated in the controller as one function of the controller that controls the robot RB. The detailed configuration of the robot controller 10 will be described later.
  • the robot RB moves along a plurality of teaching points taught by a user or a plurality of waypoints generated from a route plan.
  • the various operation command values include, for example, speed, acceleration, deceleration, and rotation angle of the joint of the robot RB.
  • the robot RB moves according to the operation command value adjusted by the robot controller 10. In the present embodiment, a case will be described in which a control amount for controlling acceleration of the operation command value of the robot RB is adjusted. Since deceleration is negative acceleration, adjustment of acceleration includes adjustment of deceleration.
  • the robot hand H is attached to the tip as an end effector.
  • the robot RB is, for example, a so-called pick-and-place robot that grips the work W, which is an operation target of the robot RB, at a predetermined position, and conveys and places the work W to a predetermined destination.
  • the robot RB has a tool attached as an end effector. In this case, the robot RB moves according to the taught route or the route based on the route plan, and performs predetermined processing such as welding, screwing, and inspection at a predetermined place.
  • the configuration of the robot RB will be described.
  • the robot RB is a vertical articulated robot
  • the present invention is also applicable to horizontal articulated robots (scalar robots), parallel link robots, orthogonal robots, mobile robots, flying robots (drones), humanoid robots, and the like.
  • FIG. 2 is a diagram showing a configuration of a robot which is a vertical articulated robot.
  • the robot RB is a 6-degree-of-freedom 6-axis robot including a base link BL, links L1 to L6, and joints J1 to J6.
  • the joint is a joint that connects the links.
  • the joints J1 to J6 rotatably connect the links by a motor (not shown).
  • a 6-axis robot is described as an example, but the number of axes is not limited to 6, and any number of 2 or more may be used. The number of links changes with the number of axes.
  • the base link BL and the link L1 are connected via a joint J1 which rotates in the direction of arrow C1 about the vertical axis S1 in FIG. Therefore, the link L1 rotates in the direction of arrow C1 with the base link BL as a fulcrum.
  • the link L1 and the link L2 are connected via a joint J2 that rotates in the direction of arrow C2 about the horizontal axis S2 in FIG. Therefore, the link L2 rotates in the arrow C2 direction with the joint J1 as a fulcrum.
  • the link L2 and the link L3 are connected via a joint J3 that rotates in the direction of arrow C3 about the axis S3 in FIG. Therefore, the link L3 rotates in the direction of arrow C3 with the joint J2 as a fulcrum.
  • the link L3 and the link L4 are connected via a joint J4 that rotates about the axis S4 in the direction of arrow C4 in FIG. Therefore, the link L4 rotates in the arrow C4 direction with the joint J3 as a fulcrum.
  • the link L4 and the link L5 are connected via a joint J5 that rotates about the axis S5 in the direction of arrow C5 in FIG. Therefore, the link L5 rotates in the direction of arrow C5 with the joint J4 as a fulcrum.
  • the link L5 and the link L6 are connected via a joint J6 which rotates about the axis S6 in the direction of arrow C6 in FIG. Therefore, the link L6 rotates in the direction of arrow C6 with the joint J5 as a fulcrum.
  • the robot hand H is attached to the link L6.
  • the joints J1 to J6 have their respective ranges of rotation angles set as movable ranges.
  • the position of the hand of the robot RB or the posture of the robot RB is determined by the rotation angles of the joints J1 to J6. Therefore, when teaching the route to the robot RB, the angle values of the rotation angles of the joints J1 to J6 are expressed as a vector having a dimension corresponding to the number of axes of the robot (a 6-dimensional vector in the case of the present embodiment). Then, the vector is sequentially taught as a teaching point. In the case where the route is generated instead of being taught, similarly, the waypoints through which the robot RB passes are generated as a dimensional vector corresponding to the number of axes of the joints J1 to J6.
  • vector data having coordinate values on the Cartesian coordinate system may be given as the motion path, instead of vector data having angle values at the teaching point or the waypoint.
  • the coordinate values on the Cartesian coordinate system can be converted into the angle values of the joints J1 to J6 based on the inverse kinematics of the robot.
  • FIG. 3 is a block diagram showing a hardware configuration of the robot control device 10 according to the first embodiment.
  • the robot controller 10 includes a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, a storage 14, an input unit 15, a monitor 16 and an optical disk drive device. 17 and a communication interface 18.
  • the components are connected via a bus 19 so that they can communicate with each other.
  • the ROM 12 or the storage 14 stores a robot control program for controlling the robot RB.
  • the CPU 11 is a central processing unit and executes various programs and controls each component. That is, the CPU 11 reads the program from the ROM 12 or the storage 14 and executes the program using the RAM 13 as a work area.
  • the CPU 11 controls the above-mentioned components and performs various arithmetic processes according to a program recorded in the ROM 12 or the storage 14.
  • the ROM 12 stores various programs and various data.
  • the RAM 13 temporarily stores a program or data as a work area.
  • the storage 14 is configured by an HDD (Hard Disk Drive) or SSD (Solid State Drive), and stores various programs including an operating system and various data.
  • the input unit 15 includes a keyboard 151 and a pointing device such as a mouse 152, and is used for performing various inputs.
  • the monitor 16 is, for example, a liquid crystal display, and displays various kinds of information such as whether or not the suction of the work is successful.
  • the monitor 16 may employ a touch panel method and function as the input unit 15.
  • the optical disc driving device 17 reads data stored in various recording media (CD-ROM, Blu-ray disc, etc.) and writes data to the recording media.
  • the communication interface 18 is an interface for communicating with other devices, and for example, a standard such as Ethernet (registered trademark), FDDI or Wi-Fi (registered trademark) is used.
  • FIG. 4 is a block diagram showing an example of the functional configuration of the robot controller 10.
  • the robot control device 10 has a first acquisition unit 20, a second acquisition unit 22, a determination unit 24, a correction unit 26, a calculation unit 28, and an adjustment unit 30 as a functional configuration.
  • Each functional configuration is realized by the CPU 11 reading a robot control program stored in the ROM 12 or the storage 14, loading the robot control program in the RAM 13, and executing the program.
  • the first acquisition unit 20 acquires route information regarding the route of the robot RB and speed information regarding the velocity when the robot RB moves on the route.
  • the route information is information about the route from the arbitrary initial posture of the robot RB to the target posture.
  • the path is a list of postures when the robot RB is moved from the initial posture to the target posture. Since the posture of the robot RB is determined by the angle value of the rotation angle of each of the joints J1 to J6, the path is the rotation of each joint J1 to J6 at the teaching point or the passing point of the robot RB from the initial posture of the robot RB to the target posture. It is a list of angle values of angles.
  • the speed information includes a speed profile that represents a change in speed when the robot RB moves from the initial posture to the target posture.
  • the robot RB operates according to the velocity profile.
  • the second acquisition unit 22 acquires the specification information regarding the specifications of the robot RB.
  • the specification information includes information indicating specifications such as the maximum speed, the maximum acceleration, the maximum deceleration, and the angular range of the rotation angle of each joint J1 to J6.
  • the specification information also includes information on the equation of motion of the robot RB.
  • the equation of motion is made into a mathematical formula by analyzing the relationship between the acceleration of each joint J1 to J6 of the robot RB and the load acting on each joint J1 to J6 of the robot RB using a physical model of the robot RB. Obtained.
  • the equation of motion may include other elements such as external forces acting on the links L1 to L6.
  • the load is mechanical or electrical energy including at least one of torque acting on each of the joints J1 to J6, a rate of change of torque, kinetic energy, and current and power supplied to each of the joints J1 to J6.
  • the load is the torque acting on each of the joints J1 to J6 as an example.
  • the determination unit 24 determines a section in which the operation time of the robot RB is shortened even if a waypoint is added to the path, as an inertia-reducible section.
  • the inertia-reducible section is a section in which the joint inertia can be reduced.
  • the determination unit 24 specifies a section in which a predetermined joint continues to operate, that is, a section that does not stop, for example, based on the route information, and sets a waypoint in the specified section. Then, the determination unit 24 calculates the speed information when the waypoint is set, that is, the speed profile, the operation time of the robot RB specified from the calculated speed profile, and the speed profile acquired by the first acquisition unit 20. The operation time of the robot RB specified by Then, if the operation time of the robot RB when the waypoint is set is less than the operation time of the robot RB identified from the speed profile acquired by the first acquisition unit 20, even if the waypoint is added to the route. It is determined to be an inertia-reducible section in which the operation time of the robot RB is shortened.
  • the correction unit 26 corrects the route of the robot RB based on the route information, the velocity information, and the specification information so that the inertia of the joint is small in the inertia reducible section determined by the determination unit 24, that is, at the waypoint.
  • the posture of the robot RB is added to the route.
  • the calculating unit 28 calculates the torque acting on the joints of the robot, that is, the joints J1 to J6 on the corrected route, based on the route information, the velocity information, and the specification information.
  • the adjustment unit 30 adjusts the control amount for controlling the acceleration of each joint J1 to J6 of the robot RB so that the torque of each joint J1 to J6 calculated by the calculation unit 28 satisfies the target load, that is, the target torque.
  • the control amount is a control amount when driving the motors of the joints J1 to J6 of the robot RB.
  • the control amount for controlling the acceleration is adjusted so as not to exceed the maximum acceleration and the maximum deceleration based on the specification information.
  • the target torque may be set for each of the joints J1 to J6 of the robot RB, or may be set as a value common to the joints J1 to J6.
  • the target torque is appropriately determined according to the specifications of the robot RB.
  • the target torque is obtained as a value obtained by subtracting a predetermined margin value from the upper limit value of the torque allowed for the joints J1 to J6.
  • the adjustment unit 30 controls the robot RB based on the corrected path and the speed profile based on the adjusted acceleration.
  • the robot controller 10 adjusts the control amount for controlling the acceleration of the robot RB.
  • the control amount for controlling the acceleration of the robot RB it is easier to adjust the load acting on the joints J1 to J6, and the tact time can be reduced than when adjusting the speed. This point will be described with reference to FIGS.
  • FIG. 5 is a diagram showing the relationship between the predicted load predicted to act on the robot RB and the change in the rotational speed of the joint.
  • FIG. 6 is a diagram showing a predicted load profile and a torque component occupied in the profile.
  • FIG. 7 is a diagram showing a change in tact time when the speed is reduced and when the acceleration is reduced.
  • the horizontal axis represents time and the vertical axis represents the predicted load acting on the joint. Further, in FIG. 5, a change in the speed of the joint is shown by a dotted line. As shown in FIG. 5, the predicted load increases as the speed increases. As the speed begins to decrease, the sign of the predictive load reverses and the predictive load increases.
  • the inertial torque, the friction torque, and other forces can be expressed as components constituting the predicted load using the predicted load profile.
  • Inertia torque, friction torque and other forces can be expressed as the following equation of motion, where ⁇ is the predicted load.
  • the inertia torque is determined by the magnitude of acceleration, and the friction torque is determined by the magnitude of speed.
  • the influence on the predicted load is larger in the inertia torque than in the friction torque. Therefore, it is not known whether the inertia torque can be effectively reduced by only reducing the speed, and it is also impossible to know whether the inertial torque can approach the target load value. In the first place, when the inertial torque alone exceeds the target load value or the allowable value of the load, even if only the speed is reduced, the load cannot be suppressed below the target load value.
  • FIG. 8 is a flowchart showing the flow of robot control processing by the robot control device 10.
  • the CPU 11 reads out the robot control program from the ROM 12 or the storage 14, expands it in the RAM 13, and executes it to perform robot control processing.
  • FIG. 9 shows the velocity profile P of the joint J1 as an example.
  • the horizontal axis represents time and the vertical axis represents speed.
  • the velocity gradually increases from the time t1 which is the initial posture of the robot RB, and the maximum velocity of the joint J1 is maintained from the time t2 to the time t3. Then, the speed gradually decreases from the time point of t3, and stops at the time point of t4.
  • the CPU 11 acquires the specification information regarding the specifications of the robot RB (step S102). That is, the information indicating the specifications such as the maximum velocity, the maximum acceleration, the maximum deceleration of the robot RB, the angular range that the rotation angle of each joint can take, and the information of the equation of motion of the robot RB are acquired.
  • the parameters of the above equation (1) are defined according to the specifications of the robot RB.
  • the CPU 11 determines, as the inertia-reducible section, a section in which the joint operation time is shortened even if a waypoint is added to the path, based on the path information, the speed information, and the specification information (step S104). ..
  • the determination unit 24 identifies a section in which the joint continues to operate, that is, a section in which the joint does not stop, based on the route information.
  • an operation section in which the joint J1 continues to operate is specified. In the example of FIG. 9, since the joint J1 continues to operate from t1 to t4, the section from t1 to t4 is specified as the operation section.
  • a waypoint is set in the middle of the operation section of the joint J1.
  • a waypoint is added to the intermediate tc between t1 and t4.
  • the speed profile of each section when the route is divided at the added waypoints is calculated.
  • the first half velocity profile P1 and the second half velocity profile P2 are calculated based on the route information, the velocity information, and the specification information of the robot RB.
  • the shapes of the first half velocity profile P1 and the second half velocity profile P2 change depending on the maximum velocity, the maximum acceleration, the maximum deceleration, and the like included in the specification information of the robot RB.
  • the first half speed profile P1 and the second half speed profile P2 are added together to generate a combined profile.
  • the composite profile P10 as shown in FIG. 11 is generated.
  • the section between t2 and t3 has a constant velocity, and the joint J1 can be smoothly operated.
  • the operation time of the joint J1 in the speed profile P shown in FIG. 9 acquired in step S100 and the operation time of the joint J1 in the composite profile P10 shown in FIG. 11 are compared. That is, the time tx from t1 to t4 in FIG. 9 (first operation time) is compared with the time ty from t1 to t4 in FIG. 11 (second operation time). Then, when the operation time ty of the joint J1 in the composite profile P10 is less than the operation time tx of the joint J1 in the velocity profile P acquired in step S100, that is, the operation time of the joint J1 becomes short even if a waypoint is added. In this case, the path of the joint J1 in the section from t1 to t4 of the speed profile P acquired in step S100 is set as the section capable of reducing inertia.
  • the operation time ty of the joint J1 in the composite profile P10 is longer than the operation time tx of the joint J1 in the velocity profile P acquired in step S100, that is, when the waypoint is added, the operation time tx of the joint J1 becomes longer. If it does, the inertia-reducible section is not set.
  • the section from t2 to t3 is maintained at the maximum speed of the joint J1, and the speed profile is such that sufficient acceleration time can be secured even if a waypoint is added.
  • the operation time ty in the composite profile P10 of FIG. 11 is the same as the operation time tx in the speed profile P of FIG. Therefore, the path of the joint J1 in the section from t1 to t4 of the speed profile P acquired in step S100 is set as the section capable of reducing inertia.
  • the velocity profile of the joint J1 is a velocity profile P20 as shown in FIG.
  • the velocity profile P20 it is assumed that when a waypoint is added to generate a combined profile, a combined profile P30 as shown in FIG. 13 is generated.
  • the section between t2 and t3 is not maintained at the maximum speed of the joint J1, and a sufficient acceleration time cannot be ensured even if a waypoint is added.
  • the operation time ty in the composite profile P30 of FIG. 13 is longer than the operation time tx in the speed profile P20 of FIG. In this case, the route of the joint J1 in the section from t1 to t4 of the speed profile P acquired in step S100 is not set as the inertia-reducible section.
  • the CPU 11 determines whether the inertia-reducible section is set as the determination unit 24 (step S106). Then, if the inertia reducible section is set (step S106: YES), the process proceeds to step S108, and if the inertia reducible section is not set (step S106: NO), the process proceeds to step S120.
  • the determination unit 24 determines whether or not the inertia reducible section includes a section in which the route can be corrected, and the route can be corrected.
  • the route may be corrected only for the section determined to be the section in which the correction is possible. That is, the processing from step S108 may be executed only for the section where the route can be corrected, and the processing after step S108 may not be executed for the section where the route cannot be corrected.
  • the section in which the route can be corrected is a section in which the movement of the robot RB is not adversely affected even if the route is corrected by adding a waypoint.
  • a path from gripping a work to carrying and mounting the work on a first mounting position is a first section until gripping the work. It is divided into a second section in which the work is carried to the place where it is placed and a third section in which the gripped work is placed. In this case, it is considered that the second section does not adversely affect the operation of the robot RB even if the route is corrected by adding a waypoint to increase the speed.
  • the first section and the third section include the operation of the robot RB gripping or placing the work. Therefore, if an attempt is made to increase the speed in the first section and the third section, the operation of the robot RB may be adversely affected, such as dropping the gripped work. Therefore, the processing after step S108 may be executed only for the second section, and the processing after step S108 may not be executed for the first section and the third section.
  • route-correctable section and the route-uncorrectable section may be set in advance or may be set by the user.
  • the CPU 11 corrects the route of the robot RB based on the route information, the speed information, and the specification information so that the inertia becomes small in the inertia reducible section (step S108). That is, a waypoint is added to the route of the robot RB.
  • the waypoint is set at a position where the inertia of each axis of the robot RB becomes small.
  • the rotation angles of the joints on the root side which are considered to contribute to the reduction of inertia, that is, the joint J2 and the other joints such as J3 connected to the joint J2 are larger than the rotation angles represented by the route information acquired in step S100.
  • the position at which the rotation angle is small is set as the via point.
  • the route through which the tip of the robot arm passes in the original route information acquired in step S100 is the route Rt1 as shown in FIG.
  • the position at which the joints J2 and J3 operate so as to fold the robot arm is set as the waypoint K.
  • the robot RB operates along the route Rt2 passing through the waypoint K.
  • the distance r2 from the center of the joint J1 to the tip of the robot arm in FIG. 15 is shorter than the distance r1 from the center of the joint J1 to the tip of the robot arm in FIG. This reduces the inertia of the joint J1.
  • the CPU 11 calculates the torque acting on each of the joints J1 to J6 based on the route information, the speed information, and the specification information. Specifically, the torque acting on each of the joints J1 to J6 is calculated as the predicted load using the above equation (1) (step S110).
  • the CPU 11 determines whether the torque calculated in step S110 satisfies the target torque (step S112). Specifically, the target torque is obtained as a value obtained by subtracting a predetermined margin value from the upper limit value of the torque allowed for the joints J1 to J6.
  • step S112 If all the torques of the joints J1 to J6 calculated in step S110 are equal to or less than the target torque (step S112: YES), it is determined that the target torque is satisfied, and the process proceeds to step S114. On the other hand, if at least one of the torques of the joints J1 to J6 calculated in step S110 exceeds the target torque (step S112: NO), the process returns to step S108 to correct the route. That is, another waypoint is set to correct the route. Specifically, for example, the path is corrected by using the position at which the joints J2 and J3 are operated so as to further fold the robot arm of the robot RB as a waypoint.
  • steps S108 to S112 are repeated until the torques of the joints J1 to J6 are all less than or equal to the target torque. If all the torques of the joints J1 to J6 are not less than the target torque even if the correction of the route is executed a predetermined number of times, this routine may be ended.
  • the CPU 11 adjusts the control amount for controlling the acceleration of at least one joint among the joints J1 to J6 of the robot RB, for example, the joint J1 (step S114).
  • the acceleration is adjusted so that the operating time of the joint J1 does not become long and the torque of the joint J1 approaches the target torque as much as possible. Therefore, initially, the acceleration is increased so that the difference between the torque calculated in step S110 and the target torque becomes small.
  • the CPU 11 recalculates the torque of the joint J1 using the acceleration adjusted in step S114 (step S116).
  • the torque calculation process is the same as the calculation process of step S110, and thus the description thereof is omitted.
  • the acceleration is increased, the torque of the joint J1 is increased accordingly.
  • the CPU 11 determines whether the torque of each joint calculated in step S116 satisfies the target torque (step S118).
  • the process of determining whether or not the target torque is satisfied is the same as the determination process of step S112, and thus description thereof will be omitted.
  • step S118: YES When all the torques of the joints satisfy the target torque (step S118: YES), the process proceeds to step S120. On the other hand, if at least one of the torques of the joints does not satisfy the target torque (step S118: NO), the process returns to step S114 to adjust the control amount for controlling the acceleration again. That is, the acceleration is reduced by a predetermined value so that the torque is reduced.
  • the operating time of the joint J1 is not lengthened and the torque of the joint J1 is set to a value as close as possible to the target torque.
  • the CPU 11 outputs route information and speed information to the robot RB (step S120). That is, when the route is corrected and the acceleration is adjusted, the corrected route information and the acceleration-adjusted speed information are output to the robot RB. On the other hand, if the route is not corrected, the original route information and speed information acquired in step S100 are output to the robot RB. As a result, the robot RB operates according to the route information and the speed information.
  • the inertia reducible section in which the operation time of the robot RB is shortened even if a waypoint is added to the route is determined. Then, in the determined inertia reducible section, the control amount for controlling the acceleration is adjusted so that the joint torque satisfies the target torque and the operation time is shortened. Therefore, regardless of the user's proficiency level, the acceleration of the robot can be appropriately adjusted so that the robot operates at high speed, and the burden on the user can be reduced. Further, since the inertia can be reduced, the torque of the joint can be reduced, and the robot RB can be operated with less energy.
  • the route is corrected in consideration of the interference between the robot RB and the obstacle.
  • the same parts as those in the first embodiment are designated by the same reference numerals, and detailed description thereof will be omitted.
  • FIG. 16 is a functional configuration diagram of the robot control device 10A according to the second embodiment.
  • the first acquisition unit 20 acquires obstacle information.
  • the determination unit 24 determines whether the corrected route interferes with the obstacle based on the obstacle information acquired by the first acquisition unit 20.
  • FIG. 17 is a flowchart showing the flow of robot control processing by the robot controller 10A.
  • the robot control process shown in FIG. 17 differs from the robot control process of FIG. 8 in the processes of steps S100A and S109.
  • the processing of other steps is the same as the robot control processing of FIG.
  • the CPU 11 acquires obstacle information in addition to the route information and speed information (step S100A).
  • the obstacle is a structure that becomes an obstacle in the operation of the robot RB.
  • the obstacle is a box, a shelf, or the like in which the work is stored.
  • the obstacle information is obtained, for example, as coordinate data representing the three-dimensional shape and position of the obstacle.
  • the CPU 11 determines whether or not the robot RB interferes with an obstacle in the route corrected in step S108 (step S109).
  • the interference means contact between the robot and an obstacle.
  • a known interference determination technique for determining the interference between the robot RB and the obstacle is used.
  • a known interference determination technique for example, the technique described in JP-A-2002-273675 can be used.
  • step S109: NO If the robot RB does not interfere with the obstacle on the route corrected in step S108 (step S109: NO), the process proceeds to step S110. On the other hand, when the robot RB interferes with the obstacle (step S109: YES), the process proceeds to step S108 and the route is corrected again. Then, the path is corrected until the robot RB does not interfere with the obstacle.
  • obstacle information is acquired to determine whether or not the robot RB interferes with the obstacle. If it is determined that the robot RB interferes with the obstacle, the route is corrected until the obstacle does not interfere with the obstacle. To do. Accordingly, it is possible to prevent the robot RB from interfering with the obstacle on the corrected route.
  • the route is corrected in consideration of the interference between the robot RB and the obstacle.
  • the same parts as those in each of the above embodiments are designated by the same reference numerals, and detailed description thereof will be omitted.
  • FIG. 18 is a functional configuration diagram of the robot controller 10B according to the third embodiment. As shown in FIG. 18, the robot controller 10B includes a route generation unit 32.
  • the route generation unit 32 acquires posture information regarding the initial posture and target posture of the robot RB and obstacle information regarding obstacles. Further, the route generation unit 32 acquires the specification information of the robot RB. Then, the route generation unit 32 generates the route information and the velocity information of the robot RB based on the acquired posture information, obstacle information, and specification information. The route generation unit 32 outputs the generated route information and speed information to the first acquisition unit 20.
  • FIG. 19 is a flowchart showing the flow of robot control processing by the robot control device 10B.
  • the robot control process shown in FIG. 19 differs from the robot control process of FIG. 8 in the processes of steps S50 and S103.
  • the processing of other steps is the same as the robot control processing of FIG.
  • the CPU 11 acquires posture information and obstacle information (step S50).
  • RRT Rapidly exploring random tree
  • RRT* improved version of RRT
  • RRT connect AlignmentOpposite OrganoMath
  • PRM ProtectedaminePorn
  • STOMP Stochastic Alignment
  • STOMP Stochastic Alignment
  • EET Exploring/Exploiting Tree
  • the route generation unit 32 that generates the route of the robot RB since the route generation unit 32 that generates the route of the robot RB is provided, it is not necessary to generate the route information and the speed information in advance.
  • the velocity profiles in each of the sections divided by a plurality of waypoints may be combined, and the combined profile may be used to determine whether the section is an inertia-reducible section.
  • the control target of the robot control device may be a robot that operates on simulation.
  • the robot control processing executed by the CPU by reading the software (program) in each of the above embodiments may be executed by various processors other than the CPU.
  • a processor a PLD (Programmable Logic Device) whose circuit configuration can be changed after manufacturing an FPGA (Field-Programmable Gate Array) or the like, and a specific processing of performing ASIC (Application Integrated Circuit), etc.
  • An example is a dedicated electric circuit, which is a processor having a circuit configuration designed exclusively.
  • the robot control processing may be executed by one of these various processors, or a combination of two or more processors of the same kind or different kinds (for example, a plurality of FPGAs and a combination of CPU and FPGA). Etc.).
  • the hardware structure of these various processors is, more specifically, an electric circuit in which circuit elements such as semiconductor elements are combined.
  • the mode in which the robot control program is stored (installed) in the storage 14 or the ROM 12 in advance has been described, but the present invention is not limited to this.
  • the program may be provided in a recording medium such as CD-ROM (Compact Disk Read Only Memory), DVD-ROM (Digital Versatile Disk Read Only Memory), and USB (Universal Serial Bus) memory. Further, the program may be downloaded from an external device via a network.
  • Robot control device 10A, 10B Robot control device 20 First acquisition unit 22 Second acquisition unit 24 Determination unit 26 Correction unit 28 Calculation unit 30 Adjustment unit 32 Route generation unit RB Robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

ロボット制御装置は、ロボットの経路に関する経路情報及びロボットが経路を移動する際の速度に関する速度情報を取得する第1の取得部と、ロボットの仕様に関する仕様情報を取得する第2の取得部と、経路に経由点を追加してもロボットの動作時間が短くなる区間を判定する判定部と、ロボットの動作時間が短くなる区間においてイナーシャが小さくなるようにロボットの経路を補正する補正部と、ロボットの関節に作用する負荷を算出する算出部と、算出部により算出された負荷が目標負荷を満たすように、ロボットの関節の加速度を制御するための制御量を調整する調整部と、を備える。

Description

ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
 本発明は、ロボット制御装置、ロボット制御方法、及びロボット制御プログラムに関する。
 ロボットの軌道を生成する技術として、特許文献1には、基準軌道にてロボットを動作した場合にロボットの構成部品に加わる負荷を負荷判定値と比較する負荷判定部と、負荷が負荷判定値よりも大きい場合にロボットの速度を低減する速度低減部とを備えたロボットの軌道生成装置が開示されている。
 また、特許文献2には、ボブロー法を用いて速度パターンを演算する際に、軌道上の位置を角度に変換して演算を行うことで、ロボットのアーム形態を左手系、右手系の何れか一方に限定することなく、左右両方の手系を用いて最速となる速度パターンを求める多軸型ロボットの軌道生成方法が開示されている。
特許第6126152号公報 特許第6268819号公報
 ロボットの高速な動作を実現するためには、教示点または経路計画で生成された経由点をもとに、ロボットの動作に関連するパラメータである加速度を人手で調整する必要があった。この人手による調整は、ロボットに過大な負荷を与えず、かつタクトタイムが短くなるパラメータをトライアンドエラーで見つけなくてはならず、その手間はユーザの大きな負担になっていた。特に、教示点や経路計画で生成された経由点のバリエーションが多い場合は、調整の手間が膨大になり、全てのケースで最適な加速度を見つけることは困難であった。
 本発明は、上記の点に鑑みてなされたものであり、ユーザーの習熟度に関わらず、ロボットが高速に動作するようにロボットの加速度を制御するための制御量を調整することができるロボット制御装置、ロボット制御方法、及びロボット制御プログラムを提供することを目的とする。
 開示の第1態様は、ロボット制御装置であって、ロボットの経路に関する経路情報及び前記ロボットが前記経路を移動する際の速度に関する速度情報を取得する第1の取得部と、前記ロボットの仕様に関する仕様情報を取得する第2の取得部と、前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記経路に経由点を追加しても前記ロボットの動作時間が短くなる区間を判定する判定部と、前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記ロボットの動作時間が短くなる区間において前記ロボットのイナーシャが小さくなるように前記ロボットの経路を補正する補正部と、前記経路情報、前記速度情報、及び前記仕様情報に基づいて、補正された経路における前記ロボットの関節に作用する負荷を算出する算出部と、前記算出部により算出された負荷が目標負荷を満たすように、前記ロボットの関節の加速度を制御するための制御量を調整する調整部と、を備える。
 上記第1態様において、前記第1の取得部は、障害物に関する障害物情報を取得し、前記判定部は、前記障害物情報に基づいて前記ロボットが前記障害物に干渉するか否かを判定し、前記補正部は、前記ロボットが前記障害物に干渉すると判定された場合に、前記ロボットが前記障害物に干渉しないように前記ロボットの経路を再度補正してもよい。
 上記第1態様において、前記ロボットの初期姿勢及び目標姿勢に関する姿勢情報及び障害物に関する障害物情報を取得し、取得した前記姿勢情報、前記障害物情報、及び前記仕様情報に基づいて、前記経路情報及び前記速度情報を生成する経路生成部を備えた構成としてもよい。
 上記第1態様において、前記判定部は、前記ロボットの動作時間が短くなると判定した区間について、前記経路を補正可能な区間を含むか否かを判定し、前記補正部は、前記経路を補正可能な区間と判定した区間のみについて前記経路を補正してもよい。
 上記第1態様において、前記判定部は、前記速度情報で表される速度プロファイルから算出された前記ロボットの第1の動作時間と、前記経路に追加した経由点で分割された各区間の速度情報で表される速度プロファイルを合成した合成プロファイルから算出された前記ロボットの第2の動作時間と、を比較し、前記第2の動作時間が前記第1の動作時間未満の場合に、前記経路を前記ロボットの動作時間が短くなる区間と判定してもよい。
 開示の第2態様は、ロボット制御方法であって、コンピュータが、ロボットの経路に関する経路情報及び前記ロボットが前記経路を移動する際の速度に関する速度情報を取得する第1の取得工程と、前記ロボットの仕様に関する仕様情報を取得する第2の取得工程と、前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記経路に経由点を追加しても前記ロボットの動作時間が短くなる区間を判定する判定工程と、前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記ロボットの動作時間が短くなる区間において前記ロボットのイナーシャが小さくなるように前記ロボットの経路を補正する補正工程と、前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記ロボットの関節に作用する負荷を算出する算出工程と、前記算出工程により算出された負荷が目標負荷を満たすように、前記ロボットの関節の加速度を制御するための制御量を調整する調整工程と、を含む処理を実行する。
 開示の第3態様は、ロボット制御プログラムであって、コンピュータを、ロボットの経路に関する経路情報及び前記ロボットが前記経路を移動する際の速度に関する速度情報を取得する第1の取得部、前記ロボットの仕様に関する仕様情報を取得する第2の取得部、前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記経路に経由点を追加しても前記ロボットの動作時間が短くなる区間を判定する判定部、前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記ロボットの動作時間が短くなる区間において前記ロボットのイナーシャが小さくなるように前記ロボットの経路を補正する補正部、前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記ロボットの関節に作用する負荷を算出する算出部、及び、前記算出部により算出された負荷が目標負荷を満たすように、前記ロボットの関節の加速度を制御するための制御量を調整する調整部、として機能させる。
 本発明によれば、ユーザーの習熟度に関わらず、ロボットが高速に動作するようにロボットの加速度を制御するための制御量を調整することができる。
ロボット及びロボット制御装置の概略構成を示す図である。 垂直多関節ロボットであるロボットの構成を示す図である。 ロボット制御装置のハードウェア構成を示すブロック図である。 第1実施形態に係るロボット制御装置の機能構成の例を示すブロック図である。 予測負荷と、ジョイントの回転速度の変化との関係を示す図である。 予測負荷のプロファイルと、プロファイルにおいて占めるトルクの成分とを表す図である。 速度を低減した場合と、加速度を低減した場合とのタクトタイムの変化を示す図である。 第1実施形態に係るロボット制御装置によるロボット制御処理の流れを示すフローチャートである。 速度プロファイルの一例を示す図である。 速度プロファイルの一例を示す図である。 速度プロファイルの一例を示す図である。 速度プロファイルの一例を示す図である。 速度プロファイルの一例を示す図である。 経由点を追加しない場合の経路について説明するための図である。 経由点を追加した場合の経路について説明するための図である。 第2実施形態に係るロボット制御装置の機能構成の例を示すブロック図である。 第2実施形態に係るロボット制御装置によるロボット制御処理の流れを示すフローチャートである。 第3実施形態に係るロボット制御装置の機能構成の例を示すブロック図である。 第3実施形態に係るロボット制御装置によるロボット制御処理の流れを示すフローチャートである。
 以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されている場合があり、実際の比率とは異なる場合がある。
 (第1実施形態)
 図1は、ロボット及びロボット制御装置の概略構成を示す図である。
 図1に示すように、ロボット制御装置10は、ロボットRBに接続され、ロボットRBが動作する際のパラメータ(動作指令値)を調整する。ロボット制御装置10は、ロボットRBを制御する制御装置の一機能として、制御装置に組み込まれても良い。ロボット制御装置10の詳細な構成については、後述する。
 ロボットRBは、ユーザにより教示される複数の教示点、又は、経路計画から生成された複数の経由点に沿って運動する。運動の際には、ロボットRBは、各種の動作指令値に従う。各種の動作指令値には、例えば、速度、加速度、減速度、ロボットRBの関節の回転角度等が含まれる。ロボットRBは、ロボット制御装置10により調整された動作指令値に従って運動する。本実施形態では、ロボットRBの動作指令値のうち加速度を制御するための制御量を調整する場合について説明する。なお、減速度は負の加速度であるので、加速度の調整には減速度の調整も含まれるものとする。
 ロボットRBは、一例として、先端にエンドエフェクタとしてロボットハンドHが取り付けられている。この場合、ロボットRBは、例えばロボットRBの操作対象であるワークWを所定の位置で把持し、所定の目的地まで搬送及び載置する、いわゆるピックアンドプレースロボットである。他の例として、ロボットRBは、エンドエフェクタとして工具が取り付けられている。この場合、ロボットRBは、教示された経路又は経路計画に基づく経路に従って移動し、所定の場所で、溶接、ねじ止め、検査等の所定の処理を行う。
 ロボット制御装置10の詳細について説明する前に、ロボットRBの構成について説明する。本実施形態では、一例としてロボットRBが垂直多関節ロボットである場合について説明する。しかし、水平多関節ロボット(スカラーロボット)、パラレルリンクロボット、直交ロボット、モバイルロボット、飛行ロボット(ドローン)、及びヒューマノイド型ロボット等にも本発明は適用可能である。
 図2は、垂直多関節ロボットであるロボットの構成を示す図である。
 図2に示すように、ロボットRBは、ベースリンクBL、リンクL1~L6、ジョイントJ1~J6を備えた6自由度の6軸ロボットである。なお、ジョイントとは、リンク同士を接続する関節である。ジョイントJ1~J6は、図示しないモータによりリンク同士を回転可能に接続する。本実施形態では、6軸ロボットを例に説明するが、軸の数は6に限定されず、2以上のいかなる数であっても良い。軸の数に伴い、リンクの数も変わる。
 ベースリンクBLとリンクL1とは、図2において鉛直軸S1を中心として矢印C1方向に回転するジョイントJ1を介して接続されている。従って、リンクL1は、ベースリンクBLを支点として矢印C1方向に回転する。
 リンクL1とリンクL2とは、図2において水平軸S2を中心として矢印C2方向に回転するジョイントJ2を介して接続されている。従って、リンクL2は、ジョイントJ1を支点として矢印C2方向に回転する。
 リンクL2とリンクL3とは、図2において軸S3を中心として矢印C3方向に回転するジョイントJ3を介して接続されている。従って、リンクL3は、ジョイントJ2を支点として矢印C3方向に回転する。
 リンクL3とリンクL4とは、図2において軸S4を中心として矢印C4方向に回転するジョイントJ4を介して接続されている。従って、リンクL4は、ジョイントJ3を支点として矢印C4方向に回転する。
 リンクL4とリンクL5とは、図2において軸S5を中心として矢印C5方向に回転するジョイントJ5を介して接続されている。従って、リンクL5は、ジョイントJ4を支点として矢印C5方向に回転する。
 リンクL5とリンクL6とは、図2において軸S6を中心として矢印C6方向に回転するジョイントJ6を介して接続されている。従って、リンクL6は、ジョイントJ5を支点として矢印C6方向に回転する。なお、図2では図示は省略したが、リンクL6にロボットハンドHが取り付けられる。
 ジョイントJ1~J6は、予め定めた回転角度の範囲が可動域として各々設定されている。
 ロボットRBの手先の位置又はロボットRBの姿勢は、各ジョイントJ1~J6の各々の回転角度によって定まる。従って、ロボットRBに経路を教示する場合には、各ジョイントJ1~J6の回転角度の角度値を、ロボットの持つ軸数分の次元のベクトル(本実施形態の場合は6次元のベクトル)として表現し、当該ベクトルを、教示点として順に教示する。経路を教示するのではなく生成する場合についても、同様に、ロボットRBが通過する経由点が、各ジョイントJ1~J6の軸数分の次元のベクトルとして生成される。なお、動作経路として、教示点又は経由点における各角度値を持つベクトルデータではなく、直交座標系上での各座標値を持つベクトルデータが与えられる場合もある。この場合、直交座標系上の座標値は、ロボットの逆運動学に基づいて、ジョイントJ1~J6の角度値に変換可能である。
 次に、ロボット制御装置10について説明する。
 図3は、第1実施形態に係るロボット制御装置10のハードウェア構成を示すブロック図である。
 図3に示すように、ロボット制御装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、モニタ16、光ディスク駆動装置17及び通信インタフェース18を有する。各構成は、バス19を介して相互に通信可能に接続されている。
 本実施形態では、ROM12又はストレージ14には、ロボットRBを制御するロボット制御プログラムが格納されている。CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
 ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
 入力部15は、キーボード151、及びマウス152等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ16は、例えば、液晶ディスプレイであり、ワークの吸着の成否等の各種の情報を表示する。モニタ16は、タッチパネル方式を採用して、入力部15として機能してもよい。光ディスク駆動装置17は、各種の記録媒体(CD-ROM又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
 通信インタフェース18は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
 次に、ロボット制御装置10の機能構成について説明する。
 図4は、ロボット制御装置10の機能構成の例を示すブロック図である。
 図4に示すように、ロボット制御装置10は、機能構成として、第1の取得部20、第2の取得部22、判定部24、補正部26、算出部28、及び調整部30を有する。各機能構成は、CPU11がROM12又はストレージ14に記憶されたロボット制御プログラムを読み出し、RAM13に展開して実行することにより実現される。
 第1の取得部20は、ロボットRBの経路に関する経路情報及びロボットRBが経路を移動する際の速度に関する速度情報を取得する。
 経路情報は、ロボットRBの任意の初期姿勢から目標姿勢までの経路に関する情報である。ここで、経路とは、ロボットRBを初期姿勢から目標姿勢まで動作させる場合の姿勢のリストである。ロボットRBの姿勢は、各ジョイントJ1~J6の回転角度の角度値で定まるため、経路は、ロボットRBの初期姿勢から目標姿勢までのロボットRBの教示点又は経由点の各ジョイントJ1~J6の回転角度の角度値のリストである。
 また、速度情報は、ロボットRBが初期姿勢から目標姿勢まで動作する場合の速度の変化を表す速度プロファイルを含む。ロボットRBは、速度プロファイルに従って動作する。
 第2の取得部22は、ロボットRBの仕様に関する仕様情報を取得する。仕様情報は、各ジョイントJ1~J6の最大速度、最大加速度、最大減速度、回転角度が取り得る角度範囲等の仕様を表す情報を含む。また、仕様情報は、ロボットRBの運動方程式の情報を含む。運動方程式は、ロボットRBの物理モデル等を用いて、運動時のロボットRBの各ジョイントJ1~J6の加速度と、ロボットRBの各ジョイントJ1~J6に作用する負荷との関係を解析して数式化して得られる。運動方程式には、リンクL1~L6に作用する外力等の他の要素も含まれうる。負荷は、各ジョイントJ1~J6に作用するトルク、トルクの変化率、運動エネルギー、各ジョイントJ1~J6に供給される電流及び電力の少なくとも一つを含む機械的又は電気的エネルギーである。本実施形態では、負荷が、各ジョイントJ1~J6に作用するトルクである場合を例に説明する。
 判定部24は、経路情報、速度情報、及び仕様情報に基づいて、経路に経由点を追加してもロボットRBの動作時間が短くなる区間をイナーシャ低減可能区間として判定する。イナーシャ低減可能区間とは、ジョイントのイナーシャを低減可能な区間である。
 詳細は後述するが、判定部24は、例えば経路情報に基づいて予め定めたジョイントが動作し続ける区間、すなわち停止しない区間を特定し、特定した区間内に経由点を設定する。そして、判定部24は、経由点を設定した場合の速度情報、すなわち速度プロファイルを算出し、算出した速度プロファイルから特定されるロボットRBの動作時間と、第1の取得部20が取得した速度プロファイルから特定されるロボットRBの動作時間と、を比較する。そして、経由点を設定した場合のロボットRBの動作時間が、第1の取得部20が取得した速度プロファイルから特定されるロボットRBの動作時間未満であれば、経路に経由点を追加してもロボットRBの動作時間が短くなる区間であるイナーシャ低減可能区間と判定する。
 補正部26は、経路情報、速度情報、及び仕様情報に基づいて、判定部24が判定したイナーシャ低減可能区間においてジョイントのイナーシャが小さくなるようにロボットRBの経路を補正する、すなわち、経由点におけるロボットRBの姿勢を経路に追加する。
 算出部28は、経路情報、速度情報、及び仕様情報に基づいて、補正された経路におけるロボットの関節、すなわちジョイントJ1~J6に作用するトルクを算出する。
 調整部30は、算出部28により算出された各ジョイントJ1~J6のトルクが目標負荷、すなわち目標トルクを満たすように、ロボットRBの各ジョイントJ1~J6の加速度を制御するための制御量を調整する。ここで、制御量とは、ロボットRBの各ジョイントJ1~J6のモータを駆動する際の制御量である。この場合、仕様情報に基づき、最大加速度及び最大減速度を超えないように加速度を制御するための制御量を調整する。目標トルクは、ロボットRBのジョイントJ1~J6毎に設定されても良いし、ジョイントJ1~J6に共通の値として設定されても良い。目標トルクは、ロボットRBの仕様に応じて適宜決定される。例えば、目標トルクは、ジョイントJ1~J6に対して許容されるトルクの上限値から所定のマージン値だけ減算された値として得られる。調整部30は、補正された経路及び調整された加速度による速度プロファイルに基づいてロボットRBを制御する。
 このように、ロボット制御装置10は、ロボットRBの加速度を制御するための制御量を調整する。ロボットRBの加速度を制御するための制御量を調整する場合、速度を調整する場合よりも、ジョイントJ1~J6に作用する負荷を調整しやすく、かつ、タクトタイムを低減できる。この点について、図5~図7を参照して説明する。
 図5は、ロボットRBに作用すると予測される予測負荷と、ジョイントの回転速度の変化との関係を示す図である。図6は、予測負荷のプロファイルと、プロファイルにおいて占めるトルクの成分とを表す図である。図7は、速度を低減した場合と、加速度を低減した場合とのタクトタイムの変化を示す図である。
 図5において、横軸に時間を表し、縦軸にジョイントに作用する予測負荷を表している。また、図5には、ジョイントの速度の変化を点線により示している。図5に示すように、速度の増加に伴い、予測負荷が増加する。速度が減少し始めると、予測負荷の符号が反転し、予測負荷が増加する。
 ここで、図6に示すように、予測負荷のプロファイルを使って、予測負荷を構成する成分として、慣性トルク、摩擦トルク及びその他の力を表現できる。予測負荷をτとして、慣性トルク、摩擦トルク及びその他の力は、次の運動方程式として表すことができる。
Figure JPOXMLDOC01-appb-M000001

 
 上記式(1)及び図6より、慣性トルクは加速度の大きさにより決まり、摩擦トルクは速度の大きさにより決まる。特に、図6に示すように、予測負荷に対する影響は、慣性トルクの方が摩擦トルクよりも大きい事が明確である。従って、速度のみを下げるだけでは、慣性トルクが効果的に下げられるか分からず、目標負荷値に近づけられるかも分からない。そもそも慣性トルクだけで、目標負荷値又は負荷の許容値を超えている場合、速度だけ低減しても、負荷を目標負荷値以下に抑えられない。一方、摩擦トルクだけで、目標負荷値又は負荷の許容値を超えるケースは一般的にはない。なぜなら、速度にも許容値が仕様として定義されており、速度が許容値の範囲内ならば、摩擦トルクが負荷の許容値を超えることはないからである。従って、加速度の調整だけで、予測負荷を目標負荷に抑えることは可能である。
 以上のように、負荷の成分の観点から、上記実施形態のように加速度を制御するための制御量を調整することが、速度を調整することよりも優れていることが明確である。
 また、図7の上図に示すように、速度を低減した場合と、図7の下図に示すように、加速度を低減した場合と、を比べると、加速度の低減の方が、速度の低減よりも、変化率が小さくても同じだけ負荷を低減できる。このため、同じ負荷を低減する場合でも、加速度を低減する方が、速度を低減するよりも動作時間が短くなる。結果として、図7に示すように、加速度を制御するための制御量を調整した場合の方が、同じ負荷を速度により調整する場合に比べて、タクトタイムが短くなる。
 以上のように、タクトタイムの観点から、本実施形態のように加速度を制御するための制御量を調整することが、速度を調整することよりも優れていることが明確である。
 次に、ロボット制御装置10の作用について説明する。
 図8は、ロボット制御装置10によるロボット制御処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14からロボット制御プログラムを読み出して、RAM13に展開し実行することにより、ロボット制御処理が行なわれる。
 CPU11は、第1の取得部20として、ロボットRBの経路に関する経路情報と、ロボットRBが経路を移動する際の速度に関する速度情報、すなわち速度プロファイルを取得する(ステップS100)。図9には、一例としてジョイントJ1の速度プロファイルPを示した。図9の横軸は時間、縦軸は速度である。図9に示す速度プロファイルの例では、ロボットRBが初期姿勢であるt1の時点から徐々に速度が徐々に増加し、t2~t3の時点まではジョイントJ1の最大速度が維持される。そして、t3の時点から速度が徐々に低下し、t4の時点で停止する。
 CPU11は、第2の取得部22として、ロボットRBの仕様に関する仕様情報を取得する(ステップS102)。すなわち、ロボットRBの最大速度、最大加速度、最大減速度、各ジョイントの回転角度が取り得る角度範囲等の仕様を表す情報及びロボットRBの運動方程式の情報を取得する。運動方程式は、上記式(1)のパラメータがロボットRBの仕様に応じて定義されたものである。
 CPU11は、判定部24として、経路情報、速度情報、及び仕様情報に基づいて、経路に経由点を追加してもジョイントの動作時間が短くなる区間をイナーシャ低減可能区間として判定する(ステップS104)。まず、判定部24は、経路情報に基づいてジョイントが動作し続ける区間、すなわち停止しない区間を特定する。本実施形態では、一例としてジョイントJ1が動作し続ける動作区間を特定する。図9の例では、t1~t4までジョイントJ1は動作し続けるので、t1~t4の区間が動作区間として特定される。
 次に、追加する経由点を設定する。本実施形態では、一例としてジョイントJ1の動作区間の中間に経由点を設定する。例えば図9に示すように、t1~t4の中間tcに経由点を追加する。そして、追加した経由点で経路を分割した場合の各区間の速度プロファイルを算出する。具体的には、図10に示すように、前半の速度プロファイルP1と、後半の速度プロファイルP2と、をロボットRBの経路情報、速度情報、及び仕様情報に基づいて算出する。なお、前半の速度プロファイルP1及び後半の速度プロファイルP2の形状は、ロボットRBの仕様情報に含まれる最大速度、最大加速度、及び最大減速度等によって変わる。
 図10に示すように、経由点を追加した場合、中間tcを含む区間で減速と加速がオーバーラップする場合がある。この減速と加速は無駄である。そこで、前半の速度プロファイルP1及び後半の速度プロファイルP2を合算して合成プロファイルを生成する。これにより、図11に示すような合成プロファイルP10が生成される。合成プロファイルP10では、t2~t3の区間が等速度となり、ジョイントJ1の滑らかな動作が可能となる。
 次に、ステップS100で取得した図9に示す速度プロファイルPにおけるジョイントJ1の動作時間と、図11に示す合成プロファイルP10におけるジョイントJ1の動作時間と、を比較する。すなわち図9のt1~t4までの時間tx(第1の動作時間)と、図11のt1~t4までの時間ty(第2の動作時間)と、を比較する。そして、合成プロファイルP10におけるジョイントJ1の動作時間tyが、ステップS100で取得した速度プロファイルPにおけるジョイントJ1の動作時間tx未満の場合、すなわち、経由点を追加してもジョイントJ1の動作時間が短くなる場合は、ステップS100で取得した速度プロファイルPのt1~t4の区間におけるジョイントJ1の経路をイナーシャ低減可能区間として設定する。
 一方、合成プロファイルP10におけるジョイントJ1の動作時間tyが、ステップS100で取得した速度プロファイルPにおけるジョイントJ1の動作時間txより長い場合、すなわち、経由点を追加するとジョイントJ1の動作時間txが長くなってしまう場合は、イナーシャ低減可能区間は設定されない。
 なお、図11の例では、t2~t3の区間がジョイントJ1の最大速度に維持され、経由点を追加しても十分な加速時間が確保できる速度プロファイルとなっている。そして、図11の合成プロファイルP10における動作時間tyは、図9の速度プロファイルPにおける動作時間txと同じである。このため、ステップS100で取得した速度プロファイルPのt1~t4の区間におけるジョイントJ1の経路がイナーシャ低減可能区間として設定される。
 ここで、イナーシャ低減可能区間が設定されない場合について説明する。ジョイントJ1の速度プロファイルが図12に示すような速度プロファイルP20であったとする。そして、速度プロファイルP20において、経由点を追加して合成プロファイルを生成すると図13に示すような合成プロファイルP30が生成されたとする。この合成プロファイルP30では、t2~t3の区間がジョイントJ1の最大速度に維持されず、経由点を追加しても十分な加速時間が確保できない速度プロファイルとなっている。そして、図13の合成プロファイルP30における動作時間tyは、図12の速度プロファイルP20における動作時間txよりも長くなっている。この場合、ステップS100で取得した速度プロファイルPのt1~t4の区間におけるジョイントJ1の経路は、イナーシャ低減可能区間として設定されない。
 CPU11は、判定部24として、イナーシャ低減可能区間が設定されたか否かを判定する(ステップS106)。そして、イナーシャ低減可能区間が設定された場合(ステップS106:YES)はステップS108へ移行し、イナーシャ低減可能区間が設定されなかった場合(ステップS106:NO)はステップS120へ移行する。
 なお、判定部24は、ロボットRBの動作時間が短くなると判定したイナーシャ低減可能区間が設定された場合、当該イナーシャ低減可能区間について、経路を補正可能な区間を含むか否かを判定し、経路を補正可能な区間と判定した区間のみについて経路を補正するようにしてもよい。すなわち、経路を補正できる区間についてのみステップS108以降の処理を実行し、経路を補正できない区間については、ステップS108以降の処理を実行しないようにしてもよい。
 ここで、経路を補正可能な区間とは、経由点を追加して経路を補正してもロボットRBの動作に悪影響を及ぼさない区間である。例えば、ロボット制御装置10がピックアンドプレース装置に適用される場合、ワークを把持してから所定の載置場所まで運んで載置するまでの経路は、ワークを把持するまでの第1区間、把持したワークを載置する場所まで運ぶ第2区間、把持したワークを載置するまでの第3区間に分けられる。この場合、第2区間については、経由点を追加して経路を補正し高速化を図ってもロボットRBの動作に悪影響を及ぼさない区間と考えられる。一方、第1区間及び第3区間は、ロボットRBがワークを把持したり載置したりする動作が含まれる。このため、第1区間及び第3区間について高速化を図ろうとすると、把持したワークを落としたりする等、ロボットRBの動作に悪影響を及ぼす虞がある。従って、第2区間のみステップS108以降の処理を実行し、第1区間、第3区間については、ステップS108以降の処理を実行しないようにしてもよい。
 なお、経路を補正可能な区間及び経路を補正不可能な区間については、予め設定しておいてもよいし、ユーザーに設定させてもよい。
 CPU11は、補正部26として、経路情報、速度情報、及び仕様情報に基づいて、イナーシャ低減可能区間においてイナーシャが小さくなるようにロボットRBの経路を補正する(ステップS108)。すなわち、ロボットRBの経路に経由点を追加する。経由点は、ロボットRBの各軸のイナーシャが小さくなるような位置に設定する。例えばイナーシャの低減に寄与すると考えられる根元側のジョイント、すなわちジョイントJ2、ジョイントJ2に接続されるJ3等の他のジョイントの回転角度が、ステップS100で取得した経路情報で表される回転角度よりも小さい回転角度となる位置、すなわち、ロボットRBのロボットアームを折りたたむようにジョイントJ2、J3を動作させる位置を経由点とする。例えばステップS100で取得した元の経路情報におけるロボットアームの先端が経由する経路が、図14に示すような経路Rt1であったとする。この場合、図15に示すように、ロボットアームを折りたたむようにジョイントJ2、J3が動作する位置を経由点Kとして設定する。この場合、経由点Kを経由する経路Rt2に沿ってロボットRBが動作する。そして、図15におけるジョイントJ1の中心からロボットアームの先端までの距離r2は、図14におけるジョイントJ1の中心からロボットアームの先端までの距離r1よりも短くなる。これにより、ジョイントJ1のイナーシャが低減される。
 CPU11は、算出部28として、経路情報、速度情報、及び仕様情報に基づいて、各ジョイントJ1~J6に作用するトルクを算出する。具体的には、上記式(1)を用いて、各ジョイントJ1~J6に作用するトルクを予測負荷として算出する(ステップS110)。
 CPU11は、算出部28として、ステップS110で算出したトルクが目標トルクを満たすか否かを判定する(ステップS112)。具体的には、目標トルクは、ジョイントJ1~J6に対して許容されるトルクの上限値から所定のマージン値だけ減算された値として得られる。
 そして、ステップS110で算出した各ジョイントJ1~J6のトルクが全て目標トルク以下の場合(ステップS112:YES)は、目標トルクを満たすと判定し、ステップS114へ移行する。一方、ステップS110で算出した各ジョイントJ1~J6のトルクのうち少なくとも1つが目標トルクを超える場合(ステップS112:NO)はステップS108へ戻って経路を補正する。すなわち、別の経由点を設定して経路を補正する。具体的には、例えばロボットRBのロボットアームを更に折りたたむようにジョイントJ2、J3を動作させる位置を経由点として経路を補正する。以下、各ジョイントJ1~J6のトルクが全て目標トルク以下となるまでステップS108~S112の処理を繰り返す。なお、経路の補正を予め定めた回数実行しても各ジョイントJ1~J6のトルクが全て目標トルク以下とならない場合は、本ルーチンを終了してもよい。
 CPU11は、調整部30として、ロボットRBの各ジョイントJ1~J6のうち、少なくとも1つのジョイント、例えばジョイントJ1の加速度を制御するための制御量を調整する(ステップS114)。加速度の調整は、ジョイントJ1の動作時間が長くならず且つジョイントJ1のトルクができるだけ目標トルクに近づくように行う。従って、最初は、ステップS110で算出したトルクと目標トルクとの差が小さくなるように加速度を大きくする。
 CPU11は、調整部30として、ステップS114で調整した加速度を用いてジョイントJ1のトルクを再度算出する(ステップS116)。トルクの算出処理は、ステップS110の算出処理と同じであるため説明は省略する。加速度を大きくすると、その分ジョイントJ1のトルクが大きくなる。
 そこで、CPU11は、調整部30として、ステップS116で算出した各ジョイントのトルクが目標トルクを満たすか否かを判定する(ステップS118)。目標トルクを満たすか否かの判定処理は、ステップS112の判定処理と同じであるため説明は省略する。
 そして、各ジョイントのトルクが全て目標トルクを満たす場合(ステップS118:YES)は、ステップS120へ移行する。一方、各ジョイントのトルクのうち少なくとも1つのトルクが目標トルクを満たさない場合(ステップS118:NO)は、ステップS114へ戻って再度加速度を制御するための制御量を調整する。すなわち、トルクが小さくなるように加速度を予め定めた値だけ小さくする。
 これにより、ジョイントJ1の動作時間が長くならず且つジョイントJ1のトルクが可能な限り目標トルクに近い値に設定される。
 CPU11は、調整部30として、経路情報及び速度情報をロボットRBに出力する(ステップS120)。すなわち、経路が補正され、加速度が調整された場合は、補正された経路情報及び加速度が調整された速度情報をロボットRBに出力する。一方、経路が補正されなかった場合は、ステップS100で取得した元の経路情報及び速度情報をロボットRBに出力する。これにより、ロボットRBが経路情報及び速度情報に従って動作する。
 以上のように、第1実施形態のロボット制御装置10によれば、経路に経由点を追加してもロボットRBの動作時間が短くなるイナーシャ低減可能区間を判定する。そして、判定したイナーシャ低減可能区間において、ジョイントのトルクが目標トルクを満たしつつ動作時間が短くなるように加速度を制御するための制御量を調整する。このためユーザの習熟度に関わらず、ロボットが高速に動作するようにロボットの加速度を適切に調整することができ、ユーザーの負担を減らすことができる。また、イナーシャを低減可能なため、ジョイントのトルクを小さくすることが可能であり、少ないエネルギーでロボットRBを動作させることが可能となる。
 (第2実施形態)
 次に、第2実施形態について説明する。第2実施形態では、ロボットRBと障害物との干渉を考慮して経路を補正する。なお、第1実施形態と同一部分には同一符号を付し、詳細な説明を省略する。
 図16は、第2実施形態に係るロボット制御装置10Aの機能構成図である。図16に示すように、ロボット制御装置10Aは、第1の取得部20が、障害物情報を取得する。そして、判定部24が、第1の取得部20が取得した障害物情報に基づいて、補正した経路が障害物に干渉するか否かを判定する。
 次に、ロボット制御装置10の作用について説明する。
 図17は、ロボット制御装置10Aによるロボット制御処理の流れを示すフローチャートである。
 図17に示すロボット制御処理は、図8のロボット制御処理と比べて、ステップS100A、S109の処理が異なる。その他のステップの処理は図8のロボット制御処理と同一であるので説明を省略する。
 CPU11は、第1の取得部20として、経路情報及び速度情報の他に、障害物情報を取得する(ステップS100A)。障害物は、ロボットRBの動作において障害となる構造物である。例えばロボット制御装置10Aがピックアンドプレース装置に適用される場合、障害物は、ワークが収容される箱、棚等である。障害物情報は、例えば障害物の三次元形状及び位置を表す座標データ等として得られる。
 CPU11は、判定部24として、ステップS108で補正した経路においてロボットRBが障害物に干渉するか否かを判定する(ステップS109)。ここで、干渉とは、ロボットと障害物とが接触することをいう。干渉の判定には、例えばロボットRBと障害物との干渉を判定する公知の干渉判定技術を用いる。公知の干渉判定技術としては、例えば特開2002-273675号公報に記載の技術を用いることができる。
 ステップS108で補正した経路においてロボットRBが障害物に干渉しない場合(ステップS109:NO)、ステップS110へ移行する。一方、ロボットRBが障害物に干渉する場合(ステップS109:YES)、ステップS108へ移行し、再度経路を補正する。そして、ロボットRBが障害物と干渉しなくなるまで経路を補正する。
 このように、本実施形態では、障害物情報を取得してロボットRBが障害物と干渉するか否かを判定し、障害物に干渉すると判定した場合は障害物と干渉しなくなるまで経路を補正する。これにより、補正した経路でロボットRBが障害物に干渉してしまうのを防ぐことができる。
 (第3実施形態)
 次に、第3実施形態について説明する。第3実施形態では、ロボットRBと障害物との干渉を考慮して経路を補正する。なお、上記各実施形態と同一部分には同一符号を付し、詳細な説明を省略する。
 図18は、第3実施形態に係るロボット制御装置10Bの機能構成図である。図18に示すように、ロボット制御装置10Bは、経路生成部32を備える。
 経路生成部32は、ロボットRBの初期姿勢及び目標姿勢に関する姿勢情報及び障害物に関する障害物情報を取得する。また、経路生成部32は、ロボットRBの仕様情報を取得する。そして、経路生成部32は、取得した姿勢情報、障害物情報、及び仕様情報に基づいてロボットRBの経路情報及び速度情報を生成する。経路生成部32は、生成した経路情報及び速度情報を第1の取得部20に出力する。
 次に、ロボット制御装置10Bの作用について説明する。
 図19は、ロボット制御装置10Bによるロボット制御処理の流れを示すフローチャートである。
 図19に示すロボット制御処理は、図8のロボット制御処理と比べて、ステップS50、S103の処理が異なる。その他のステップの処理は図8のロボット制御処理と同一であるので説明を省略する。
 CPU11は、第1の取得部20として、姿勢情報及び障害物情報を取得する(ステップS50)。
 CPU11は、経路生成部32として、ステップS50で取得した姿勢情報及び障害物情報と、ステップS102で取得した仕様情報と、に基づいて、ロボットRBが障害物に干渉しない経路における経路情報及び速度情報を生成する(ステップS103)。
 経路の生成方法としては種々公知の方法を採用することができる。例えば、経路の生成方法としては、RRT(Rapidly exploring random tree)、RRTの改良版であるRRT*、RRT connect、PRM(Probabilistic Roadmap Method)、STOMP(Stochastic Trajectory Optimization for Motion Planninng)、CHOMP(Covariant Hamiltonian Optimization for Motion Planning)、EET(Exploring/Exploiting Tree)等が挙げられる。
 このように、本実施形態では、ロボットRBの経路を生成する経路生成部32を備えているため、予め経路情報及び速度情報を生成しておく必要がない。
 なお、上記各実施形態では、ジョイントJ1についてイナーシャ低減可能区間を判定する場合について説明したが、他のジョイントについてイナーシャ低減可能区間を判定してもよい。
 また、上記各実施形態では、イナーシャ低減可能区間を判定する際に追加する経由点の数が1つの場合について説明したが、複数の経由点を追加してもよい。この場合、複数の経由点で分割された区間の各々における速度プロファイルを合成し、合成した合成プロファイルを用いてイナーシャ低減可能区間か否かを判定すればよい。
 また、上記各実施形態では、ロボット制御装置の制御対象であるロボットRBが実機の場合について説明したが、ロボット制御装置の制御対象が、シミュレーション上で動作するロボットであってもよい。
 なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行したロボット制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、ロボット制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
 また、上記各実施形態では、ロボット制御プログラムがストレージ14又はROM12に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
10、10A、10B ロボット制御装置
20 第1の取得部
22 第2の取得部
24 判定部
26 補正部
28 算出部
30 調整部
32 経路生成部
RB ロボット

Claims (7)

  1.  ロボットの経路に関する経路情報及び前記ロボットが前記経路を移動する際の速度に関する速度情報を取得する第1の取得部と、
     前記ロボットの仕様に関する仕様情報を取得する第2の取得部と、
     前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記経路に経由点を追加しても前記ロボットの動作時間が短くなる区間を判定する判定部と、
     前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記ロボットの動作時間が短くなる区間において前記ロボットのイナーシャが小さくなるように前記ロボットの経路を補正する補正部と、
     前記経路情報、前記速度情報、及び前記仕様情報に基づいて、補正された経路における前記ロボットの関節に作用する負荷を算出する算出部と、
     前記算出部により算出された負荷が目標負荷を満たすように、前記ロボットの関節の加速度を制御するための制御量を調整する調整部と、
     を備えたロボット制御装置。
  2.  前記第1の取得部は、障害物に関する障害物情報を取得し、
     前記判定部は、前記障害物情報に基づいて前記ロボットが前記障害物に干渉するか否かを判定し、
     前記補正部は、前記ロボットが前記障害物に干渉すると判定された場合に、前記ロボットが前記障害物に干渉しないように前記ロボットの経路を再度補正する
     請求項1記載のロボット制御装置。
  3.  前記ロボットの初期姿勢及び目標姿勢に関する姿勢情報及び障害物に関する障害物情報を取得し、取得した前記姿勢情報、前記障害物情報、及び前記仕様情報に基づいて、前記経路情報及び前記速度情報を生成する経路生成部
     を備えた請求項1記載のロボット制御装置。
  4.  前記判定部は、前記ロボットの動作時間が短くなると判定した区間について、前記経路を補正可能な区間を含むか否かを判定し、
     前記補正部は、前記経路を補正可能な区間と判定した区間のみについて前記経路を補正する
     請求項1~3の何れか1項に記載のロボット制御装置。
  5.  前記判定部は、前記速度情報で表される速度プロファイルから算出された前記ロボットの第1の動作時間と、前記経路に追加した経由点で分割された各区間の速度情報で表される速度プロファイルを合成した合成プロファイルから算出された前記ロボットの第2の動作時間と、を比較し、前記第2の動作時間が前記第1の動作時間未満の場合に、前記経路を前記ロボットの動作時間が短くなる区間と判定する
     請求項1~4の何れか1項に記載のロボット制御装置。
  6.  コンピュータが、
     ロボットの経路に関する経路情報及び前記ロボットが前記経路を移動する際の速度に関する速度情報を取得する第1の取得工程と、
     前記ロボットの仕様に関する仕様情報を取得する第2の取得工程と、
     前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記経路に経由点を追加しても前記ロボットの動作時間が短くなる区間を判定する判定工程と、
     前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記ロボットの動作時間が短くなる区間において前記ロボットのイナーシャが小さくなるように前記ロボットの経路を補正する補正工程と、
     前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記ロボットの関節に作用する負荷を算出する算出工程と、
     前記算出工程により算出された負荷が目標負荷を満たすように、前記ロボットの関節の加速度を制御するための制御量を調整する調整工程と、
     を含む処理を実行するロボット制御方法。
  7.  コンピュータを、
     ロボットの経路に関する経路情報及び前記ロボットが前記経路を移動する際の速度に関する速度情報を取得する第1の取得部、
     前記ロボットの仕様に関する仕様情報を取得する第2の取得部、
     前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記経路に経由点を追加しても前記ロボットの動作時間が短くなる区間を判定する判定部、
     前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記ロボットの動作時間が短くなる区間において前記ロボットのイナーシャが小さくなるように前記ロボットの経路を補正する補正部、
     前記経路情報、前記速度情報、及び前記仕様情報に基づいて、前記ロボットの関節に作用する負荷を算出する算出部、及び、
     前記算出部により算出された負荷が目標負荷を満たすように、前記ロボットの関節の加速度を制御するための制御量を調整する調整部、
     として機能させるためのロボット制御プログラム。
PCT/JP2019/046325 2019-01-15 2019-11-27 ロボット制御装置、ロボット制御方法、及びロボット制御プログラム WO2020149020A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP19910125.4A EP3912767A4 (en) 2019-01-15 2019-11-27 ROBOT CONTROL DEVICE, ROBOT CONTROL METHOD AND ROBOT CONTROL PROGRAM
CN201980059371.8A CN112703090A (zh) 2019-01-15 2019-11-27 机器人控制装置、机器人控制方法及机器人控制程序
US17/275,311 US20220032460A1 (en) 2019-01-15 2019-11-27 Robot Control Device, Robot Control Method, and Recording Medium Storing Robot Control Program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019004310A JP7028196B2 (ja) 2019-01-15 2019-01-15 ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
JP2019-004310 2019-01-15

Publications (1)

Publication Number Publication Date
WO2020149020A1 true WO2020149020A1 (ja) 2020-07-23

Family

ID=71614292

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/046325 WO2020149020A1 (ja) 2019-01-15 2019-11-27 ロボット制御装置、ロボット制御方法、及びロボット制御プログラム

Country Status (5)

Country Link
US (1) US20220032460A1 (ja)
EP (1) EP3912767A4 (ja)
JP (1) JP7028196B2 (ja)
CN (1) CN112703090A (ja)
WO (1) WO2020149020A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113561171B (zh) * 2020-01-05 2023-03-24 牧今科技 具有动态运动调整机制的机器人系统及其操作方法
JP7483597B2 (ja) 2020-12-09 2024-05-15 パナソニックホールディングス株式会社 装着型ロボット

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6126152B2 (ja) 1977-06-06 1986-06-19 Texas Instruments Inc
JP2002273675A (ja) 2001-03-16 2002-09-25 Kawasaki Heavy Ind Ltd ロボット制御方法およびロボット制御システム
JP2014193520A (ja) * 2013-03-28 2014-10-09 Denso Wave Inc 多軸型ロボットの軌道生成方法及び多軸型ロボットの制御装置
JP2016043439A (ja) * 2014-08-21 2016-04-04 株式会社デンソーウェーブ ロボットの制御装置及び制御方法
JP2016172293A (ja) * 2015-03-16 2016-09-29 ファナック株式会社 曲線部を有する軌道を生成するロボットの軌道生成装置
JP2018069428A (ja) * 2016-11-04 2018-05-10 トヨタ自動車株式会社 動作経路計画方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3208722B2 (ja) * 1994-03-28 2001-09-17 日本電信電話株式会社 マニピュレータ用追従装置及び追従制御方法
JP4423719B2 (ja) * 1999-10-28 2010-03-03 株式会社安川電機 ロボットおよびロボットの制御方法
JP2003136466A (ja) * 2001-10-25 2003-05-14 Murata Mach Ltd 産業用ロボットの制御装置
ES2195792B1 (es) * 2002-05-24 2005-03-16 Consejo Sup. Investig. Cientificas Actuador para movimientos de arranque -parada, principalmente en robots caminantes, y el procedimiento para su control.
JP2008194760A (ja) * 2007-02-08 2008-08-28 Toyota Motor Corp ロボットアーム、及びその制御方法
JP5283541B2 (ja) * 2009-03-05 2013-09-04 株式会社神戸製鋼所 ロボットの動作経路生成方法
JP6111563B2 (ja) * 2012-08-31 2017-04-12 セイコーエプソン株式会社 ロボット
JP2014161917A (ja) * 2013-02-21 2014-09-08 Seiko Epson Corp ロボット制御システム、ロボット、ロボット制御方法及びプログラム
US9242376B2 (en) * 2013-03-28 2016-01-26 Denso Wave Incorporated Method of generating path of multiaxial robot and control apparatus for the multiaxial robot
JP6123595B2 (ja) * 2013-09-10 2017-05-10 株式会社デンソーウェーブ 2軸ロボットの速度制御方法
JP2016040066A (ja) * 2014-08-13 2016-03-24 キヤノン株式会社 経路生成方法、経路生成装置、ロボット装置、プログラム及び記録媒体
JP2018065233A (ja) * 2016-10-21 2018-04-26 セイコーエプソン株式会社 ロボット制御装置、ロボット、及びロボットシステム
JP7067289B2 (ja) * 2018-06-08 2022-05-16 トヨタ自動車株式会社 動作計画装置及び動作計画方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6126152B2 (ja) 1977-06-06 1986-06-19 Texas Instruments Inc
JP2002273675A (ja) 2001-03-16 2002-09-25 Kawasaki Heavy Ind Ltd ロボット制御方法およびロボット制御システム
JP2014193520A (ja) * 2013-03-28 2014-10-09 Denso Wave Inc 多軸型ロボットの軌道生成方法及び多軸型ロボットの制御装置
JP6268819B2 (ja) 2013-03-28 2018-01-31 株式会社デンソーウェーブ 多軸型ロボットの軌道生成方法
JP2016043439A (ja) * 2014-08-21 2016-04-04 株式会社デンソーウェーブ ロボットの制御装置及び制御方法
JP2016172293A (ja) * 2015-03-16 2016-09-29 ファナック株式会社 曲線部を有する軌道を生成するロボットの軌道生成装置
JP2018069428A (ja) * 2016-11-04 2018-05-10 トヨタ自動車株式会社 動作経路計画方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3912767A4

Also Published As

Publication number Publication date
JP7028196B2 (ja) 2022-03-02
JP2020110884A (ja) 2020-07-27
EP3912767A1 (en) 2021-11-24
EP3912767A4 (en) 2022-09-28
US20220032460A1 (en) 2022-02-03
CN112703090A (zh) 2021-04-23

Similar Documents

Publication Publication Date Title
CN109202942B (zh) 手控制装置、手控制方法以及手的模拟装置
JP5191738B2 (ja) マニピュレータの制御方法および制御システム
US20140229006A1 (en) Method And Control Means For Controlling A Robot
US9764471B2 (en) Trajectory generation apparatus for robot to generate trajectory including curved portion
WO2013038544A1 (ja) ロボットシステム及びロボット制御装置
EP3427905A1 (en) Motion generation method, motion generation device, system, and computer program
EP1696294A2 (en) Method and apparatus for generating teaching data for a robot
EP2832503A1 (en) Robot system and product manufacturing method
JP7147571B2 (ja) 経路生成装置、経路生成方法、及び経路生成プログラム
JP7124440B2 (ja) ロボット制御装置およびロボットシステム
US9676100B2 (en) Control apparatus of robot, robot, and program thereof
WO2020149020A1 (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
Bratchikov et al. Development of digital twin for robotic arm
JP6057284B2 (ja) 多関節ロボット及び半導体ウェハ搬送装置
JP2013223895A (ja) ロボット制御方法及びロボット制御装置
JP7115090B2 (ja) 加速度調整装置及び加速度調整プログラム
JP4970492B2 (ja) 多関節ロボット
JP4647919B2 (ja) 制御方法および制御装置
WO2019216416A1 (ja) 撓み量推定装置、ロボット制御装置、及び撓み量推定方法
WO2022149570A1 (ja) ロボットの動作シミュレーション装置、ロボットの制御装置、及びロボットの動作シミュレーション方法
US20240116178A1 (en) Predictive control method for torque-rate control and vibration suppression
JP2014124733A (ja) ロボット制御装置及びロボットの制御方法
CN115648219A (zh) 一种绳驱机械臂变刚度规划方法及系统、计算机存储介质
Gong et al. A hierarchical control scheme for coordinated motion of mobile manipulators
JP2013215827A (ja) 多関節ロボット、その関節協調制御装置および方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19910125

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019910125

Country of ref document: EP

Effective date: 20210816