WO2023157137A1 - ロボット制御システム、ロボット制御方法、ロボット制御プログラム、および推定システム - Google Patents

ロボット制御システム、ロボット制御方法、ロボット制御プログラム、および推定システム Download PDF

Info

Publication number
WO2023157137A1
WO2023157137A1 PCT/JP2022/006218 JP2022006218W WO2023157137A1 WO 2023157137 A1 WO2023157137 A1 WO 2023157137A1 JP 2022006218 W JP2022006218 W JP 2022006218W WO 2023157137 A1 WO2023157137 A1 WO 2023157137A1
Authority
WO
WIPO (PCT)
Prior art keywords
external force
robot
torque
torques
disturbance
Prior art date
Application number
PCT/JP2022/006218
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 PCT/JP2022/006218 priority Critical patent/WO2023157137A1/ja
Publication of WO2023157137A1 publication Critical patent/WO2023157137A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators

Definitions

  • One aspect of the present disclosure relates to a robot control system, a robot control method, a robot control program, and an estimation system.
  • an estimated disturbance torque is obtained by a disturbance observer from a torque command to each axis motor of a robot and a speed detection value of each axis.
  • a robotic system is described for estimating external forces using
  • a robot control system executes estimation processing based on a plurality of disturbance torques and a plurality of shaft positions corresponding to a plurality of axes of a robot, and uses an external force acting on an end effector of the robot as an estimated external force. and a robot control unit that controls the robot based on the estimated external force.
  • the external force estimation unit calculates at least one of a plurality of disturbance torques and a plurality of shaft positions as at least part of the estimation processing. Executes calculations using a trained model for external force that is accepted as input.
  • a robot control method is executed by a robot control system including at least one processor.
  • This robot control method includes an external force estimation step of performing estimation processing based on a plurality of disturbance torques and a plurality of shaft positions corresponding to a plurality of axes of the robot, and calculating an external force acting on an end effector of the robot as an estimated external force.
  • a robot control step of controlling the robot based on the estimated external force wherein the external force estimation step receives at least one of a plurality of disturbance torques and a plurality of shaft positions as an input as at least a part of the estimation process. Calculations with pre-defined models.
  • a robot control program executes estimation processing based on a plurality of disturbance torques and a plurality of shaft positions corresponding to a plurality of axes of the robot, and uses an external force acting on an end effector of the robot as an estimated external force. and a robot control step of controlling the robot based on the estimated external force. Calculation is performed using a trained model for external force that accepts at least one of them as an input.
  • the robot can be controlled more accurately.
  • FIG. 1 is a diagram showing a first example of a functional configuration of a disturbance torque estimation system
  • FIG. 5 is a diagram showing a second example of the functional configuration of the disturbance torque estimation system
  • FIG. 4 is a diagram showing an example of multiple candidate positions indicated by a data table
  • It is a figure which shows the 1st example of the function structure of an external force estimation system.
  • It is a figure which shows the 2nd example of the functional structure of an external force estimation system.
  • 4 is a flowchart showing a first example of estimation of disturbance torque; 9 is a flowchart showing a second example of estimation of disturbance torque; 4 is a flowchart showing a first example of external force estimation; 9 is a flow chart showing a second example of external force estimation.
  • FIG. 1 is a diagram showing an example of a robot system 1.
  • the robot system 1 comprises an example robot control system 2 and at least one robot 3 .
  • the robot system 1 is an application example of the robot control system according to the present disclosure.
  • the robot control system 2 is a computer system for operating the robot 3 placed in the actual work space.
  • a motor controller 4 that controls the motors of the robot 3 may also be located in the work space.
  • the robot control system 2 and the motor control device 4 are connected to each other via a communication network.
  • a communication network that connects devices may be a wired network or a wireless network.
  • the communication network may comprise at least one of the Internet and an intranet. Alternatively, the communication network may simply be implemented by a single communication cable.
  • the robot 3 is a device that receives power and performs a predetermined action according to its purpose to perform useful work.
  • the robot 3 has a plurality of joints and is configured to be able to perform various processes while holding an end effector 3b at its tip.
  • a joint is an example of a drive target to be controlled by the robot control system 2 .
  • An axis (joint axis) 3a is set for each of the plurality of joints. Some components of the robot 3, such as the arm and swivel, rotate around the axis 3a, so that the robot 3 can freely change the position and posture of the tip within a predetermined range.
  • the robot 3 is a multi-axis serial link type vertical articulated robot.
  • the robot 3 may be a 6-axis vertical multi-joint robot or a 7-axis vertical multi-joint robot in which one redundant axis is added to the 6 axes.
  • the end effector 3b is a device that acts on the work, such as a device that gives some physical change to the work.
  • the end effector 3b can be various devices such as abrasive tools, welding guns, presses, and the like.
  • the motor is a device that generates power for driving the object to be driven by the robot 3 according to the power supplied from the motor control device 4 .
  • Individual driven objects are operated by individual motors, and as a result, the end effector 3b performs predetermined work on the workpiece.
  • the motor may be a rotary motor that rotates the object to be driven, or a linear motor that displaces the object to be driven along a straight line.
  • the motor may be a synchronous motor or an induction motor.
  • the motor may be a permanent magnet type synchronous motor such as an SPM (Surface Permanent Magnet) motor, an IPM (Interior Permanent Magnet) motor, or the like.
  • the motor may be a synchronous motor without permanent magnets, such as a synchronous reluctance motor.
  • the motor may be a DC motor or an AC motor.
  • the robot 3 may comprise at least one sensor which is a device for detecting the response of the robot 3 operated by power from the motor controller 4.
  • a response is an output of the robot in response to a command, which is an instruction for controlling the robot.
  • the response indicates information about the behavior and/or state of the robot 3 .
  • the response may indicate information regarding the operation and/or status of the motor, for example, shaft speed and/or pole position of the motor.
  • the motor is a rotary type
  • the rotation angle of the object driven by the motor corresponds to the "position”
  • the rotation speed of the object driven by the motor corresponds to the "speed”.
  • the response may indicate information about the motion and/or state of the driven object, for example the position, velocity and/or force of the driven object.
  • the sensor sends a response signal to the robot control system 2 indicating the response.
  • the response may be the value itself obtained by the sensor, or may be represented by a value calculated or processed by a given operation or algorithm.
  • An example of a sensor is a rotary encoder that outputs a pulse signal with a frequency proportional to the operating speed of the motor. A rotary encoder can obtain both the position and speed of the motor.
  • the motor control device 4 is a device for causing the motor output to follow the command from the robot control system 2 .
  • the motor control device 4 generates electric power for moving the motors based on commands from the robot control system 2 and supplies the electric power to the motors. This supplied electric power corresponds to a driving force command such as a torque command and a current command.
  • the motor control device 4 may be, for example, an inverter or a servo amplifier.
  • the motor controller 4 may be incorporated within the robot 3 .
  • the motor control device 4 may include a sensor that detects its own response.
  • the robot control system 2 operates the robot 3 by position and force hybrid control (also simply referred to as "hybrid control").
  • position and force hybrid control also simply referred to as "hybrid control”
  • Hybrid control is one method for achieving that appropriate control.
  • Hybrid control acquires the position and force for each of the position control axis and the force control axis, and feeds back these positions and forces to the position control loop and force control loop to follow the target value, thereby determining the position of the robot 3.
  • the position control axis is a coordinate axis that defines the direction in which the position of the robot 3 is desired to be controlled
  • the force control axis is a coordinate axis that defines the direction in which the force of the robot 3 is desired to be controlled.
  • the force control axis is orthogonal to the position control axis.
  • the robot control system 2 estimates the external force acting on the end effector 3b and controls the robot 3 based on the external force.
  • the external force estimated by the robot control system 2 is also called "estimated external force".
  • the robot control system 2 can accurately control the robot 3 even when the robot 3 does not have a force sensor for detecting force, that is, even when the robot 3 does not have a force sensor. It is difficult to introduce force control using a force sensor if the sensor system including the force sensor is expensive or if there is concern that the sensor system is likely to break down due to environmental factors such as dust and water droplets.
  • the robot control system 2 may calculate an estimated external force and control the robot 3 based on the estimated external force.
  • the robot control system 2 acquires a plurality of disturbance torques corresponding to a plurality of axes 3a of the robot 3, that is, the disturbance torques of each axis 3a, and calculates an estimated external force based on these disturbance torques.
  • the disturbance torque is the difference between the torque command to the motor and the actual torque obtained as a response.
  • Disturbance torque can also be said to be torque generated by unintended disturbance.
  • the robot control system 2 acquires disturbance torques for each of the 6 axes and calculates an estimated external force based on the 6 disturbance torques.
  • the robot control system 2 may estimate a plurality of disturbance torques corresponding to a plurality of axes 3a.
  • the robot control system 2 includes a disturbance torque estimation system 10, an external force estimation system 20, and a robot control section 30 as functional components.
  • the disturbance torque estimation system 10 is a subsystem that calculates a plurality of disturbance torques corresponding to a plurality of axes 3a of the robot 3.
  • the disturbance torque estimation system 10 uses a reference torque model to calculate the disturbance torque.
  • the reference torque model is a calculation model that reflects the relationship between the trajectory of the end effector 3b and a plurality of reference torques corresponding to the plurality of axes 3a of the robot 3 that operates along the trajectory without disturbance.
  • the reference torque refers to the torque output to control the axis 3a when the robot 3 is operated along a given trajectory without disturbance.
  • the disturbance torque estimating system 10 calculates a plurality of disturbance torques on the actual trajectory based on the reference torque model and a plurality of actual torques corresponding to the plurality of axes 3a of the robot 3 operating along the actual trajectory.
  • An actual trajectory is a trajectory that indicates the actual motion of the robot 3 .
  • the disturbance torque estimation system 10 identifies a plurality of reference torques based on a reference torque model and posture information indicating the posture of the robot 3 on the actual trajectory. Then, the disturbance torque estimation system 10 calculates the difference between the actual torque and the reference torque as the disturbance torque for each of the plurality of shafts 3a.
  • the external force estimation system 20 performs estimation processing based on a plurality of disturbance torques and a plurality of shaft positions corresponding to the plurality of axes 3a of the robot 3, and calculates the external force acting on the end effector 3b of the robot 3 as an estimated external force. It's a subsystem.
  • An axial position means a position with respect to one axis 3a, and is represented by, for example, a rotation angle. For example, if the robot 3 is a 6-axis vertical multi-joint robot, the robot control system 2 obtains the axis positions for each of the 6 axes, and performs estimation processing based on the 6 disturbance torques and the 6 axis positions. Execute.
  • the external force estimation system 20 performs calculation using an external force trained model that receives at least one of a plurality of disturbance torques and a plurality of shaft positions as inputs.
  • shaft position include the feedback position resulting from the response and the command position used to generate commands to the motor controller 4 .
  • the feedback position represents the actual position of axis 3a.
  • the command position represents the target position of the axis 3a.
  • the robot control system 2 will be described using the feedback position as an example of the axis position.
  • the robot control unit 30 is a functional module that controls the robot 3 based on the estimated external force calculated by the external force estimation system 20.
  • the robot controller 30 outputs a command based on the estimated external force to the motor controller 4 .
  • the motor control device 4 Based on the command, the motor control device 4 generates electric power for operating the motor and supplies the electric power to the motor.
  • the robot control system 2 can be realized by any kind of computer.
  • the computer may be a general-purpose computer such as a personal computer or a server for business use, or may be incorporated in a dedicated device that executes specific processing.
  • the robot control system 2 may be implemented by a single computer, or may be implemented by a distributed system having multiple computers.
  • FIG. 2 is a diagram showing an example of the hardware configuration of the computer 100 used for the robot control system 2. As shown in FIG. In this example, computer 100 comprises main body 110 , monitor 120 and input device 130 .
  • the main body 110 is a device having a circuit 160.
  • Circuitry 160 has at least one processor 161 , memory 162 , storage 163 , input/output ports 164 and communication ports 165 .
  • Storage 163 records programs for configuring each functional module of main body 110 .
  • the storage 163 is a computer-readable recording medium such as a hard disk, nonvolatile semiconductor memory, magnetic disk, or optical disk.
  • the memory 162 temporarily stores programs loaded from the storage 163, calculation results of the processor 161, and the like.
  • the processor 161 configures each functional module by executing programs in cooperation with the memory 162 .
  • the input/output port 164 inputs and outputs electrical signals to/from the monitor 120 or the input device 130 according to instructions from the processor 161 .
  • the input/output port 164 may input/output electrical signals to/from other devices.
  • Communication port 165 performs data communication with other devices via communication network N according to instructions from processor 161 .
  • the monitor 120 is a device for displaying information output from the main body 110 .
  • the monitor 120 may be of any type as long as it can display graphics, and a specific example thereof is a liquid crystal panel.
  • the input device 130 is a device for inputting information to the main body 110.
  • the input device 130 may be of any type as long as desired information can be input, and specific examples thereof include operation interfaces such as a keypad, mouse, and operation controller.
  • the monitor 120 and the input device 130 may be integrated as a touch panel.
  • the main body 110, the monitor 120, and the input device 130 may be integrated like a tablet computer.
  • Each functional module of the robot control system 2 is realized by loading a robot control program onto the processor 161 or memory 162 and causing the processor 161 to execute the program.
  • the robot control program includes code for realizing each functional module of the robot control system.
  • the processor 161 operates the input/output port 164 or the communication port 165 according to the robot control program to read and write data in the memory 162 or storage 163 .
  • the robot control program may be provided after being permanently recorded on a non-temporary recording medium such as a CD-ROM, DVD-ROM, or semiconductor memory.
  • the robot control program may be provided over a communication network as a data signal superimposed on a carrier wave.
  • FIG. 3 is a diagram showing a first example of the functional configuration of the disturbance torque estimation system 10 as a disturbance torque estimation system 10A.
  • the disturbance torque estimation system 10A includes a torque learning section 111, a storage section 112, and a disturbance torque estimation section 113 as functional components.
  • the torque learning unit 111 is a functional module that generates a torque trained model 119, which is an example of a reference torque model.
  • the trained torque model 119 is a calculation model that receives as input a plurality of feedback positions corresponding to the plurality of axes 3a of the robot 3 on the actual trajectory and calculates a plurality of reference torques corresponding to the plurality of axes 3a. be.
  • Torque learning unit 111 performs machine learning based on teacher data indicating at least a plurality of combinations of a plurality of feedback positions and a plurality of reference torques used as correct values to generate trained torque model 119. do.
  • Machine learning refers to a method of autonomously discovering laws or rules by repeatedly learning based on given information.
  • the training data prepared in advance is generated, for example, based on response data collected while the robot 3 is operated in various postures under conditions in which the robot 3 is not subject to disturbance.
  • a trained model for torque 119 is built using algorithms and data structures.
  • the trained model for torque 119 is generated in a manner that includes a neural network such as a convolutional neural network (CNN).
  • CNN convolutional neural network
  • the storage unit 112 is a functional module that stores the torque trained model 119 generated by the torque learning unit 111 .
  • the disturbance torque estimator 113 estimates a plurality of disturbance torques on the actual trajectory based on the torque trained model 119 and a plurality of actual torques corresponding to the plurality of axes 3a of the robot 3 that operates along the actual trajectory. It is a function module that calculates. Disturbance torque estimator 113 outputs the plurality of disturbance torques to external force estimation system 20 .
  • FIG. 4 is a diagram showing a second example of the functional configuration of the disturbance torque estimation system 10 as a disturbance torque estimation system 10B.
  • the disturbance torque estimation system 10B includes a storage section 121 and a disturbance torque estimation section 122 as functional components.
  • the storage unit 121 is a functional module that stores a data table 129 that is an example of a reference torque model.
  • the data table 129 is a calculation model showing the relationship between each of the plurality of candidate positions of the end effector 3b and the plurality of reference torques corresponding to the plurality of shafts 3a.
  • the reference torque of each shaft 3a can be identified at each candidate position.
  • the data table 129 is implemented as a correspondence table between candidate positions and reference torques of the respective axes 3a.
  • the data table 129 is pre-stored in the storage unit 121 by an administrator of the robot control system 2 .
  • FIG. 5 is a diagram showing an example of multiple candidate positions indicated by the data table 129.
  • FIG. This example shows four possible candidate trajectories 301-304 of the end effector 3b traveling along the surface of the workpiece 9.
  • each of the candidate trajectories 301-304 is a set of candidate positions.
  • Candidate trajectories 301 to 304 are set to extend parallel to each other, for example, along the surface of workpiece 9 .
  • one of the candidate trajectories 301-304 may be a reference trajectory that is set as a target for motion of the end effector 3b.
  • the candidate trajectory 301 may be set as the reference trajectory, and the candidate trajectories 302 to 304 may be set as other candidate trajectories.
  • the candidate trajectories 301 to 304 are set at different positions in the force control axis direction of the robot 3 .
  • the actual trajectory of the end effector 3b may deviate from the reference trajectory due to various factors such as commands from the robot control unit 30 and the degree of contact between the end effector 3b and the workpiece 9.
  • Real trajectory 310 in FIG. 5 shows an example of such a situation.
  • Each of the plurality of candidate positions that may be selected to specify the reference torque at a certain point in time is one of the plurality of candidate trajectories 301 to 304 set at mutually different positions in the direction of the force control axis of the robot.
  • at least one candidate position is selected from a plurality of candidate positions aligned along the force control axis.
  • the disturbance torque estimating unit 122 calculates a plurality of torques on the actual trajectory based on the data table 129 and a plurality of actual torques corresponding to the plurality of axes 3a of the robot 3 operating along the actual trajectory. This is a functional module that calculates disturbance torque.
  • the disturbance torque estimator 122 outputs the plurality of disturbance torques to the external force estimation system 20 .
  • FIG. 6 is a diagram showing a first example of the functional configuration of the external force estimation system 20 as an external force estimation system 20A.
  • the external force estimation system 20A includes an external force learning unit 211, a storage unit 212, and an external force estimation unit 213 as functional components.
  • the external force learning unit 211 is a functional module that generates an external force trained model 219 for calculating an estimated external force.
  • the external force trained model 219 is a calculation model that receives as inputs a plurality of disturbance torques and a plurality of feedback positions corresponding to the plurality of shafts 3a and calculates an estimated external force.
  • the external force trained model 219 calculates an estimated external force as a result of reflecting the transmission efficiency of each of a plurality of disturbance torques.
  • the estimated external force is calculated based on the transmission torque, which is the torque transmitted from the shaft 3a to the end effector 3b.
  • Torque transmission is related to transmission efficiency, which indicates the ratio of torque transmitted to the end effector 3b, and reduction ratio, which indicates the ratio of reducing the rotational speed of the motor.
  • the speed reduction ratio can be considered as a fixed value.
  • the transmission efficiency dynamically changes due to factors such as fluctuations in the load applied to each shaft 3a and deterioration of the speed reducer, it is difficult to calculate it accurately. Therefore, it is not easy to calculate the estimated external force.
  • the external force learning unit 211 executes machine learning to generate the external force trained model 219 . By machine learning, it is possible to obtain the external force trained model 219 that accurately reflects not only the speed reduction ratio but also the transmission efficiency, so accurate calculation of the estimated external force can be expected.
  • the external force learning unit 211 performs machine learning based on teacher data indicating a plurality of combinations of the disturbance torque and the feedback position of each axis 3a and the actual external force that is the external force actually acting on the end effector 3b, A trained model 219 for external force is generated.
  • the actual external force is used as the correct value for machine learning.
  • the training data prepared in advance is generated, for example, based on response data collected while operating the robot 3 in various postures under conditions where an outpatient may occur.
  • a force sensor is mounted on the robot 3 to obtain the actual external force.
  • the external force trained model 219 is constructed using algorithms and data structures.
  • the external force trained model 219 is generated in a manner that includes a neural network such as a convolutional neural network (CNN). Generation of the external force trained model 219 by the external force learning unit 211 corresponds to the learning phase.
  • CNN convolutional neural network
  • the storage unit 212 is a functional module that stores the external force trained model 219 generated by the external force learning unit 211 .
  • the external force estimator 213 is a functional module that executes estimation processing based on a plurality of disturbance torques and a plurality of feedback positions corresponding to a plurality of axes 3a to calculate an estimated external force.
  • the external force estimator 213 executes calculation by the external force trained model 219 as the estimation process.
  • the external force estimator 213 executes calculation by the neural network as at least part of the estimation processing.
  • the external force estimator 213 outputs the estimated external force to the robot controller 30 .
  • FIG. 7 is a diagram showing a second example of the functional configuration of the external force estimation system 20 as an external force estimation system 20B.
  • the external force estimation system 20B includes an external force learning unit 221, a storage unit 222, an optimization unit 223, a matrix setting unit 224, and an external force estimation unit 225 as functional components.
  • the external force learning unit 221 is a functional module that generates an external force learned model 229 for calculating the transmission torque.
  • the external force trained model 229 is a calculation model for calculating the transmission torque for each of the plurality of shafts 3a based on the plurality of disturbance torques corresponding to the plurality of shafts 3a.
  • the external force trained model 229 calculates a plurality of transmission torques as a result of reflecting the transmission efficiency of each of the plurality of disturbance torques.
  • the external force learning unit 221 executes machine learning to generate an external force trained model 229 .
  • machine learning it is possible to obtain the external force trained model 229 that accurately reflects not only the speed reduction ratio but also the transmission efficiency, so accurate calculation of the transmission efficiency can be expected.
  • the external force learning unit 221 executes machine learning based on teacher data indicating a plurality of combinations of the disturbance torque and the feedback position of each axis 3a and the actual external force of the end effector 3b to generate the external force trained model 229. Generate.
  • indicates the vector of the transmitted torque
  • J indicates the Jacobian matrix defined based on the vector ⁇ of the feedback position
  • F indicates the actual external force.
  • the external force learning unit 221 generates an external force trained model 229 by executing machine learning based on a plurality of disturbance torques indicated by the teacher data and a plurality of correct transmission torque values.
  • Teacher data is prepared based on the motion of the robot 3 .
  • the training data prepared in advance is generated, for example, based on response data collected while operating the robot 3 having force sensors in various postures under conditions where an external force may occur.
  • the external force trained model 229 is also constructed using algorithms and data structures, for example generated in a manner including a neural network such as a convolutional neural network (CNN). Generation of the external force trained model 229 by the external force learning unit 221 corresponds to the learning phase.
  • CNN convolutional neural network
  • the storage unit 222 is a functional module that stores the external force trained model 229 generated by the external force learning unit 221 .
  • the optimization unit 223 is a functional module that optimizes structural parameters that indicate the structure of the robot 3.
  • the optimization section 223 outputs the optimized structural parameters to the matrix setting section 224 .
  • This structural parameter indicates the amount of deviation from the design value regarding the structure of the robot 3 .
  • the structural parameter may indicate the sum of the design value and the amount of deviation.
  • the amount of deviation is at least one of the amount of deviation from the design value of the link length of the robot 3, the deflection amount of the link, the amount of deviation of each axis 3a from the origin of the given coordinate axis, and the error of the encoder. can be
  • the optimization unit 223 optimizes structural parameters based on the difference between the estimated external force and the actual external force of the end effector 3b.
  • the optimization unit 223 optimizes the structural parameters by performing optimization to minimize the error between the estimated external force and the actual external force of the end effector 3b.
  • the optimization is achieved by an approach using black-box functions, eg Bayesian optimization may be used.
  • the minimized error may be represented by the root mean square of multiple errors.
  • Structural parameters are optimized in advance before actual operation by the robot control system 2.
  • the data used for optimization are collected, for example, during commissioning of the robot control system 2 .
  • a force sensor is mounted on the robot 3 to obtain an actual external force.
  • optimal structural parameters refer to structural parameters obtained based on calculations by the optimization unit 223.
  • Optimized structural parameters refer to structural parameters that are acceptable as optimal structural parameters, eg, structural parameters that are presumed to be optimal. Note that “optimized structural parameters” are not necessarily optimal structural parameters in reality.
  • the matrix setting unit 224 is a functional module that sets the Jacobian matrix J for calculating the estimated external force based on multiple feedback positions corresponding to multiple axes 3a and structural parameters.
  • the matrix setter 224 sets the Jacobian matrix J based on multiple feedback locations and optimized structural parameters.
  • Matrix setting section 224 outputs Jacobian matrix J to external force estimation section 225 .
  • the external force estimator 225 is a functional module that executes estimation processing based on a plurality of disturbance torques and a plurality of feedback positions corresponding to a plurality of shafts 3a to calculate an estimated external force.
  • the external force estimator 225 outputs the estimated external force to the robot controller 30 .
  • the external force estimating unit 225 executes calculation by the external force trained model 229 as at least part of its estimation processing.
  • the external force trained model 229 includes a neural network
  • the external force estimating section 225 executes calculation by the neural network as at least part of the estimation processing.
  • the external force estimator 225 includes a transmission torque calculator 226 and an estimated external force calculator 227 .
  • the transmission torque calculation unit 226 is a functional module that inputs a plurality of disturbance torques corresponding to the plurality of shafts 3a to the external force learned model 229 and calculates a plurality of transmission torques corresponding to the plurality of shafts 3a.
  • Transmission torque calculation section 226 outputs a plurality of transmission torques to estimated external force calculation section 227 .
  • the estimated external force calculator 227 is a functional module that calculates an estimated external force based on the plurality of transmission torques. In one example, the estimated external force calculator 227 calculates the estimated external force based on a plurality of transmission torques and the Jacobian matrix J.
  • FIG. 8 and 9 show examples of processing in the disturbance torque estimation system 10
  • FIGS. 10 and 11 show examples of processing in the external force estimation system 20 and the robot controller 30.
  • FIG. FIG. 8 is a flowchart showing an example of processing in the disturbance torque estimation system 10A as a processing flow S1A.
  • FIG. 9 is a flow chart showing an example of processing in the disturbance torque estimation system 10B as a processing flow S1B.
  • FIG. 10 is a flow chart showing an example of processing in the external force estimation system 20A and the robot control section 30 as a processing flow S2A.
  • FIG. 11 is a flow chart showing an example of processing in the external force estimation system 20B and the robot control section 30 as a processing flow S2B. That is, the robot control system 2 executes the processing flow S1A or S1B for estimating the disturbance torque, and executes the processing flow S2A or S2B for estimating the external force.
  • the processing flow S1A is executed after the trained model for torque 119 is stored in the storage unit 112 . Therefore, the processing flow S1A corresponds to the operation phase.
  • step S111 the disturbance torque estimation unit 113 acquires the response data of the robot 3.
  • the response data is electronic data indicating the response of the robot 3 or motor control device 4 .
  • the response data indicates, for example, the feedback position and actual torque of each shaft 3a.
  • step S112 the disturbance torque estimator 113 inputs the feedback position to the learned torque model 119 to calculate the reference torque.
  • the feedback position is an example of posture information indicating the posture of the robot 3 on the actual trajectory.
  • the disturbance torque estimating unit 113 reads out the learned torque model 119 from the storage unit 112 .
  • the disturbance torque estimator 113 inputs the feedback position of each axis 3a to the learned torque model 119 to calculate the reference torque of each axis 3a.
  • step S113 the disturbance torque estimator 113 calculates the disturbance torque based on the actual torque and the reference torque.
  • the disturbance torque estimator 113 calculates the difference between the actual torque and the reference torque as the disturbance torque for each of the plurality of shafts 3a.
  • the disturbance torque estimator 113 outputs the disturbance torque of each shaft 3 a to the external force estimation system 20 .
  • the disturbance torque estimation unit 122 acquires the response data of the robot 3.
  • the response data indicates, for example, the feedback position of each axis 3a and the actual position of the end effector 3b. Similar to the feedback position, the actual position of the end effector 3b is also an example of posture information.
  • the actual position of the end effector 3b may be obtained directly by a given sensor or indirectly by calculation based on multiple feedback positions corresponding to multiple axes 3a.
  • the disturbance torque estimator 122 refers to the data table 129 and selects at least one candidate position corresponding to the actual position of the end effector 3b from a plurality of candidate positions. In one example, the disturbance torque estimator 122 selects at least one candidate position from a plurality of candidate positions set along the force control axis direction of the robot 3 . The disturbance torque estimator 122 may select a candidate position that matches the actual position of the end effector 3b, or may select a candidate position closest to the actual position. Alternatively, the disturbance torque estimator 122 may select two candidate positions that sandwich the actual position.
  • the disturbance torque estimator 122 identifies the reference torque of each axis 3a based on at least one selected candidate position. For example, the disturbance torque estimator 122 refers to the data table 129 to identify the reference torque of each axis 3a corresponding to at least one selected candidate position. When a single candidate position is selected, the disturbance torque estimator 122 refers to the data table 129 to identify the reference torque of each shaft 3a corresponding to that candidate position. When two candidate positions consisting of the first candidate position and the second candidate position are selected, the disturbance torque estimating section 122 refers to the data table 129 and selects the first candidate position for each of the plurality of axes 3a.
  • a corresponding first reference torque and a second reference torque corresponding to the second candidate position are identified. Then, the disturbance torque estimator 122 executes interpolation using the first reference torque and the second reference torque for each of the plurality of shafts 3a to calculate the reference torque at the actual position. This calculation is a specific example of a reference torque.
  • the data table 129 defines, for each of the four candidate trajectories 301-304 of the end effector 3b, a set of candidate positions that make up the candidate trajectory, and a reference for each axis 3a at each candidate position. Specify torque.
  • the actual position of the end effector 3b operating along the actual trajectory 310 is the actual position 321 at time T1, the actual position 322 at time T2, the actual position 323 at time T3, and the actual position 323 at time T3. Assume that the actual position is 324 at T4, the actual position 325 at time T5, and the actual position 326 at time T6.
  • the disturbance torque estimator 122 selects a candidate position on the candidate trajectory 301 and specifies the reference torque of each axis 3a corresponding to the candidate position.
  • the disturbance torque estimator 122 selects a candidate position on the candidate trajectory 302 and identifies the reference torque of each axis 3a corresponding to the candidate position.
  • disturbance torque estimating section 122 selects a candidate position on candidate trajectory 302 and a candidate position on candidate trajectory 303 as two candidate positions that exist so as to sandwich actual position 323. good too.
  • the disturbance torque estimator 122 identifies the reference torque of each axis 3a at each of the two candidate positions, and calculates the reference torque of each axis 3a at the actual position 323 by interpolation.
  • the disturbance torque estimator 122 may select the candidate position closer to the actual position 323 from among the two candidate positions, and specify the reference torque of each shaft 3a corresponding to the selected candidate position.
  • the disturbance torque estimator 122 selects a candidate position on the candidate trajectory 303 and identifies the reference torque of each axis 3a corresponding to the candidate position.
  • the disturbance torque estimator 122 may select the candidate position on the candidate trajectory 301 that is closest to the actual position 325, and specify the reference torque of each axis 3a corresponding to that candidate position.
  • disturbance torque estimating section 122 may select a candidate position on candidate trajectory 301 and a candidate position on candidate trajectory 302 as two candidate positions that sandwich actual position 325 .
  • the disturbance torque estimator 122 identifies the reference torque of each axis 3a at each of the two candidate positions, and calculates the reference torque of each axis 3a at the actual position 323 by interpolation.
  • the disturbance torque estimator 122 selects a candidate position on the candidate trajectory 304 and specifies the reference torque of each shaft 3a corresponding to the candidate position.
  • the disturbance torque estimator 122 calculates the disturbance torque based on the actual torque and the reference torque.
  • the disturbance torque estimator 122 calculates the difference between the actual torque and the reference torque as the disturbance torque for each of the plurality of shafts 3a.
  • the disturbance torque estimator 122 outputs the disturbance torque of each shaft 3 a to the external force estimation system 20 .
  • Processing flow S2A is executed after external force trained model 219 is stored in storage unit 212 . Therefore, the processing flow S2A corresponds to the operation phase.
  • the external force estimation unit 213 acquires the disturbance torque.
  • the external force estimator 213 acquires the disturbance torque of each shaft 3a estimated by the disturbance torque estimation system 10.
  • step S212 the external force estimation unit 213 acquires the response data of the robot 3.
  • the response data indicates the feedback position of each axis 3a.
  • the external force estimator 213 may use response data acquired by the disturbance torque estimation system 10 .
  • step S213 the external force estimation unit 213 inputs the disturbance torque and the feedback position to the external force trained model 219 to calculate the estimated external force.
  • the external force estimating unit 213 reads the external force trained model 219 from the storage unit 212, inputs the disturbance torque and the feedback position of each axis 3a to the external force trained model 219, and calculates an estimated external force.
  • the external force estimator 213 outputs the estimated external force to the robot controller 30 .
  • the robot control unit 30 controls the robot 3 based on the estimated external force. For example, the robot control unit 30 performs feedback control on each of a position command value indicating a position to be achieved by the robot 3 and a force command value indicating a force to be achieved by the robot 3, thereby performing acceleration control. Calculate the acceleration reference value, which is the reference value of the command. In one example, the estimated external force is used in this feedback control.
  • the robot control unit 30 calculates a force reference value, which is a reference value for the force command, from the acceleration reference value. In this calculation, the robot control unit 30 may calculate the force reference value further based on the disturbance calculated by the disturbance observer.
  • the robot controller 30 converts the force reference to a torque reference by inverse kinematics calculations and generates commands based on the torque reference.
  • the robot controller 30 outputs the command to the motor controller 4 to control the robot 3 .
  • the robot control system 2 can repeatedly execute steps S211 to S214 until predetermined processing is completed. For example, the robot control system 2 repeats steps S211-S214 at predetermined intervals. In relation to the repeated step S211, the disturbance torque estimation system 10 executes the process flow S1A or S1B again to calculate the disturbance torque of each axis 3a.
  • the processing flow S2B is executed after the external force trained model 229 is stored in the storage unit 222 and the structural parameters are optimized. Therefore, the processing flow S2B corresponds to the operation phase.
  • Step S221 the external force estimation unit 225 acquires the disturbance torque.
  • Step S221 is the same as step S211.
  • step S222 the external force estimation unit 225 acquires the response data of the robot 3.
  • Step S222 is the same as step S212.
  • step S223 the transmission torque calculation unit 226 inputs the disturbance torque to the external force learned model 229 to calculate the transmission torque.
  • the transmission torque calculation unit 226 reads the external force learned model 229 from the storage unit 222, inputs the disturbance torque of each axis 3a to the external force learned model 229, and calculates the transmission torque of each axis 3a.
  • step S224 the matrix setting unit 224 sets the Jacobian matrix J based on the feedback position and structure parameters.
  • F be the force in the coordinate system ⁇ of the working space
  • F' be the force in the coordinate system ⁇ ' of the joint space
  • P (px, py, pz) be the position on the coordinate system ⁇ viewed from the coordinate system ⁇ '.
  • the rotation matrix is R
  • the Jacobian matrix J is expressed by Equation (1).
  • the position P is the sum of the link length of the robot 3 and the deviation of the link length from the design value.
  • the rotation matrix R is calculated from the feedback position of each axis 3a and the amount of deviation of each axis 3a from the origin. Both the position P and the amount of deviation of each axis 3a are examples of structural parameters, and also examples of amounts of deviation from design values relating to the structure of the robot 3 .
  • the estimated external force calculator 227 calculates an estimated external force based on the transmission torque and the Jacobian matrix J.
  • the estimated external force calculator 227 calculates an estimated external force based on the transmission torque of each shaft 3a and the Jacobian matrix J.
  • the Jacobian matrix J is defined based on the feedback position vector ⁇ .
  • Step S226 the robot control unit 30 controls the robot 3 based on the estimated external force.
  • Step S226 is the same as step S214.
  • the robot control system 2 can repeatedly execute steps S221 to S226 until the predetermined processing is completed. For example, the robot control system 2 repeats steps S221-S226 at predetermined intervals.
  • the disturbance torque estimation system 10 executes the processing flow S1A or S1B again to calculate the disturbance torque.
  • the matrix setting unit 224 updates the Jacobian matrix J based on the newly obtained feedback position and structure parameters. At least some matrix elements of the Jacobian matrix J may change due to this update.
  • the robot control system executes estimation processing based on a plurality of disturbance torques and a plurality of shaft positions corresponding to a plurality of axes of the robot, and acts on the end effector of the robot.
  • an external force estimating unit that calculates the estimated external force as an estimated external force; and a robot control unit that controls the robot based on the estimated external force. Calculation is performed using a trained model for external force that accepts at least one of position and position as input.
  • a robot control method is executed by a robot control system including at least one processor.
  • This robot control method includes an external force estimation step of performing estimation processing based on a plurality of disturbance torques and a plurality of shaft positions corresponding to a plurality of axes of the robot, and calculating an external force acting on an end effector of the robot as an estimated external force.
  • a robot control step of controlling the robot based on the estimated external force wherein the external force estimation step receives at least one of a plurality of disturbance torques and a plurality of shaft positions as an input as at least a part of the estimation process. Calculations with pre-defined models.
  • a robot control program executes estimation processing based on a plurality of disturbance torques and a plurality of shaft positions corresponding to a plurality of axes of the robot, and uses an external force acting on an end effector of the robot as an estimated external force. and a robot control step of controlling the robot based on the estimated external force. Calculation is performed using a trained model for external force that accepts at least one of them as an input.
  • An estimation system performs estimation processing based on a plurality of disturbance torques and a plurality of shaft positions corresponding to a plurality of axes of the robot, and calculates an external force acting on the end effector of the robot as an estimated external force.
  • the external force estimating unit executes calculation by an external force trained model that receives at least one of a plurality of disturbance torques and a plurality of shaft positions as an input.
  • the external force can be estimated more accurately.
  • the robot can be controlled more accurately. In one example, such highly accurate control can be achieved without using force sensors.
  • the external force trained model calculates a result reflecting the transmission efficiency of each of the plurality of disturbance torques
  • the external force estimator calculates at least the plurality of disturbance torques from the external force trained model.
  • the external force trained model includes a neural network generated by machine learning using teacher data based on the motion of the robot, and the external force estimator, as at least part of the estimation process, , may perform neural network computations. It is difficult to calculate the transmission efficiency of disturbance torque that affects the external force acting on the end effector. By introducing a neural network, its transmission efficiency can be more appropriately reflected in the trained model for external force. As a result, the external force can be estimated more accurately.
  • the external force trained model calculates transmission torque, which is torque transmitted to the end effector, for each of the plurality of axes based on the plurality of disturbance torques
  • the external force estimation unit may input a plurality of disturbance torques to the learned model for external force, calculate a plurality of transmission torques corresponding to a plurality of axes, and calculate the estimated external force based on the plurality of transmission torques.
  • a robot control system further includes a matrix setting unit that sets a Jacobian matrix based on a plurality of axis positions and structural parameters representing the structure of the robot, and the external force estimating unit calculates the plurality of transmission torques and the Jacobian matrix You may calculate an estimated external force based on.
  • the external force can be estimated more accurately by using the Jacobian matrix that takes into account the axial positions and structural parameters of the robot.
  • a robot control system further comprises an optimization unit for optimizing structural parameters based on a difference between an estimated external force and an actual external force that is an external force actually acting on the end effector, the matrix setting unit comprising , may update the Jacobian matrix based on the optimized structure parameters.
  • the optimization unit may optimize a structural parameter that indicates the amount of deviation from design values regarding the structure of the robot. Since the Jacobian matrix reflecting the amount of deviation from the design value is obtained, it is possible to estimate the external force more accurately by considering the current state of the robot that has changed from the structure at the time of design.
  • a robot control system performs machine learning based on teacher data indicating a plurality of combinations of a plurality of disturbance torques, a plurality of shaft positions, and an actual external force that is an external force actually acting on an end effector. and an external force learning unit that generates an external force trained model for calculating a plurality of transmission torques.
  • a trained model used for calculating the transmission torque can be prepared within the robot control system.
  • the external force learning unit calculates a plurality of correct transmission torque values based on a plurality of shaft positions and actual external forces for each of a plurality of combinations, and the correct values are indicated by teacher data.
  • Machine learning may be performed based on a plurality of disturbance torques and a plurality of correct transmission torque values to generate the external force trained model. Since the correct value of the transmission torque, which is difficult to measure, can be obtained by calculation, the correct value can be obtained more easily.
  • the external force trained model receives a plurality of disturbance torques and a plurality of shaft positions as inputs to calculate the estimated external force
  • the external force estimator receives the plurality of disturbance torques and the plurality of shaft positions.
  • the estimated external force may be calculated by inputting the position into the trained model for external force. Since the entire estimation process is realized by the trained model, the external force can be estimated more accurately while simplifying the configuration related to this estimation process.
  • a robot control system performs machine learning based on teacher data indicating a plurality of combinations of a plurality of disturbance torques, a plurality of shaft positions, and an actual external force that is an external force actually acting on an end effector. and an external force learning unit that generates an external force trained model for calculating the estimated external force.
  • a trained model used for calculating the estimated external force can be prepared within the robot control system.
  • a robot control system creates a reference torque model that reflects a relationship between a trajectory of an end effector and a plurality of reference torques corresponding to a plurality of axes of a robot that operates along the trajectory without being subject to disturbance.
  • a disturbance torque estimating unit for calculating a plurality of disturbance torques on an actual trajectory based on a storage unit for storage, a reference torque model, and a plurality of actual torques corresponding to a plurality of axes of a robot operating along the actual trajectory. and may be further provided.
  • the disturbance torque estimator identifies a plurality of reference torques based on the reference torque model and posture information indicating the posture of the robot on the actual trajectory, and calculates the reference torques for each of the plurality of axes.
  • the difference between the actual torque and the reference torque may be calculated as the disturbance torque.
  • the reference torque model is a learned model for torque that receives as inputs at least a plurality of axis positions corresponding to a plurality of axes of the robot on the actual trajectory and calculates a plurality of reference torques.
  • the disturbance torque estimator may input at least a plurality of shaft positions to the torque trained model to calculate a plurality of reference torques.
  • a robot control system includes a torque learning unit that executes machine learning based on teacher data indicating a plurality of combinations of a plurality of shaft positions and a plurality of reference torques to generate a trained model for torque. may be further provided. With this configuration, a trained model used for calculating the reference torque can be prepared within the robot control system.
  • the reference torque model includes, for each of the plurality of candidate positions of the end effector including the trajectory, a relationship between the candidate position and a plurality of reference torques
  • the disturbance torque estimator comprises: selecting at least one candidate position corresponding to the actual position of the end effector indicated by the posture information from among the plurality of candidate positions, and generating a plurality of reference torques based on the at least one selected candidate position and the reference torque model; may be specified. Since the reference torque is associated in advance with each of the plurality of candidate positions, the disturbance torque corresponding to the actual trajectory of the end effector can be estimated from the corresponding relationship.
  • each of the plurality of candidate positions is included in one of the plurality of candidate trajectories set at different positions in the force control axis direction of the robot, and the disturbance torque estimator generates force
  • One candidate trajectory may be selected that corresponds to the actual position of the end effector in the control axis direction.
  • An estimation system includes a reference reflecting a relationship between a trajectory of an end effector of a robot and a plurality of reference torques corresponding to a plurality of axes of the robot operating along the trajectory without receiving disturbance.
  • a storage unit that stores a torque model, a reference torque model, and a plurality of actual torques corresponding to a plurality of axes of the robot that has moved along the actual trajectory, a plurality of torques corresponding to a plurality of axes on the actual trajectory. and a disturbance torque estimator for calculating a disturbance torque.
  • the robot control system may include an external force estimation system and a robot controller without a disturbance torque estimation system.
  • the robot control system acquires disturbance torque from an external computer system, calculates an estimated external force based on the disturbance torque, and controls the robot based on the estimated external force.
  • Both the disturbance torque estimation system and the external force estimation system may be provided separately.
  • the disturbance torque estimation system may not include the torque learning section, and the external force estimation system may not include the external force learning section. That is, both the torque trained model and the external force trained model may be generated by an external computer system and ported to the corresponding estimation system.
  • the optimization unit that optimizes structural parameters may be omitted, in which case the external force estimation system may utilize structural parameters optimized by an external computer system.
  • the external force estimation system is used for robot control, but this external force estimation system may be used for other purposes.
  • the external force estimation system may be used to manage the progress of processing on the workpiece, for example, it may be used to inspect the progress of polishing of the workpiece.
  • the disturbance torque estimation system is used for calculating the estimated external force, but this disturbance torque estimation system may be used for another purpose.
  • the disturbance torque estimation system may replace at least part of the function of the torque sensor, or may be used to detect contact between a device such as a robot and another object.
  • the robot control system and estimation system according to the present disclosure may calculate the transmission torque of each axis by optimization such as Bayesian optimization instead of the learned model.
  • the robot control system and the estimation system according to the present disclosure may use a trained model such as a neural network to calculate the estimated external force based on the transmission torque of each axis.
  • the trained model for torque is a calculation model that receives as inputs a plurality of feedback positions and a plurality of actual torques corresponding to a plurality of axes of the robot on the actual trajectory, and calculates a plurality of reference torques corresponding to the plurality of axes.
  • the data table 129 is shown as an example of the reference torque model including the relationship between each of the candidate positions of the end effector and a plurality of reference torques.
  • a reference torque model including the relationship may be realized by a method other than a data table, and may be defined by a predetermined function, for example.
  • the robot control system is separate from the motor controller in the above example, the robot control system may be incorporated within the motor controller. Alternatively, the robot control system may be incorporated within a host controller that outputs commands towards the motor controller.
  • the hardware configuration of the system is not limited to the manner in which each functional module is implemented by executing the program.
  • at least part of the functional module group described above may be configured with a logic circuit specialized for that function, or may be configured with an ASIC (Application Specific Integrated Circuit) integrating the logic circuit.
  • ASIC Application Specific Integrated Circuit
  • the processing procedure of the method executed by at least one processor is not limited to the above examples. For example, some of the steps or processes described above may be omitted, or the steps may be performed in a different order. Also, any two or more of the steps described above may be combined, and some of the steps may be modified or deleted. Alternatively, other steps may be performed in addition to the above steps.
  • either of the two criteria “greater than” and “greater than” may be used, and the two criteria “less than” and “less than” may be used. Either of the criteria may be used.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

