US20130116827A1 - Robot control system, robot system, and sensor information processing apparatus - Google Patents

Robot control system, robot system, and sensor information processing apparatus Download PDF

Info

Publication number
US20130116827A1
US20130116827A1 US13/669,824 US201213669824A US2013116827A1 US 20130116827 A1 US20130116827 A1 US 20130116827A1 US 201213669824 A US201213669824 A US 201213669824A US 2013116827 A1 US2013116827 A1 US 2013116827A1
Authority
US
United States
Prior art keywords
digital filter
processing
unit
coefficient
digital
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
US13/669,824
Other versions
US8958914B2 (en
Inventor
Mitsuhiro Inazumi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Assigned to SEIKO EPSON CORPORATION reassignment SEIKO EPSON CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INAZUMI, MITSUHIRO
Publication of US20130116827A1 publication Critical patent/US20130116827A1/en
Priority to US14/590,032 priority Critical patent/US9463573B2/en
Application granted granted Critical
Publication of US8958914B2 publication Critical patent/US8958914B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39325External force control, additional loop comparing forces corrects position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39343Force based impedance control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39529Force, torque sensor in wrist, end effector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/41Servomotor, servo controller till figures
    • G05B2219/41166Adaptive filter frequency as function of oscillation, rigidity, inertia load
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • Y10S901/09Closed loop, sensor feedback controls arm movement

Definitions

  • the present invention relates to a robot control system, a robot system, a sensor information processing apparatus, and the like.
  • the impedance control is a control method for causing a robot to act, irrespective of the actual mass, the viscosity characteristic, and the elasticity characteristic of the robot, as if the robot has values of the actual mass, the viscosity characteristic, and the elasticity characteristic suitable for work.
  • This is a control method for solving an equation of motion on the basis of force information obtained from a force sensor or the like attached to the robot and causing the robot to act according to the solution. By appropriately setting the equation of motion, it is possible to cause the robot such as the manipulator to act as if the robot has predetermined mass, viscosity, and elasticity.
  • Patent Literature 1 JP-A-320451
  • Patent Literature 2 JP-A-2-205489
  • Patent Literature 4 JP-A-4-369004
  • Patent Literature 1 discloses a method of accurately performing the impedance control even in an extremely complicated system, for example, when a control target is soft.
  • Patent Literature 2 discloses a method of providing a motion model on the inside of a control system to thereby, estimate force and performing the impedance control while making it unnecessary to use a sensor, although the control system is complicated, and using a simpler mechanical structure.
  • Patent Literature 3 discloses one method for reducing a calculation amount. This is a method of reducing a calculation amount by using a transpose Jacobian matrix without performing calculation for calculating an inverse Jacobian matrix described in Patent Literatures 1 and 2.
  • an ordinary differential equation a motion equation serving as a secondary linear ordinary differential equation
  • various methods of solving the ordinary differential equation are known. However, the Runge-Kutta method, the Newton method, or the like are used.
  • the responsiveness means a dynamic characteristic determined by the desired characteristics (mass, viscosity characteristic, and elasticity characteristic) given to the robot.
  • Low responsiveness indicates, for example, characteristics realized by a large mass coefficient, a large viscosity coefficient, and a small elasticity coefficient.
  • High responsiveness indicates, for example, characteristics realized by a small mass coefficient, a small viscosity coefficient, and a large elasticity coefficient. Optimum characteristics of these characteristics vary depending on realized work content or a scene of work. Therefore, it is an extremely important function to be capable of easily switching response characteristics.
  • An advantage of some aspects of the invention is to provide a robot control system, a robot system, a sensor information processing apparatus, and the like that facilitate hardwaring, verification of stability, and switching of responsiveness of a solution.
  • An aspect of the invention relates to a robot control system including: a force control unit configured to output a correction value of a target track of a robot on the basis of sensor information acquired from a force sensor; a target-value output unit configured to apply correction processing based on the correction value to the target track to calculate a target value and output the calculated target value; and a robot control unit configured to perform feedback control of the robot on the basis of the target value.
  • the force control unit includes a digital filter unit. The force control unit applies digital filter processing by the digital filter unit to the sensor information to calculate a solution of an ordinary differential equation in force control and outputs the correction value on the basis of the calculated solution.
  • the robot control system performs the force control on the basis of the sensor information acquired from the force sensor to calculate the correction value and performs the feedback control of the robot using the target value obtained on the basis of the correction value.
  • processing for calculating the solution of the ordinary differential equation is performed by the digital filter processing to output the correction value. Consequently, it is possible to, for example, facilitate hardwaring, determination of stability, and switching of responsiveness of the processing.
  • the digital filter unit includes: a digital-filter-coefficient output unit configured to output a digital filter coefficient on the basis of coefficient parameters of respective terms of the ordinary differential equation; and a digital filter arithmetic unit configured to perform the digital filter processing on the basis of the digital filter coefficient and the sensor information.
  • the digital-filter-coefficient output unit includes: a digital-filter-coefficient converting unit configured to perform processing for converting the coefficient parameters into the digital filter coefficient; and a digital-filter-coefficient storing unit configured to store the digital filter coefficient converted by the digital-filter-coefficient converting unit.
  • the digital-filter-coefficient output unit outputs the digital filter coefficient stored in the digital-filter-coefficient storing unit.
  • the digital-filter unit includes a digital-filter-stability-degree determining unit configured to determine a stability degree of the operation of a digital filter used for the digital filter processing.
  • the digital-filter-coefficient output unit outputs the digital filter coefficient when the digital-filter-stability-degree determining unit determines that the operation of the digital filter is stable.
  • the digital-filter-coefficient output unit when the digital filter processing is performed at a driving frequency of any one of a first driving frequency or a second driving frequency higher than the first driving frequency, the digital-filter-coefficient output unit outputs at least one of a first digital filter coefficient corresponding to the first driving frequency and a second digital filter coefficient corresponding to the second driving frequency.
  • the digital filter arithmetic unit performs, according to the digital filter coefficient output from the digital-filter-coefficient output unit, at least one of the digital filter processing by the first driving frequency in which the first digital filter coefficient is used and the digital filter processing by the second driving frequency in which the second digital filter coefficient is used.
  • the digital filter unit includes a selection processing unit configured to select one of the first driving frequency and the second driving frequency on the basis of signal frequency band information of the sensor information.
  • the digital filter unit performs the digital filter processing at the driving frequency selected by the selection processing unit and outputs the correction value. Consequently, it is possible to, for example, automatically select the driving frequency on the basis of the signal frequency band information of the sensor information.
  • the selection processing unit selects the driving frequency using, as the signal frequency band information, low-frequency sensor information obtained by applying low-pass filter processing to the sensor information and high-frequency sensor information obtained by applying high-pass filter processing to the sensor information.
  • the digital filter arithmetic unit when the driving frequency of the digital filter processing is switched from the high second driving frequency to the low first driving frequency, performs, in a first period, the digital filter processing by the second driving frequency in which the second filter coefficient is used, performs, in a switching period following the first period, both of the digital filter processing by the first driving frequency in which the first filter coefficient is used and the digital filter processing by the second driving frequency in which the second filter coefficient is used, and performs, in a second period following the switching period, the digital filter processing by the first driving frequency in which the first filter coefficient is used.
  • the digital filter arithmetic unit when the driving frequency of the digital filter processing is switched from the low first driving frequency to the high second driving frequency, performs, on the basis of a first output value, which is an output value of the digital filter processing by the first driving frequency in which the first filter coefficient is used at switching timing, and a second output value, which is an output value of the digital filter processing by the first driving frequency in which the first filter coefficient is used at timing in the past earlier than the switching timing, interpolation processing for calculating an interpolation value at timing between the switching timing and the timing in the past and performs, on the basis of the interpolation value, the digital filter processing by the second driving frequency in which the second filter coefficient is used.
  • the digital filter unit includes a first digital filter arithmetic unit and a second digital filter arithmetic unit as the digital filter arithmetic unit.
  • the digital-filter-coefficient output unit outputs a first digital filter coefficient to the first digital filter arithmetic unit and outputs a second digital filter coefficient different from the first digital filter coefficient to the second digital filter arithmetic unit.
  • the first digital filter arithmetic unit performs the digital filter processing based on the first digital filter coefficient and the sensor information.
  • the second digital filter arithmetic unit performs the digital filter processing based on the second digital filter coefficient and the sensor information.
  • the digital filter unit includes a digital-filter-output selecting unit configured to select any one of a processing result in the first digital filter arithmetic unit and a processing result in the second digital filter arithmetic unit and outputs the processing result as the correction value.
  • the digital-filter-coefficient output unit when the digital filter processing is performed at a driving frequency of any one of a first driving frequency or a second driving frequency higher than the first driving frequency, the digital-filter-coefficient output unit outputs a digital filter coefficient corresponding to the first driving frequency as the first digital filter coefficient and outputs a digital filter coefficient corresponding to the second driving frequency as the second digital filter coefficient.
  • the first digital filter arithmetic unit performs the digital filter processing at the first driving frequency on the basis of the first digital filter coefficient.
  • the second digital filter arithmetic unit performs the digital filter processing at the second driving frequency on the basis of the second digital filter coefficient.
  • the force control unit includes a band limiting unit configured to apply band limiting processing for allowing a given frequency band to pass to the sensor information and output the sensor information subjected to the band limiting processing to the first digital filter arithmetic unit and the second digital filter arithmetic unit.
  • the band limiting unit outputs, to the first digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a first frequency band to pass and outputs, to the second digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a second frequency band wider than the first frequency band to pass.
  • the digital-filter-coefficient output unit includes a coefficient selecting unit configured to select any one of a first digital filter coefficient and a second filter coefficient different from the first digital filter coefficient.
  • the digital-filter-coefficient output unit outputs the digital filter coefficient selected by the coefficient selecting unit to the digital filter arithmetic unit.
  • the coefficient selecting unit selects any one of the first digital filter coefficient corresponding to the first driving frequency and the second digital filter coefficient corresponding to the second driving frequency.
  • the digital-filter-coefficient output unit outputs the digital filter coefficient selected by the coefficient selecting unit to the digital filter arithmetic unit.
  • the digital filter arithmetic unit performs, when the first digital filter coefficient is output from the digital-filter-coefficient output unit, the digital filter processing at the first driving frequency on the basis of the first digital filter coefficient and performs, when the second digital filter coefficient is output from the digital-filter-coefficient output unit, the digital filter processing at the second driving frequency on the basis of the second digital filter coefficient.
  • the force control unit includes a band limiting unit configured to apply band limiting processing for allowing a given frequency band to pass to the sensor information and output the sensor information subjected to the band limiting processing to the digital filter arithmetic unit.
  • the band limiting unit outputs, when the digital filter processing by the first driving frequency is performed, to the digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a first frequency band to pass and outputs, when the digital filter processing by the second driving frequency is performed, to the digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a second frequency band wider than the first frequency band to pass.
  • the ordinary differential equation is an equation of motion including an imaginary mass term, an imaginary viscosity term, and an imaginary elasticity term as coefficient parameters.
  • the target-value output unit includes: a track generating unit configured to output target position information of the robot; and an inverse kinematics processing unit configured to perform inverse kinematics processing on the basis of the target position information from the track generating unit and output joint angle information of the robot.
  • the force control unit applies the digital filter processing by the digital filter unit to the sensor information to calculate a solution of the ordinary differential equation in the force control and outputs the calculated solution as the correction value.
  • the force control unit applies the digital filter processing by the digital filter unit to the sensor information to calculate a solution of the ordinary differential equation in the force control, applies inverse kinematics processing to the calculated solution, and outputs the correction value.
  • Another aspect of the invention relates to a robot system including the robot control system described above and a robot.
  • Still another aspect of the invention relates to a sensor information processing apparatus including: a sensor-information acquiring unit configured to acquire sensor information from a sensor; and a sensor-information processing unit configured to apply processing to the acquired sensor information.
  • the sensor-information processing unit includes a digital filter unit.
  • the sensor-information processing unit applies digital filter processing by the digital filter unit to the sensor information to calculate a solution of an ordinary differential equation in the sensor information processing and outputs the solution as an output value of the sensor information processing.
  • FIG. 1 is a basic configuration example of a robot control system and a robot system.
  • FIG. 2 is an example of the robot system.
  • FIGS. 3A to 3C are explanatory diagram concerning force control.
  • FIGS. 4A and 4B are explanatory diagrams concerning compliance control.
  • FIGS. 5A and 5B are explanatory diagrams concerning impedance control.
  • FIG. 6 is a basic configuration example of a control system not including force sense feedback.
  • FIG. 7 is a basic configuration example of the control system including the force sense feedback.
  • FIG. 8 is a basic form of a digital filter in calculating a solution of an equation of motion.
  • FIGS. 9A to 9C are explanatory diagrams of a stability determining method.
  • FIG. 10 is a basic configuration example of a robot control system and a robot system in which a digital filter is used.
  • FIG. 11 is a configuration example of a robot control system and a robot system according to a first embodiment.
  • FIG. 12 is a flowchart for explaining processing according to the first embodiment.
  • FIG. 13 is a configuration example of a robot control system and a robot system according to a second embodiment.
  • FIG. 14 is a flowchart for explaining processing according to the second embodiment.
  • FIG. 15 is a configuration example of a robot control system and a robot system according to a third embodiment.
  • FIG. 16 is an explanatory diagram of driving frequency switching processing from a high frequency to a low frequency.
  • FIG. 17 is a flowchart for explaining the driving frequency switching processing from a high frequency to a low frequency.
  • FIG. 18 is an explanatory diagram of driving frequency switching processing from a low frequency to a high frequency.
  • FIG. 19 is a flowchart for explaining the driving frequency switching processing from a low frequency to a high frequency.
  • FIG. 20 is a configuration example of a robot control system and a robot system according to a fourth embodiment.
  • FIGS. 21A and 21B are specific system configuration examples for calculating a target track, a correction value, and a target value.
  • FIG. 1 A configuration example of a robot control system (a manipulator control system) and a robot system including the robot control system according to an embodiment is shown in FIG. 1 .
  • the robot control system and the robot system according to this embodiment are not limited to the configuration shown in FIG. 1 .
  • Various modifications are possible, for example, a part of components of the robot control system and the robot system are omitted and other components are added.
  • the robot control system includes a force control unit 20 , a target-value output unit 60 , and a robot control unit 80 .
  • the robot system according to this embodiment includes the robot control system and a robot 100 (a force sensor 10 ).
  • the target-value output section 60 outputs a target value of feedback control of a robot (in a narrow sense, a manipulator). Feedback control of the robot 100 is realized on the basis of the target value.
  • the target value is joint angle information of the robot.
  • the joint angle information of the robot is, for example, information indicating angles of joints (angles formed by joint axes) in a link mechanism of an arm of the robot.
  • the target-value output unit 60 can include a track generating unit 62 and an inverse kinematics processing unit 64 .
  • the track generating unit 62 outputs track information of the robot.
  • the track information can include position information (x, y, z) of an end effecter section (an end point) of the robot and rotation angle information (u, v, w) around coordinate axes.
  • the inverse kinematics processing unit 64 performs inverse kinematics processing on the basis of the track information from the track generating unit 62 and outputs, for example, the joint angle information of the robot as the target value.
  • the inverse kinematics processing is processing for calculating a motion of the robot including joints and is processing for calculating, according to the inverse kinematics, joint angle information and the like from position posture and the like of the end effecter section of the robot.
  • the force control unit 20 (in a narrow sense, an impedance control unit) performs force control (force sense control) on the basis of sensor information acquired from the force sensor 10 and outputs a correction value of the target value. More specifically, the force control unit 20 (the impedance control unit) performs impedance control (or compliance control) on the basis of sensor information (force information and moment information) from the force sensor 10 .
  • the force control is, for example, control in which feedback of force is added to the position control in the past.
  • the impedance control is a method of changing easiness of occurrence of displacement (mechanical impedance) of the end effecter section (the fingers) with respect to external force to a desirable state through control.
  • the impedance control is control for, in a model in which mass, a viscosity coefficient, and an elasticity coefficient are connected to the end effecter section of the robot, bringing the robot into contact with an object with mass, a viscosity coefficient, and an elasticity coefficient set as targets.
  • the force sensor 10 is a sensor that detects force and moment received as reaction of force generated by the robot 100 .
  • the force sensor 10 is usually attached to a wrist portion of an arm of the robot 100 .
  • the detected force and moment are used for various kinds of force control (impedance control) as sensor information.
  • the robot control unit 80 performs the feedback control of the robot on the basis of the target value from the target-value output unit 60 . Specifically, the robot control unit 80 performs the feedback control of the robot on the basis of the target value output as a result of the correction processing based on the correction value from the force control unit 20 . For example, the robot control unit 80 performs the feedback control of the robot 100 on the basis of the target value and a feedback signal from the robot 100 .
  • the robot control unit 80 includes a plurality of driving control units 82 - 1 to 82 -N (in a narrow sense, motor control units). The robot control unit 80 outputs a control signal to driving units 102 - 1 to 102 -N.
  • the driving units 102 - 1 to 102 -N are driving mechanisms for moving joints of the robot 100 and are realized by, for example, motors.
  • the robot system includes a control apparatus 300 (an information processing apparatus) and a robot 310 (the robot 100 shown in FIG. 1 ).
  • the control apparatus 300 performs control processing for the robot 310 .
  • the control apparatus 300 performs, on the basis of operation sequence information (scenario information), control for causing the robot 310 to operate.
  • the robot 310 includes an arm 320 and a hand (a gripping unit) 330 .
  • the robot 310 operates according to an operation instruction from the control apparatus 300 .
  • the robot 310 performs operation for gripping or moving a work placed on a not-shown pallet.
  • Information such as the posture of the robot and the position of the work is detected on the basis of picked-up image information acquired by a not shown image-pickup apparatus. The detected information is sent to the control apparatus 300 .
  • the root control system according to this embodiment is provided in, for example, the control apparatus 300 shown in FIG. 2 .
  • the robot control system is realized by hardware and a computer program of the control apparatus 300 .
  • FIG. 2 is an example of a single arm type.
  • the robot 310 may be a robot of a multi-arm type such as a double arm type.
  • FIG. 3A shows a state in which a robot is moving while holding an object OB with a left arm AL and a right arm AR. For example, only with position control, it is likely that the object is dropped or broken. With the force control, it is possible to hold and move a soft object or a fragile object from both sides with appropriate force as shown in FIG. 3A .
  • Compliance control is a type of the impedance control.
  • Compliance means a reciprocal of a spring constant. Whereas the spring constant represents hardness, the compliance means softness.
  • compliance control When an interaction acts between the robot and the environment, control for imparting the compliance, which is mechanical flexibility, is referred to as compliance control.
  • a force sensor SE is attached to the arm AM of the robot.
  • the arm AM of the robot is programmed to change posture according to sensor information (force and torque information) obtained by the force sensor SE.
  • the robot is controlled as if an imaginary spring indicated by A 1 in FIG. 4A is attached to the distal end of the arm AM.
  • a spring constant of the spring indicated by A 1 is 100 Kg/m. If the spring is pushed with force of 5 Kg as indicated by A 2 in FIG. 4B , the spring contracts by 5 cm as indicated by A 3 . In other words, if the spring is contracted by 5 cm, the spring is considered to be pushed with force of 5 Kg. This means that force information and position information are associated with each other.
  • control is performed as if the imaginary spring indicated by A 1 is attached to the distal end of the arm AM.
  • the robot operates in response to an input of the force sensor SE.
  • the robot is controlled to retract by 5 cm as indicated by A 3 with respect to weighting of 5 Kg indicated by A 2 and is controlled such that the position information changes to correspond to the force information.
  • the simple compliance control explained above does not include a time term.
  • Control including a time term and taking into account terms up to a secondary term of the time term is the impedance control.
  • the secondary term is amass term and a primary term is a viscosity term.
  • a model of the impedance control can be represented by an equation of motion indicated by Formula (1) below.
  • m represents mass
  • represents a viscosity coefficient
  • k represents an elasticity coefficient
  • f represents force
  • x represents displacement from a target position.
  • Primary differential and secondary differential of x respectively correspond to speed and acceleration.
  • a control system for imparting the characteristic of Formula (1) to an end effecter section, which is the distal end of the arm, is configured. In other words, control is performed as if the distal end of the arm has imaginary mass, an imaginary viscosity coefficient, and an imaginary elasticity coefficient represented by Formula (1).
  • the impedance control is control for bringing the robot into contact with an object with a viscosity coefficient and an elasticity coefficient set as targets in a model in which a viscosity element and an elasticity element are connected to the mass of the distal end of the arm in respective directions.
  • a track TRL is a track on which a point PL set on the inner side of the left side of the object OB passes and is a track of an imaginary left hand determined assuming the impedance control.
  • a track TRR is a track on which a point PR set on the inner side of the right side of the object OB passes and is a track of an imaginary right hand determined assuming the impedance control.
  • the arm AL is controlled such that force corresponding to a distance difference between the distal end of the arm AL and the point PL is generated.
  • the arm AR is controlled such that force corresponding to a distance difference between the distal end of the arm AR and the point PR is generated. Consequently, it is possible to realize the impedance control for moving the object OB while softly gripping the object OB.
  • the arms AL and AR are controlled such that the distal ends thereof stop in the positions of the points PL and PR as indicated by B 2 and B 3 . Unless an imaginary track is a collision track, it is possible to prevent the arms AL and AR from colliding with each other.
  • the arm AM when the arm AM is controlled to trace the surface SF of the object, in the impedance control, the arm AM is controlled such that force corresponding to a distance difference DF between an imaginary track TRVA and the distal end of the arm AM acts on the distal end of the arm AM. Therefore, it is possible to control the arm AM to trace the surface SF while applying force to the arm AM.
  • FIG. 6 A basic configuration example of the control system not including the force sense feedback is shown in FIG. 6 .
  • a track generating unit 562 generates track information p (xyzuvw) and outputs the track information p to an inverse kinematics processing unit 564 .
  • the track information p includes, for example, position information (xyz) of the distal end (the end effecter section) of the arm and rotation information (uvw) around axes.
  • the inverse kinematics processing unit 564 performs inverse kinematics processing on the basis of the track information p and generates and outputs a joint angle ⁇ of joints, which is a target value. Motor control is performed on the basis of the joint angle ⁇ , whereby operation control of the arm of the robot is performed. In this case, control of a motor (M) shown in FIG. 6 is realized by publicly-known PID control. Since the PID control is a publicly-known technique, detailed explanation of the PID control is omitted.
  • a target-value output unit is configured by the track generating unit 562 and the inverse kinematics processing unit 564 . Processing by the target-value output unit is overall processing for the robot. On the other hand, motor control at a post stage is control for each joint.
  • FIG. 7 A basic configuration example of the control system including the force sense feedback is shown in FIG. 7 .
  • a force sensor 510 a posture correcting unit 532 , a hand-tool-own-weight correcting unit 534 , a motion-equation processing unit 536 , and a forward kinematics processing unit 540 are added to the configuration shown in FIG. 6 .
  • the posture correcting unit 532 performs posture correction for the sensor and the hand-tool-own-weight correcting unit 534 performs hand tool own weight correction.
  • the motion-equation processing unit 536 performs processing for calculating a solution of the equation of motion indicated by Formula (1) and outputs a correction value ⁇ p.
  • the track information p is corrected by the correction value ⁇ p, whereby correction processing for the joint angle ⁇ , which is the target value, is performed.
  • the forward kinematics processing unit 540 performs forward kinematics processing to calculate track information p′ of the robot and feeds back the track information p′ to the track generating unit 562 .
  • the posture correcting unit 532 outputs information for specifying posture to the hand-tool-own-weight correcting unit 534 .
  • the feedback of the track information p′ of the robot to the track generating unit 562 is feedback for performing, for example, correction processing for a track based on p′. If the correction processing or the like is not performed, the feedback is not always necessary.
  • the hand-tool-own-weight correcting unit 534 performs hand tool own weight correction.
  • the posture correcting unit 532 performs posture correction.
  • the hand tool own weight correction is correction processing for eliminating the influence due to the own weight of the hand of the robot and the own weight of a tool gripped by the hand from sensor information (force information) acquired from the force sensor 10 .
  • the posture correction is correction processing for eliminating the influence due to the posture of the force sensor 10 from the sensor information (the force information).
  • the hand tool own weight correction and the posture correction can be represented, for example, as indicated by Formula (2) below.
  • Fx, Fy, Fz, Fu, Fv, and Fw represent force information and torque information, which are sensor information, acquired from the force sensor 10 .
  • Bx, By, Bz, Bu, By, and Bw represent bias terms.
  • the motion-equation processing unit 536 shown in FIG. 7 needs to calculate a solution of an equation of motion (in a broad sense, an ordinary differential equation).
  • the Newton method, the Runge-Kutta method, or the like is used to calculate a solution of the equation of motion.
  • these methods are not suitable for hardwaring. Determination of stability is difficult with these methods. Further, it is difficult to cope with switching of responsiveness.
  • the applicant uses a digital filter as a method of solving the ordinary differential equation.
  • the equation of motion is represented in the form of Formula (1). Since the equation of motion is a linear ordinary differential equation, if an impulse response, which is a solution to an impulse input, is calculated, it is possible to obtain a solution to an arbitrary external force term according to convolution of the impulse response and an external force term.
  • a step of calculating a solution of the equation of motion is regarded as a filter for outputting a solution (e.g., position information) with respect to an input of sensor information of the force sensor
  • the step can be considered a two-pole analog filter from the form of Formula (1).
  • a solution of the equation of motion can be calculated as an output of the analog filter. Therefore, it is possible to solve the equation of motion using the digital filter by converting the analog filter into a digital filter.
  • Various method of converting the analog filter into a digital filter are known.
  • the Impulse Invariance method only has to be used. This is a method of considering a digital filter that gives an impulse response same as a value obtained by sampling an impulse response of the analog filter at a discrete time T. Since the Impulse Invariance method is a publicly-known method, detailed explanation of the impulse Invariance method is omitted.
  • the equation of motion is a two-pole digital filter as shown in FIG. 8 .
  • d represents a delay of one sample and C 0 , C 1 , and C 2 represent coefficients of the filter.
  • C 0 , C 1 , and C 2 represent coefficients of the filter.
  • a coefficient of the digital filter is switched, it is also possible to switch a characteristic (e.g., whether the digital filter is moved softly or hardly) and switch a filter driving frequency to switch responsiveness of a solution.
  • the equation of motion is processed using the digital filter. Therefore, determination of stability of a system concerning the equation of motion is nothing but determination of stability of the digital filter corresponding to the system. The determination of stability of the digital filter can be easily performed. It only has to be determined whether poles are present in a unit circle.
  • FIGS. 9A to 9C Specific examples are shown in FIGS. 9A to 9C . All the specific examples are examples in which poles fit in a unit circle. When the poles are outside the unit circle, it is determined that the digital filter is unstable. When poles are present in positions away from the circumference of the unit circle to the inner side by some degree as shown in FIG. 9C , there is no particular problem. However, when poles are present in positions very close to the unit circuit as shown in FIG. 9A ( FIG. 9A is an example in which two poles are present in positions limitlessly close to each other rather than in an equal root), caution is required. This is because, depending on a mounting method of the digital filter, it is likely that an error occurs in a design value.
  • the digital filter without margin in stability as shown in FIG. 9A is likely to perform unstable operation during mounting, although the digital filter is stable in design. Therefore, some measures need to be taken.
  • FIG. 10 A configuration example of the robot control system and the robot system including the robot control system in calculating a solution of the equation of motion using the digital filter is shown in FIG. 10 .
  • the robot control system and the robot system according to this embodiment are not limited to the configuration shown in FIG. 10 .
  • Various modifications are possible, for example, apart of components of the robot control system and the robot system are omitted and other components are added.
  • the force sensor 10 , the target-value output unit 60 , the robot control unit 80 , and the robot 100 are the same as those shown in FIG. 1 . Therefore, detailed explanation thereof is omitted.
  • the force control unit 20 includes a digital filter unit 22 .
  • the digital filter unit 22 applies digital filter processing to sensor information (including information obtained by applying the correction and the band limiting processing to the sensor information) obtained from the force sensor and outputs an output value to the target-value output unit 60 as a correction value.
  • the force control unit 20 may include a band limiting unit 24 that applies the band limiting processing to the sensor information.
  • the digital filter unit 22 includes a digital filter arithmetic unit 221 , a digital-filter-coefficient output unit 222 , and a digital-filter-stability-degree determining unit 223 .
  • the digital filter arithmetic unit 221 performs the digital filter processing to calculate a solution of the equation of motion on the basis of the sensor information and a digital filter coefficient.
  • the digital-filter-coefficient output unit 222 calculates the digital filter coefficient on the basis of the coefficient parameters (the mass term m, the viscosity term ⁇ , the elasticity term k, and the driving period T) of the equation of motion and outputs the digital filter coefficient to the digital filter arithmetic unit 221 and the digital-filter-stability-degree determining unit 223 .
  • the digital-filter-stability-degree determining unit 223 performs determination of stability of the digital filter on the basis of the digital filter coefficient.
  • the digital-filter-coefficient output unit 222 may include a digital-filter-coefficient storing unit 224 and a digital-filter-coefficient converting unit 225 .
  • the digital-filter-coefficient converting unit 225 converts the coefficient parameters of the equation of motion into the digital filter coefficient.
  • the digital-filter-coefficient storing unit 224 stores the converted digital filter coefficient. If a plurality of digital filter coefficients are stored in the digital-filter-coefficient storing unit 224 in advance, it is possible to switch an operation characteristic of the robot and responsiveness of a solution by switching a digital filter coefficient to be output.
  • the first embodiment is a basic form of the invention.
  • the second embodiment is an example in which a plurality of filters are caused to operate in parallel when the plurality of filters are switched. Specifically, a plurality of the digital filter arithmetic units 221 are provided.
  • the third embodiment is an example in which only one digital filter arithmetic unit 221 is used when the plurality of filters are switched. In this case, when a driving frequency is switched, it is necessary to perform processing for the switching.
  • the fourth embodiment is an example in which filter selection processing in switching the plurality of filters is performed on the basis of sensor information.
  • FIG. 11 A configuration example of a robot system including a robot control system according to the first embodiment is shown in FIG. 11 .
  • An input correcting unit 30 applies correction processing to sensor information.
  • the input correcting unit 30 may include, for example, the posture correcting unit 532 and the hand-tool-own-weight correcting unit 534 shown in FIG. 7 .
  • a forward kinematics processing unit 40 corresponds to the forward kinematics processing unit 540 shown in FIG. 7 .
  • the forward kinematics processing unit 40 outputs a result of forward kinematics processing to the input correcting unit 30 and outputs the result to the track generating unit 62 as well according to necessity.
  • the robot control system includes the digital-filter arithmetic unit 221 , the digital-filter-stability-degree determining unit 223 , the digital-filter-coefficient storing unit 224 , the digital-filter-coefficient converting unit 225 , a response-characteristic input unit 226 , and a filter-state storing unit 227 . Specifically, these units are included in the digital filter unit 22 of the force control unit 20 .
  • the digital filter arithmetic unit 221 , the digital-filter-stability-degree determining unit 223 , the digital-filter-coefficient storing unit 224 , and the digital-filter-coefficient converting unit 225 are explained above with reference to FIG. 10 . Therefore, details of the units are not explained.
  • the response-characteristic input unit 226 outputs the coefficient parameters (m, ⁇ , and k) of the equation of motion and the driving period T (the driving frequency) to the digital-filter-coefficient converting unit 225 .
  • the filter-state storing unit 227 stores a filter state.
  • the filter state is an output of the digital filter arithmetic unit 221 (i.e., a solution of the equation of motion).
  • the equation of motion corresponds to the two-pole digital filter.
  • the equation of motion is as shown in FIG. 8 .
  • the digital filter is delayed twice. Therefore, in order to calculate an output value at certain timing, an output value at the immediately preceding timing and an output value at the second immediately preceding timing are necessary.
  • the filter-state storing unit 227 stores the output values.
  • the filter-state storing unit 227 stores an output of the digital filter arithmetic unit 221 and sends output values in the past to the digital filter arithmetic unit 221 .
  • FIG. 12 is a flowchart concerning processing in the digital filter unit 22 .
  • the digital filter unit 22 acquires an external force value F (S 102 ). It is assumed that the external force value F is obtained by applying the correction processing by the input correcting unit 30 to sensor information acquired from the force sensor 10 .
  • the digital filter unit 22 calculate a solution of the equation of motion using the acquired external force value F (S 103 ). Specifically, the digital filter unit 22 changes, in the filter-state storing unit 227 , an output Y n-1 of the digital filter arithmetic unit 221 at the immediately preceding step to a value Y n-2 and overwrites the output Y n-1 with a value Y n .
  • the digital filter unit 22 performs, in the digital filter arithmetic unit 221 , processing for calculating an output value Y n from the digital filter coefficient (C 0 , C 1 , and C 2 ) output from the digital-filter-coefficient storing unit 224 and the output values in the past (Y n-1 and Y n-2 ) output from the filter-state storing unit 227 .
  • the processing explained above is processing for calculating a solution of the equation of motion at certain one timing.
  • the digital filter unit 22 performs determination whether a response characteristic at the next timing is changed (S 104 ). If the response characteristic is not changed, the digital filter unit 22 returns to S 101 . If the response characteristic is changed, first, the digital filter unit 22 acquires the parameters (m, ⁇ , k, and T) of the response characteristic from the response-characteristic input unit 226 (S 105 ). The digital filter unit 22 calculates a digital filter coefficient in the digital-filter-coefficient converting unit 225 (S 106 ).
  • the digital filter unit 22 determines, in the digital-filter-stability-degree determining unit 223 , stability of the digital filter on the basis of the calculated digital filter coefficient (S 107 ). If the filter is not stable, the digital filter unit 22 returns to S 101 without storing the digital filter coefficient in the digital-filter-coefficient storing unit 224 . In other words, the response characteristic is not changed in the next step. If it is determined in S 107 that the filter is stable, the digital filter unit 22 stores the digital filter coefficient in the digital-filter-coefficient storing unit 224 (S 108 ) and performs processing in the next step using the digital filter coefficient updated by returning to S 101 .
  • the robot control system includes, as shown in FIG. 10 , the force control unit 20 that outputs a correction value concerning a target track of the robot on the basis of sensor information acquired from the force sensor 10 , the target-value output unit 60 that corrects the target track on the basis of the correction value to output a target value, and the robot control unit 80 that performs feedback control of the robot 100 on the basis of the target value.
  • the force control unit 20 includes the digital filter unit 22 .
  • the force control unit 20 applies the digital filter processing by the digital filter unit 22 to the sensor information to calculate a solution of the ordinary differential equation in the force control and outputs the correction value on the basis of the calculated solution.
  • the target value is a target value in the feedback control of the robot 100 .
  • the control in the robot control unit 80 is performed on the basis of the target value.
  • the target value can be acquired by applying the correction processing by the correction value to a target track.
  • the target track may be a target track representing a change in a spatial target position of the end effecter section (the end point) of the robot.
  • One target position is represented by, for example, a three-dimensional space coordinate xyz (if posture is also taken into account, rotation angles uvw around axes may be added).
  • the target track is a set of the target positions.
  • the target track is not limited to this and may be a set of target joint angles of the robot.
  • the position of the end effecter section is uniquely determined by the forward kinematics processing.
  • one target position can be represented by N joint angles ( ⁇ 1 to ⁇ N). Therefore, if a set of the N joint angles is set as one target joint angle, the target track can be considered a set of target joint angles. Therefore, the correction value output from the force control unit 20 may be a value concerning a position or may be a value concerning a joint angle.
  • FIGS. 21A and 21B Specific examples are shown in FIGS. 21A and 21B .
  • a solution of the equation of motion is a value concerning a position. Therefore, when the target track is the target position, the target track only has to be directly set as the correction value.
  • a system configuration example is as shown in FIG. 21A .
  • the target value may be a value concerning a position or may be a value concerning a joint angle. In general, it is assumed the joint angle is used in the feedback control of the robot.
  • the force control unit 20 includes an inverse kinematics processing unit 29 separately from the inverse kinematics processing unit 64 of the target-value output unit 60 .
  • timing of processing and processing rates are different in target track generation processing in the target-value output unit 60 and correction value output processing in the force control unit 20 .
  • the target track is a target joint angle.
  • the force control unit 20 applies conversion processing (e.g., inverse kinematics processing) to the solution of the equation of motion to obtain the correction value.
  • the ordinary differential equation in the force control is an ordinary differential equation, a solution of which needs to be calculated in the force control.
  • the ordinal differential equation may be a linear ordinary differential equation.
  • the ordinary differential equation is an ordinary differential equation, a solution of which needs to be calculated in order to cause the robot 100 to behave as if the robot 100 has desired characteristics (mass, viscosity, elasticity, etc.).
  • the ordinary differential equation may be the equation of motion indicated by Formula (1).
  • the digital filter unit 22 may include, as shown in FIG. 10 , the digital-filter-coefficient output unit 222 that outputs a digital filter coefficient on the basis of the coefficient parameters of the terms of the ordinary differential equation and the digital filter arithmetic unit 221 that performs the digital filter processing on the basis of a digital filter coefficient and sensor information.
  • the coefficient parameters of the terms of the ordinary differential equation indicate a constant term, a coefficient of a primary differential term, a coefficient of a secondary differential term, and a coefficient of an n-ary differential term in the ordinary differential equation.
  • m, ⁇ , and k are coefficient parameters.
  • the sensor information used for the digital filter processing may be an output value itself from the force sensor 10 , may be the output value subjected to the correction processing by the input correcting unit 30 (shown in FIG. 11 ), or may be the output value subjected to the band limiting processing by the band limiting unit 24 (shown in FIG. 10 ). Consequently, it is possible to, after outputting a digital filter coefficient necessary for the digital filter processing, perform the digital filter processing based on the digital filter coefficient and sensor information.
  • the digital-filter-coefficient output unit 222 may include, as shown in FIGS. 10 and 11 , the digital-filter-coefficient converting unit 225 that converts the coefficient parameters of the ordinary differential equation into a digital filter coefficient and the digital-filter-coefficient storing unit 224 that stores the digital filter coefficient.
  • the digital-filter-coefficient output unit 222 outputs the digital filter coefficient stored in the digital-filter-coefficient storing unit 224 .
  • an ordinary differential equation necessary for the force control is determined. For example, if a physical characteristic desired to be imparted to the robot 100 is determined, an equation of motion in which specific numerical values are substituted in m, ⁇ , and k of Formula (1) is determined. However, coefficient parameters of the ordinary differential equation and the digital filter coefficient are different. Therefore, when the ordinary differential equation is determined, processing for calculating a digital filter (specifically, a digital filter coefficient) for calculation a solution of the ordinary differential equation is necessary. In this embodiment, this processing is performed in the digital-filter-coefficient converting unit 225 .
  • the digital filter unit 22 may include, as shown in FIG. 10 , the digital-filter-stabilization-degree determining unit 223 that determines a stabilization degree (stability) of the digital filter used for the digital filter processing.
  • the digital-filter-coefficient output unit 222 outputs the digital filter coefficient.
  • the coefficient parameters of the ordinary differential equation in the force control sometimes form, depending on setting, a system that is impossible in reality (e.g., an oscillating robot). Therefore, it is necessary to determine stability of the ordinary differential equation. However, if the digital filter is used, the determination is easy. Details are as explained above.
  • the digital filter processing may be performed while the driving frequency is switched between a first driving frequency and a second driving frequency higher than the first driving frequency.
  • the digital-filter-coefficient output unit 222 outputs at least one of a first digital filter coefficient corresponding to the first driving frequency and a second digital filter coefficient corresponding to the second driving frequency.
  • the digital filter arithmetic unit 221 performs, according to the output digital filter coefficient, at least one of digital filter processing by the first driving frequency in which the first digital filter coefficient is used and digital filter processing by the second driving frequency in which the second digital filter coefficient is used.
  • the ordinary differential equation in this embodiment may be an equation of motion including an imaginary mass term, an imaginary viscosity term, and an imaginary elasticity term as coefficient parameters.
  • the target-value output unit 60 may includes, as shown in FIG. 10 , the track generating unit 62 that outputs target position information of the robot 100 and the inverse kinematics processing unit 64 that performs inverse kinematics processing on the basis of the target position information from the track generating unit 62 and output joint angle information of the robot 100 .
  • the target position information is information concerning target position of the robot 100 (in a narrow sense, an end effecter section of the robot 100 ).
  • the target position is represented by, for example, xyz (which may include uvw concerning posture).
  • the target position information may be information concerning one target position or may be information concerning a plurality of target positions representing a temporal position change (a moving path) of the robot 100 .
  • the track generating unit 62 generates the target position information of the robot 100 , it is possible to systematically control the robot 100 .
  • robot control is performed by controlling angles of the joints. Therefore, it is difficult to directly set the target position information as a target value.
  • the inverse kinematics processing unit 64 that converts the target position information into joint angle information is necessary.
  • This embodiment explained above relates to a robot system including the robot control system (including the force control unit 20 , the target-value output unit 60 , and the robot control unit 80 ) and the robot 100 .
  • a sensor information processing apparatus including a sensor-information acquiring unit that acquires sensor information from a sensor and a sensor-information processing unit that applies processing to the acquired sensor information.
  • the sensor-information processing unit includes a digital filter unit.
  • the sensor-information processing unit applies digital filter processing by the digital filter unit to the sensor information to calculate a solution of an ordinary differential equation in the sensor information processing and outputs the solution as an output value of the sensor information processing.
  • the sensor information processing apparatus is applied to the robot control system.
  • the sensor information processing apparatus is equivalent to the force control unit 20 shown in FIG. 10 and the like and the sensor is equivalent to the force sensor 10 .
  • the sensor-information acquiring unit is not specifically shown in the figures.
  • a block in the case of FIG. 10 , the band limiting unit 24 ) connected to the force sensor 10 may function as the sensor-information acquiring unit.
  • the sensor-information processing unit corresponds to the digital filter unit 22 shown in FIG. 10 .
  • the sensor-information processing unit may further include the band limiting unit 24 and the input correcting unit 30 shown in FIG. 11 .
  • the sensor-information processing apparatus is not limited to be applied to the robot control system and may be applied to other control systems.
  • the sensor-information processing apparatus outputs information used in control on the basis of sensor information processing (including digital filter processing) applied to sensor information.
  • the sensor information processing apparatus is not limited to the application to the control system and may be used in other systems (apparatuses).
  • the sensor information processing apparatus may be used in a detection system that detects various kinds of information using a sensor.
  • the sensor information processing means processing for applying some kind of processing to an output value from the sensor and calculating useful information.
  • the sensor information processing includes processing for calculating at least a solution of an ordinary differential equation.
  • the sensor information processing is conversion processing into information having physically different meaning, for example, processing for calculating a correction value (e.g., a correction value of a target position of a robot) from force information related to a force sensor.
  • processing for improving detection accuracy e.g., processing for reducing noise included in sensor information
  • the application of the sensor information processing apparatus is not limited to the robot control system.
  • the sensor that outputs the sensor information is not limited to the force sensor.
  • the sensor may be, for example, an acceleration sensor, an angular velocity sensor, a direction sensor, a biosensor (a pulse sensor, etc.), and a GPS.
  • the sensor information processing apparatus may be realized as, for example, an IC chip including a sensor.
  • a solution of the ordinary differential equation in which the sensor information is used can be output rather than the sensor information itself. Therefore, usefulness of an output value of the apparatus is increased when the apparatus is combined with another system or the like.
  • a driving frequency of a digital filter is switched.
  • noise is often included in sensor information of a force sensor. Therefore, it is desirable to perform band limiting processing.
  • the width of a pass band varies depending on a situation (if a large signal value is obtained with respect to noise, the band limiting processing may be rather light and the pass band can be set wide).
  • the driving frequency of the digital filter as well to correspond to the pass band. Specifically, when the pass band is set wide, the digital filter is caused to operate at a high driving frequency and, when the pass band is set narrow, the digital filter is caused to operate at a low driving frequency.
  • a plurality of the digital filter arithmetic units 221 are provided. Sensor information subjected to band limiting processing, in which different pass bands are set, are respectively input to the digital filter arithmetic units 221 to cause the digital filter arithmetic units 221 to operate at different driving frequencies.
  • two filters having different driving frequencies are caused to operate in parallel and an appropriate filter is selected according to a situation.
  • the two filters are caused to operate in parallel.
  • three or more digital filters may be caused to operate in parallel.
  • FIG. 13 A configuration example of a robot system including a robot control system according to the second embodiment is shown in FIG. 13 .
  • the robot system according to the second embodiment is different in that a pair of the digital filter arithmetic units 221 ( 221 - 1 and 221 - 2 ), a pair of the digital-filter-coefficient storing units 224 ( 224 - 1 and 224 - 2 ), and a pair of the filter-state storing units 227 ( 227 - 1 and 227 - 2 ) are provided.
  • the digital filter unit 22 includes band limiting units 24 - 1 and 24 - 2 and a digital-filter-output selecting unit 220 .
  • the band limiting unit 24 - 1 applies band limiting processing for setting a first frequency band as a pass band to sensor information and outputs the sensor information to the digital filter arithmetic unit 221 - 1 .
  • the band limiting unit 24 - 2 applies band limiting processing for setting a second frequency band, which is different from the first frequency band, as a pass band to the sensor information and outputs the sensor information to the digital filter arithmetic unit 221 - 2 .
  • the digital-filter-output selecting unit 220 receives outputs of the digital filter arithmetic units 221 - 1 and 221 - 2 , selects one of the outputs, and outputs a selected value to the digital filter unit 22 as an output value.
  • the digital-filter-coefficient storing unit 224 - 1 stores a first digital filter coefficient determined as stable as a result of performing the processing in S 105 to S 107 in FIG. 12 .
  • the digital-filter-coefficient storing unit 224 - 2 stores a second digital filter coefficient different from the first digital filter coefficient.
  • the digital filter arithmetic unit 221 - 1 performs digital filter processing on the basis of the first digital filter coefficient stored in the digital-filter-coefficient storing unit 224 - 1 , the sensor information after the band limiting processing output from the band limiting unit 24 - 1 , and an output value in the past output from the filter-state storing unit 227 - 1 .
  • the digital filter arithmetic unit 221 - 2 performs digital filter processing on the basis of the second digital filter coefficient stored in the digital-filter-coefficient storing unit 224 - 2 , the sensor information after the band limiting processing output from the band limiting unit 24 - 2 , and an output value in the past output from the filter-state storing unit 227 - 2 .
  • the two digital filters operate in parallel.
  • FIG. 14 is a flowchart concerning processing in the digital filter unit 22 .
  • the digital filter unit 22 acquires the external force value F (S 202 ). It is assumed that the external force value F is obtained by applying the correction processing by the input correcting unit 30 to sensor information acquired from the force sensor 10 .
  • the digital filter unit 22 determines whether the processing is performed concerning all the filters operating in parallel (S 203 ). If an unprocessed filter remains, the digital filter unit 22 selects the filter (S 204 ) and performs, in a band limiting unit (a band limiting unit corresponding to the filter among the band limiting units 24 - 1 and 24 - 2 ), band limiting processing corresponding to the selected filter (S 205 ). The digital filter unit 22 performs, in the digital filter arithmetic unit corresponding to the selected filter, the digital filter processing using the sensor information subjected to the band limiting processing as an input value (S 206 ). Details of S 206 are the same as S 103 . After the processing, the digital filter unit 22 returns to S 203 .
  • the digital filter unit 22 selects, in the digital-filter-output selecting unit 220 , an output filter out of the plurality of filters (S 207 ) and outputs an output value of the selected filter (S 208 ). After the processing in S 208 , the digital filter unit 22 returns to S 201 .
  • the digital filter unit 22 includes, as shown in FIG. 13 , the first digital filter arithmetic unit ( 221 - 1 ) and the second digital filter arithmetic unit ( 221 - 2 ) as the digital filter arithmetic unit 221 .
  • the digital-filter-coefficient output unit 222 outputs the first digital filter coefficient to the first digital filter arithmetic unit and outputs the second digital filter coefficient to the second digital filter arithmetic unit.
  • the first digital filter arithmetic unit performs the digital filter processing based on the first digital filter coefficient and the sensor information.
  • the second digital filter arithmetic unit performs the digital filter processing based on the second digital filter coefficient and the sensor information.
  • the digital filter unit 22 may include, as shown in FIG. 13 , the digital-filter-output selecting unit 220 that selects any one of a processing result in the first digital filter arithmetic unit and a processing result in the second digital filter arithmetic unit and outputs the processing result as a correction value.
  • the digital filter processing may be performed at a driving frequency of any one of a first driving frequency and a second driving frequency (higher than the first driving frequency).
  • the digital-filter-coefficient output unit 222 outputs a value corresponding to the first driving frequency as the first digital filter coefficient and outputs a value corresponding to the second driving frequency as the second digital filter coefficient.
  • the first digital filter arithmetic unit performs the digital filter processing by the first driving frequency using the first digital filter coefficient and performs the digital filter processing by the second driving frequency using the second digital filter coefficient.
  • the force control unit 20 may include, as shown in FIG. 10 , the band limiting unit 24 that applies band limiting processing for allowing a given frequency band to pass to the sensor information and outputs the sensor information subjected to the band limiting processing to the digital filter arithmetic unit.
  • the band limiting unit 24 outputs, to the first digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a first frequency band to pass and outputs, to the second digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a second frequency band (which is wider than the first frequency band) to pass.
  • the band limiting unit 24 may include, as shown in FIG. 13 , the band limiting unit 24 - 1 and the band limiting unit 24 - 2 . Consequently, it is possible to apply the band limiting processing to the sensor information according to the driving frequency. Specifically, pass band width is wider as the driving frequency is higher. The pass band width is narrower as the driving frequency is lower. This is because, as explained above, as the band limiting processing is intensified, the response characteristic is further deteriorated. In this way, the intensity of the band limiting processing and the driving frequency have a correspondence relation. However, whichever of the intensity of the band limiting processing and the driving frequency may be determined earlier.
  • the intensity of the band limiting processing is determined first and the driving frequency is determined according to the intensity of the band limiting processing.
  • the driving frequency is determined first (e.g., the driving frequency is set high because a solution is desired to be obtained immediately) and the intensity of the band limiting processing is determined according to the driving frequency.
  • a driving frequency of a digital filter is switched.
  • a configuration including only one digital filter arithmetic unit 221 that performs digital filter processing is explained.
  • FIG. 15 A configuration example of a robot system including a robot control system according to the third embodiment is shown in FIG. 15 . Detailed explanation of components same as those in the second embodiment ( FIG. 13 ) is omitted.
  • the third embodiment is different in that only one digital filter arithmetic unit 221 is provided. Further, the robot system includes the input selecting unit 25 , a coefficient selecting unit 228 , and a state selection processing unit 229 .
  • the coefficient selecting unit 228 selects one coefficient used for the digital filter processing from a first digital filter coefficient output from the digital-filter-coefficient storing unit 224 - 1 and a second digital filter coefficient output from the digital-filter-coefficient storing unit 224 - 2 and outputs the selected digital filter coefficient to the digital filter arithmetic unit 221 . This can be considered as selecting, out of a plurality of digital filters, an output filter used for output.
  • the state selection processing unit 229 performs processing concerning a filter state of a digital filter corresponding to the digital filter coefficient selected by the coefficient selecting unit 228 (hereinafter, output filter). Specifically, the state selection processing unit 229 acquires, from a filter-state storing unit corresponding to the output filter, an output value in the past of digital filter processing in which the output filter is used and outputs the output value to the digital filter arithmetic unit 221 . Further, the state selection processing unit 229 outputs an output value of the digital filter arithmetic unit 221 to the filter state storing unit corresponding to the output filter.
  • the input selecting unit 25 selects one output out of outputs from the band limiting unit 24 - 1 and the band limiting unit 24 - 2 and outputs the selected output to the digital filter arithmetic unit 221 .
  • the input selecting unit 25 also selects an output corresponding to the output filter.
  • a relation between a driving frequency of the digital filter and pass band width of band limiting processing is as explained above in the second embodiment. Specifically, when the output filter is selected, a pass band of the band limiting processing is also determined.
  • the input selecting unit 25 selects an output from the band limiting unit corresponding to the pass band. Consequently, selection processing based on the selection of the output filter is performed concerning not only the coefficient selecting unit 228 and the state selection processing unit 229 but also the input selecting unit 25 .
  • the driving frequency is switched at timing of A 1 as shown in FIG. 16 .
  • the driving frequency is switched, to calculate an output value in a low-frequency filter after the switching, output values of the low-frequency filter at two timings in the past indicated by A 2 and A 3 are necessary.
  • the filter-state storing unit 227 stores only the output values for the two timings in the past. Specifically, since the high-frequency filter operates before the switching, the filter-state storing unit 227 stores only information at the two timings in the past in the high-frequency filter as indicated by A 4 (timing of one timing in the past in the high-frequency filter) and A 5 (timing of two timings in the past in the high-frequency filter). Output values at the timings indicated by A 2 and A 3 are lost.
  • a switching period is provided during the switching and the high-frequency filter and the low-frequency filter are caused to operate in parallel in the switching period.
  • a switching instruction is output at the timing of A 3 and the two filters are caused to operate in parallel in a period from A 3 to A 1 . Then, the switching of the filters is performed at the timing of A 1 . Consequently, it is possible to acquire the output values at A 3 and A 2 of the low-frequency filter while continuing an output by the high-frequency filter until A 1 . Therefore, values necessary for an output of the low-frequency filter are collected at A 1 . It is possible to perform the switching processing without problems.
  • the sampling rates of the high-frequency filter and the low-frequency filter are only different and outputs at the same timing of the filters should be the same. Therefore, even if the parallel operation is performed, an arithmetic operation employing a digital filter coefficient of the low-frequency filter is unnecessary.
  • the arithmetic operation only has to be performed for the high-frequency filter.
  • values at the A 3 timing and the A 2 timing are stored in the filter-state storing unit corresponding to the low-frequency filter.
  • FIG. 17 is a flowchart concerning processing in the digital filter unit 22 .
  • the digital filter unit 22 acquires the external force value F (S 302 ). It is assumed that the external force value F is obtained by applying the correction processing by the input correcting unit 30 to sensor information acquired from the force sensor 10 .
  • the digital filter unit 22 performs digital filter processing same as that in S 103 of FIG. 12 (S 303 ) and determines whether a driving period is changed (S 304 ). In the case of No in S 304 , the digital filter unit 22 returns to S 301 and continues the processing.
  • the digital filter unit 22 acquires a digital filter coefficient after change and determines whether the filter is stable (S 305 to S 307 ). This processing is the same as the processing in S 105 to S 107 in FIG. 12 .
  • the digital filter unit 22 stores an output value at that timing as an output value at the second immediately preceding timing of the low-frequency filter. In FIG. 16 , this corresponds to the A 3 timing. Since actual switching is performed at the A 1 timing, an output value at the A 3 timing is an output value at two timings in the past from the time of the switching.
  • Processing in S 309 to S 311 is digital filter processing in the high-frequency filter as in S 301 to S 303 .
  • the digital filter unit 22 determines whether the present timing is output timing at a first period in the low-frequency filter (S 312 ). In FIG. 16 , this is determination whether the present timing is the timing of A 2 . An output value of the high-frequency filter at timing between A 3 and A 2 does not contribute to the operation of the low-frequency filter. Therefore, only when the present timing is the timing of A 2 (Yes in S 312 ), the digital filter unit 22 stores an output value at the timing of A 2 as an output value at the immediately preceding timing of the low-frequency filter (S 313 ). After the processing in S 313 , the digital filter unit 22 returns to S 309 .
  • the digital filter unit 22 determines whether the present timing is output timing at the second period in the low-frequency filter (S 314 ). In FIG. 16 , this is determination whether the present timing is the timing of A 1 . In the case of No in S 314 , the digital filter unit 22 returns to S 309 . In the case of Yes in S 314 , the digital filter unit 22 switches the driving frequency to a low frequency (S 315 ). Specifically, in S 308 to S 315 , the digital filter unit 22 stores an output value at the timing of A 3 (S 308 ). Between A 3 and A 2 , the digital filter unit 22 performs nothing (No in both S 312 and S 314 ).
  • the digital filter unit 22 stores an output value at the timing of A 2 (S 313 ). Between A 2 and A 1 , the digital filter unit 22 performs nothing (No in both S 312 and S 314 ). In that way, after storing the output values at A 2 and A 3 , the digital filter unit 22 performs the switching of the driving frequency at the timing of A 1 (S 315 ).
  • a switching from a low frequency (a long period) to a high frequency (a short period) is explained. It is considered that the driving frequency is switched at timing of B 1 as shown in FIG. 18 .
  • the driving frequency is switched, to calculate an output value in the high-frequency filter after the switching, output values in the high-frequency filter at two timings in the past indicated by B 4 and B 5 are necessary.
  • outputs at timing in the past stored at the timing of B 1 are outputs at timings indicated by B 2 and B 3 . Therefore, output values at two timings in the past necessary for the operation of the high-frequency filter are absent. Therefore, switching of the driving frequency cannot be performed in this state.
  • interpolation processing for estimating output values of the high-frequency filter at the timings of B 4 and B 5 is performed on the basis of output values of the low-frequency filter at the timing of B 1 and the timing of B 2 .
  • the processing only has to be performed using Formula (3) below.
  • Y on the left side represents a value concerning the high-frequency filter.
  • Y on the right side represents a value concerning the low-frequency filter.
  • P S represents a driving period of the high-frequency filter and P L represents a driving period of the low-frequency filter.
  • P S represents a driving period of the high-frequency filter
  • P L represents a driving period of the low-frequency filter.
  • a method of the interpolation processing is not limited to this. For example, approximation by a quadratic function may be performed using an output value at the timing of B 3 as well.
  • FIG. 19 is a flowchart concerning processing in the digital filter unit 22 .
  • processing in S 401 to S 407 is the same as the processing in S 301 to S 307 in FIG. 17 , detailed explanation of the processing is omitted.
  • Yes in S 407 i.e., when the switching of the driving frequency is instructed and it is determined that the digital filter after the switching is stable, the digital filter unit 22 calculates output values at two timings in the past in the high-frequency filter using Formula (3) (S 408 ), returns to S 401 , and performs the digital filter processing by the high-frequency filter.
  • the digital-filter-coefficient output unit 222 includes, as shown in FIG. 15 , the coefficient selecting unit 228 that selects any one of a first digital filter coefficient and a second digital filter coefficient different from the first digital filter coefficient.
  • the digital-filter-coefficient output unit 222 outputs the digital filter coefficient selected by the coefficient selecting unit 228 to the digital filter arithmetic unit 221 .
  • the digital-filter-coefficient storing unit that outputs the digital filter coefficient to the coefficient selecting unit 228 may include the two digital-filter-coefficient storing units ( 224 - 1 and 224 - 2 ) as shown in FIG. 15 .
  • the filter-state storing unit 227 desirably store filter states corresponding to the plurality of digital filters in advance (e.g., as shown in FIG. 15 , this can be realized if the filter-state storing unit 227 includes the plurality of filter-state storing units 227 - 1 and 227 - 2 ).
  • the digital filter processing may be performed at a driving frequency of any one of a first driving frequency and a second driving frequency (higher than the first driving frequency).
  • the coefficient selecting unit 228 selects any one of a first digital filter coefficient corresponding to the first driving frequency and a second digital filter coefficient corresponding to the second driving frequency.
  • the digital filter arithmetic unit 221 performs, using the selected digital filter coefficient, the digital filter processing at a driving frequency corresponding to the coefficient.
  • the force control unit 20 may include, as shown in FIG. 10 , the band limiting unit 24 that applies band limiting processing for allowing a given frequency band to pass to the sensor information and outputs the sensor information subjected to the band limiting processing to the digital filter arithmetic unit.
  • the band limiting unit 24 outputs, when the first driving frequency is used, the sensor information subjected to band limiting processing for allowing a first frequency band to pass and outputs, when the second driving frequency is used, the sensor information subjected to band limiting processing for allowing a second frequency band (which is wider than the first frequency band) to pass.
  • the band limiting unit 24 may include, as shown in FIG. 15 , the band limiting unit 24 - 1 , the band limiting unit 24 - 2 , and the input selecting unit 25 . This is because, although a plurality of kinds of band limiting processing are applied to correspond to a plurality of driving frequencies, since only one digital filter arithmetic unit 221 is provided, it is necessary to select appropriate sensor information output sensor information after the plurality of kinds of band limiting processing.
  • the band limiting unit 24 may be configured to execute only one kind of processing out of the plurality of kinds of band limiting processing and not to execute the other kinds of processing.
  • the digital filter arithmetic unit 221 may switch the digital filter processing in the first period, the switching period, and the second period.
  • the next period of the first period is the switching period and the next period of the switching period is the second period.
  • the digital filter arithmetic unit 221 performs the digital filter processing by the second driving frequency in which the second digital filter coefficient is used.
  • the digital filter arithmetic unit 221 performs both of the digital filter processing by the first driving frequency in which the first digital filter coefficient is used and the digital filter processing by the second driving frequency in which the second digital filter coefficient is used.
  • the digital filter arithmetic unit 221 performs the digital filter processing by the first driving frequency in which the first digital filter coefficient is used.
  • the first period corresponds to a period before the timing of A 3
  • the switching period corresponds to the period between A 3 and A 1
  • the second period corresponds to the period after A 1 .
  • the digital filter arithmetic unit 221 may perform, on the basis of a first output value, which is an output value of the first digital filter processing at switching timing, and a second output value, which is an output value of the first digital filter processing at timing in the past, interpolation processing for calculating an interpolation value at timing between the switching timing and the timing in the past.
  • the switching timing means timing for switching the driving frequency and is equivalent to B 1 in FIG. 18 .
  • the timing in the past means timing further in the past than the switching timing and is equivalent to B 2 and B 3 (in a narrow sense, sampling timing of the first digital filter processing).
  • the interpolation value is a value calculated from the first output value and the second output value and is, in a narrow sense, a value corresponding to an output value of the digital filter processing at sampling timing of the second digital filter processing and timing immediately preceding and the second immediately preceding the switching timing (equivalent to B 4 and B 5 ).
  • the switching of the driving frequency is performed on the basis of input information from a user via, for example, an external I/F.
  • selection processing for an output filter is performed on the basis of sensor information acquired from a force sensor.
  • low-frequency sensor information obtained by applying low-pass filter processing to the sensor information and high-frequency sensor information obtained by applying high-pass filter processing to the sensor information are calculated.
  • a ratio of high-frequency components to an entire signal is calculated from the low-frequency sensor information and the high-frequency sensor information.
  • a digital filter having a high driving frequency is selected as an output filter.
  • a digital filter having a low driving frequency is selected as the output filter.
  • FIG. 20 A configuration example of a robot system including a robot control system according to the fourth embodiment is shown in FIG. 20 .
  • the fourth embodiment is different in that a selection processing unit 50 , a low-pass filter 51 , and a high-pass filter 52 are added.
  • the band limiting unit 24 - 1 , the band limiting unit 24 - 2 , and the input selecting unit 25 are not shown in the figure. However, in this embodiment, these units may be used. In that case, a processing result of the selection processing unit 50 is output to the input selecting unit 25 as well.
  • the low-pass filter 51 applies low-pass filter processing to sensor information acquired from the force sensor and outputs low-frequency sensor information.
  • the high-pass filter 52 applies high-pass filter processing to the sensor information acquired from the force sensor and outputs high-frequency sensor information.
  • the selection processing unit 50 calculates a ratio of high-frequency components to an entire signal on the basis of the low-frequency sensor information and the high-frequency sensor information. Further, the selection processing unit 50 performs, on the basis of the calculated ratio, processing for selecting a digital filter used as an output filter out of a plurality of digital filters. The selection processing unit 50 outputs a result of the selection processing to the coefficient selecting unit 228 and the state selection processing unit 229 .
  • the coefficient selecting unit 228 selects a digital filter coefficient corresponding to the selected output filter.
  • the state selection processing unit 229 performs processing concerning a filter state corresponding to the selected output filter.
  • the determination of the switching of the driving frequency in S 304 or S 404 is performed on the basis of whether the output filter selected by the selection processing unit 50 changes.
  • the invention is not limited to this.
  • two digital filter arithmetic units may be provided.
  • the selection processing unit 50 , the low-pass filter 51 , and the high-pass filter 52 are added to FIG. 13 .
  • a processing result of the selection processing unit 50 is output to the digital-filter-output selecting unit 220 .
  • the digital-filter-output selecting unit 220 selects, as an output of the digital filter unit 22 , an output from a digital filter arithmetic unit corresponding to a digital filter selected by the selection processing unit 50 .
  • the digital filter unit 22 includes, as shown in FIG. 20 , the selection processing unit 50 that selects a driving frequency of a digital filter on the basis of signal frequency band information of sensor information.
  • the digital filter unit 22 performs digital filter processing at the driving frequency selected by the selection processing unit 50 and outputs a correction value.
  • the selection of the driving frequency in a narrow sense, any one of a first driving frequency and a second driving frequency is selected. However, three or more candidate driving frequencies may be provided.
  • the selection processing unit 50 may use, as the signal frequency band information, low-frequency sensor information obtained by applying the low-pass filter 51 to sensor information and high-frequency sensor information obtained by applying the high-pass filter 52 to the sensor information. In other words, the selection processing unit 50 selects a driving frequency on the basis of the low-frequency sensor information and the high-frequency sensor information. Consequently, it is possible to perform selection of a driving frequency through simple processing of filter processing. As a specific example of the processing, it is conceivable to calculate a ratio of high-frequency components to an entire signal from the low-frequency sensor information and the high-frequency sensor information. If there are a lot of high-frequency components, the driving frequency is set high to correspond to the high-frequency components of the signal. If there are only a few high-frequency components, the driving frequency may be low.

Abstract

A robot control system includes a force control unit configured to output a correction value of a target track of a robot on the basis of sensor information acquired from a force sensor, a target-value output unit configured to apply correction processing based on the correction value to the target track to calculate a target value and output the calculated target value, and a robot control unit configured to perform feedback control of the robot on the basis of the target value. The force control unit includes a digital filter unit. The force control unit applies digital filter processing by the digital filter unit to the sensor information to calculate a solution of an ordinary differential equation in force control and outputs the correction value on the basis of the calculated solution.

Description

    BACKGROUND
  • 1. Technical Field
  • The present invention relates to a robot control system, a robot system, a sensor information processing apparatus, and the like.
  • 2. Related Art
  • As work performed using a robot such as a manipulator, there is work involving various constraint conditions such as contact with an object. In such a case, in addition to position control, force control is often required. For example, when the surface of an object is traced, when one object is fitted in another object, or when a soft object is gripped not to be broken, a motion corresponding to reaction from the object is necessary in addition to simple position control.
  • As a representative method for performing force control in a robot, there is a method called impedance control. The impedance control is a control method for causing a robot to act, irrespective of the actual mass, the viscosity characteristic, and the elasticity characteristic of the robot, as if the robot has values of the actual mass, the viscosity characteristic, and the elasticity characteristic suitable for work. This is a control method for solving an equation of motion on the basis of force information obtained from a force sensor or the like attached to the robot and causing the robot to act according to the solution. By appropriately setting the equation of motion, it is possible to cause the robot such as the manipulator to act as if the robot has predetermined mass, viscosity, and elasticity. As related arts concerning such impedance control and force control, techniques disclosed in JP-A-6-320451 (Patent Literature 1), JP-A-2-205489 (Patent Literature 2), and JP-A-4-369004 (Patent Literature 3) are known.
  • Patent Literature 1 discloses a method of accurately performing the impedance control even in an extremely complicated system, for example, when a control target is soft.
  • Patent Literature 2 discloses a method of providing a motion model on the inside of a control system to thereby, estimate force and performing the impedance control while making it unnecessary to use a sensor, although the control system is complicated, and using a simpler mechanical structure.
  • On the other hand, Patent Literature 3 discloses one method for reducing a calculation amount. This is a method of reducing a calculation amount by using a transpose Jacobian matrix without performing calculation for calculating an inverse Jacobian matrix described in Patent Literatures 1 and 2. In the impedance control, in order to cause the robot or the like to behave as if the robot has desired characteristics (mass, viscosity characteristic, and elasticity characteristic), it is necessary to solve an ordinary differential equation (a motion equation serving as a secondary linear ordinary differential equation) in which coefficient parameters corresponding to the characteristics are used. Various methods of solving the ordinary differential equation are known. However, the Runge-Kutta method, the Newton method, or the like are used.
  • However, these methods are not suitable for hardwaring. Determination of stability is difficult with these methods. Further, it is difficult to cope with switching of responsiveness. The responsiveness means a dynamic characteristic determined by the desired characteristics (mass, viscosity characteristic, and elasticity characteristic) given to the robot. Low responsiveness indicates, for example, characteristics realized by a large mass coefficient, a large viscosity coefficient, and a small elasticity coefficient. High responsiveness indicates, for example, characteristics realized by a small mass coefficient, a small viscosity coefficient, and a large elasticity coefficient. Optimum characteristics of these characteristics vary depending on realized work content or a scene of work. Therefore, it is an extremely important function to be capable of easily switching response characteristics.
  • SUMMARY
  • An advantage of some aspects of the invention is to provide a robot control system, a robot system, a sensor information processing apparatus, and the like that facilitate hardwaring, verification of stability, and switching of responsiveness of a solution.
  • An aspect of the invention relates to a robot control system including: a force control unit configured to output a correction value of a target track of a robot on the basis of sensor information acquired from a force sensor; a target-value output unit configured to apply correction processing based on the correction value to the target track to calculate a target value and output the calculated target value; and a robot control unit configured to perform feedback control of the robot on the basis of the target value. The force control unit includes a digital filter unit. The force control unit applies digital filter processing by the digital filter unit to the sensor information to calculate a solution of an ordinary differential equation in force control and outputs the correction value on the basis of the calculated solution. In the aspect of the invention, the robot control system performs the force control on the basis of the sensor information acquired from the force sensor to calculate the correction value and performs the feedback control of the robot using the target value obtained on the basis of the correction value. In the force control, processing for calculating the solution of the ordinary differential equation is performed by the digital filter processing to output the correction value. Consequently, it is possible to, for example, facilitate hardwaring, determination of stability, and switching of responsiveness of the processing.
  • In one aspect of the invention, the digital filter unit includes: a digital-filter-coefficient output unit configured to output a digital filter coefficient on the basis of coefficient parameters of respective terms of the ordinary differential equation; and a digital filter arithmetic unit configured to perform the digital filter processing on the basis of the digital filter coefficient and the sensor information.
  • Consequently, it is possible to, for example, perform the digital filter processing while causing the coefficient parameters of the terms of the ordinary differential equation to correspond to the digital filter coefficient.
  • In one aspect of the invention, the digital-filter-coefficient output unit includes: a digital-filter-coefficient converting unit configured to perform processing for converting the coefficient parameters into the digital filter coefficient; and a digital-filter-coefficient storing unit configured to store the digital filter coefficient converted by the digital-filter-coefficient converting unit. The digital-filter-coefficient output unit outputs the digital filter coefficient stored in the digital-filter-coefficient storing unit.
  • Consequently, it is possible to convert the coefficient parameters of the terms of the ordinary differential equation into the digital filter coefficient.
  • In one aspect of the invention, the digital-filter unit includes a digital-filter-stability-degree determining unit configured to determine a stability degree of the operation of a digital filter used for the digital filter processing. The digital-filter-coefficient output unit outputs the digital filter coefficient when the digital-filter-stability-degree determining unit determines that the operation of the digital filter is stable.
  • Consequently, it is possible to, for example, determine stability of a system concerning the ordinary differential equation by performing the determination of the stability of the digital filter processing.
  • In one aspect of the invention, when the digital filter processing is performed at a driving frequency of any one of a first driving frequency or a second driving frequency higher than the first driving frequency, the digital-filter-coefficient output unit outputs at least one of a first digital filter coefficient corresponding to the first driving frequency and a second digital filter coefficient corresponding to the second driving frequency. The digital filter arithmetic unit performs, according to the digital filter coefficient output from the digital-filter-coefficient output unit, at least one of the digital filter processing by the first driving frequency in which the first digital filter coefficient is used and the digital filter processing by the second driving frequency in which the second digital filter coefficient is used.
  • Consequently, it is possible to, for example, switch the driving frequency of the digital filter processing. It is possible to change the responsiveness of the solution by switching the driving frequency. Further, it is possible to, for example, cope with a change in a response characteristic by band limiting processing or the like for noise reduction. In one aspect of the invention, the digital filter unit includes a selection processing unit configured to select one of the first driving frequency and the second driving frequency on the basis of signal frequency band information of the sensor information. The digital filter unit performs the digital filter processing at the driving frequency selected by the selection processing unit and outputs the correction value. Consequently, it is possible to, for example, automatically select the driving frequency on the basis of the signal frequency band information of the sensor information.
  • In one aspect of the invention, the selection processing unit selects the driving frequency using, as the signal frequency band information, low-frequency sensor information obtained by applying low-pass filter processing to the sensor information and high-frequency sensor information obtained by applying high-pass filter processing to the sensor information.
  • Consequently, it is possible to use the low-frequency sensor information and the high-frequency sensor information as the signal frequency band information.
  • In one aspect of the invention, when the driving frequency of the digital filter processing is switched from the high second driving frequency to the low first driving frequency, the digital filter arithmetic unit performs, in a first period, the digital filter processing by the second driving frequency in which the second filter coefficient is used, performs, in a switching period following the first period, both of the digital filter processing by the first driving frequency in which the first filter coefficient is used and the digital filter processing by the second driving frequency in which the second filter coefficient is used, and performs, in a second period following the switching period, the digital filter processing by the first driving frequency in which the first filter coefficient is used.
  • Consequently, it is possible to, for example, smoothly perform switching of the driving frequency from a high frequency to a low frequency.
  • In one aspect of the invention, when the driving frequency of the digital filter processing is switched from the low first driving frequency to the high second driving frequency, the digital filter arithmetic unit performs, on the basis of a first output value, which is an output value of the digital filter processing by the first driving frequency in which the first filter coefficient is used at switching timing, and a second output value, which is an output value of the digital filter processing by the first driving frequency in which the first filter coefficient is used at timing in the past earlier than the switching timing, interpolation processing for calculating an interpolation value at timing between the switching timing and the timing in the past and performs, on the basis of the interpolation value, the digital filter processing by the second driving frequency in which the second filter coefficient is used.
  • Consequently, it is possible to, for example, smoothly perform switching of the driving frequency from a low frequency to a high frequency.
  • In one aspect of the invention, the digital filter unit includes a first digital filter arithmetic unit and a second digital filter arithmetic unit as the digital filter arithmetic unit. The digital-filter-coefficient output unit outputs a first digital filter coefficient to the first digital filter arithmetic unit and outputs a second digital filter coefficient different from the first digital filter coefficient to the second digital filter arithmetic unit. The first digital filter arithmetic unit performs the digital filter processing based on the first digital filter coefficient and the sensor information. The second digital filter arithmetic unit performs the digital filter processing based on the second digital filter coefficient and the sensor information.
  • Consequently, it is possible to operate a plurality of the digital filter units in parallel, and whereby, for example, the response characteristic can be switched smoothly.
  • In one aspect of the invention, the digital filter unit includes a digital-filter-output selecting unit configured to select any one of a processing result in the first digital filter arithmetic unit and a processing result in the second digital filter arithmetic unit and outputs the processing result as the correction value.
  • Consequently, it is possible to select an appropriate output value even if a plurality of kinds of digital filter processing are caused to operate in parallel.
  • In one aspect of the invention, when the digital filter processing is performed at a driving frequency of any one of a first driving frequency or a second driving frequency higher than the first driving frequency, the digital-filter-coefficient output unit outputs a digital filter coefficient corresponding to the first driving frequency as the first digital filter coefficient and outputs a digital filter coefficient corresponding to the second driving frequency as the second digital filter coefficient. The first digital filter arithmetic unit performs the digital filter processing at the first driving frequency on the basis of the first digital filter coefficient. The second digital filter arithmetic unit performs the digital filter processing at the second driving frequency on the basis of the second digital filter coefficient.
  • Consequently, it is possible to, for example, switch the driving frequency of the digital filter processing.
  • In one aspect of the invention, the force control unit includes a band limiting unit configured to apply band limiting processing for allowing a given frequency band to pass to the sensor information and output the sensor information subjected to the band limiting processing to the first digital filter arithmetic unit and the second digital filter arithmetic unit. The band limiting unit outputs, to the first digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a first frequency band to pass and outputs, to the second digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a second frequency band wider than the first frequency band to pass.
  • Consequently, it is possible to apply the band limiting processing to the sensor information to correspond to the driving frequency.
  • In one aspect of the invention, the digital-filter-coefficient output unit includes a coefficient selecting unit configured to select any one of a first digital filter coefficient and a second filter coefficient different from the first digital filter coefficient. The digital-filter-coefficient output unit outputs the digital filter coefficient selected by the coefficient selecting unit to the digital filter arithmetic unit.
  • Consequently, it is possible to select one of a plurality of digital filter coefficients. It is possible to, for example, smoothly switch the digital filter processing.
  • In one aspect of the invention, when the digital filter processing is performed at a driving frequency of any one of a first driving frequency or a second driving frequency higher than the first driving frequency, the coefficient selecting unit selects any one of the first digital filter coefficient corresponding to the first driving frequency and the second digital filter coefficient corresponding to the second driving frequency. The digital-filter-coefficient output unit outputs the digital filter coefficient selected by the coefficient selecting unit to the digital filter arithmetic unit. The digital filter arithmetic unit performs, when the first digital filter coefficient is output from the digital-filter-coefficient output unit, the digital filter processing at the first driving frequency on the basis of the first digital filter coefficient and performs, when the second digital filter coefficient is output from the digital-filter-coefficient output unit, the digital filter processing at the second driving frequency on the basis of the second digital filter coefficient.
  • Consequently, it is possible to, for example, switch the driving frequency of the digital filter processing.
  • In one aspect of the invention, the force control unit includes a band limiting unit configured to apply band limiting processing for allowing a given frequency band to pass to the sensor information and output the sensor information subjected to the band limiting processing to the digital filter arithmetic unit. The band limiting unit outputs, when the digital filter processing by the first driving frequency is performed, to the digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a first frequency band to pass and outputs, when the digital filter processing by the second driving frequency is performed, to the digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a second frequency band wider than the first frequency band to pass.
  • Consequently, it is possible to apply the band limiting processing to the sensor information to correspond to the driving frequency.
  • In one aspect of the invention, the ordinary differential equation is an equation of motion including an imaginary mass term, an imaginary viscosity term, and an imaginary elasticity term as coefficient parameters.
  • Consequently, it is possible to output the correction value by solving the equation of motion as the ordinary differential equation.
  • In one aspect of the invention, the target-value output unit includes: a track generating unit configured to output target position information of the robot; and an inverse kinematics processing unit configured to perform inverse kinematics processing on the basis of the target position information from the track generating unit and output joint angle information of the robot.
  • Consequently, it is possible to calculate the target position information, convert the target position information into the joint angle information, and calculate the target value of the feedback control of the robot on the basis of the converted joint angle information.
  • In one aspect of the invention, the force control unit applies the digital filter processing by the digital filter unit to the sensor information to calculate a solution of the ordinary differential equation in the force control and outputs the calculated solution as the correction value.
  • Consequently, it is possible to directly output the solution of the ordinary differential equation as the correction value. In one aspect of the invention, the force control unit applies the digital filter processing by the digital filter unit to the sensor information to calculate a solution of the ordinary differential equation in the force control, applies inverse kinematics processing to the calculated solution, and outputs the correction value.
  • Consequently, it is possible to calculate the correction value by applying the inverse kinematics processing to the solution of the ordinary differential equation and output the calculated correction value.
  • Another aspect of the invention relates to a robot system including the robot control system described above and a robot. Still another aspect of the invention relates to a sensor information processing apparatus including: a sensor-information acquiring unit configured to acquire sensor information from a sensor; and a sensor-information processing unit configured to apply processing to the acquired sensor information. The sensor-information processing unit includes a digital filter unit. The sensor-information processing unit applies digital filter processing by the digital filter unit to the sensor information to calculate a solution of an ordinary differential equation in the sensor information processing and outputs the solution as an output value of the sensor information processing.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The invention will be described with reference to the accompanying drawings, wherein like numbers reference like elements.
  • FIG. 1 is a basic configuration example of a robot control system and a robot system.
  • FIG. 2 is an example of the robot system.
  • FIGS. 3A to 3C are explanatory diagram concerning force control.
  • FIGS. 4A and 4B are explanatory diagrams concerning compliance control.
  • FIGS. 5A and 5B are explanatory diagrams concerning impedance control.
  • FIG. 6 is a basic configuration example of a control system not including force sense feedback.
  • FIG. 7 is a basic configuration example of the control system including the force sense feedback.
  • FIG. 8 is a basic form of a digital filter in calculating a solution of an equation of motion.
  • FIGS. 9A to 9C are explanatory diagrams of a stability determining method.
  • FIG. 10 is a basic configuration example of a robot control system and a robot system in which a digital filter is used.
  • FIG. 11 is a configuration example of a robot control system and a robot system according to a first embodiment.
  • FIG. 12 is a flowchart for explaining processing according to the first embodiment.
  • FIG. 13 is a configuration example of a robot control system and a robot system according to a second embodiment.
  • FIG. 14 is a flowchart for explaining processing according to the second embodiment.
  • FIG. 15 is a configuration example of a robot control system and a robot system according to a third embodiment.
  • FIG. 16 is an explanatory diagram of driving frequency switching processing from a high frequency to a low frequency.
  • FIG. 17 is a flowchart for explaining the driving frequency switching processing from a high frequency to a low frequency.
  • FIG. 18 is an explanatory diagram of driving frequency switching processing from a low frequency to a high frequency.
  • FIG. 19 is a flowchart for explaining the driving frequency switching processing from a low frequency to a high frequency.
  • FIG. 20 is a configuration example of a robot control system and a robot system according to a fourth embodiment.
  • FIGS. 21A and 21B are specific system configuration examples for calculating a target track, a correction value, and a target value.
  • DESCRIPTION OF EXEMPLARY EMBODIMENTS
  • Embodiments are explained below. The embodiments explained below do not unduly limit contents of the invention described in the appended claims. All components explained in the embodiments are not always indispensable constituent features of the invention.
  • 1. Overview 1.1 Basic Configuration
  • A configuration example of a robot control system (a manipulator control system) and a robot system including the robot control system according to an embodiment is shown in FIG. 1. The robot control system and the robot system according to this embodiment are not limited to the configuration shown in FIG. 1. Various modifications are possible, for example, a part of components of the robot control system and the robot system are omitted and other components are added.
  • The robot control system according to this embodiment includes a force control unit 20, a target-value output unit 60, and a robot control unit 80. The robot system according to this embodiment includes the robot control system and a robot 100 (a force sensor 10).
  • The target-value output section 60 outputs a target value of feedback control of a robot (in a narrow sense, a manipulator). Feedback control of the robot 100 is realized on the basis of the target value. For example, in a multi-joint robot or the like, the target value is joint angle information of the robot. The joint angle information of the robot is, for example, information indicating angles of joints (angles formed by joint axes) in a link mechanism of an arm of the robot.
  • The target-value output unit 60 can include a track generating unit 62 and an inverse kinematics processing unit 64. The track generating unit 62 outputs track information of the robot. The track information can include position information (x, y, z) of an end effecter section (an end point) of the robot and rotation angle information (u, v, w) around coordinate axes. The inverse kinematics processing unit 64 performs inverse kinematics processing on the basis of the track information from the track generating unit 62 and outputs, for example, the joint angle information of the robot as the target value. The inverse kinematics processing is processing for calculating a motion of the robot including joints and is processing for calculating, according to the inverse kinematics, joint angle information and the like from position posture and the like of the end effecter section of the robot. The force control unit 20 (in a narrow sense, an impedance control unit) performs force control (force sense control) on the basis of sensor information acquired from the force sensor 10 and outputs a correction value of the target value. More specifically, the force control unit 20 (the impedance control unit) performs impedance control (or compliance control) on the basis of sensor information (force information and moment information) from the force sensor 10. The force control is, for example, control in which feedback of force is added to the position control in the past. The impedance control is a method of changing easiness of occurrence of displacement (mechanical impedance) of the end effecter section (the fingers) with respect to external force to a desirable state through control. Specifically, the impedance control is control for, in a model in which mass, a viscosity coefficient, and an elasticity coefficient are connected to the end effecter section of the robot, bringing the robot into contact with an object with mass, a viscosity coefficient, and an elasticity coefficient set as targets. The force sensor 10 is a sensor that detects force and moment received as reaction of force generated by the robot 100. The force sensor 10 is usually attached to a wrist portion of an arm of the robot 100. The detected force and moment are used for various kinds of force control (impedance control) as sensor information.
  • The robot control unit 80 performs the feedback control of the robot on the basis of the target value from the target-value output unit 60. Specifically, the robot control unit 80 performs the feedback control of the robot on the basis of the target value output as a result of the correction processing based on the correction value from the force control unit 20. For example, the robot control unit 80 performs the feedback control of the robot 100 on the basis of the target value and a feedback signal from the robot 100. For example, the robot control unit 80 includes a plurality of driving control units 82-1 to 82-N (in a narrow sense, motor control units). The robot control unit 80 outputs a control signal to driving units 102-1 to 102-N. The driving units 102-1 to 102-N are driving mechanisms for moving joints of the robot 100 and are realized by, for example, motors.
  • An example of the robot system including the robot control system according to this embodiment is shown in FIG. 2. The robot system includes a control apparatus 300 (an information processing apparatus) and a robot 310 (the robot 100 shown in FIG. 1). The control apparatus 300 performs control processing for the robot 310. Specifically, the control apparatus 300 performs, on the basis of operation sequence information (scenario information), control for causing the robot 310 to operate. The robot 310 includes an arm 320 and a hand (a gripping unit) 330. The robot 310 operates according to an operation instruction from the control apparatus 300. For example, the robot 310 performs operation for gripping or moving a work placed on a not-shown pallet. Information such as the posture of the robot and the position of the work is detected on the basis of picked-up image information acquired by a not shown image-pickup apparatus. The detected information is sent to the control apparatus 300.
  • The root control system according to this embodiment is provided in, for example, the control apparatus 300 shown in FIG. 2. For example, the robot control system is realized by hardware and a computer program of the control apparatus 300. With the robot control system according to this embodiment, it is possible to reduce a performance request to control hardware of the control apparatus 300 and the like. Further, it is possible to cause the robot 310 to operate at high responsiveness. FIG. 2 is an example of a single arm type. However, the robot 310 may be a robot of a multi-arm type such as a double arm type.
  • 1.2 Force Control and Impedance Control
  • An overview of the force control and the impedance control (the compliance control) is explained.
  • FIG. 3A shows a state in which a robot is moving while holding an object OB with a left arm AL and a right arm AR. For example, only with position control, it is likely that the object is dropped or broken. With the force control, it is possible to hold and move a soft object or a fragile object from both sides with appropriate force as shown in FIG. 3A.
  • With the force control, as shown in FIG. 3B, it is possible to trace, with an arm AM or the like, a surface SF of an object having uncertainty. Such control cannot be realized by only the position control. With the force control, as shown in FIG. 3C, it is also possible to, after rough positioning, search and align the object OB to fit the object OB in a hole section HL.
  • However, in the force control by an actual mechanical component such as a spring, uses of the force control is limited. Further, in such force control by the mechanical component, it is difficult to switch dynamic switching of a characteristic. On the other hand, torque control for controlling the torque of a motor is easy. However, positional accuracy is deteriorated. Further, collision or the like occurs when there is abnormality. For example, in FIG. 3A, when an abnormal situation occurs and the object OB is dropped, in the torque control, since reaction to be balanced is lost, for example, the left and right arms AL and AR collide with each other. On the other hand, the impedance control (the compliance control) has an advantage that universality and safety are high, although there is a disadvantage that control is complicated. FIGS. 4A and 4B are diagrams for explaining the compliance control, which is a type of the impedance control. Compliance means a reciprocal of a spring constant. Whereas the spring constant represents hardness, the compliance means softness. When an interaction acts between the robot and the environment, control for imparting the compliance, which is mechanical flexibility, is referred to as compliance control.
  • For example, in FIG. 4A, a force sensor SE is attached to the arm AM of the robot. The arm AM of the robot is programmed to change posture according to sensor information (force and torque information) obtained by the force sensor SE. Specifically, the robot is controlled as if an imaginary spring indicated by A1 in FIG. 4A is attached to the distal end of the arm AM.
  • For example, it is assumed that a spring constant of the spring indicated by A1 is 100 Kg/m. If the spring is pushed with force of 5 Kg as indicated by A2 in FIG. 4B, the spring contracts by 5 cm as indicated by A3. In other words, if the spring is contracted by 5 cm, the spring is considered to be pushed with force of 5 Kg. This means that force information and position information are associated with each other.
  • In the compliance control, control is performed as if the imaginary spring indicated by A1 is attached to the distal end of the arm AM. Specifically, the robot operates in response to an input of the force sensor SE. The robot is controlled to retract by 5 cm as indicated by A3 with respect to weighting of 5 Kg indicated by A2 and is controlled such that the position information changes to correspond to the force information. The simple compliance control explained above does not include a time term. Control including a time term and taking into account terms up to a secondary term of the time term is the impedance control. Specifically, the secondary term is amass term and a primary term is a viscosity term. A model of the impedance control can be represented by an equation of motion indicated by Formula (1) below.

  • f(t)=m{umlaut over (x)}+μ{dot over (x)}+kx  (1)
  • In Formula (1), m represents mass, μ represents a viscosity coefficient, k represents an elasticity coefficient, f represents force, and x represents displacement from a target position. Primary differential and secondary differential of x respectively correspond to speed and acceleration. In the impedance control, a control system for imparting the characteristic of Formula (1) to an end effecter section, which is the distal end of the arm, is configured. In other words, control is performed as if the distal end of the arm has imaginary mass, an imaginary viscosity coefficient, and an imaginary elasticity coefficient represented by Formula (1). As explained above, the impedance control is control for bringing the robot into contact with an object with a viscosity coefficient and an elasticity coefficient set as targets in a model in which a viscosity element and an elasticity element are connected to the mass of the distal end of the arm in respective directions.
  • For example, as shown in FIG. 5A, control for gripping the object OB with the arms AL and AR of the robot and moving the object OB along a track TR is considered. In this case, a track TRL is a track on which a point PL set on the inner side of the left side of the object OB passes and is a track of an imaginary left hand determined assuming the impedance control. A track TRR is a track on which a point PR set on the inner side of the right side of the object OB passes and is a track of an imaginary right hand determined assuming the impedance control. In this case, the arm AL is controlled such that force corresponding to a distance difference between the distal end of the arm AL and the point PL is generated. The arm AR is controlled such that force corresponding to a distance difference between the distal end of the arm AR and the point PR is generated. Consequently, it is possible to realize the impedance control for moving the object OB while softly gripping the object OB. In the impedance control, even if a situation occurs in which the object OB drops as indicated by B1 in FIG. 5A, the arms AL and AR are controlled such that the distal ends thereof stop in the positions of the points PL and PR as indicated by B2 and B3. Unless an imaginary track is a collision track, it is possible to prevent the arms AL and AR from colliding with each other.
  • As shown in FIG. 5B, when the arm AM is controlled to trace the surface SF of the object, in the impedance control, the arm AM is controlled such that force corresponding to a distance difference DF between an imaginary track TRVA and the distal end of the arm AM acts on the distal end of the arm AM. Therefore, it is possible to control the arm AM to trace the surface SF while applying force to the arm AM.
  • 1.3 Configuration of the Control System
  • A basic configuration example of the control system not including the force sense feedback is shown in FIG. 6.
  • A track generating unit 562 generates track information p (xyzuvw) and outputs the track information p to an inverse kinematics processing unit 564. The track information p includes, for example, position information (xyz) of the distal end (the end effecter section) of the arm and rotation information (uvw) around axes. The inverse kinematics processing unit 564 performs inverse kinematics processing on the basis of the track information p and generates and outputs a joint angle θ of joints, which is a target value. Motor control is performed on the basis of the joint angle θ, whereby operation control of the arm of the robot is performed. In this case, control of a motor (M) shown in FIG. 6 is realized by publicly-known PID control. Since the PID control is a publicly-known technique, detailed explanation of the PID control is omitted.
  • In FIG. 6, a target-value output unit is configured by the track generating unit 562 and the inverse kinematics processing unit 564. Processing by the target-value output unit is overall processing for the robot. On the other hand, motor control at a post stage is control for each joint.
  • A basic configuration example of the control system including the force sense feedback is shown in FIG. 7. In FIG. 7, a force sensor 510, a posture correcting unit 532, a hand-tool-own-weight correcting unit 534, a motion-equation processing unit 536, and a forward kinematics processing unit 540 are added to the configuration shown in FIG. 6.
  • In FIG. 7, receiving sensor information from the force sensor 510, the posture correcting unit 532 performs posture correction for the sensor and the hand-tool-own-weight correcting unit 534 performs hand tool own weight correction. The motion-equation processing unit 536 performs processing for calculating a solution of the equation of motion indicated by Formula (1) and outputs a correction value Δp. The track information p is corrected by the correction value Δp, whereby correction processing for the joint angle θ, which is the target value, is performed. The forward kinematics processing unit 540 performs forward kinematics processing to calculate track information p′ of the robot and feeds back the track information p′ to the track generating unit 562. The posture correcting unit 532 outputs information for specifying posture to the hand-tool-own-weight correcting unit 534. The feedback of the track information p′ of the robot to the track generating unit 562 is feedback for performing, for example, correction processing for a track based on p′. If the correction processing or the like is not performed, the feedback is not always necessary.
  • The hand-tool-own-weight correcting unit 534 performs hand tool own weight correction. The posture correcting unit 532 performs posture correction. The hand tool own weight correction is correction processing for eliminating the influence due to the own weight of the hand of the robot and the own weight of a tool gripped by the hand from sensor information (force information) acquired from the force sensor 10. The posture correction is correction processing for eliminating the influence due to the posture of the force sensor 10 from the sensor information (the force information). The hand tool own weight correction and the posture correction can be represented, for example, as indicated by Formula (2) below.
  • ( fx fy fz fu fv fw 1.0 ) = [ Mxx Mxy Mxz Mxu Mxv Mxw Bx Myx Myw By Mzx Mzw Bz Mux Muw Bu Mvx Mvw Bv Mwx Mwy Mwz Mwu Mwv Mww Bw 0.0 0.0 0.0 0.0 0.0 0.0 1.0 ] ( Fx Fy Fz Fu Fv Fw 1.0 ) ( 2 )
  • In Formula (2), Fx, Fy, Fz, Fu, Fv, and Fw represent force information and torque information, which are sensor information, acquired from the force sensor 10. Bx, By, Bz, Bu, By, and Bw represent bias terms. Sensor information (force information and torque information) after correction fx, fy, fz, fu, fv, and fw are input to the motion-equation processing unit 536. Since fixed values are included in data, a substantial number of correction coefficients are 6×7=42. Since the hand tool own weight correction and the posture correction are publicly-known correction processing, detailed explanation thereof is omitted.
  • 1.4 Digital Filter Processing
  • The motion-equation processing unit 536 shown in FIG. 7 needs to calculate a solution of an equation of motion (in a broad sense, an ordinary differential equation). In the past, the Newton method, the Runge-Kutta method, or the like is used to calculate a solution of the equation of motion. However, these methods are not suitable for hardwaring. Determination of stability is difficult with these methods. Further, it is difficult to cope with switching of responsiveness.
  • Therefore, to solve the three problems, the applicant uses a digital filter as a method of solving the ordinary differential equation.
  • 1.4.1 Method of Solving the Equation of Motion Using a Digital Filter
  • The equation of motion is represented in the form of Formula (1). Since the equation of motion is a linear ordinary differential equation, if an impulse response, which is a solution to an impulse input, is calculated, it is possible to obtain a solution to an arbitrary external force term according to convolution of the impulse response and an external force term.
  • If a step of calculating a solution of the equation of motion is regarded as a filter for outputting a solution (e.g., position information) with respect to an input of sensor information of the force sensor, the step can be considered a two-pole analog filter from the form of Formula (1).
  • In other words, a solution of the equation of motion can be calculated as an output of the analog filter. Therefore, it is possible to solve the equation of motion using the digital filter by converting the analog filter into a digital filter. Various method of converting the analog filter into a digital filter are known. For example, the Impulse Invariance method only has to be used. This is a method of considering a digital filter that gives an impulse response same as a value obtained by sampling an impulse response of the analog filter at a discrete time T. Since the Impulse Invariance method is a publicly-known method, detailed explanation of the impulse Invariance method is omitted.
  • As a result, it is possible to calculate a solution of the ordinary differential equation as an output of the digital filter. The equation of motion is a two-pole digital filter as shown in FIG. 8. In FIG. 8, d represents a delay of one sample and C0, C1, and C2 represent coefficients of the filter. In processing by the digital filter, hardwaring is easy and determination of stability is also easy as explained below. If a coefficient of the digital filter is switched, it is also possible to switch a characteristic (e.g., whether the digital filter is moved softly or hardly) and switch a filter driving frequency to switch responsiveness of a solution.
  • 1.4.2 Stability Determination of the Digital Filter
  • In the impedance control, it is likely that an unstable system is formed depending on setting of the mass term (m), the viscosity term (μ), and the elasticity term (k) of the equation of motion. In an extreme example, an oscillating system in which, if force is applied to the robot once, oscillation of the robot continues even if the robot is not touched at all thereafter could be formed. Such a system with low stability (a low degree of stability) is undesirable in practice. Therefore, it is necessary to determine stability of a system concerning the equation of motion and take some measures if the system is unstable.
  • However, in the Newton method and the Runge-Kutta method, although a solution of the equation of motion can be calculated, determination of stability cannot be performed. Therefore, processing for determining stability is necessary separately from the processing for calculating a solution. However, in general, it is known that determination processing for stability is not easy.
  • In the method according to this embodiment, the equation of motion is processed using the digital filter. Therefore, determination of stability of a system concerning the equation of motion is nothing but determination of stability of the digital filter corresponding to the system. The determination of stability of the digital filter can be easily performed. It only has to be determined whether poles are present in a unit circle.
  • Specific examples are shown in FIGS. 9A to 9C. All the specific examples are examples in which poles fit in a unit circle. When the poles are outside the unit circle, it is determined that the digital filter is unstable. When poles are present in positions away from the circumference of the unit circle to the inner side by some degree as shown in FIG. 9C, there is no particular problem. However, when poles are present in positions very close to the unit circuit as shown in FIG. 9A (FIG. 9A is an example in which two poles are present in positions limitlessly close to each other rather than in an equal root), caution is required. This is because, depending on a mounting method of the digital filter, it is likely that an error occurs in a design value. When the error is a factor of moving the positions of the poles in the outer side direction of the unit circle, the digital filter without margin in stability as shown in FIG. 9A is likely to perform unstable operation during mounting, although the digital filter is stable in design. Therefore, some measures need to be taken.
  • 1.4.3 Configuration Example in which the Digital Filter is Used
  • A configuration example of the robot control system and the robot system including the robot control system in calculating a solution of the equation of motion using the digital filter is shown in FIG. 10. The robot control system and the robot system according to this embodiment are not limited to the configuration shown in FIG. 10. Various modifications are possible, for example, apart of components of the robot control system and the robot system are omitted and other components are added.
  • The force sensor 10, the target-value output unit 60, the robot control unit 80, and the robot 100 are the same as those shown in FIG. 1. Therefore, detailed explanation thereof is omitted.
  • The force control unit 20 includes a digital filter unit 22. The digital filter unit 22 applies digital filter processing to sensor information (including information obtained by applying the correction and the band limiting processing to the sensor information) obtained from the force sensor and outputs an output value to the target-value output unit 60 as a correction value. The force control unit 20 may include a band limiting unit 24 that applies the band limiting processing to the sensor information.
  • The digital filter unit 22 includes a digital filter arithmetic unit 221, a digital-filter-coefficient output unit 222, and a digital-filter-stability-degree determining unit 223. The digital filter arithmetic unit 221 performs the digital filter processing to calculate a solution of the equation of motion on the basis of the sensor information and a digital filter coefficient. The digital-filter-coefficient output unit 222 calculates the digital filter coefficient on the basis of the coefficient parameters (the mass term m, the viscosity term μ, the elasticity term k, and the driving period T) of the equation of motion and outputs the digital filter coefficient to the digital filter arithmetic unit 221 and the digital-filter-stability-degree determining unit 223. The digital-filter-stability-degree determining unit 223 performs determination of stability of the digital filter on the basis of the digital filter coefficient.
  • The digital-filter-coefficient output unit 222 may include a digital-filter-coefficient storing unit 224 and a digital-filter-coefficient converting unit 225. The digital-filter-coefficient converting unit 225 converts the coefficient parameters of the equation of motion into the digital filter coefficient. The digital-filter-coefficient storing unit 224 stores the converted digital filter coefficient. If a plurality of digital filter coefficients are stored in the digital-filter-coefficient storing unit 224 in advance, it is possible to switch an operation characteristic of the robot and responsiveness of a solution by switching a digital filter coefficient to be output.
  • First to fourth embodiments are explained below using the configuration shown in FIG. 10 as a basis. The first embodiment is a basic form of the invention. The second embodiment is an example in which a plurality of filters are caused to operate in parallel when the plurality of filters are switched. Specifically, a plurality of the digital filter arithmetic units 221 are provided. The third embodiment is an example in which only one digital filter arithmetic unit 221 is used when the plurality of filters are switched. In this case, when a driving frequency is switched, it is necessary to perform processing for the switching. The fourth embodiment is an example in which filter selection processing in switching the plurality of filters is performed on the basis of sensor information.
  • 2. First Embodiment 2.1 Configuration
  • A configuration example of a robot system including a robot control system according to the first embodiment is shown in FIG. 11.
  • Since the force sensor 10, the track generating unit 62, the inverse kinematics processing unit 64, the motor control unit 82-1, and the like are the same as those shown in FIG. 1. Therefore, detailed explanation thereof is omitted. An input correcting unit 30 applies correction processing to sensor information. For example, the input correcting unit 30 may include, for example, the posture correcting unit 532 and the hand-tool-own-weight correcting unit 534 shown in FIG. 7. A forward kinematics processing unit 40 corresponds to the forward kinematics processing unit 540 shown in FIG. 7. The forward kinematics processing unit 40 outputs a result of forward kinematics processing to the input correcting unit 30 and outputs the result to the track generating unit 62 as well according to necessity.
  • The robot control system includes the digital-filter arithmetic unit 221, the digital-filter-stability-degree determining unit 223, the digital-filter-coefficient storing unit 224, the digital-filter-coefficient converting unit 225, a response-characteristic input unit 226, and a filter-state storing unit 227. Specifically, these units are included in the digital filter unit 22 of the force control unit 20. The digital filter arithmetic unit 221, the digital-filter-stability-degree determining unit 223, the digital-filter-coefficient storing unit 224, and the digital-filter-coefficient converting unit 225 are explained above with reference to FIG. 10. Therefore, details of the units are not explained.
  • The response-characteristic input unit 226 outputs the coefficient parameters (m, μ, and k) of the equation of motion and the driving period T (the driving frequency) to the digital-filter-coefficient converting unit 225.
  • The filter-state storing unit 227 stores a filter state. The filter state is an output of the digital filter arithmetic unit 221 (i.e., a solution of the equation of motion). As explained above, the equation of motion corresponds to the two-pole digital filter. Specifically, the equation of motion is as shown in FIG. 8. As it is evident from FIG. 8, the digital filter is delayed twice. Therefore, in order to calculate an output value at certain timing, an output value at the immediately preceding timing and an output value at the second immediately preceding timing are necessary. The filter-state storing unit 227 stores the output values. The filter-state storing unit 227 stores an output of the digital filter arithmetic unit 221 and sends output values in the past to the digital filter arithmetic unit 221.
  • 2.2 Detailed Processing
  • A detailed processing example of this embodiment is explained with reference to a flowchart of FIG. 12. FIG. 12 is a flowchart concerning processing in the digital filter unit 22.
  • When this processing is started, first, after waiting for timing of output (S101), the digital filter unit 22 acquires an external force value F (S102). It is assumed that the external force value F is obtained by applying the correction processing by the input correcting unit 30 to sensor information acquired from the force sensor 10.
  • The digital filter unit 22 calculate a solution of the equation of motion using the acquired external force value F (S103). Specifically, the digital filter unit 22 changes, in the filter-state storing unit 227, an output Yn-1 of the digital filter arithmetic unit 221 at the immediately preceding step to a value Yn-2 and overwrites the output Yn-1 with a value Yn. The digital filter unit 22 performs, in the digital filter arithmetic unit 221, processing for calculating an output value Yn from the digital filter coefficient (C0, C1, and C2) output from the digital-filter-coefficient storing unit 224 and the output values in the past (Yn-1 and Yn-2) output from the filter-state storing unit 227.
  • The processing explained above is processing for calculating a solution of the equation of motion at certain one timing. After the processing at the one timing, the digital filter unit 22 performs determination whether a response characteristic at the next timing is changed (S104). If the response characteristic is not changed, the digital filter unit 22 returns to S101. If the response characteristic is changed, first, the digital filter unit 22 acquires the parameters (m, μ, k, and T) of the response characteristic from the response-characteristic input unit 226 (S105). The digital filter unit 22 calculates a digital filter coefficient in the digital-filter-coefficient converting unit 225 (S106). The digital filter unit 22 determines, in the digital-filter-stability-degree determining unit 223, stability of the digital filter on the basis of the calculated digital filter coefficient (S107). If the filter is not stable, the digital filter unit 22 returns to S101 without storing the digital filter coefficient in the digital-filter-coefficient storing unit 224. In other words, the response characteristic is not changed in the next step. If it is determined in S107 that the filter is stable, the digital filter unit 22 stores the digital filter coefficient in the digital-filter-coefficient storing unit 224 (S108) and performs processing in the next step using the digital filter coefficient updated by returning to S101.
  • In this embodiment explained above, the robot control system includes, as shown in FIG. 10, the force control unit 20 that outputs a correction value concerning a target track of the robot on the basis of sensor information acquired from the force sensor 10, the target-value output unit 60 that corrects the target track on the basis of the correction value to output a target value, and the robot control unit 80 that performs feedback control of the robot 100 on the basis of the target value. The force control unit 20 includes the digital filter unit 22. The force control unit 20 applies the digital filter processing by the digital filter unit 22 to the sensor information to calculate a solution of the ordinary differential equation in the force control and outputs the correction value on the basis of the calculated solution.
  • The target value is a target value in the feedback control of the robot 100. The control in the robot control unit 80 is performed on the basis of the target value. The target value can be acquired by applying the correction processing by the correction value to a target track. In a narrow sense, the target track may be a target track representing a change in a spatial target position of the end effecter section (the end point) of the robot. One target position is represented by, for example, a three-dimensional space coordinate xyz (if posture is also taken into account, rotation angles uvw around axes may be added). The target track is a set of the target positions. However, the target track is not limited to this and may be a set of target joint angles of the robot. In a robot including joints, when angles of the joints are determined, the position of the end effecter section is uniquely determined by the forward kinematics processing. Specifically, in an N-joint robot, one target position can be represented by N joint angles (θ1 to θN). Therefore, if a set of the N joint angles is set as one target joint angle, the target track can be considered a set of target joint angles. Therefore, the correction value output from the force control unit 20 may be a value concerning a position or may be a value concerning a joint angle.
  • Specific examples are shown in FIGS. 21A and 21B. If the equation of motion of Formula (1) is used as the ordinary differential equation, a solution of which is calculated by the digital filter processing, a solution of the equation of motion is a value concerning a position. Therefore, when the target track is the target position, the target track only has to be directly set as the correction value. A system configuration example is as shown in FIG. 21A. The target value may be a value concerning a position or may be a value concerning a joint angle. In general, it is assumed the joint angle is used in the feedback control of the robot.
  • On the other hand, it is also conceivable that, as shown in FIG. 21B, the force control unit 20 includes an inverse kinematics processing unit 29 separately from the inverse kinematics processing unit 64 of the target-value output unit 60. For example, timing of processing and processing rates are different in target track generation processing in the target-value output unit 60 and correction value output processing in the force control unit 20. In that case, the target track is a target joint angle. The force control unit 20 applies conversion processing (e.g., inverse kinematics processing) to the solution of the equation of motion to obtain the correction value.
  • The ordinary differential equation in the force control is an ordinary differential equation, a solution of which needs to be calculated in the force control. In a narrow sense, the ordinal differential equation may be a linear ordinary differential equation. In a narrower sense, the ordinary differential equation is an ordinary differential equation, a solution of which needs to be calculated in order to cause the robot 100 to behave as if the robot 100 has desired characteristics (mass, viscosity, elasticity, etc.). The ordinary differential equation may be the equation of motion indicated by Formula (1).
  • Consequently, it is possible to perform, using the digital filter, processing for calculating a solution of the ordinary differential equation necessary in the force control. Compared with the processing performed using the Newton method, the Runge-Kutta method, or the like, hardwaring is easy and determination of stability is also easy as explained above. Further, it is also possible to easily switch a response characteristic by switching a digital filter used for the digital filter processing (e.g., switching a filter coefficient).
  • The digital filter unit 22 may include, as shown in FIG. 10, the digital-filter-coefficient output unit 222 that outputs a digital filter coefficient on the basis of the coefficient parameters of the terms of the ordinary differential equation and the digital filter arithmetic unit 221 that performs the digital filter processing on the basis of a digital filter coefficient and sensor information.
  • The coefficient parameters of the terms of the ordinary differential equation indicate a constant term, a coefficient of a primary differential term, a coefficient of a secondary differential term, and a coefficient of an n-ary differential term in the ordinary differential equation. In the example of Formula (1) m, μ, and k are coefficient parameters. The sensor information used for the digital filter processing may be an output value itself from the force sensor 10, may be the output value subjected to the correction processing by the input correcting unit 30 (shown in FIG. 11), or may be the output value subjected to the band limiting processing by the band limiting unit 24 (shown in FIG. 10). Consequently, it is possible to, after outputting a digital filter coefficient necessary for the digital filter processing, perform the digital filter processing based on the digital filter coefficient and sensor information.
  • The digital-filter-coefficient output unit 222 may include, as shown in FIGS. 10 and 11, the digital-filter-coefficient converting unit 225 that converts the coefficient parameters of the ordinary differential equation into a digital filter coefficient and the digital-filter-coefficient storing unit 224 that stores the digital filter coefficient. The digital-filter-coefficient output unit 222 outputs the digital filter coefficient stored in the digital-filter-coefficient storing unit 224.
  • Consequently, it is possible to calculate the digital filter coefficient from the coefficient parameters of the ordinary differential equation. When the force control is performed, first, an ordinary differential equation necessary for the force control is determined. For example, if a physical characteristic desired to be imparted to the robot 100 is determined, an equation of motion in which specific numerical values are substituted in m, μ, and k of Formula (1) is determined. However, coefficient parameters of the ordinary differential equation and the digital filter coefficient are different. Therefore, when the ordinary differential equation is determined, processing for calculating a digital filter (specifically, a digital filter coefficient) for calculation a solution of the ordinary differential equation is necessary. In this embodiment, this processing is performed in the digital-filter-coefficient converting unit 225.
  • The digital filter unit 22 may include, as shown in FIG. 10, the digital-filter-stabilization-degree determining unit 223 that determines a stabilization degree (stability) of the digital filter used for the digital filter processing. When it is determined that the digital filter is stable, the digital-filter-coefficient output unit 222 outputs the digital filter coefficient.
  • Consequently, it is possible to determine stability of the digital filter. The coefficient parameters of the ordinary differential equation in the force control sometimes form, depending on setting, a system that is impossible in reality (e.g., an oscillating robot). Therefore, it is necessary to determine stability of the ordinary differential equation. However, if the digital filter is used, the determination is easy. Details are as explained above.
  • In this embodiment, switching of the driving frequency of the digital filter is not explained (explained in second and third embodiments below). However, this does not prevent the switching of the driving frequency from being performed using the basic configuration shown in FIG. 10. Specifically, the digital filter processing may be performed while the driving frequency is switched between a first driving frequency and a second driving frequency higher than the first driving frequency. In that case, the digital-filter-coefficient output unit 222 outputs at least one of a first digital filter coefficient corresponding to the first driving frequency and a second digital filter coefficient corresponding to the second driving frequency. The digital filter arithmetic unit 221 performs, according to the output digital filter coefficient, at least one of digital filter processing by the first driving frequency in which the first digital filter coefficient is used and digital filter processing by the second driving frequency in which the second digital filter coefficient is used.
  • Consequently, it is possible to switch the driving frequency of the digital filter processing. It is possible to switch responsiveness of a solution of the ordinary differential equation by switching the driving frequency.
  • The ordinary differential equation in this embodiment may be an equation of motion including an imaginary mass term, an imaginary viscosity term, and an imaginary elasticity term as coefficient parameters.
  • Consequently, it is possible to calculate a solution of the equation of motion. Therefore, it is possible to cause the robot 100 to behave as if the robot 100 has mass corresponding to the imaginary mass term, viscosity corresponding to the imaginary viscosity term, and elasticity corresponding to the imaginary elasticity term.
  • The target-value output unit 60 may includes, as shown in FIG. 10, the track generating unit 62 that outputs target position information of the robot 100 and the inverse kinematics processing unit 64 that performs inverse kinematics processing on the basis of the target position information from the track generating unit 62 and output joint angle information of the robot 100.
  • The target position information is information concerning target position of the robot 100 (in a narrow sense, an end effecter section of the robot 100). The target position is represented by, for example, xyz (which may include uvw concerning posture). The target position information may be information concerning one target position or may be information concerning a plurality of target positions representing a temporal position change (a moving path) of the robot 100.
  • Consequently, it is possible to, after outputting the target position information of the robot 100, perform the inverse kinematics processing and convert the target position information into joint angle information. Since the track generating unit 62 generates the target position information of the robot 100, it is possible to systematically control the robot 100. However, it is natural to provide joints in the robot 100 in order to flexibly move the robot 100. In that case, in general, robot control is performed by controlling angles of the joints. Therefore, it is difficult to directly set the target position information as a target value. The inverse kinematics processing unit 64 that converts the target position information into joint angle information is necessary.
  • This embodiment explained above relates to a robot system including the robot control system (including the force control unit 20, the target-value output unit 60, and the robot control unit 80) and the robot 100.
  • Consequently, it is possible to realize not only a robot control apparatus but also a robot system that executes the processing in this embodiment.
  • This embodiment explained above can be applied to a sensor information processing apparatus including a sensor-information acquiring unit that acquires sensor information from a sensor and a sensor-information processing unit that applies processing to the acquired sensor information. The sensor-information processing unit includes a digital filter unit. The sensor-information processing unit applies digital filter processing by the digital filter unit to the sensor information to calculate a solution of an ordinary differential equation in the sensor information processing and outputs the solution as an output value of the sensor information processing.
  • In the above explanation, the sensor information processing apparatus is applied to the robot control system. In the robot control system, the sensor information processing apparatus is equivalent to the force control unit 20 shown in FIG. 10 and the like and the sensor is equivalent to the force sensor 10. The sensor-information acquiring unit is not specifically shown in the figures. However, a block (in the case of FIG. 10, the band limiting unit 24) connected to the force sensor 10 may function as the sensor-information acquiring unit. The sensor-information processing unit corresponds to the digital filter unit 22 shown in FIG. 10. The sensor-information processing unit may further include the band limiting unit 24 and the input correcting unit 30 shown in FIG. 11. However, the sensor-information processing apparatus is not limited to be applied to the robot control system and may be applied to other control systems. In that case, the sensor-information processing apparatus outputs information used in control on the basis of sensor information processing (including digital filter processing) applied to sensor information. Further, the sensor information processing apparatus is not limited to the application to the control system and may be used in other systems (apparatuses). For example, the sensor information processing apparatus may be used in a detection system that detects various kinds of information using a sensor.
  • The sensor information processing means processing for applying some kind of processing to an output value from the sensor and calculating useful information. The sensor information processing includes processing for calculating at least a solution of an ordinary differential equation. For example, in the robot control system, the sensor information processing is conversion processing into information having physically different meaning, for example, processing for calculating a correction value (e.g., a correction value of a target position of a robot) from force information related to a force sensor. In the detection system, for example, processing for improving detection accuracy (e.g., processing for reducing noise included in sensor information) is conceivable.
  • The application of the sensor information processing apparatus is not limited to the robot control system. Likewise, the sensor that outputs the sensor information is not limited to the force sensor. The sensor may be, for example, an acceleration sensor, an angular velocity sensor, a direction sensor, a biosensor (a pulse sensor, etc.), and a GPS.
  • Consequently, it is possible to realize the sensor information processing apparatus that calculate a solution of the ordinary differential equation and outputs an output value according to the digital filter processing applied to the sensor information. The sensor information processing apparatus may be realized as, for example, an IC chip including a sensor. For example, a solution of the ordinary differential equation in which the sensor information is used can be output rather than the sensor information itself. Therefore, usefulness of an output value of the apparatus is increased when the apparatus is combined with another system or the like.
  • 3. Second Embodiment
  • In a second embodiment, it is assumed that a driving frequency of a digital filter is switched. For example, it is conceivable to switch the driving frequency according to band limitation. In general, noise is often included in sensor information of a force sensor. Therefore, it is desirable to perform band limiting processing. However, the width of a pass band varies depending on a situation (if a large signal value is obtained with respect to noise, the band limiting processing may be rather light and the pass band can be set wide). As the pass band is set narrower, the noise further decreases but a response characteristic is further deteriorated. Therefore, it is necessary to switch the driving frequency of the digital filter as well to correspond to the pass band. Specifically, when the pass band is set wide, the digital filter is caused to operate at a high driving frequency and, when the pass band is set narrow, the digital filter is caused to operate at a low driving frequency.
  • In this embodiment, a plurality of the digital filter arithmetic units 221 are provided. Sensor information subjected to band limiting processing, in which different pass bands are set, are respectively input to the digital filter arithmetic units 221 to cause the digital filter arithmetic units 221 to operate at different driving frequencies. In other words, two filters having different driving frequencies are caused to operate in parallel and an appropriate filter is selected according to a situation. In an example explained below, the two filters are caused to operate in parallel. However, three or more digital filters may be caused to operate in parallel.
  • 3.1 Configuration
  • A configuration example of a robot system including a robot control system according to the second embodiment is shown in FIG. 13.
  • Detailed explanation is omitted concerning components same as those in the first embodiment (FIG. 11). When compared with the first embodiment, the robot system according to the second embodiment is different in that a pair of the digital filter arithmetic units 221 (221-1 and 221-2), a pair of the digital-filter-coefficient storing units 224 (224-1 and 224-2), and a pair of the filter-state storing units 227 (227-1 and 227-2) are provided. The digital filter unit 22 includes band limiting units 24-1 and 24-2 and a digital-filter-output selecting unit 220.
  • The band limiting unit 24-1 applies band limiting processing for setting a first frequency band as a pass band to sensor information and outputs the sensor information to the digital filter arithmetic unit 221-1. The band limiting unit 24-2 applies band limiting processing for setting a second frequency band, which is different from the first frequency band, as a pass band to the sensor information and outputs the sensor information to the digital filter arithmetic unit 221-2.
  • The digital-filter-output selecting unit 220 receives outputs of the digital filter arithmetic units 221-1 and 221-2, selects one of the outputs, and outputs a selected value to the digital filter unit 22 as an output value.
  • The digital-filter-coefficient storing unit 224-1 stores a first digital filter coefficient determined as stable as a result of performing the processing in S105 to S107 in FIG. 12. Similarly, the digital-filter-coefficient storing unit 224-2 stores a second digital filter coefficient different from the first digital filter coefficient.
  • The digital filter arithmetic unit 221-1 performs digital filter processing on the basis of the first digital filter coefficient stored in the digital-filter-coefficient storing unit 224-1, the sensor information after the band limiting processing output from the band limiting unit 24-1, and an output value in the past output from the filter-state storing unit 227-1.
  • Similarly, the digital filter arithmetic unit 221-2 performs digital filter processing on the basis of the second digital filter coefficient stored in the digital-filter-coefficient storing unit 224-2, the sensor information after the band limiting processing output from the band limiting unit 24-2, and an output value in the past output from the filter-state storing unit 227-2. In other words, the two digital filters operate in parallel.
  • 3.2 Detailed Processing
  • A detailed processing example in this embodiment is explained with reference to a flowchart of FIG. 14. FIG. 14 is a flowchart concerning processing in the digital filter unit 22.
  • When this processing is started, first, after waiting for timing of output (S201), the digital filter unit 22 acquires the external force value F (S202). It is assumed that the external force value F is obtained by applying the correction processing by the input correcting unit 30 to sensor information acquired from the force sensor 10.
  • Subsequently, the digital filter unit 22 determines whether the processing is performed concerning all the filters operating in parallel (S203). If an unprocessed filter remains, the digital filter unit 22 selects the filter (S204) and performs, in a band limiting unit (a band limiting unit corresponding to the filter among the band limiting units 24-1 and 24-2), band limiting processing corresponding to the selected filter (S205). The digital filter unit 22 performs, in the digital filter arithmetic unit corresponding to the selected filter, the digital filter processing using the sensor information subjected to the band limiting processing as an input value (S206). Details of S206 are the same as S103. After the processing, the digital filter unit 22 returns to S203.
  • If it is determined in S203 that all the filters are processed, the digital filter unit 22 selects, in the digital-filter-output selecting unit 220, an output filter out of the plurality of filters (S207) and outputs an output value of the selected filter (S208). After the processing in S208, the digital filter unit 22 returns to S201.
  • In this embodiment explained above, the digital filter unit 22 includes, as shown in FIG. 13, the first digital filter arithmetic unit (221-1) and the second digital filter arithmetic unit (221-2) as the digital filter arithmetic unit 221. The digital-filter-coefficient output unit 222 outputs the first digital filter coefficient to the first digital filter arithmetic unit and outputs the second digital filter coefficient to the second digital filter arithmetic unit. The first digital filter arithmetic unit performs the digital filter processing based on the first digital filter coefficient and the sensor information. The second digital filter arithmetic unit performs the digital filter processing based on the second digital filter coefficient and the sensor information.
  • Consequently, it is possible to perform a plurality of kinds of digital filter processing in parallel. Therefore, when switching of a digital filter coefficient for switching a characteristic of the robot is performed, the digital filter processing before and after the switching is caused to operate in parallel in advance. Therefore, it is possible to smoothly perform the switching. In switching of the driving frequency, it is unnecessary to perform switching processing in a third embodiment explained below.
  • The digital filter unit 22 may include, as shown in FIG. 13, the digital-filter-output selecting unit 220 that selects any one of a processing result in the first digital filter arithmetic unit and a processing result in the second digital filter arithmetic unit and outputs the processing result as a correction value.
  • Consequently, even when the plurality of digital filters are operating in parallel, it is possible to select an appropriate digital filter and output a processing result of the selected digital filter as a correction value. The selection of a digital filter is directly related to content of the force control (e.g., behavior of the robot 100). Therefore, it is necessary to select an appropriate digital filter such that control desired by a user is performed.
  • The digital filter processing may be performed at a driving frequency of any one of a first driving frequency and a second driving frequency (higher than the first driving frequency). In that case, the digital-filter-coefficient output unit 222 outputs a value corresponding to the first driving frequency as the first digital filter coefficient and outputs a value corresponding to the second driving frequency as the second digital filter coefficient. The first digital filter arithmetic unit performs the digital filter processing by the first driving frequency using the first digital filter coefficient and performs the digital filter processing by the second driving frequency using the second digital filter coefficient.
  • Consequently, it is possible to switch the driving frequency of the digital filter processing. It is possible to switch responsiveness of a solution of the normal differential equation by switching the driving frequency. In this embodiment, both before and after the switching, the digital filter processing by the first driving frequency and the digital filter processing by the second driving frequency are performed in parallel. Therefore, it is possible to smoothly perform the switching.
  • The force control unit 20 may include, as shown in FIG. 10, the band limiting unit 24 that applies band limiting processing for allowing a given frequency band to pass to the sensor information and outputs the sensor information subjected to the band limiting processing to the digital filter arithmetic unit. The band limiting unit 24 outputs, to the first digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a first frequency band to pass and outputs, to the second digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a second frequency band (which is wider than the first frequency band) to pass.
  • The band limiting unit 24 may include, as shown in FIG. 13, the band limiting unit 24-1 and the band limiting unit 24-2. Consequently, it is possible to apply the band limiting processing to the sensor information according to the driving frequency. Specifically, pass band width is wider as the driving frequency is higher. The pass band width is narrower as the driving frequency is lower. This is because, as explained above, as the band limiting processing is intensified, the response characteristic is further deteriorated. In this way, the intensity of the band limiting processing and the driving frequency have a correspondence relation. However, whichever of the intensity of the band limiting processing and the driving frequency may be determined earlier. When the sensor information includes a lot of noise, it is desirable to intensely apply the band limiting processing to the sensor information to remove the noise. In other words, from the viewpoint of a noise amount, in some case, the intensity of the band limiting processing is determined first and the driving frequency is determined according to the intensity of the band limiting processing. In other cases, from the viewpoint of responsiveness of a solution of the ordinary differential equation, the driving frequency is determined first (e.g., the driving frequency is set high because a solution is desired to be obtained immediately) and the intensity of the band limiting processing is determined according to the driving frequency.
  • 4. Third Embodiment
  • In a third embodiment, as in the second embodiment, it is assumed that a driving frequency of a digital filter is switched. In this embodiment, a configuration including only one digital filter arithmetic unit 221 that performs digital filter processing is explained. When only one digital filter arithmetic unit 221 is provided, it is necessary to perform switching processing when the driving frequency is switched. Specifically, as the switching processing, switching from a high frequency to a low frequency and switching from a low frequency to a high frequency are separately explained.
  • 4.1 Configuration
  • A configuration example of a robot system including a robot control system according to the third embodiment is shown in FIG. 15. Detailed explanation of components same as those in the second embodiment (FIG. 13) is omitted. When compared with the second embodiment, the third embodiment is different in that only one digital filter arithmetic unit 221 is provided. Further, the robot system includes the input selecting unit 25, a coefficient selecting unit 228, and a state selection processing unit 229.
  • The coefficient selecting unit 228 selects one coefficient used for the digital filter processing from a first digital filter coefficient output from the digital-filter-coefficient storing unit 224-1 and a second digital filter coefficient output from the digital-filter-coefficient storing unit 224-2 and outputs the selected digital filter coefficient to the digital filter arithmetic unit 221. This can be considered as selecting, out of a plurality of digital filters, an output filter used for output.
  • The state selection processing unit 229 performs processing concerning a filter state of a digital filter corresponding to the digital filter coefficient selected by the coefficient selecting unit 228 (hereinafter, output filter). Specifically, the state selection processing unit 229 acquires, from a filter-state storing unit corresponding to the output filter, an output value in the past of digital filter processing in which the output filter is used and outputs the output value to the digital filter arithmetic unit 221. Further, the state selection processing unit 229 outputs an output value of the digital filter arithmetic unit 221 to the filter state storing unit corresponding to the output filter.
  • As explained above, in the digital filter processing in this embodiment, it is necessary to use the output value at timing in the past. When the output value is used, if a certain digital filter is selected as the output filter, naturally, an output value in the past of the selected digital filter has to be used. In other words, when the coefficient selecting unit 228 selects a digital filter coefficient corresponding to an i-th digital filter, the state selection processing unit 229 cannot select a filter state corresponding to a k-th digital filter different from the i-th digital filter. Therefore, both of the coefficient selecting unit 228 and the state selection processing unit 229 perform processing for selecting one candidate out of a plurality of candidates. However, the selection processing is not independently performed by each of the coefficient selecting unit 228 and the state selection processing unit 229. A constraint condition for selecting a candidate corresponding to the same digital filter needs to be considered.
  • The input selecting unit 25 selects one output out of outputs from the band limiting unit 24-1 and the band limiting unit 24-2 and outputs the selected output to the digital filter arithmetic unit 221. The input selecting unit 25 also selects an output corresponding to the output filter. A relation between a driving frequency of the digital filter and pass band width of band limiting processing is as explained above in the second embodiment. Specifically, when the output filter is selected, a pass band of the band limiting processing is also determined. The input selecting unit 25 selects an output from the band limiting unit corresponding to the pass band. Consequently, selection processing based on the selection of the output filter is performed concerning not only the coefficient selecting unit 228 and the state selection processing unit 229 but also the input selecting unit 25.
  • 4.2 Detailed Processing
  • 4.2.1 Switching from a High Frequency to a Low Frequency
  • In this embodiment, it is necessary to perform switching processing in switching of the driving frequency. First, switching from a high frequency (a short period) to a low frequency (a long period) is explained.
  • It is considered that the driving frequency is switched at timing of A1 as shown in FIG. 16. When the driving frequency is switched, to calculate an output value in a low-frequency filter after the switching, output values of the low-frequency filter at two timings in the past indicated by A2 and A3 are necessary.
  • Even if the driving frequencies are different, sampling rates are only different and waveforms obtained by smoothly connecting sampling points should be the same. Specifically, as in an example shown in FIG. 16, if a high frequency has a sampling rate ten times as high as a sampling rate of a low frequency, it is possible to acquire output values at the immediately preceding timing and at the second immediately preceding timing in the low-frequency filter by storing output values at the tenth preceding timing and the twentieth preceding timing in a high-frequency filter.
  • However, if there is a condition that the filter-state storing unit 227 stores only the output values for the two timings in the past, a problem occurs. Specifically, since the high-frequency filter operates before the switching, the filter-state storing unit 227 stores only information at the two timings in the past in the high-frequency filter as indicated by A4 (timing of one timing in the past in the high-frequency filter) and A5 (timing of two timings in the past in the high-frequency filter). Output values at the timings indicated by A2 and A3 are lost.
  • Therefore, in this embodiment, a switching period is provided during the switching and the high-frequency filter and the low-frequency filter are caused to operate in parallel in the switching period. In FIG. 16, a switching instruction is output at the timing of A3 and the two filters are caused to operate in parallel in a period from A3 to A1. Then, the switching of the filters is performed at the timing of A1. Consequently, it is possible to acquire the output values at A3 and A2 of the low-frequency filter while continuing an output by the high-frequency filter until A1. Therefore, values necessary for an output of the low-frequency filter are collected at A1. It is possible to perform the switching processing without problems.
  • As explained above, the sampling rates of the high-frequency filter and the low-frequency filter are only different and outputs at the same timing of the filters should be the same. Therefore, even if the parallel operation is performed, an arithmetic operation employing a digital filter coefficient of the low-frequency filter is unnecessary. The arithmetic operation only has to be performed for the high-frequency filter. Among output values of the high-frequency filter, values at the A3 timing and the A2 timing are stored in the filter-state storing unit corresponding to the low-frequency filter.
  • A detailed processing example in this embodiment is explained with reference to a flowchart of FIG. 17. FIG. 17 is a flowchart concerning processing in the digital filter unit 22.
  • When this processing is started, first, after waiting for timing of output (S301), the digital filter unit 22 acquires the external force value F (S302). It is assumed that the external force value F is obtained by applying the correction processing by the input correcting unit 30 to sensor information acquired from the force sensor 10.
  • Subsequently, the digital filter unit 22 performs digital filter processing same as that in S103 of FIG. 12 (S303) and determines whether a driving period is changed (S304). In the case of No in S304, the digital filter unit 22 returns to S301 and continues the processing.
  • In the case of Yes in S304, the digital filter unit 22 acquires a digital filter coefficient after change and determines whether the filter is stable (S305 to S307). This processing is the same as the processing in S105 to S107 in FIG. 12.
  • In the case of Yes in S307, first, the digital filter unit 22 stores an output value at that timing as an output value at the second immediately preceding timing of the low-frequency filter. In FIG. 16, this corresponds to the A3 timing. Since actual switching is performed at the A1 timing, an output value at the A3 timing is an output value at two timings in the past from the time of the switching.
  • Processing in S309 to S311 is digital filter processing in the high-frequency filter as in S301 to S303. The digital filter unit 22 determines whether the present timing is output timing at a first period in the low-frequency filter (S312). In FIG. 16, this is determination whether the present timing is the timing of A2. An output value of the high-frequency filter at timing between A3 and A2 does not contribute to the operation of the low-frequency filter. Therefore, only when the present timing is the timing of A2 (Yes in S312), the digital filter unit 22 stores an output value at the timing of A2 as an output value at the immediately preceding timing of the low-frequency filter (S313). After the processing in S313, the digital filter unit 22 returns to S309.
  • In the case of No in S312, the digital filter unit 22 determines whether the present timing is output timing at the second period in the low-frequency filter (S314). In FIG. 16, this is determination whether the present timing is the timing of A1. In the case of No in S314, the digital filter unit 22 returns to S309. In the case of Yes in S314, the digital filter unit 22 switches the driving frequency to a low frequency (S315). Specifically, in S308 to S315, the digital filter unit 22 stores an output value at the timing of A3 (S308). Between A3 and A2, the digital filter unit 22 performs nothing (No in both S312 and S314). The digital filter unit 22 stores an output value at the timing of A2 (S313). Between A2 and A1, the digital filter unit 22 performs nothing (No in both S312 and S314). In that way, after storing the output values at A2 and A3, the digital filter unit 22 performs the switching of the driving frequency at the timing of A1 (S315).
  • 4.2.2 Switching from a Low Frequency to a High Frequency
  • A switching from a low frequency (a long period) to a high frequency (a short period) is explained. It is considered that the driving frequency is switched at timing of B1 as shown in FIG. 18. When the driving frequency is switched, to calculate an output value in the high-frequency filter after the switching, output values in the high-frequency filter at two timings in the past indicated by B4 and B5 are necessary. On the other hand, outputs at timing in the past stored at the timing of B1 are outputs at timings indicated by B2 and B3. Therefore, output values at two timings in the past necessary for the operation of the high-frequency filter are absent. Therefore, switching of the driving frequency cannot be performed in this state. In this embodiment, interpolation processing for estimating output values of the high-frequency filter at the timings of B4 and B5 is performed on the basis of output values of the low-frequency filter at the timing of B1 and the timing of B2. For example, the processing only has to be performed using Formula (3) below.
  • Y n - 2 = Y n - 2 P S P L ( Y n - Y n - 1 ) Y n - 1 = Y n - P S P L ( Y n - Y n - 1 ) ( 3 )
  • In Formula (3), Y on the left side represents a value concerning the high-frequency filter. Y on the right side represents a value concerning the low-frequency filter. PS represents a driving period of the high-frequency filter and PL represents a driving period of the low-frequency filter. In other words, general linear interpolation is used. However, a method of the interpolation processing is not limited to this. For example, approximation by a quadratic function may be performed using an output value at the timing of B3 as well.
  • A detailed processing example of this embodiment is explained with reference to a flowchart of FIG. 19. FIG. 19 is a flowchart concerning processing in the digital filter unit 22.
  • Since processing in S401 to S407 is the same as the processing in S301 to S307 in FIG. 17, detailed explanation of the processing is omitted. In the case of Yes in S407, i.e., when the switching of the driving frequency is instructed and it is determined that the digital filter after the switching is stable, the digital filter unit 22 calculates output values at two timings in the past in the high-frequency filter using Formula (3) (S408), returns to S401, and performs the digital filter processing by the high-frequency filter.
  • In this embodiment explained above, the digital-filter-coefficient output unit 222 includes, as shown in FIG. 15, the coefficient selecting unit 228 that selects any one of a first digital filter coefficient and a second digital filter coefficient different from the first digital filter coefficient. The digital-filter-coefficient output unit 222 outputs the digital filter coefficient selected by the coefficient selecting unit 228 to the digital filter arithmetic unit 221.
  • The digital-filter-coefficient storing unit that outputs the digital filter coefficient to the coefficient selecting unit 228 may include the two digital-filter-coefficient storing units (224-1 and 224-2) as shown in FIG. 15.
  • Consequently, by storing a plurality of digital filter coefficients in advance, selecting one digital filter coefficient out of the digital filter coefficients, and using the selected digital filter coefficient, even if only one digital filter arithmetic unit 221 is provided, it is possible to smoothly switch a plurality of digital filters. In order to smooth the switching, the filter-state storing unit 227 desirably store filter states corresponding to the plurality of digital filters in advance (e.g., as shown in FIG. 15, this can be realized if the filter-state storing unit 227 includes the plurality of filter-state storing units 227-1 and 227-2). The digital filter processing may be performed at a driving frequency of any one of a first driving frequency and a second driving frequency (higher than the first driving frequency). In that case, the coefficient selecting unit 228 selects any one of a first digital filter coefficient corresponding to the first driving frequency and a second digital filter coefficient corresponding to the second driving frequency. The digital filter arithmetic unit 221 performs, using the selected digital filter coefficient, the digital filter processing at a driving frequency corresponding to the coefficient.
  • Consequently, it is possible to switch the driving frequency of the digital filter processing. An advantage of switching the driving frequency is as explained above.
  • The force control unit 20 may include, as shown in FIG. 10, the band limiting unit 24 that applies band limiting processing for allowing a given frequency band to pass to the sensor information and outputs the sensor information subjected to the band limiting processing to the digital filter arithmetic unit. The band limiting unit 24 outputs, when the first driving frequency is used, the sensor information subjected to band limiting processing for allowing a first frequency band to pass and outputs, when the second driving frequency is used, the sensor information subjected to band limiting processing for allowing a second frequency band (which is wider than the first frequency band) to pass.
  • The band limiting unit 24 may include, as shown in FIG. 15, the band limiting unit 24-1, the band limiting unit 24-2, and the input selecting unit 25. This is because, although a plurality of kinds of band limiting processing are applied to correspond to a plurality of driving frequencies, since only one digital filter arithmetic unit 221 is provided, it is necessary to select appropriate sensor information output sensor information after the plurality of kinds of band limiting processing. The band limiting unit 24 may be configured to execute only one kind of processing out of the plurality of kinds of band limiting processing and not to execute the other kinds of processing.
  • Consequently, it is possible to apply the band limiting processing to the sensor information according to the driving frequency. Advantages of the band limiting processing are as explained in the second embodiment.
  • When the driving frequency of the digital filter processing is switched from the high second driving frequency to the low first driving frequency, the digital filter arithmetic unit 221 may switch the digital filter processing in the first period, the switching period, and the second period. The next period of the first period is the switching period and the next period of the switching period is the second period. In the first period, the digital filter arithmetic unit 221 performs the digital filter processing by the second driving frequency in which the second digital filter coefficient is used. In the switching period, the digital filter arithmetic unit 221 performs both of the digital filter processing by the first driving frequency in which the first digital filter coefficient is used and the digital filter processing by the second driving frequency in which the second digital filter coefficient is used. In the second period, the digital filter arithmetic unit 221 performs the digital filter processing by the first driving frequency in which the first digital filter coefficient is used.
  • Consequently, it is possible to perform smooth switching from a high frequency to a low frequency explained in detail with reference to FIGS. 16 and 17. In FIG. 16, the first period corresponds to a period before the timing of A3, the switching period corresponds to the period between A3 and A1, and the second period corresponds to the period after A1.
  • When the driving frequency of the digital filter processing is switched from the low first driving frequency to the high second driving frequency, the digital filter arithmetic unit 221 may perform, on the basis of a first output value, which is an output value of the first digital filter processing at switching timing, and a second output value, which is an output value of the first digital filter processing at timing in the past, interpolation processing for calculating an interpolation value at timing between the switching timing and the timing in the past.
  • In the above explanation, i-th (i=1 or 2) digital filter processing means digital filter processing by an i-th driving frequency in which an i-th digital filter coefficient is used. The switching timing means timing for switching the driving frequency and is equivalent to B1 in FIG. 18. The timing in the past means timing further in the past than the switching timing and is equivalent to B2 and B3 (in a narrow sense, sampling timing of the first digital filter processing). The interpolation value is a value calculated from the first output value and the second output value and is, in a narrow sense, a value corresponding to an output value of the digital filter processing at sampling timing of the second digital filter processing and timing immediately preceding and the second immediately preceding the switching timing (equivalent to B4 and B5).
  • Consequently, it is possible to perform the smooth switching processing from a high frequency to a low frequency explained in detail with reference to FIGS. 18 and 19.
  • 5. Fourth Embodiment
  • In the second and third embodiments, the switching of the driving frequency is performed on the basis of input information from a user via, for example, an external I/F. On the other hand, in a fourth embodiment, selection processing for an output filter (in a narrow sense, switching processing for a driving frequency) is performed on the basis of sensor information acquired from a force sensor.
  • Specifically, low-frequency sensor information obtained by applying low-pass filter processing to the sensor information and high-frequency sensor information obtained by applying high-pass filter processing to the sensor information are calculated. A ratio of high-frequency components to an entire signal is calculated from the low-frequency sensor information and the high-frequency sensor information. When the ratio of the high-frequency components is high, a digital filter having a high driving frequency is selected as an output filter. When the ratio of the high-frequency components is low, a digital filter having a low driving frequency is selected as the output filter.
  • 5.1 Configuration
  • A configuration example of a robot system including a robot control system according to the fourth embodiment is shown in FIG. 20. Detailed explanation of components same as those in the third embodiment (FIG. 15) is omitted. When compared with the third embodiment, the fourth embodiment is different in that a selection processing unit 50, a low-pass filter 51, and a high-pass filter 52 are added. For simplification of explanation, the band limiting unit 24-1, the band limiting unit 24-2, and the input selecting unit 25 are not shown in the figure. However, in this embodiment, these units may be used. In that case, a processing result of the selection processing unit 50 is output to the input selecting unit 25 as well.
  • The low-pass filter 51 applies low-pass filter processing to sensor information acquired from the force sensor and outputs low-frequency sensor information. Similarly, the high-pass filter 52 applies high-pass filter processing to the sensor information acquired from the force sensor and outputs high-frequency sensor information.
  • The selection processing unit 50 calculates a ratio of high-frequency components to an entire signal on the basis of the low-frequency sensor information and the high-frequency sensor information. Further, the selection processing unit 50 performs, on the basis of the calculated ratio, processing for selecting a digital filter used as an output filter out of a plurality of digital filters. The selection processing unit 50 outputs a result of the selection processing to the coefficient selecting unit 228 and the state selection processing unit 229.
  • The coefficient selecting unit 228 selects a digital filter coefficient corresponding to the selected output filter. The state selection processing unit 229 performs processing concerning a filter state corresponding to the selected output filter.
  • 5.2 Detailed Processing
  • Details of the processing in this embodiment are the same as those shown in FIG. 17 or 19. The determination of the switching of the driving frequency in S304 or S404 is performed on the basis of whether the output filter selected by the selection processing unit 50 changes.
  • In the above explanation, as in the third embodiment, only one digital filter arithmetic unit is provided. However, the invention is not limited to this. For example, as in the second embodiment (FIG. 13), two digital filter arithmetic units may be provided. In that case, the selection processing unit 50, the low-pass filter 51, and the high-pass filter 52 are added to FIG. 13. A processing result of the selection processing unit 50 is output to the digital-filter-output selecting unit 220. The digital-filter-output selecting unit 220 selects, as an output of the digital filter unit 22, an output from a digital filter arithmetic unit corresponding to a digital filter selected by the selection processing unit 50.
  • In this embodiment explained above, the digital filter unit 22 includes, as shown in FIG. 20, the selection processing unit 50 that selects a driving frequency of a digital filter on the basis of signal frequency band information of sensor information. The digital filter unit 22 performs digital filter processing at the driving frequency selected by the selection processing unit 50 and outputs a correction value. As the selection of the driving frequency, in a narrow sense, any one of a first driving frequency and a second driving frequency is selected. However, three or more candidate driving frequencies may be provided.
  • Consequently, a user can select a driving frequency without performing input or the like. Therefore, it is possible to provide a user-friendly system.
  • The selection processing unit 50 may use, as the signal frequency band information, low-frequency sensor information obtained by applying the low-pass filter 51 to sensor information and high-frequency sensor information obtained by applying the high-pass filter 52 to the sensor information. In other words, the selection processing unit 50 selects a driving frequency on the basis of the low-frequency sensor information and the high-frequency sensor information. Consequently, it is possible to perform selection of a driving frequency through simple processing of filter processing. As a specific example of the processing, it is conceivable to calculate a ratio of high-frequency components to an entire signal from the low-frequency sensor information and the high-frequency sensor information. If there are a lot of high-frequency components, the driving frequency is set high to correspond to the high-frequency components of the signal. If there are only a few high-frequency components, the driving frequency may be low.
  • The first to fourth embodiments according to the invention and the modifications of the embodiments are explained above. However, the invention is not limited to the first to fourth embodiments and the modifications per se. At an implementation stage, the components can be modified and embodied without departing from the spirit of the invention. Various inventions can be formed by combining, as appropriate, the plurality of components disclosed in the first to fourth embodiments and the modifications. For example, several components may be deleted from all the components described in the first to fourth embodiments and the modifications. Further, the components explained in the different embodiments and the modifications may be combined as appropriate. A term described at least once together with a different term with a broader sense or the same meaning in the specification or the drawings can be replaced with the different term in any part of the specification or the drawings. In this way, various modifications and applications are possible without departing from the spirit of the invention.
  • The entire disclosure of Japanese Patent Application No. 2011-243131, filed Nov. 7, 2011 is expressly incorporated by reference herein.