一例に係るロボット制御システムは、ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定部と、推定外力に基づいてロボットを制御するロボット制御部とを備え、外力推定部は、推定処理の少なくとも一部として、複数の外乱トルクと複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する。

Description

ロボット制御システム、ロボット制御方法、ロボット制御プログラム、および推定システム
 本開示の一側面はロボット制御システム、ロボット制御方法、ロボット制御プログラム、および推定システムに関する。
 特許文献1には、ロボットの各軸モータへのトルク指令と各軸の速度検出値とから外乱オブザーバにより推定外乱トルクを求め、推定外乱トルクに対しハイパスフィルタ処理を行った後、座標変換を行って外力を推定するロボットシステムが記載されている。
特開2012-11403号公報
 本開示の一側面では、ロボットをより精度良く制御することが望まれている。
 本開示の一側面に係るロボット制御システムは、ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定部と、推定外力に基づいてロボットを制御するロボット制御部とを備え、外力推定部は、推定処理の少なくとも一部として、複数の外乱トルクと複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する。
 本開示の一側面に係るロボット制御方法は、少なくとも一つのプロセッサを備えるロボット制御システムによって実行される。このロボット制御方法は、ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定ステップと、推定外力に基づいてロボットを制御するロボット制御ステップとを含み、外力推定ステップでは、推定処理の少なくとも一部として、複数の外乱トルクと複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する。
 本開示の一側面に係るロボット制御プログラムは、ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定ステップと、推定外力に基づいてロボットを制御するロボット制御ステップとをコンピュータに実行させ、外力推定ステップでは、推定処理の少なくとも一部として、複数の外乱トルクと複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する。
 本開示の一側面によれば、ロボットをより精度良く制御できる。