Claims (20)

What is claimed is:
1. A robot control system comprising:
a force control unit configured to output a correction value of a target track of a robot on the basis of sensor information acquired from a force sensor;
a target-value output unit configured to apply correction processing based on the correction value to the target track to calculate a target value and output the calculated target value; and
a robot control unit configured to perform feedback control of the robot on the basis of the target value, wherein
the force control unit includes a digital filter unit,
the force control unit applies digital filter processing by the digital filter unit to the sensor information to calculate a solution of an ordinary differential equation in force control and outputs the correction value on the basis of the calculated solution.
2. The robot control system according to claim 1, wherein the digital filter unit includes:
a digital-filter-coefficient output unit configured to output a digital filter coefficient on the basis of coefficient parameters of respective terms of the ordinary differential equation; and
a digital filter arithmetic unit configured to perform the digital filter processing on the basis of the digital filter coefficient and the sensor information.
3. The robot control system according to claim 2, wherein
the digital-filter-coefficient output unit includes:
a digital-filter-coefficient converting unit configured to perform processing for converting the coefficient parameters into the digital filter coefficient; and
a digital-filter-coefficient storing unit configured to store the digital filter coefficient converted by the digital-filter-coefficient converting unit, and
the digital-filter-coefficient output unit outputs the digital filter coefficient stored in the digital-filter-coefficient storing unit.
4. The robot control system according to claim 2, wherein
the digital-filter unit includes a digital-filter-stability-degree determining unit configured to determine a stability degree of operation of a digital filter used for the digital filter processing, and
the digital-filter-coefficient output unit outputs the digital filter coefficient when the digital-filter-stability-degree determining unit determines that the operation of the digital filter is stable.
5. The robot control system according to claim 2, wherein, when the digital filter processing is performed at a driving frequency of any one of a first driving frequency or a second driving frequency higher than the first driving frequency,
the digital-filter-coefficient output unit outputs at least one of a first digital filter coefficient corresponding to the first driving frequency and a second digital filter coefficient corresponding to the second driving frequency, and
the digital filter arithmetic unit performs, according to the digital filter coefficient output from the digital-filter-coefficient output unit, at least one of the digital filter processing by the first driving frequency in which the first digital filter coefficient is used and the digital filter processing by the second driving frequency in which the second digital filter coefficient is used.
6. The robot control system according to claim 5, wherein
the digital filter unit includes a selection processing unit configured to select one of the first driving frequency and the second driving frequency on the basis of signal frequency band information of the sensor information, and
the digital filter unit performs the digital filter processing at the driving frequency selected by the selection processing unit and outputs the correction value.
7. The robot control system according to claim 6, wherein the selection processing unit selects the driving frequency using, as the signal frequency band information, low-frequency sensor information obtained by applying low-pass filter processing to the sensor information and high-frequency sensor information obtained by applying high-pass filter processing to the sensor information.
8. The robot control system according to claim 5, wherein, when the driving frequency of the digital filter processing is switched from the high second driving frequency to the low first driving frequency, the digital filter arithmetic unit performs, in a first period, the digital filter processing by the second driving frequency in which the second filter coefficient is used, performs, in a switching period following the first period, both of the digital filter processing by the first driving frequency in which the first filter coefficient is used and the digital filter processing by the second driving frequency in which the second filter coefficient is used, and performs, in a second period following the switching period, the digital filter processing by the first driving frequency in which the first filter coefficient is used.
9. The robot control system according to claim 5, wherein, when the driving frequency of the digital filter processing is switched from the low first driving frequency to the high second driving frequency, the digital filter arithmetic unit performs, on the basis of a first output value, which is an output value of the digital filter processing by the first driving frequency in which the first filter coefficient is used at switching timing, and a second output value, which is an output value of the digital filter processing by the first driving frequency in which the first filter coefficient is used at timing in the past earlier than the switching timing, interpolation processing for calculating an interpolation value at timing between the switching timing and the timing in the past and performs, on the basis of the interpolation value, the digital filter processing by the second driving frequency in which the second filter coefficient is used.
10. The robot control system according to claim 2, wherein
the digital filter unit includes a first digital filter arithmetic unit and a second digital filter arithmetic unit as the digital filter arithmetic unit,
the digital-filter-coefficient output unit outputs a first digital filter coefficient to the first digital filter arithmetic unit and outputs a second digital filter coefficient different from the first digital filter coefficient to the second digital filter arithmetic unit,
the first digital filter arithmetic unit performs the digital filter processing based on the first digital filter coefficient and the sensor information, and
the second digital filter arithmetic unit performs the digital filter processing based on the second digital filter coefficient and the sensor information.
11. The robot control system according to claim 10, wherein the digital filter unit includes a digital-filter-output selecting unit configured to select any one of a processing result in the first digital filter arithmetic unit and a processing result in the second digital filter arithmetic unit and outputs the processing result as the correction value.
12. The robot control system according to claim 10, wherein, when the digital filter processing is performed at a driving frequency of any one of a first driving frequency or a second driving frequency higher than the first driving frequency,
the digital-filter-coefficient output unit outputs a digital filter coefficient corresponding to the first driving frequency as the first digital filter coefficient and outputs a digital filter coefficient corresponding to the second driving frequency as the second digital filter coefficient,
the first digital filter arithmetic unit performs the digital filter processing at the first driving frequency on the basis of the first digital filter coefficient, and
the second digital filter arithmetic unit performs the digital filter processing at the second driving frequency on the basis of the second digital filter coefficient.
13. The robot control system according to claim 12, wherein
the force control unit includes a band limiting unit configured to apply band limiting processing for allowing a given frequency band to pass to the sensor information and output the sensor information subjected to the band limiting processing to the first digital filter arithmetic unit and the second digital filter arithmetic unit, and
the band limiting unit outputs, to the first digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a first frequency band to pass and outputs, to the second digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a second frequency band wider than the first frequency band to pass.
14. The robot control system according to claim 2, wherein
the digital-filter-coefficient output unit includes a coefficient selecting unit configured to select any one of a first digital filter coefficient and a second filter coefficient different from the first digital filter coefficient, and
the digital-filter-coefficient output unit outputs the digital filter coefficient selected by the coefficient selecting unit to the digital filter arithmetic unit.
15. The robot control system according to claim 14, wherein, when the digital filter processing is performed at a driving frequency of any one of a first driving frequency or a second driving frequency higher than the first driving frequency,
the coefficient selecting unit selects any one of the first digital filter coefficient corresponding to the first driving frequency and the second digital filter coefficient corresponding to the second driving frequency,
the digital-filter-coefficient output unit outputs the digital filter coefficient selected by the coefficient selecting unit to the digital filter arithmetic unit, and
the digital filter arithmetic unit performs, when the first digital filter coefficient is output from the digital-filter-coefficient output unit, the digital filter processing at the first driving frequency on the basis of the first digital filter coefficient and performs, when the second digital filter coefficient is output from the digital-filter-coefficient output unit, the digital filter processing at the second driving frequency on the basis of the second digital filter coefficient.
16. The robot control system according to claim 15, wherein
the force control unit includes a band limiting unit configured to apply band limiting processing for allowing a given frequency band to pass to the sensor information and output the sensor information subjected to the band limiting processing to the digital filter arithmetic unit, and
the band limiting unit outputs, when the digital filter processing by the first driving frequency is performed, to the digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a first frequency band to pass and outputs, when the digital filter processing by the second driving frequency is performed, to the digital filter arithmetic unit, the sensor information subjected to band limiting processing for allowing a second frequency band wider than the first frequency band to pass.
17. The robot control system according to claim 1, wherein the ordinary differential equation is an equation of motion including an imaginary mass term, an imaginary viscosity term, and an imaginary elasticity term as coefficient parameters.
18. The robot control system according to claim 1, wherein the target-value output unit includes:
a track generating unit configured to output target position information of the robot; and
an inverse kinematics processing unit configured to perform inverse kinematics processing on the basis of the target position information from the track generating unit and output joint angle information of the robot.
19. A robot system comprising:
the robot control system according to claim 1; and
a robot.
20. A sensor information processing apparatus comprising:
a sensor-information acquiring unit configured to acquire sensor information from a sensor; and
a sensor-information processing unit configured to apply processing to the acquired sensor information, wherein
the sensor-information processing unit includes a digital filter unit, and
the sensor-information processing unit applies digital filter processing by the digital filter unit to the sensor information to calculate a solution of an ordinary differential equation in the sensor information processing and outputs the solution as an output value of the sensor information processing.
US13/669,824 2011-11-07 2012-11-06 Robot control system, robot system, and sensor information processing apparatus Active 2033-08-07 US8958914B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/590,032 US9463573B2 (en) 2011-11-07 2015-01-06 Robot control system, robot system, and sensor information processing apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011243131A JP6305673B2 (en) 2011-11-07 2011-11-07 Robot control system, robot system and robot
JP2011-243131 2011-11-07

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/590,032 Division US9463573B2 (en) 2011-11-07 2015-01-06 Robot control system, robot system, and sensor information processing apparatus