ロボットシステムの一例を示す図である。 ロボット制御システムのために用いられるコンピュータのハードウェア構成の一例を示す図である。 外乱トルク推定システムの機能構成の第1例を示す図である。 外乱トルク推定システムの機能構成の第2例を示す図である。 データテーブルによって示される複数の候補位置の一例を示す図である。 外力推定システムの機能構成の第1例を示す図である。 外力推定システムの機能構成の第2例を示す図である。 外乱トルクの推定の第1例を示すフローチャートである。 外乱トルクの推定の第2例を示すフローチャートである。 外力の推定の第1例を示すフローチャートである。 外力の推定の第2例を示すフローチャートである。
 以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
 [システムの構成]
 (全体の構成)
 図1はロボットシステム1の一例を示す図である。ロボットシステム1は、一例に係るロボット制御システム2と少なくとも一つのロボット3とを備える。ロボットシステム1は、本開示に係るロボット制御システムの適用の一例である。ロボット制御システム2は、現実の作業空間に配置されたロボット3を動作させるためのコンピュータシステムである。ロボット3のモータを制御するモータ制御装置4も作業空間に配置され得る。ロボット制御システム2とモータ制御装置4とは通信ネットワークを介して互いに接続する。装置間を接続する通信ネットワークは、有線ネットワークでも無線ネットワークでもよい。通信ネットワークはインターネットおよびイントラネットの少なくとも一方を含んで構成されてもよい。あるいは、通信ネットワークは単純に1本の通信ケーブルによって実現されてもよい。
 ロボット3は、動力を受けて目的に応じた所定の動作を行って、有用な仕事を実行する装置である。一例では、ロボット3は複数の関節を備え、先端部にエンドエフェクタ3bを保持した状態で様々な処理を実行できるように構成される。関節は、ロボット制御システム2が制御しようとする駆動対象の一例である。複数の関節のそれぞれには軸(関節軸)3aが設定される。アーム、旋回部などのようなロボット3のいくつかの構成要素は軸3aを中心に回転し、この結果、ロボット3は所定の範囲内において先端部の位置および姿勢を自在に変更し得る。一例では、ロボット3は多軸のシリアルリンク型の垂直多関節ロボットである。ロボット3は、6軸の垂直多関節ロボットでもよいし、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットでもよい。
 エンドエフェクタ3bはワークに作用する機器であり、例えば、ワークに対して何らかの物理的な変化を与える機器である。エンドエフェクタ3bは研磨工具、溶接ガン、プレス機などのような様々な機器であり得る。
 モータは、モータ制御装置4から供給される電力に応じて、ロボット3の駆動対象を駆動させるための動力を発生させる装置である。個々のモータによって個々の駆動対象が動作し、その結果、エンドエフェクタ3bがワークに対して所定の仕事を実行する。モータは、駆動対象を回転させる回転型モータであってもよいし、駆動対象を直線に沿って変位させるリニア型モータであってもよい。モータは、同期電動機であってもよいし、誘導電動機であってもよい。モータは、SPM(Surface Permanent Magnet)モータ、IPM(Interior Permanent Magnet)モータ等の永久磁石型の同期電動機であってもよい。モータは、シンクロナスリラクタンスモータ(synchronous reluctance motor)のような、永久磁石を有しない同期電動機であってもよい。モータはDCモータであってもよいしACモータであってもよい。
 ロボット3は、モータ制御装置4からの電力によって動作するロボット3の応答を検出する装置である少なくとも一つのセンサを備えてもよい。応答とは、ロボットを制御するための命令である指令に対する該ロボットの出力をいう。例えば、応答はロボット3の動作および状態の少なくとも一方に関する情報を示す。応答はモータの動作および状態の少なくとも一方に関する情報を示してもよく、例えば、モータの軸速度と磁極位置との少なくとも一方を示してもよい。モータが回転型である場合には、モータによる駆動対象の回転角度が「位置」に相当し、モータによる駆動対象の回転速度が「速度」に相当する。応答は駆動対象の動作および状態の少なくとも一方に関する情報を示してもよく、例えば、駆動対象の位置、速度、および力の少なくとも一つを示してもよい。センサは応答を示す応答信号をロボット制御システム2に送信する。応答は、センサによって得られる値そのものでもよいし、所与の演算またはアルゴリズムによって算出または加工される値によって表されてもよい。センサの例として、モータの動作速度に比例した周波数のパルス信号を出力するロータリーエンコーダが挙げられる。ロータリーエンコーダはモータの位置および速度の両方を取得できる。
 モータ制御装置4は、ロボット制御システム2からの指令にモータの出力を追従させるための装置である。モータ制御装置4は、ロボット制御システム2からの指令に基づいて、モータを動かすための電力を生成し、その電力をモータに供給する。この供給される電力は、トルク指令、電流指令などのような駆動力指令に相当する。モータ制御装置4は例えば、インバータであってもよいし、サーボアンプであってもよい。モータ制御装置4はロボット3内に組み込まれてもよい。モータ制御装置4は、自機の応答を検出するセンサを備えてもよい。
 一例では、ロボット制御システム2は、位置および力のハイブリッド制御(これは単に「ハイブリッド制御」ともいわれる)によってロボット3を動作させる。ロボット3による作業の一例として、組立て、研磨などのように、エンドエフェクタ3bをワークに接触させつつ該ワークを処理する場合がある。このような作業では、エンドエフェクタ3bの位置だけでなく、エンドエフェクタ3bがワークに加える力についても適切に制御される必要がある。ハイブリッド制御はその適切な制御を実現するための一手法である。ハイブリッド制御は、位置制御軸および力制御軸のそれぞれについて位置および力を取得し、これらの位置および力を位置制御ループおよび力制御ループにフィードバックして目標値に追従させることによって、ロボット3の位置および力を同時に制御する技術である。位置制御軸はロボット3の位置を制御したい方向を規定する座標軸であり、力制御軸は、ロボット3の力を制御したい方向を規定する座標軸である。一例では、力制御軸は位置制御軸と直交する。例えば、ロボット3によるワークの研磨にハイブリッド制御を適用することで、エンドエフェクタ3bである研磨工具にワーク表面の法線方向に沿って所望の力を掛けつつ、ワーク表面に沿って所望の速度で該研磨工具を移動させることができる。
 一例では、ロボット制御システム2はエンドエフェクタ3bに作用した外力を推定し、その外力に基づいてロボット3を制御する。本開示では、ロボット制御システム2によって推定されるその外力を「推定外力」ともいう。ロボット制御システム2はこの機能を有することで、力を検出する力センサをロボット3が有しない場合、すなわち、力センサレスのロボット3の場合にも、該ロボット3を精度良く制御できる。力センサを含むセンサシステムが高額であったり、粉塵、水滴などのような環境要因によってセンサシステムが故障し易いという懸念があったりすると、力センサを用いた力制御を導入することが難しい。力センサレスのロボット3にロボット制御システム2を適用することで、ロボットシステム1を構築するためのコストを抑制しつつ、ロボット3を精度良く制御することが可能になる。ロボット3が力センサを有する場合にも、ロボット制御システム2は推定外力を算出し、その推定外力に基づいて該ロボット3を制御してもよい。
 ロボット制御システム2はロボット3の複数の軸3aに対応する複数の外乱トルク、すなわち、各軸3aの外乱トルクを取得し、これらの外乱トルクに基づいて推定外力を算出する。外乱トルクとは、モータへのトルク指令と、応答として得られる実トルクとの差をいう。外乱トルクは意図しない外乱によって生ずるトルクであるともいえる。例えばロボット3が6軸の垂直多関節ロボットである場合には、ロボット制御システム2はその6軸のそれぞれについて外乱トルクを取得し、その6個の外乱トルクに基づいて推定外力を算出する。ロボット制御システム2は推定外力を算出するために、複数の軸3aに対応する複数の外乱トルクを推定してもよい。
 図1に示すように、一例では、ロボット制御システム2は機能的構成要素として外乱トルク推定システム10、外力推定システム20、およびロボット制御部30を備える。
 外乱トルク推定システム10は、ロボット3の複数の軸3aに対応する複数の外乱トルクを算出するサブシステムである。外乱トルク推定システム10は、外乱トルクを算出するために基準トルクモデルを用いる。基準トルクモデルは、エンドエフェクタ3bの軌道と、外乱を受けることなく該軌道に沿って動作するロボット3の複数の軸3aに対応する複数の基準トルクとの関係を反映した計算モデルである。基準トルクは、外乱を受けることなく所与の軌道に沿ってロボット3を動作させた場合における、軸3aを制御するために出力されたトルクをいう。外乱トルク推定システム10は、その基準トルクモデルと、実軌道に沿って動作したロボット3の複数の軸3aに対応する複数の実トルクとに基づいて、該実軌道における複数の外乱トルクを算出する。実軌道とは、ロボット3の実際の動作を示す軌道をいう。一例では、外乱トルク推定システム10は、基準トルクモデルと、実軌道でのロボット3の姿勢を示す姿勢情報とに基づいて複数の基準トルクを特定する。そして、外乱トルク推定システム10は複数の軸3aのそれぞれについて、実トルクと基準トルクとの差を外乱トルクとして算出する。
 外力推定システム20は、ロボット3の複数の軸3aに対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、ロボット3のエンドエフェクタ3bに作用した外力を推定外力として算出するサブシステムである。軸位置とは、一つの軸3aに関する位置をいい、例えば回転角度によって表される。例えばロボット3が6軸の垂直多関節ロボットである場合には、ロボット制御システム2はその6軸のそれぞれについて軸位置を取得し、6個の外乱トルクおよび6個の軸位置に基づく推定処理を実行する。外力推定システム20は、推定処理の少なくとも一部として、複数の外乱トルクと複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する。軸位置の例として、応答により得られるフィードバック位置と、モータ制御装置4への指令を生成するために用いられる指令位置とが挙げられる。フィードバック位置は軸3aの実際の位置を表す。指令位置は軸3aの位置の目標を表す。以下では、軸位置の例としてフィードバック位置を挙げて、ロボット制御システム2について説明する。
 ロボット制御部30は、外力推定システム20によって算出された推定外力に基づいてロボット3を制御する機能モジュールである。ロボット制御部30は、推定外力に基づく指令をモータ制御装置4に出力する。モータ制御装置4はその指令に基づいて、モータを動かすための電力を生成し、その電力をモータに供給する。
 ロボット制御システム2は任意の種類のコンピュータによって実現され得る。そのコンピュータは、パーソナルコンピュータ、業務用サーバなどの汎用コンピュータでもよいし、特定の処理を実行する専用装置に組み込まれてもよい。ロボット制御システム2は一つのコンピュータによって実現されてもよいし、複数のコンピュータを有する分散システムによって実現されてもよい。
 図2は、ロボット制御システム2のために用いられるコンピュータ100のハードウェア構成の一例を示す図である。この例では、コンピュータ100は本体110、モニタ120、および入力デバイス130を備える。
 本体110は回路160を有する装置である。回路160は、少なくとも一つのプロセッサ161と、メモリ162と、ストレージ163と、入出力ポート164と、通信ポート165とを有する。ストレージ163は、本体110の各機能モジュールを構成するためのプログラムを記録する。ストレージ163は、ハードディスク、不揮発性の半導体メモリ、磁気ディスク、光ディスクなどの、コンピュータ読み取り可能な記録媒体である。メモリ162は、ストレージ163からロードされたプログラム、プロセッサ161の演算結果などを一時的に記憶する。プロセッサ161は、メモリ162と協働してプログラムを実行することで各機能モジュールを構成する。入出力ポート164は、プロセッサ161からの指令に応じて、モニタ120または入力デバイス130との間で電気信号の入出力を行う。入出力ポート164は他の装置との間で電気信号の入出力を行ってもよい。通信ポート165は、プロセッサ161からの指令に従って、通信ネットワークNを介して他の装置との間でデータ通信を行う。
 モニタ120は、本体110から出力された情報を表示するための装置である。モニタ120は、グラフィック表示が可能であればいかなるものであってもよく、その具体例としては液晶パネルが挙げられる。
 入力デバイス130は、本体110に情報を入力するための装置である。入力デバイス130は、所望の情報を入力可能であればいかなるものであってもよく、その具体例としてはキーパッド、マウス、操作コントローラなどの操作インタフェースが挙げられる。
 モニタ120および入力デバイス130はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体110、モニタ120、および入力デバイス130が一体化されていてもよい。
 ロボット制御システム2の各機能モジュールは、プロセッサ161またはメモリ162の上にロボット制御プログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。ロボット制御プログラムは、ロボット制御システムの各機能モジュールを実現するためのコードを含む。プロセッサ161はロボット制御プログラムに従って入出力ポート164または通信ポート165を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。
 ロボット制御プログラムは、CD-ROM、DVD-ROM、半導体メモリなどの非一時的な記録媒体に固定的に記録された上で提供されてもよい。あるいは、ロボット制御プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
 (外乱トルク推定システム)
 図3は、外乱トルク推定システム10の機能構成の第1例を外乱トルク推定システム10Aとして示す図である。外乱トルク推定システム10Aは機能的構成要素としてトルク用学習部111、記憶部112、および外乱トルク推定部113を備える。
 トルク用学習部111は、基準トルクモデルの一例であるトルク用学習済みモデル119を生成する機能モジュールである。トルク用学習済みモデル119は、実軌道でのロボット3の複数の軸3aに対応する複数のフィードバック位置を入力として受け付けて、該複数の軸3aに対応する複数の基準トルクを算出する計算モデルである。トルク用学習部111は、複数のフィードバック位置と、正解値として用いられる複数の基準トルクとの複数の組合せを少なくとも示す教師データに基づいて機械学習を実行して、トルク用学習済みモデル119を生成する。機械学習とは、与えられた情報に基づいて反復的に学習することで、法則またはルールを自律的に見つけ出す手法をいう。予め用意される教師データは、例えば、ロボット3が外乱を受けない状況下で該ロボット3を様々な姿勢で動作させながら収集された応答データに基づいて生成される。トルク用学習済みモデル119はアルゴリズムおよびデータ構造を用いて構築される。一例では、トルク用学習済みモデル119は畳み込みニューラルネットワーク(CNN)などのニューラルネットワークを含む態様で生成される。トルク用学習部111によるトルク用学習済みモデル119の生成は学習フェーズに相当する。
 記憶部112は、トルク用学習部111により生成されたトルク用学習済みモデル119を記憶する機能モジュールである。
 外乱トルク推定部113は、トルク用学習済みモデル119と、実軌道に沿って動作したロボット3の複数の軸3aに対応する複数の実トルクとに基づいて、該実軌道における複数の外乱トルクを算出する機能モジュールである。外乱トルク推定部113はその複数の外乱トルクを外力推定システム20に出力する。
 図4は、外乱トルク推定システム10の機能構成の第2例を外乱トルク推定システム10Bとして示す図である。外乱トルク推定システム10Bは機能的構成要素として記憶部121および外乱トルク推定部122を備える。
 記憶部121は、基準トルクモデルの一例であるデータテーブル129を記憶する機能モジュールである。データテーブル129は、エンドエフェクタ3bの複数の候補位置のそれぞれについて、複数の軸3aに対応する複数の基準トルクとの関係を示す計算モデルである。データテーブル129を参照することで、それぞれの候補位置において、各軸3aの基準トルクを特定できる。例えば、データテーブル129は候補位置と各軸3aの基準トルクとの対応表として実装される。一例では、データテーブル129はロボット制御システム2の管理者によって記憶部121に予め格納される。
 図5は、データテーブル129によって示される複数の候補位置の一例を示す図である。この例は、ワーク9の表面に沿って進むエンドエフェクタ3bの、想定される4個の候補軌道301~304を示す。候補軌道301~304のそれぞれは候補位置の集合であるといえる。候補軌道301~304は互いに並行に延びるように設定され、例えば、ワーク9の表面に沿って互いに並行に延びる。一例では、候補軌道301~304のうちの一つは、エンドエフェクタ3bの動作の目標として設定される基準軌道であり得る。例えば、候補軌道301が基準軌道として設定され、候補軌道302~304が別の候補軌道として設定されてもよい。一例では、複数の候補軌道301~304は、ロボット3の力制御軸方向において互いに異なる位置に設定される。
 エンドエフェクタ3bの実軌道は、ロボット制御部30からの指令、エンドエフェクタ3bとワーク9との接触の度合いなどの様々な要因によって基準軌道から外れる可能性がある。図5における実軌道310はそのような状況の例を示す。ロボット3の力制御軸方向における異なる位置において、基準軌道に沿った別の候補軌道を設定することで、応答から得られるエンドエフェクタ3bの実位置が或る時点において基準軌道から外れた場合にも、該時点での基準トルクを特定できる。或る時点における基準トルクを特定するために選択される可能性がある複数の候補位置のそれぞれは、ロボットの力制御軸方向において互いに異なる位置に設定された複数の候補軌道301~304のいずれかに含まれる。一例では、力制御軸に沿って並ぶ複数の候補位置から、少なくとも一つの候補位置が選択される。
 図4に戻って、外乱トルク推定部122は、データテーブル129と、実軌道に沿って動作したロボット3の複数の軸3aに対応する複数の実トルクとに基づいて、該実軌道における複数の外乱トルクを算出する機能モジュールである。外乱トルク推定部122はその複数の外乱トルクを外力推定システム20に出力する。
 (外力推定システム)
 図6は、外力推定システム20の機能構成の第1例を外力推定システム20Aとして示す図である。外力推定システム20Aは機能的構成要素として外力用学習部211、記憶部212、および外力推定部213を備える。
 外力用学習部211は、推定外力を算出するための外力用学習済みモデル219を生成する機能モジュールである。外力用学習済みモデル219は、複数の軸3aに対応する複数の外乱トルクおよび複数のフィードバック位置を入力として受け付けて、推定外力を算出する計算モデルである。外力用学習済みモデル219は、複数の外乱トルクのそれぞれの伝達効率を反映した結果として推定外力を算出する。
 推定外力は、軸3aからエンドエフェクタ3bへと伝わるトルクである伝達トルクに基づいて算出される。トルクの伝達には、エンドエフェクタ3bに伝わるトルクの割合を示す伝達効率と、モータの回転速度を減速する割合である減速比とが関係する。減速比は固定値として考えることができる。一方、伝達効率は、各軸3aに掛かる負荷の変動、減速機の劣化などの要因によって動的に変化するので、正確に計算することが困難である。そのため推定外力の算出も容易ではない。推定外力を精度良く算出するために、外力用学習部211は機械学習を実行して外力用学習済みモデル219を生成する。機械学習によって、減速比だけでなく伝達効率も精度良く反映した外力用学習済みモデル219が得られるので、推定外力の正確な算出が期待できる。
 外力用学習部211は、各軸3aの外乱トルクおよびフィードバック位置と、エンドエフェクタ3bに実際に作用した外力である実外力との複数の組合せを示す教師データに基づいて機械学習を実行して、外力用学習済みモデル219を生成する。実外力は機械学習の正解値として用いられる。予め用意される教師データは、例えば、外来が発生し得る状況下でロボット3を様々な姿勢で動作させながら収集された応答データに基づいて生成される。そのデータ収集の際には、実外力を得るためにロボット3に力センサが搭載される。外力用学習済みモデル219はアルゴリズムおよびデータ構造を用いて構築される。一例では、外力用学習済みモデル219は畳み込みニューラルネットワーク(CNN)などのニューラルネットワークを含む態様で生成される。外力用学習部211による外力用学習済みモデル219の生成は学習フェーズに相当する。
 記憶部212は、外力用学習部211により生成された外力用学習済みモデル219を記憶する機能モジュールである。
 外力推定部213は、複数の軸3aに対応する複数の外乱トルクおよび複数のフィードバック位置に基づく推定処理を実行して推定外力を算出する機能モジュールである。外力推定部213はその推定処理として、外力用学習済みモデル219による計算を実行する。外力用学習済みモデル219がニューラルネットワークを含む場合には、外力推定部213は推定処理の少なくとも一部として、そのニューラルネットワークによる計算を実行する。外力推定部213は推定外力をロボット制御部30に出力する。
 図7は、外力推定システム20の機能構成の第2例を外力推定システム20Bとして示す図である。外力推定システム20Bは機能的構成要素として外力用学習部221、記憶部222、最適化部223、行列設定部224、および外力推定部225を備える。
 外力用学習部221は、伝達トルクを算出するための外力用学習済みモデル229を生成する機能モジュールである。外力用学習済みモデル229は、複数の軸3aに対応する複数の外乱トルクに基づいて、該複数の軸3aのそれぞれについて伝達トルクを算出する計算モデルである。外力用学習済みモデル229は、複数の外乱トルクのそれぞれの伝達効率を反映した結果として複数の伝達トルクを算出する。
 外力用学習部221は機械学習を実行して外力用学習済みモデル229を生成する。機械学習によって、減速比だけでなく伝達効率も精度良く反映した外力用学習済みモデル229が得られるので、伝達効率の正確な算出が期待できる。
 外力用学習部221は、各軸3aの外乱トルクおよびフィードバック位置と、エンドエフェクタ3bの実外力との複数の組合せを示す教師データに基づいて機械学習を実行して、外力用学習済みモデル229を生成する。一例では、外力用学習部221はその複数の組合せのそれぞれについて、各軸3aのフィードバック位置と実外力とに基づいて各軸3aの伝達トルクの正解値を算出する。この計算は、τ=J(θ)Fにより表される。τは伝達トルクのベクトルを示し、Jはフィードバック位置のベクトルθに基づいて規定されるヤコビ行列を示し、Fは実外力を示す。外力用学習部221は、教師データにより示される複数の外乱トルクと、複数の伝達トルクの正解値とに基づいて機械学習を実行して、外力用学習済みモデル229を生成する。教師データはロボット3の動作に基づいて用意される。予め用意される教師データは、例えば、外力が生じ得る状況下で、力センサを備えたロボット3を様々な姿勢で動作させながら収集された応答データに基づいて生成される。外力用学習済みモデル219と同様に、外力用学習済みモデル229もアルゴリズムおよびデータ構造を用いて構築され、例えば、畳み込みニューラルネットワーク(CNN)などのニューラルネットワークを含む態様で生成される。外力用学習部221による外力用学習済みモデル229の生成は学習フェーズに相当する。
 記憶部222は、外力用学習部221により生成された外力用学習済みモデル229を記憶する機能モジュールである。
 最適化部223は、ロボット3の構造を示す構造パラメータを最適化する機能モジュールである。最適化部223は最適化された構造パラメータを行列設定部224に出力する。この構造パラメータは、ロボット3の構造に関する設計値からのずれ量を示す。構造パラメータは設計値とずれ量との和を示してもよい。ずれ量は、ロボット3のリンク長の設計値からのずれ量と、リンクのたわみ量と、所与の座標軸の原点からの各軸3aのずれ量と、エンコーダの誤差とのうちの少なくとも一つであり得る。最適化部223は、推定外力と、エンドエフェクタ3bの実外力との差に基づいて構造パラメータを最適化する。一例では、最適化部223は推定外力とエンドエフェクタ3bの実外力との誤差を最小化するための最適化を実行して、構造パラメータを最適化する。一例では、最適化はブラックボックス関数を用いた手法によって実現され、例えばベイズ最適化が用いられてもよい。最小化される誤差は、複数の誤差の二乗平均によって表されてもよい。
 構造パラメータの最適化は、ロボット制御システム2による実運用の前に予め実行される。最適化のために用いられるデータは、例えばロボット制御システム2の試運転の際に収集される。その試運転では、実外力を得るためにロボット3に力センサが搭載される。
 本開示において、「最適化された構造パラメータ」とは、最適化部223による計算に基づいて得られる構造パラメータをいう。「最適化された構造パラメータ」は、最適な構造パラメータとして許容できる構造パラメータをいい、例えば、最適であると推定される構造パラメータをいう。「最適化された構造パラメータ」は、現実に最適な構造パラメータとは限らない点に留意されたい。
 行列設定部224は、複数の軸3aに対応する複数のフィードバック位置と、構造パラメータとに基づいて、推定外力を算出するためのヤコビ行列Jを設定する機能モジュールである。一例では、行列設定部224は複数のフィードバック位置と最適化された構造パラメータとに基づいてヤコビ行列Jを設定する。行列設定部224はヤコビ行列Jを外力推定部225に出力する。
 外力推定部225は、複数の軸3aに対応する複数の外乱トルクおよび複数のフィードバック位置に基づく推定処理を実行して推定外力を算出する機能モジュールである。外力推定部225はその推定外力をロボット制御部30に出力する。外力推定部225はその推定処理の少なくとも一部として、外力用学習済みモデル229による計算を実行する。外力用学習済みモデル229がニューラルネットワークを含む場合には、外力推定部225は推定処理の少なくとも一部として、そのニューラルネットワークによる計算を実行する。一例では、外力推定部225は伝達トルク算出部226および推定外力算出部227を備える。
 伝達トルク算出部226は、複数の軸3aに対応する複数の外乱トルクを外力用学習済みモデル229に入力して、該複数の軸3aに対応する複数の伝達トルクを算出する機能モジュールである。伝達トルク算出部226は複数の伝達トルクを推定外力算出部227に出力する。
 推定外力算出部227はその複数の伝達トルクに基づいて推定外力を算出する機能モジュールである。一例では、推定外力算出部227は複数の伝達トルクとヤコビ行列Jとに基づいて推定外力を算出する。
 [ロボット制御方法]
 本開示に係るロボット制御方法の一例として、図8~図11を参照しながら、ロボット制御システム2により実行される処理手順の様々な例を説明する。図8および図9は外乱トルク推定システム10での処理の例を示し、図10および図11は、外力推定システム20およびロボット制御部30での処理の例を示す。図8は外乱トルク推定システム10Aでの処理の一例を処理フローS1Aとして示すフローチャートである。図9は外乱トルク推定システム10Bでの処理の一例を処理フローS1Bとして示すフローチャートである。図10は外力推定システム20Aおよびロボット制御部30での処理の一例を処理フローS2Aとして示すフローチャートである。図11は外力推定システム20Bおよびロボット制御部30での処理の一例を処理フローS2Bとして示すフローチャートである。すなわち、ロボット制御システム2は外乱トルクの推定に関して処理フローS1AまたはS1Bを実行し、外力の推定に関して処理フローS2AまたはS2Bを実行する。
 (外乱トルクの推定の第1例)
 図8を参照しながら、外乱トルク推定システム10Aでの処理の一例を説明する。処理フローS1Aはトルク用学習済みモデル119が記憶部112に格納された後に実行される。したがって、処理フローS1Aは運用フェーズに相当する。
 ステップS111では、外乱トルク推定部113がロボット3の応答データを取得する。応答データはロボット3またはモータ制御装置4の応答を示す電子データである。応答データは例えば、各軸3aのフィードバック位置および実トルクを示す。
 ステップS112では、外乱トルク推定部113がフィードバック位置をトルク用学習済みモデル119に入力して基準トルクを算出する。フィードバック位置は、実軌道でのロボット3の姿勢を示す姿勢情報の一例である。外乱トルク推定部113はトルク用学習済みモデル119を記憶部112から読み出す。外乱トルク推定部113は、各軸3aのフィードバック位置をそのトルク用学習済みモデル119に入力して、各軸3aの基準トルクを算出する。
 ステップS113では、外乱トルク推定部113が実トルクおよび基準トルクに基づいて外乱トルクを算出する。外乱トルク推定部113は複数の軸3aのそれぞれについて、実トルクと基準トルクとの差を外乱トルクとして算出する。外乱トルク推定部113は各軸3aの外乱トルクを外力推定システム20に出力する。
 (外乱トルクの推定の第2例)
 図9を参照しながら、外乱トルク推定システム10Bでの処理の一例を説明する。
 ステップS121では、外乱トルク推定部122がロボット3の応答データを取得する。応答データは例えば、各軸3aのフィードバック位置と、エンドエフェクタ3bの実位置とを示す。フィードバック位置と同様に、エンドエフェクタ3bの実位置も姿勢情報の一例である。エンドエフェクタ3bの実位置は、所与のセンサによって直接に取得されてもよいし、複数の軸3aに対応する複数のフィードバック位置に基づく計算によって間接的に取得されてもよい。
 ステップS122では、外乱トルク推定部122がデータテーブル129を参照して、複数の候補位置の中から、エンドエフェクタ3bの実位置に対応する少なくとも一つの候補位置を選択する。一例では、外乱トルク推定部122は、ロボット3の力制御軸方向に沿って設定された複数の候補位置の中から少なくとも一つの候補位置を選択する。外乱トルク推定部122は、エンドエフェクタ3bの実位置に一致する候補位置を選択してもよいし、該実位置に最も近い候補位置を選択してもよい。あるいは、外乱トルク推定部122は、該実位置を挟むように存在する2個の候補位置を選択してもよい。
 ステップS123では、外乱トルク推定部122が、選択された少なくとも一つの候補位置に基づいて、各軸3aの基準トルクを特定する。例えば、外乱トルク推定部122はデータテーブル129を参照して、選択された少なくとも一つの候補位置に対応する各軸3aの基準トルクを特定する。単一の候補位置を選択した場合には、外乱トルク推定部122はデータテーブル129を参照して、その候補位置に対応する各軸3aの基準トルクを特定する。第1候補位置および第2候補位置から成る2個の候補位置を選択した場合には、外乱トルク推定部122はデータテーブル129を参照して、複数の軸3aのそれぞれについて、第1候補位置に対応する第1基準トルクと、第2候補位置に対応する第2基準トルクとを特定する。そして、外乱トルク推定部122は複数の軸3aのそれぞれについて、第1基準トルクおよび第2基準トルクを用いた補間を実行して実位置での基準トルクを算出する。この計算は基準トルクの特定の一例である。
 図5を参照しながら、ステップS122,123の処理の例を説明する。図5の例では、データテーブル129は、エンドエフェクタ3bの4個の候補軌道301~304のそれぞれについて、該候補軌道を構成する候補位置の集合を規定し、各候補位置における各軸3aの基準トルクを規定する。
 図5の例において、実軌道310に沿って動作したエンドエフェクタ3bの実位置が、時点T1において実位置321であり、時点T2において実位置322であり、時点T3において実位置323であり、時点T4において実位置324であり、時点T5において実位置325であり、時点T6において実位置326であるとする。
 時点T1の処理では、外乱トルク推定部122は候補軌道301上の候補位置を選択し、その候補位置に対応する各軸3aの基準トルクを特定する。
 時点T2での処理では、外乱トルク推定部122は候補軌道302上の候補位置を選択し、その候補位置に対応する各軸3aの基準トルクを特定する。
 時点T3での処理では、外乱トルク推定部122は、実位置323を挟むように存在する2個の候補位置として、候補軌道302上の候補位置と候補軌道303上の候補位置とを選択してもよい。この場合、外乱トルク推定部122はその2個の候補位置のそれぞれでの各軸3aの基準トルクを特定し、実位置323での各軸3aの基準トルクを補間により算出する。あるいは、外乱トルク推定部122はその2個の候補位置のうち実位置323に近い方の候補位置を選択し、選択された候補位置に対応する各軸3aの基準トルクを特定してもよい。
 時点T4での処理では、外乱トルク推定部122は候補軌道303上の候補位置を選択し、その候補位置に対応する各軸3aの基準トルクを特定する。
 時点T5での処理では、外乱トルク推定部122は実位置325に最も近い候補軌道301上の候補位置を選択し、その候補位置に対応する各軸3aの基準トルクを特定してもよい。あるいは外乱トルク推定部122は、実位置325を挟むように存在する2個の候補位置として、候補軌道301上の候補位置と候補軌道302上の候補位置とを選択してもよい。この場合、外乱トルク推定部122はその2個の候補位置のそれぞれでの各軸3aの基準トルクを特定し、実位置323での各軸3aの基準トルクを補間により算出する。
 時点T6での処理では、外乱トルク推定部122は候補軌道304上の候補位置を選択し、その候補位置に対応する各軸3aの基準トルクを特定する。
 図9に戻って、ステップS124では、外乱トルク推定部122が実トルクおよび基準トルクに基づいて外乱トルクを算出する。外乱トルク推定部122は複数の軸3aのそれぞれについて、実トルクと基準トルクとの差を外乱トルクとして算出する。外乱トルク推定部122は、各軸3aの外乱トルクを外力推定システム20に出力する。
 (外力の推定の第1例)
 図10を参照しながら外力推定システム20Aでの処理の一例を説明する。処理フローS2Aは外力用学習済みモデル219が記憶部212に格納された後に実行される。したがって、処理フローS2Aは運用フェーズに相当する。
 ステップS211では、外力推定部213が外乱トルクを取得する。例えば、外力推定部213は外乱トルク推定システム10によって推定された各軸3aの外乱トルクを取得する。
 ステップS212では、外力推定部213がロボット3の応答データを取得する。例えば、応答データは各軸3aのフィードバック位置を示す。外力推定部213は外乱トルク推定システム10によって取得された応答データを利用してもよい。
 ステップS213では、外力推定部213が外乱トルクおよびフィードバック位置を外力用学習済みモデル219に入力して推定外力を算出する。外力推定部213は外力用学習済みモデル219を記憶部212から読み出し、各軸3aの外乱トルクおよびフィードバック位置を外力用学習済みモデル219に入力して推定外力を算出する。外力推定部213はその推定外力をロボット制御部30に出力する。
 ステップS214では、ロボット制御部30が推定外力に基づいてロボット3を制御する。例えば、ロボット制御部30は、ロボット3に実現させようとする位置を示す位置指令値と、ロボット3に実現させようとする力を示す力指令値とのそれぞれについてフィードバック制御を実行して、加速度指令の参照値である加速度参照値を算出する。一例では推定外力はこのフィードバック制御で用いられる。ロボット制御部30は力指令の参照値である力参照値をその加速度参照値から算出する。この計算において、ロボット制御部30は外乱オブザーバによって算出された外乱に更に基づいて力参照値を算出してもよい。ロボット制御部30は逆運動学の計算によってその力参照値をトルク参照値に変換し、このトルク参照値に基づいて指令を生成する。ロボット制御部30はその指令をモータ制御装置4に出力してロボット3を制御する。
 ステップS215によって示されるように、ロボット制御システム2は所定の処理が終了するまでステップS211~S214を繰り返し実行し得る。例えば、ロボット制御システム2は所定の間隔でステップS211~S214を繰り返す。繰り返されるステップS211に関連して、外乱トルク推定システム10は処理フローS1AまたはS1Bを再度実行して、各軸3aの外乱トルクを算出する。
 (外力の推定の第2例)
 図11を参照しながら外力推定システム20Bでの処理の一例を説明する。処理フローS2Bは外力用学習済みモデル229が記憶部222に格納され、構造パラメータが最適化された後に実行される。したがって、処理フローS2Bは運用フェーズに相当する。
 ステップS221では、外力推定部225が外乱トルクを取得する。ステップS221はステップS211と同じである。
 ステップS222では、外力推定部225がロボット3の応答データを取得する。ステップS222はステップS212と同じである。
 ステップS223では、伝達トルク算出部226が外乱トルクを外力用学習済みモデル229に入力して伝達トルクを算出する。伝達トルク算出部226は外力用学習済みモデル229を記憶部222から読み出し、各軸3aの外乱トルクを外力用学習済みモデル229に入力して、各軸3aの伝達トルクを算出する。
 ステップS224では、行列設定部224がフィードバック位置および構造パラメータに基づいてヤコビ行列Jを設定する。作業空間の座標系Σにおける力をFとし、関節空間の座標系Σ´における力をF´とし、座標系Σ´から見た座標系Σ上の位置をP=(px,py,pz)とし、回転行列をRとし、F´=JFを定義したとする。このとき、ヤコビ行列Jは式(1)により表される。
Figure JPOXMLDOC01-appb-M000001
 位置Pは、ロボット3のリンク長と、該リンク長の設計値からのずれ量との和である。回転行列Rは、各軸3aのフィードバック位置と、原点からの各軸3aのずれ量とから算出される。位置Pと各軸3aのずれ量とはいずれも、構造パラメータの一例であり、ロボット3の構造に関する設計値からのずれ量の一例でもある。
 ステップS225では、推定外力算出部227が伝達トルク及びヤコビ行列Jに基づいて推定外力を算出する。推定外力算出部227は、各軸3aの伝達トルクとヤコビ行列Jとに基づいて推定外力を算出する。推定外力をFとし、各軸3aの伝達トルクを示すベクトルをτとすると、推定外力Fの計算はF=J(θ)-1τにより表される。上述したように、ヤコビ行列Jはフィードバック位置のベクトルθに基づいて規定される。
 ステップS226では、ロボット制御部30が推定外力に基づいてロボット3を制御する。ステップS226はステップS214と同じである。
 ステップS227によって示されるように、ロボット制御システム2は所定の処理が終了するまでステップS221~S226を繰り返し実行し得る。例えば、ロボット制御システム2は所定の間隔でステップS221~S226を繰り返す。繰り返されるステップS221に関連して、外乱トルク推定システム10は処理フローS1AまたはS1Bを再度実行して、外乱トルクを算出する。繰り返されるステップS224では、行列設定部224が、新たに得られたフィードバック位置と、構造パラメータとに基づいてヤコビ行列Jを更新する。この更新によって、ヤコビ行列Jの少なくとも一部の行列成分が変わり得る。
 [効果]
 以上説明したように、本開示の一側面に係るロボット制御システムは、ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定部と、推定外力に基づいてロボットを制御するロボット制御部とを備え、外力推定部は、推定処理の少なくとも一部として、複数の外乱トルクと複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する。
 本開示の一側面に係るロボット制御方法は、少なくとも一つのプロセッサを備えるロボット制御システムによって実行される。このロボット制御方法は、ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定ステップと、推定外力に基づいてロボットを制御するロボット制御ステップとを含み、外力推定ステップでは、推定処理の少なくとも一部として、複数の外乱トルクと複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する。
 本開示の一側面に係るロボット制御プログラムは、ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定ステップと、推定外力に基づいてロボットを制御するロボット制御ステップとをコンピュータに実行させ、外力推定ステップでは、推定処理の少なくとも一部として、複数の外乱トルクと複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する。
 本開示の一側面に係る推定システムは、ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定部を備え、外力推定部は、推定処理の少なくとも一部として、複数の外乱トルクと複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する。
 このような側面においては、ロボットのエンドエフェクタに作用した外力を推定するために学習済みモデルが導入されるので、その外力をより正確に推定できる。その推定外力を用いることでロボットをより精度良く制御できる。一例では、そのような高精度の制御を、力センサを用いることなく実現できる。
 他の側面に係るロボット制御システムでは、外力用学習済みモデルは、複数の外乱トルクのそれぞれの伝達効率を反映した結果を算出し、外力推定部は、少なくとも複数の外乱トルクを外力用学習済みモデルに入力してもよい。正確な計算が困難な伝達効率を学習済みモデルが吸収するので、外力をより正確に推定できる。
 他の側面に係るロボット制御システムでは、外力用学習済みモデルは、ロボットの動作に基づく教師データを用いた機械学習によって生成されたニューラルネットワークを含み、外力推定部は、推定処理の少なくとも一部として、ニューラルネットワークによる計算を実行してもよい。エンドエフェクタに作用する外力に影響を及ぼす外乱トルクの伝達効率の計算は困難である。ニューラルネットワークを導入することで、その伝達効率をより適切に外力用学習済みモデルに反映させることができる。その結果、外力をより正確に推定できる。
 他の側面に係るロボット制御システムでは、外力用学習済みモデルは、複数の外乱トルクに基づいて、複数の軸のそれぞれについて、エンドエフェクタに伝達されるトルクである伝達トルクを算出し、外力推定部は、複数の外乱トルクを外力用学習済みモデルに入力して、複数の軸に対応する複数の伝達トルクを算出し、複数の伝達トルクに基づいて推定外力を算出してもよい。学習済みモデルを用いて各軸の伝達トルクを算出し、その伝達トルクに基づいて推定外力を算出することで、外力をより正確に推定できる。
 他の側面に係るロボット制御システムは、複数の軸位置とロボットの構造を示す構造パラメータとに基づいてヤコビ行列を設定する行列設定部を更に備え、外力推定部は、複数の伝達トルクとヤコビ行列とに基づいて推定外力を算出してもよい。軸位置とロボットの構造パラメータとが考慮されたヤコビ行列を用いることで、外力をより正確に推定できる。
 他の側面に係るロボット制御システムは、推定外力と、エンドエフェクタに実際に作用した外力である実外力との差に基づいて、構造パラメータを最適化する最適化部を更に備え、行列設定部は、最適化された構造パラメータに基づいてヤコビ行列を更新してもよい。構造パラメータを最適化することでヤコビ行列の精度が更に向上するので、外力をより正確に推定できる。
 他の側面に係るロボット制御システムでは、最適化部は、ロボットの構造に関する設計値からのずれ量を示す構造パラメータを最適化してもよい。設計値からのずれ量が反映されたヤコビ行列が得られるので、設計時の構造から変化したロボットの現況を考慮して、外力をより正確に推定できる。
 他の側面に係るロボット制御システムは、複数の外乱トルクと、複数の軸位置と、エンドエフェクタに実際に作用した外力である実外力との複数の組合せを示す教師データに基づいて機械学習を実行して、複数の伝達トルクを算出するための外力用学習済みモデルを生成する外力用学習部を更に備えてもよい。この構成により、伝達トルクを算出するために用いられる学習済みモデルをロボット制御システム内で用意できる。
 他の側面に係るロボット制御システムは、外力用学習部は、複数の組合せのそれぞれについて、複数の軸位置および実外力に基づいて、複数の伝達トルクの正解値を算出し、教師データにより示される複数の外乱トルクと、複数の伝達トルクの正解値とに基づいて機械学習を実行して、外力用学習済みモデルを生成してもよい。測定することが困難な伝達トルクの正解値が計算によって得られるので、その正解値をより簡単に得ることができる。
 他の側面に係るロボット制御システムでは、外力用学習済みモデルは、複数の外乱トルクおよび複数の軸位置を入力として受け付けて推定外力を算出し、外力推定部は、複数の外乱トルクおよび複数の軸位置を外力用学習済みモデルに入力して、推定外力を算出してもよい。推定処理の全体が学習済みモデルによって実現されるので、この推定処理に関連する構成をより簡単にしつつ、外力をより正確に推定することができる。
 他の側面に係るロボット制御システムは、複数の外乱トルクと、複数の軸位置と、エンドエフェクタに実際に作用した外力である実外力との複数の組合せを示す教師データに基づいて機械学習を実行して、推定外力を算出するための外力用学習済みモデルを生成する外力用学習部を更に備えてもよい。この構成により、推定外力を算出するために用いられる学習済みモデルをロボット制御システム内で用意できる。
 他の側面に係るロボット制御システムは、エンドエフェクタの軌道と、外乱を受けることなく該軌道に沿って動作するロボットの複数の軸に対応する複数の基準トルクとの関係を反映した基準トルクモデルを記憶する記憶部と、基準トルクモデルと、実軌道に沿って動作したロボットの複数の軸に対応する複数の実トルクとに基づいて、該実軌道における複数の外乱トルクを算出する外乱トルク推定部とを更に備えてもよい。エンドエフェクタの軌道と基準トルクとの関係を反映した基準トルクモデルを用いることで、エンドエフェクタの実軌道に対応する外乱トルクを実トルクから正確に求めることができ、その外乱トルクを用いて外力をより正確に推定できる。
 他の側面に係るロボット制御システムでは、外乱トルク推定部は、基準トルクモデルと、実軌道でのロボットの姿勢を示す姿勢情報とに基づいて複数の基準トルクを特定し、複数の軸のそれぞれについて、実トルクと基準トルクとの差を外乱トルクとして算出してもよい。実軌道でのロボットの姿勢に対応する基準トルクを特定し、その基準トルクと実トルクとの差を計算することで、外乱トルクをより正確に得ることができる。
 他の側面に係るロボット制御システムでは、基準トルクモデルは、実軌道でのロボットの複数の軸に対応する複数の軸位置を少なくとも入力として受け付けて複数の基準トルクを算出するトルク用学習済みモデルであり、外乱トルク推定部は、少なくとも複数の軸位置をトルク用学習済みモデルに入力して、複数の基準トルクを算出してもよい。基準トルクモデルを学習済みモデルによって実現することで、ロボットの実軌道が目標からずれた場合にも、該実軌道に対応する外乱トルクをより正確に求めることができる。例えば、ロボットの実軌道が力制御軸方向に沿って目標からずれた場合にも、外乱トルクを精度良く算出できる。
 他の側面に係るロボット制御システムは、複数の軸位置と複数の基準トルクとの複数の組合せを示す教師データに基づいて機械学習を実行して、トルク用学習済みモデルを生成するトルク用学習部を更に備えてもよい。この構成により、基準トルクを算出するために用いられる学習済みモデルをロボット制御システム内で用意できる。
 他の側面に係るロボット制御システムでは、基準トルクモデルは、軌道を含むエンドエフェクタの複数の候補位置のそれぞれについての、該候補位置と複数の基準トルクとの関係を含み、外乱トルク推定部は、複数の候補位置の中から、姿勢情報により示されるエンドエフェクタの実位置に対応する少なくとも一つの候補位置を選択し、選択された少なくとも一つの候補位置と基準トルクモデルとに基づいて複数の基準トルクを特定してもよい。複数の候補位置のそれぞれについて基準トルクが予め関連付けられるので、エンドエフェクタの実軌道に対応する外乱トルクをその対応関係から推定できる。
 他の側面に係るロボット制御システムでは、複数の候補位置のそれぞれは、ロボットの力制御軸方向において互いに異なる位置に設定された複数の候補軌道のいずれかに含まれ、外乱トルク推定部は、力制御軸方向におけるエンドエフェクタの実位置に対応する一つの候補軌道を選択してもよい。このような候補位置を設定することで、ワークに力を加えながら動作するエンドエフェクタについての外乱トルクをより正確に推定できる。
 本発明の一側面に係る推定システムは、ロボットのエンドエフェクタの軌道と、外乱を受けることなく該軌道に沿って動作するロボットの複数の軸に対応する複数の基準トルクとの関係を反映した基準トルクモデルを記憶する記憶部と、基準トルクモデルと、実軌道に沿って動作したロボットの複数の軸に対応する複数の実トルクとに基づいて、該実軌道における複数の軸に対応する複数の外乱トルクを算出する外乱トルク推定部とを備える。
 このような側面によれば、エンドエフェクタの軌道と基準トルクとの関係を反映した基準トルクモデルを用いることで、エンドエフェクタの実軌道に対応する外乱トルクを実トルクから正確に求めることができる。
 [変形例]
 以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示の技術事項は上記実施形態に限定されるものではない。本開示の技術事項は、その要旨を逸脱しない範囲で様々な変形が可能である。
 本開示に係るロボット制御システムおよび推定システムの構成はいずれも、上記の例に限定されない。例えば、ロボット制御システムは外乱トルク推定システムを備えることなく外力推定システムおよびロボット制御部を備えてもよい。この場合には、ロボット制御システムは外部のコンピュータシステムから外乱トルクを取得し、その外乱トルクに基づいて推定外力を算出し、その推定外力に基づいてロボットを制御する。外乱トルク推定システムおよび外力推定システムはいずれも、単独で提供されてもよい。外乱トルク推定システムはトルク用学習部を備えなくてもよく、外力推定システムは外力用学習部を備えなくてもよい。すなわち、トルク用学習済みモデルおよび外力用学習済みモデルのいずれも、外部のコンピュータシステムによって生成されて、対応する推定システムに移植されてもよい。構造パラメータを最適化する最適化部は省略されてもよく、この場合には、外力推定システムは、外部のコンピュータシステムによって最適化された構造化パラメータを利用してもよい。
 上記の例では、本開示に係る外力推定システムがロボット制御のために用いられるが、この外力推定システムは別の目的で用いられてもよい。外力推定システムはワークに対する処理の進捗を管理するために用いられてもよく、例えば、ワークの研磨の進捗を検査するために用いられ得る。
 上記の例では、本開示に係る外乱トルク推定システムが推定外力の計算のために用いられるが、この外乱トルク推定システムは別の目的で用いられてもよい。例えば、外乱トルク推定システムはトルクセンサの少なくとも一部の機能を代替してもよいし、ロボットなどの装置と他の物体との接触を検知するために用いられてもよい。
 本開示に係るロボット制御システムおよび推定システムは、各軸の伝達トルクを、学習済みモデルに代えて、ベイズ最適化などの最適化によって算出してもよい。あるいは、本開示に係るロボット制御システムおよび推定システムは、各軸の伝達トルクに基づいて推定外力を算出する処理をニューラルネットワークなどの学習済みモデルによって実行してもよい。
 トルク用学習済みモデルは、実軌道でのロボットの複数の軸に対応する複数のフィードバック位置および複数の実トルクを入力として受け付けて、該複数の軸に対応する複数の基準トルクを算出する計算モデルであってもよい。
 上記の例では、エンドエフェクタの複数の候補位置のそれぞれについての、該候補位置と複数の基準トルクとの関係を含む基準トルクモデルの例として、データテーブル129を示す。その関係を含む基準トルクモデルはデータテーブル以外の手法によって実現されてもよく、例えば所定の関数によって定義されてもよい。
 上記の例ではロボット制御システムはモータ制御装置から分かれているが、ロボット制御システムはモータ制御装置内に組み込まれてもよい。あるいは、ロボット制御システムは、モータ制御装置に向けて指令を出力する上位コントローラ内に組み込まれてもよい。
 システムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上述した機能モジュール群の少なくとも一部が、その機能に特化した論理回路により構成されてもよいし、該論理回路を集積したASIC(Application Specific Integrated Circuit)により構成されてもよい。
 少なくとも一つのプロセッサにより実行される方法の処理手順は上記の例に限定されない。例えば、上述したステップまたは処理の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
 コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。
 1…ロボットシステム、2…ロボット制御システム、3…ロボット、3b…エンドエフェクタ、3a…軸、4…モータ制御装置、9…ワーク、10,10A,10B…外乱トルク推定システム、20,20A,20B…外力推定システム、30…ロボット制御部、111…トルク用学習部、112…記憶部、113…外乱トルク推定部、119…トルク用学習済みモデル、121…記憶部、122…外乱トルク推定部、129…データテーブル、211…外力用学習部、212…記憶部、213…外力推定部、219…外力用学習済みモデル、221…外力用学習部、222…記憶部、223…最適化部、224…行列設定部、225…外力推定部、226…伝達トルク算出部、227…推定外力算出部、229…外力用学習済みモデル、301~304…候補軌道、310…実軌道。