Publications (2)

Publication Number Publication Date
US20130116827A1 true US20130116827A1 (en) 2013-05-09
US8958914B2 US8958914B2 (en) 2015-02-17

Family

ID=48224251

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/669,824 Active 2033-08-07 US8958914B2 (en) 2011-11-07 2012-11-06 Robot control system, robot system, and sensor information processing apparatus
US14/590,032 Active US9463573B2 (en) 2011-11-07 2015-01-06 Robot control system, robot system, and sensor information processing apparatus

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/590,032 Active US9463573B2 (en) 2011-11-07 2015-01-06 Robot control system, robot system, and sensor information processing apparatus

Country Status (3)

Country Link
US (2) US8958914B2 (en)
JP (1) JP6305673B2 (en)
CN (1) CN103101053B (en)

Cited By (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8958914B2 (en) * 2011-11-07 2015-02-17 Seiko Epson Corporation Robot control system, robot system, and sensor information processing apparatus
US8996177B2 (en) 2013-03-15 2015-03-31 Brain Corporation Robotic training apparatus and methods
US20150127150A1 (en) * 2013-11-01 2015-05-07 Brain Corporation Apparatus and methods for haptic training of robots
US20150151432A1 (en) * 2013-12-02 2015-06-04 Seiko Epson Corporation Robot
US9114537B2 (en) 2013-10-31 2015-08-25 Apex Brands, Inc. Tooling system with electronic signal maintenance
US9186793B1 (en) 2012-08-31 2015-11-17 Brain Corporation Apparatus and methods for controlling attention of a robot
US9242372B2 (en) 2013-05-31 2016-01-26 Brain Corporation Adaptive robotic interface apparatus and methods
US9248569B2 (en) 2013-11-22 2016-02-02 Brain Corporation Discrepancy detection apparatus and methods for machine learning
US9296101B2 (en) 2013-09-27 2016-03-29 Brain Corporation Robotic control arbitration apparatus and methods
CN105460310A (en) * 2015-12-31 2016-04-06 青岛汇智智能系统工程有限公司 Robot weighing device of automatic packaging production line
US9314924B1 (en) 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
US9346167B2 (en) 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US9358685B2 (en) 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US9364950B2 (en) 2014-03-13 2016-06-14 Brain Corporation Trainable modular robotic methods
US9384443B2 (en) 2013-06-14 2016-07-05 Brain Corporation Robotic training apparatus and methods
US9426946B2 (en) 2014-12-02 2016-08-30 Brain Corporation Computerized learning landscaping apparatus and methods
US9436909B2 (en) 2013-06-19 2016-09-06 Brain Corporation Increased dynamic range artificial neuron network apparatus and methods
US9463571B2 (en) 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
US9533413B2 (en) 2014-03-13 2017-01-03 Brain Corporation Trainable modular robotic apparatus and methods
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9604359B1 (en) 2014-10-02 2017-03-28 Brain Corporation Apparatus and methods for training path navigation by robots
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US20170266811A1 (en) * 2016-03-18 2017-09-21 Canon Kabushiki Kaisha Robot apparatus, control method of robot apparatus, and recording medium
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
US9840003B2 (en) 2015-06-24 2017-12-12 Brain Corporation Apparatus and methods for safe navigation of robotic devices
US9875440B1 (en) 2010-10-26 2018-01-23 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US20180021949A1 (en) * 2016-07-20 2018-01-25 Canon Kabushiki Kaisha Robot apparatus, robot controlling method, program, and recording medium
US9987743B2 (en) 2014-03-13 2018-06-05 Brain Corporation Trainable modular robotic apparatus and methods
US9987752B2 (en) 2016-06-10 2018-06-05 Brain Corporation Systems and methods for automatic detection of spills
US10001780B2 (en) 2016-11-02 2018-06-19 Brain Corporation Systems and methods for dynamic route planning in autonomous navigation
US10016896B2 (en) 2016-06-30 2018-07-10 Brain Corporation Systems and methods for robotic behavior around moving bodies
US10241514B2 (en) 2016-05-11 2019-03-26 Brain Corporation Systems and methods for initializing a robot to autonomously travel a trained route
US10274325B2 (en) 2016-11-01 2019-04-30 Brain Corporation Systems and methods for robotic mapping
US10282849B2 (en) 2016-06-17 2019-05-07 Brain Corporation Systems and methods for predictive/reconstructive visual object tracker
US10293485B2 (en) 2017-03-30 2019-05-21 Brain Corporation Systems and methods for robotic path planning
US10369700B2 (en) * 2014-03-28 2019-08-06 Sony Corporation Robot arm apparatus, robot arm apparatus control method, and program
US10377040B2 (en) 2017-02-02 2019-08-13 Brain Corporation Systems and methods for assisting a robotic apparatus
US10376117B2 (en) 2015-02-26 2019-08-13 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
CN110268340A (en) * 2017-03-13 2019-09-20 欧姆龙株式会社 Processing unit, control parameter determining method and control parameter determination procedure
US10510000B1 (en) 2010-10-26 2019-12-17 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US10723018B2 (en) 2016-11-28 2020-07-28 Brain Corporation Systems and methods for remote operating and/or monitoring of a robot
US10852730B2 (en) 2017-02-08 2020-12-01 Brain Corporation Systems and methods for robotic mobile platforms
CN113084828A (en) * 2021-04-02 2021-07-09 上海电气集团股份有限公司 Motion control method, device, equipment and storage medium
CN113733104A (en) * 2021-10-12 2021-12-03 武汉联影智融医疗科技有限公司 Control method of robot arm, computer device, and storage medium
US11831955B2 (en) 2010-07-12 2023-11-28 Time Warner Cable Enterprises Llc Apparatus and methods for content management and account linking across multiple content delivery networks

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6511715B2 (en) * 2013-10-31 2019-05-15 セイコーエプソン株式会社 Robot control device, robot system, and robot
CN104626152B (en) * 2013-11-14 2016-08-31 沈阳新松机器人自动化股份有限公司 Industrial robot Active Compliance Control method and device
EP3213731B1 (en) * 2014-10-29 2020-09-16 Teijin Pharma Limited Training apparatus and non-therapeutic method for correcting force magnitude
DE102015009048B3 (en) * 2015-07-13 2016-08-18 Kuka Roboter Gmbh Controlling a compliant controlled robot
MX2018003146A (en) 2015-09-14 2018-09-26 Tolomatic Inc Actuator diagnostics and prognostics.
DE102017000063B4 (en) * 2016-01-14 2019-10-31 Fanuc Corporation Robot device with learning function
US10152033B2 (en) 2016-02-01 2018-12-11 Varian Semiconductor Equipment Associates, Inc. Proportional integral derivative control incorporating multiple actuators
US9891599B2 (en) * 2016-02-01 2018-02-13 Varian Semiconductor Equipment Associates, Inc. Proportional integral derivative control incorporating multiple actuators
CN105843174B (en) * 2016-03-22 2018-05-08 大连理工大学 A kind of spline curve interpolation parameters computational methods
TWI618998B (en) * 2016-11-07 2018-03-21 正修學校財團法人正修科技大學 Automatic tracking robot and control method thereof
CN106625671B (en) * 2016-12-27 2019-02-19 西北工业大学 A kind of robot for space arrests the optimal trajectory planning method of Tum bling Target
CN106826826B (en) * 2017-02-14 2019-09-20 上海新时达电气股份有限公司 A kind of robot control method and device
JP7106816B2 (en) * 2017-03-31 2022-07-27 セイコーエプソン株式会社 Controllers, control systems and robot systems
CN108015776B (en) * 2018-01-19 2023-10-27 广东海洋大学 Robot control system based on compactRIO
CN108972558B (en) * 2018-08-16 2020-02-21 居鹤华 Multi-axis robot dynamics modeling method based on axis invariants
CN111791241B (en) * 2020-06-16 2022-02-08 浙江华消科技有限公司 Robot track error correction method and device and fire-fighting robot
CN113352327B (en) * 2021-06-28 2022-09-23 深圳亿嘉和科技研发有限公司 Five-degree-of-freedom mechanical arm joint variable determination method
CN115674188B (en) * 2022-09-20 2024-01-12 南方电网电力科技股份有限公司 Series mechanical arm accurate compliance open-loop tracking control system based on double-path filter

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5144549A (en) * 1990-06-29 1992-09-01 Massachusetts Institute Of Technology Time delay controlled processes
US5550953A (en) * 1994-04-20 1996-08-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration On-line method and apparatus for coordinated mobility and manipulation of mobile robots
US20040153173A1 (en) * 2003-02-03 2004-08-05 Chang Pyung Hun Method for tuning PID controllers applicable to nonlinear systems
US20050080495A1 (en) * 2001-11-06 2005-04-14 Claude Tessier Apparatus and method for controlling a force-activated controller
US6945306B2 (en) * 2000-11-03 2005-09-20 Isis Innovation Limited Control of deposition and other processes
US20070073442A1 (en) * 2005-09-28 2007-03-29 Canadian Space Agency Robust impedance-matching of manipulators interacting with unknown environments
US20110035576A1 (en) * 2006-10-17 2011-02-10 Endress + Hauser Gmbh + Co. Kg Configurable field device for use in process automation systems
US20110264420A1 (en) * 2008-05-27 2011-10-27 Memorial Sloan Kettering Cancer Center Models for combinatorial perturbations of living biological systems

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2507891B2 (en) 1989-02-01 1996-06-19 工業技術院長 Manipulator impedance control system
JP2694669B2 (en) * 1989-06-09 1997-12-24 株式会社日立製作所 Robot motion control method
JPH04141391A (en) * 1990-10-02 1992-05-14 Citizen Watch Co Ltd Compliance control method
JPH04369004A (en) 1991-06-17 1992-12-21 Yaskawa Electric Corp Method for controlling impedance of manipulator
US5329442A (en) * 1991-08-29 1994-07-12 The United States Of America As Represented By The Secretary Of The Navy Optimal distributed control system for a linear distributed parameter system
JPH06206185A (en) * 1993-01-08 1994-07-26 Yaskawa Electric Corp Robot controller
JP3105694B2 (en) 1993-04-26 2000-11-06 三洋電機株式会社 Manipulator control method
GB9417170D0 (en) * 1994-08-25 1994-10-12 Isis Innovation Non-linear filtering
US5519605A (en) * 1994-10-24 1996-05-21 Olin Corporation Model predictive control apparatus and method
JP3331100B2 (en) * 1995-08-10 2002-10-07 富士通株式会社 Manipulator simulation device
JP3592826B2 (en) * 1996-03-05 2004-11-24 株式会社東芝 Film shape prediction method
JPH10582A (en) * 1996-06-13 1998-01-06 Toshiba Corp Robot control device
US5892679A (en) * 1996-09-13 1999-04-06 Honeywell-Measurex Corporation Method and system for controlling a multiple input/output process with minimum latency using a pseudo inverse constant
US5777872A (en) * 1996-09-13 1998-07-07 Honeywell-Measurex Corporation Method and system for controlling a multiple input/output process with minimum latency
US6266578B1 (en) * 1998-05-15 2001-07-24 Firdaus E. Udwadia Computer based control system
WO2000032360A1 (en) * 1998-11-30 2000-06-08 Sony Corporation Robot device and control method thereof
JP3383614B2 (en) * 1999-08-04 2003-03-04 技術研究組合医療福祉機器研究所 Impedance control device for horizontal articulated robot arm
JP4369004B2 (en) 2000-02-28 2009-11-18 ダイコク電機株式会社 Amusement park management system
JP4247382B2 (en) * 2003-06-27 2009-04-02 独立行政法人 宇宙航空研究開発機構 Control device for rotating mechanism
US8467904B2 (en) * 2005-12-22 2013-06-18 Honda Motor Co., Ltd. Reconstruction, retargetting, tracking, and estimation of pose of articulated systems
US8600552B2 (en) * 2009-10-30 2013-12-03 Honda Motor Co., Ltd. Information processing method, apparatus, and computer readable medium
JP5509859B2 (en) * 2010-01-13 2014-06-04 株式会社Ihi Robot control apparatus and method
KR101633362B1 (en) * 2010-01-18 2016-06-28 삼성전자 주식회사 Humanoid robot and walking control method thereof
JP2011177746A (en) * 2010-03-01 2011-09-15 Kobe Steel Ltd Clamp confirmation system, welding robot system, clamp fixture controller and clamp confirmation method
JP2011200948A (en) * 2010-03-24 2011-10-13 Sony Corp Apparatus and method for discriminating gripping
JP6305673B2 (en) * 2011-11-07 2018-04-04 セイコーエプソン株式会社 Robot control system, robot system and robot

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5144549A (en) * 1990-06-29 1992-09-01 Massachusetts Institute Of Technology Time delay controlled processes
US5550953A (en) * 1994-04-20 1996-08-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration On-line method and apparatus for coordinated mobility and manipulation of mobile robots
US6945306B2 (en) * 2000-11-03 2005-09-20 Isis Innovation Limited Control of deposition and other processes
US20050080495A1 (en) * 2001-11-06 2005-04-14 Claude Tessier Apparatus and method for controlling a force-activated controller
US20040153173A1 (en) * 2003-02-03 2004-08-05 Chang Pyung Hun Method for tuning PID controllers applicable to nonlinear systems
US20070073442A1 (en) * 2005-09-28 2007-03-29 Canadian Space Agency Robust impedance-matching of manipulators interacting with unknown environments
US20110035576A1 (en) * 2006-10-17 2011-02-10 Endress + Hauser Gmbh + Co. Kg Configurable field device for use in process automation systems
US20110264420A1 (en) * 2008-05-27 2011-10-27 Memorial Sloan Kettering Cancer Center Models for combinatorial perturbations of living biological systems

Cited By (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11831955B2 (en) 2010-07-12 2023-11-28 Time Warner Cable Enterprises Llc Apparatus and methods for content management and account linking across multiple content delivery networks
US10510000B1 (en) 2010-10-26 2019-12-17 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US11514305B1 (en) 2010-10-26 2022-11-29 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US9875440B1 (en) 2010-10-26 2018-01-23 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
US8958914B2 (en) * 2011-11-07 2015-02-17 Seiko Epson Corporation Robot control system, robot system, and sensor information processing apparatus
US20150112487A1 (en) * 2011-11-07 2015-04-23 Seiko Epson Corporation Robot control system, robot system, and sensor information processing apparatus
US9463573B2 (en) * 2011-11-07 2016-10-11 Seiko Epson Corporation Robot control system, robot system, and sensor information processing apparatus
US9186793B1 (en) 2012-08-31 2015-11-17 Brain Corporation Apparatus and methods for controlling attention of a robot
US10213921B2 (en) 2012-08-31 2019-02-26 Gopro, Inc. Apparatus and methods for controlling attention of a robot
US9446515B1 (en) 2012-08-31 2016-09-20 Brain Corporation Apparatus and methods for controlling attention of a robot
US11867599B2 (en) 2012-08-31 2024-01-09 Gopro, Inc. Apparatus and methods for controlling attention of a robot
US10545074B2 (en) 2012-08-31 2020-01-28 Gopro, Inc. Apparatus and methods for controlling attention of a robot
US11360003B2 (en) 2012-08-31 2022-06-14 Gopro, Inc. Apparatus and methods for controlling attention of a robot
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US10155310B2 (en) 2013-03-15 2018-12-18 Brain Corporation Adaptive predictor apparatus and methods
US8996177B2 (en) 2013-03-15 2015-03-31 Brain Corporation Robotic training apparatus and methods
US9821457B1 (en) 2013-05-31 2017-11-21 Brain Corporation Adaptive robotic interface apparatus and methods
US9242372B2 (en) 2013-05-31 2016-01-26 Brain Corporation Adaptive robotic interface apparatus and methods
US9384443B2 (en) 2013-06-14 2016-07-05 Brain Corporation Robotic training apparatus and methods
US9314924B1 (en) 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
US9950426B2 (en) 2013-06-14 2018-04-24 Brain Corporation Predictive robotic controller apparatus and methods
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
US9436909B2 (en) 2013-06-19 2016-09-06 Brain Corporation Increased dynamic range artificial neuron network apparatus and methods
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9296101B2 (en) 2013-09-27 2016-03-29 Brain Corporation Robotic control arbitration apparatus and methods
US9114537B2 (en) 2013-10-31 2015-08-25 Apex Brands, Inc. Tooling system with electronic signal maintenance
US9597797B2 (en) * 2013-11-01 2017-03-21 Brain Corporation Apparatus and methods for haptic training of robots
US20170232613A1 (en) * 2013-11-01 2017-08-17 Brain Corporation Apparatus and methods for haptic training of robots
US9463571B2 (en) 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
US9844873B2 (en) * 2013-11-01 2017-12-19 Brain Corporation Apparatus and methods for haptic training of robots
US20150127150A1 (en) * 2013-11-01 2015-05-07 Brain Corporation Apparatus and methods for haptic training of robots
US9248569B2 (en) 2013-11-22 2016-02-02 Brain Corporation Discrepancy detection apparatus and methods for machine learning
US9868209B2 (en) * 2013-12-02 2018-01-16 Seiko Epson Corporation Robot
US20150151432A1 (en) * 2013-12-02 2015-06-04 Seiko Epson Corporation Robot
US9999974B2 (en) * 2013-12-02 2018-06-19 Seiko Epson Corporation Robot
US9789605B2 (en) 2014-02-03 2017-10-17 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US9358685B2 (en) 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US10322507B2 (en) 2014-02-03 2019-06-18 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US9364950B2 (en) 2014-03-13 2016-06-14 Brain Corporation Trainable modular robotic methods
US10391628B2 (en) 2014-03-13 2019-08-27 Brain Corporation Trainable modular robotic apparatus and methods
US9987743B2 (en) 2014-03-13 2018-06-05 Brain Corporation Trainable modular robotic apparatus and methods
US10166675B2 (en) 2014-03-13 2019-01-01 Brain Corporation Trainable modular robotic apparatus
US9862092B2 (en) 2014-03-13 2018-01-09 Brain Corporation Interface for use with trainable modular robotic apparatus
US9533413B2 (en) 2014-03-13 2017-01-03 Brain Corporation Trainable modular robotic apparatus and methods
US10668625B2 (en) * 2014-03-28 2020-06-02 Sony Corporation Robot arm apparatus, robot arm apparatus control method, and program
US10369700B2 (en) * 2014-03-28 2019-08-06 Sony Corporation Robot arm apparatus, robot arm apparatus control method, and program
US20190275679A1 (en) * 2014-03-28 2019-09-12 Sony Corporation Robot arm apparatus, robot arm apparatus control method, and program
US9346167B2 (en) 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US10105841B1 (en) 2014-10-02 2018-10-23 Brain Corporation Apparatus and methods for programming and training of robotic devices
US9630318B2 (en) 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US10131052B1 (en) 2014-10-02 2018-11-20 Brain Corporation Persistent predictor apparatus and methods for task switching
US9687984B2 (en) 2014-10-02 2017-06-27 Brain Corporation Apparatus and methods for training of robots
US9902062B2 (en) 2014-10-02 2018-02-27 Brain Corporation Apparatus and methods for training path navigation by robots
US9604359B1 (en) 2014-10-02 2017-03-28 Brain Corporation Apparatus and methods for training path navigation by robots
US9426946B2 (en) 2014-12-02 2016-08-30 Brain Corporation Computerized learning landscaping apparatus and methods
US10376117B2 (en) 2015-02-26 2019-08-13 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
US10807230B2 (en) 2015-06-24 2020-10-20 Brain Corporation Bistatic object detection apparatus and methods
US9840003B2 (en) 2015-06-24 2017-12-12 Brain Corporation Apparatus and methods for safe navigation of robotic devices
US9873196B2 (en) 2015-06-24 2018-01-23 Brain Corporation Bistatic object detection apparatus and methods
CN105460310A (en) * 2015-12-31 2016-04-06 青岛汇智智能系统工程有限公司 Robot weighing device of automatic packaging production line
US10882182B2 (en) * 2016-03-18 2021-01-05 Canon Kabushiki Kaisha Robot apparatus, control method of robot apparatus, and recording medium
US20170266811A1 (en) * 2016-03-18 2017-09-21 Canon Kabushiki Kaisha Robot apparatus, control method of robot apparatus, and recording medium
US10241514B2 (en) 2016-05-11 2019-03-26 Brain Corporation Systems and methods for initializing a robot to autonomously travel a trained route
US9987752B2 (en) 2016-06-10 2018-06-05 Brain Corporation Systems and methods for automatic detection of spills
US10282849B2 (en) 2016-06-17 2019-05-07 Brain Corporation Systems and methods for predictive/reconstructive visual object tracker
US10016896B2 (en) 2016-06-30 2018-07-10 Brain Corporation Systems and methods for robotic behavior around moving bodies
US20180021949A1 (en) * 2016-07-20 2018-01-25 Canon Kabushiki Kaisha Robot apparatus, robot controlling method, program, and recording medium
US10274325B2 (en) 2016-11-01 2019-04-30 Brain Corporation Systems and methods for robotic mapping
US10001780B2 (en) 2016-11-02 2018-06-19 Brain Corporation Systems and methods for dynamic route planning in autonomous navigation
US10723018B2 (en) 2016-11-28 2020-07-28 Brain Corporation Systems and methods for remote operating and/or monitoring of a robot
US10377040B2 (en) 2017-02-02 2019-08-13 Brain Corporation Systems and methods for assisting a robotic apparatus
US10852730B2 (en) 2017-02-08 2020-12-01 Brain Corporation Systems and methods for robotic mobile platforms
CN110268340A (en) * 2017-03-13 2019-09-20 欧姆龙株式会社 Processing unit, control parameter determining method and control parameter determination procedure
US10293485B2 (en) 2017-03-30 2019-05-21 Brain Corporation Systems and methods for robotic path planning
CN113084828A (en) * 2021-04-02 2021-07-09 上海电气集团股份有限公司 Motion control method, device, equipment and storage medium
CN113733104A (en) * 2021-10-12 2021-12-03 武汉联影智融医疗科技有限公司 Control method of robot arm, computer device, and storage medium

Also Published As

Publication number Publication date
CN103101053B (en) 2016-09-07
US20150112487A1 (en) 2015-04-23
CN103101053A (en) 2013-05-15
JP6305673B2 (en) 2018-04-04
JP2013094952A (en) 2013-05-20
US9463573B2 (en) 2016-10-11
US8958914B2 (en) 2015-02-17

Similar Documents

Publication Publication Date Title
US9463573B2 (en) Robot control system, robot system, and sensor information processing apparatus
US9517562B2 (en) Robot controller, robot system, robot control method
US9050721B2 (en) Robot controller, robot system, robot control method
USRE47553E1 (en) Robot, robot system, control device, and control method
US10618164B2 (en) Robot system having learning control function and learning control method
US11370117B2 (en) Collision handling by a robot
CN109968361B (en) Variable impedance teleoperation control device and method based on real-time force feedback
JP6564433B2 (en) Robot system
US10838408B2 (en) Vibration control device, vibration control method, vibration control system, program, and recording medium
JP2013146792A (en) Robot controller, robot system, sensor information processing device and robot control method
JP6390669B2 (en) Robot control system, robot system
JP2014117787A (en) Controller
JP2013119133A (en) Robot and robot control method
JP5997560B2 (en) Start time specifying device, control device, and start time specifying method
CN107636418B (en) Robot control method, control equipment and system
JP2013113661A (en) External force detection device, robot control system and external force detection method
JP6729084B2 (en) Correction device, correction method, and correction program
CN116604548A (en) Mechanical arm control method based on impedance control, mechanical arm and storage medium

Legal Events

Date Code Title Description
AS Assignment

Owner name: SEIKO EPSON CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INAZUMI, MITSUHIRO;REEL/FRAME:029248/0890

Effective date: 20121019

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551)

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8