Claims (21)

  1.  ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、前記ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定部と、
     前記推定外力に基づいて前記ロボットを制御するロボット制御部と、
    を備え、
     前記外力推定部は、前記推定処理の少なくとも一部として、前記複数の外乱トルクと前記複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する、
    ロボット制御システム。
  2.  前記外力用学習済みモデルは、前記複数の外乱トルクのそれぞれの伝達効率を反映した結果を算出し、
     前記外力推定部は、少なくとも前記複数の外乱トルクを前記外力用学習済みモデルに入力する、
    請求項1に記載のロボット制御システム。
  3.  前記外力用学習済みモデルは、前記ロボットの動作に基づく教師データを用いた機械学習によって生成されたニューラルネットワークを含み、
     前記外力推定部は、前記推定処理の少なくとも一部として、前記ニューラルネットワークによる計算を実行する、
    請求項2に記載のロボット制御システム。
  4.  前記外力用学習済みモデルは、前記複数の外乱トルクに基づいて、前記複数の軸のそれぞれについて、前記エンドエフェクタに伝達されるトルクである伝達トルクを算出し、
     前記外力推定部は、
      前記複数の外乱トルクを前記外力用学習済みモデルに入力して、前記複数の軸に対応する複数の前記伝達トルクを算出し、
      前記複数の伝達トルクに基づいて前記推定外力を算出する、
    請求項2または3に記載のロボット制御システム。
  5.  前記複数の軸位置と前記ロボットの構造を示す構造パラメータとに基づいてヤコビ行列を設定する行列設定部を更に備え、
     前記外力推定部は、前記複数の伝達トルクと前記ヤコビ行列とに基づいて前記推定外力を算出する、
    請求項4に記載のロボット制御システム。
  6.  前記推定外力と、前記エンドエフェクタに実際に作用した外力である実外力との差に基づいて、前記構造パラメータを最適化する最適化部を更に備え、
     前記行列設定部は、前記最適化された構造パラメータに基づいて前記ヤコビ行列を更新する、
    請求項5に記載のロボット制御システム。
  7.  前記最適化部は、前記ロボットの構造に関する設計値からのずれ量を示す前記構造パラメータを最適化する、
    請求項6に記載のロボット制御システム。
  8.  前記複数の外乱トルクと、前記複数の軸位置と、前記エンドエフェクタに実際に作用した外力である実外力との複数の組合せを示す教師データに基づいて機械学習を実行して、前記複数の伝達トルクを算出するための前記外力用学習済みモデルを生成する外力用学習部を更に備える、
    請求項4~7のいずれか一項に記載のロボット制御システム。
  9.  前記外力用学習部は、
      前記複数の組合せのそれぞれについて、前記複数の軸位置および前記実外力に基づいて、前記複数の伝達トルクの正解値を算出し、
      前記教師データにより示される前記複数の外乱トルクと、前記複数の伝達トルクの正解値とに基づいて前記機械学習を実行して、前記外力用学習済みモデルを生成する、
    請求項8に記載のロボット制御システム。
  10.  前記外力用学習済みモデルは、前記複数の外乱トルクおよび前記複数の軸位置を入力として受け付けて前記推定外力を算出し、
     前記外力推定部は、前記複数の外乱トルクおよび前記複数の軸位置を前記外力用学習済みモデルに入力して、前記推定外力を算出する、
    請求項1または2に記載のロボット制御システム。
  11.  前記複数の外乱トルクと、前記複数の軸位置と、前記エンドエフェクタに実際に作用した外力である実外力との複数の組合せを示す教師データに基づいて機械学習を実行して、前記推定外力を算出するための前記外力用学習済みモデルを生成する外力用学習部を更に備える請求項10に記載のロボット制御システム。
  12.  前記エンドエフェクタの軌道と、外乱を受けることなく該軌道に沿って動作する前記ロボットの前記複数の軸に対応する複数の基準トルクとの関係を反映した基準トルクモデルを記憶する記憶部と、
     前記基準トルクモデルと、実軌道に沿って動作した前記ロボットの前記複数の軸に対応する複数の実トルクとに基づいて、該実軌道における前記複数の外乱トルクを算出する外乱トルク推定部と、
    を更に備える請求項1~11のいずれか一項に記載のロボット制御システム。
  13.  前記外乱トルク推定部は、
      前記基準トルクモデルと、前記実軌道での前記ロボットの姿勢を示す姿勢情報とに基づいて前記複数の基準トルクを特定し、
      前記複数の軸のそれぞれについて、前記実トルクと前記基準トルクとの差を前記外乱トルクとして算出する、
    請求項12に記載のロボット制御システム。
  14.  前記基準トルクモデルは、前記実軌道での前記ロボットの前記複数の軸に対応する前記複数の軸位置を少なくとも入力として受け付けて前記複数の基準トルクを算出するトルク用学習済みモデルであり、
     前記外乱トルク推定部は、少なくとも前記複数の軸位置を前記トルク用学習済みモデルに入力して、前記複数の基準トルクを算出する、
    請求項13に記載のロボット制御システム。
  15.  前記複数の軸位置と前記複数の基準トルクとの複数の組合せを示す教師データに基づいて機械学習を実行して、前記トルク用学習済みモデルを生成するトルク用学習部を更に備える請求項14に記載のロボット制御システム。
  16.  前記基準トルクモデルは、前記軌道を含む前記エンドエフェクタの複数の候補位置のそれぞれについての、該候補位置と前記複数の基準トルクとの関係を含み、
     前記外乱トルク推定部は、
      前記複数の候補位置の中から、前記姿勢情報により示される前記エンドエフェクタの実位置に対応する少なくとも一つの候補位置を選択し、
      前記選択された少なくとも一つの候補位置と前記基準トルクモデルとに基づいて前記複数の基準トルクを特定する、
    請求項13に記載のロボット制御システム。
  17.  前記複数の候補位置のそれぞれは、前記ロボットの力制御軸方向において互いに異なる位置に設定された複数の候補軌道のいずれかに含まれ、
     前記外乱トルク推定部は、前記力制御軸方向における前記エンドエフェクタの実位置に対応する前記一つの候補軌道を選択する、
    請求項16に記載のロボット制御システム。
  18.  少なくとも一つのプロセッサを備えるロボット制御システムによって実行されるロボット制御方法であって、
     ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、前記ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定ステップと、
     前記推定外力に基づいて前記ロボットを制御するロボット制御ステップと、
    を含み、
     前記外力推定ステップでは、前記推定処理の少なくとも一部として、前記複数の外乱トルクと前記複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する、
    ロボット制御方法。
  19.  ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、前記ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定ステップと、
     前記推定外力に基づいて前記ロボットを制御するロボット制御ステップと、
    をコンピュータに実行させ、
     前記外力推定ステップでは、前記推定処理の少なくとも一部として、前記複数の外乱トルクと前記複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する、
    ロボット制御プログラム。
  20.  ロボットの複数の軸に対応する複数の外乱トルクおよび複数の軸位置に基づく推定処理を実行して、前記ロボットのエンドエフェクタに作用した外力を推定外力として算出する外力推定部を備え、
     前記外力推定部は、前記推定処理の少なくとも一部として、前記複数の外乱トルクと前記複数の軸位置との少なくとも一方を入力として受け付ける外力用学習済みモデルによる計算を実行する、
    推定システム。
  21.  ロボットのエンドエフェクタの軌道と、外乱を受けることなく該軌道に沿って動作する前記ロボットの複数の軸に対応する複数の基準トルクとの関係を反映した基準トルクモデルを記憶する記憶部と、
     前記基準トルクモデルと、実軌道に沿って動作した前記ロボットの前記複数の軸に対応する複数の実トルクとに基づいて、該実軌道における前記複数の軸に対応する複数の外乱トルクを算出する外乱トルク推定部と、
    を備える推定システム。
PCT/JP2022/006218 2022-02-16 2022-02-16 ロボット制御システム、ロボット制御方法、ロボット制御プログラム、および推定システム WO2023157137A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/006218 WO2023157137A1 (ja) 2022-02-16 2022-02-16 ロボット制御システム、ロボット制御方法、ロボット制御プログラム、および推定システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/006218 WO2023157137A1 (ja) 2022-02-16 2022-02-16 ロボット制御システム、ロボット制御方法、ロボット制御プログラム、および推定システム

Publications (1)

Publication Number Publication Date
WO2023157137A1 true WO2023157137A1 (ja) 2023-08-24

Family

ID=87577879

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/006218 WO2023157137A1 (ja) 2022-02-16 2022-02-16 ロボット制御システム、ロボット制御方法、ロボット制御プログラム、および推定システム

Country Status (1)

Country Link
WO (1) WO2023157137A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012024877A (ja) * 2010-07-22 2012-02-09 Toshiba Corp ロボット制御装置
WO2021009903A1 (ja) * 2019-07-18 2021-01-21 株式会社安川電機 ロボットシステム、ロボットの制御方法、サーボシステム
JP2021049597A (ja) * 2019-09-24 2021-04-01 ソニー株式会社 情報処理装置、情報処理システム及び情報処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012024877A (ja) * 2010-07-22 2012-02-09 Toshiba Corp ロボット制御装置
WO2021009903A1 (ja) * 2019-07-18 2021-01-21 株式会社安川電機 ロボットシステム、ロボットの制御方法、サーボシステム
JP2021049597A (ja) * 2019-09-24 2021-04-01 ソニー株式会社 情報処理装置、情報処理システム及び情報処理方法

Similar Documents

Publication Publication Date Title
US9002519B2 (en) Robot control method, robot control device, and robot control system
CN108025439B (zh) 机器人示教方法及机器臂控制装置
CN109849025B (zh) 振动抑制装置
CN106041926A (zh) 一种基于卡尔曼滤波器的工业机械臂力/位置混合控制方法
KR20180069031A (ko) 로봇의 다이렉트 교시방법
JP2016083713A (ja) ロボット制御方法、ロボット装置、プログラム、記録媒体及び組立部品の製造方法
JP2017124455A (ja) ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP3349652B2 (ja) オフラインティーチング方法
CN113043279B (zh) 手术机器人的控制方法、控制器、系统、电子设备与介质
CN115890735B (zh) 机械臂系统、机械臂及其控制方法、控制器和存储介质
CN115351780A (zh) 用于控制机器人设备的方法
CN111515928B (zh) 机械臂运动控制系统
WO2023157137A1 (ja) ロボット制御システム、ロボット制御方法、ロボット制御プログラム、および推定システム
JP6697544B2 (ja) 最適化装置及びそれを備えた垂直型多関節ロボット
JPH09103945A (ja) 時計外装ケース研磨装置及び汎用研磨装置
CN112847366A (zh) 一种力位混合示教机器人系统及示教方法
JPH05345291A (ja) ロボットの動作範囲制限方式
CN109773792A (zh) 串联弹性驱动器的位置控制装置及方法、存储介质、设备
JP6928031B2 (ja) 制御装置及び制御システム
Lei et al. Vision-based position/impedance control for robotic assembly task
WO2021181804A1 (ja) シミュレーション装置およびプログラム
US20230249339A1 (en) Robot control based on equivalent mass matrix
EP4241930A1 (en) Robot control in working space
CN114833820B (zh) 动作参数调整方法、记录介质以及机器人系统
WO2021166366A1 (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: 22927040

Country of ref document: EP

Kind code of ref document: A1