JP2013000856A - Robot control system and robot system - Google Patents

Robot control system and robot system Download PDF

Info

Publication number
JP2013000856A
JP2013000856A JP2011136421A JP2011136421A JP2013000856A JP 2013000856 A JP2013000856 A JP 2013000856A JP 2011136421 A JP2011136421 A JP 2011136421A JP 2011136421 A JP2011136421 A JP 2011136421A JP 2013000856 A JP2013000856 A JP 2013000856A
Authority
JP
Japan
Prior art keywords
robot
control
unit
trajectory
force
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.)
Withdrawn
Application number
JP2011136421A
Other languages
Japanese (ja)
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
Priority to JP2011136421A priority Critical patent/JP2013000856A/en
Publication of JP2013000856A publication Critical patent/JP2013000856A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a robot control system, a robot system etc., which are capable of improving a response as well as reducing the performance requirement to control hardware.SOLUTION: The robot control system includes a target value output unit 60 for outputting a target value of feedback control of a robot 100, a force control unit 20 for controlling force based on sensor information from a force sensor 10 to output a correction value of the target value, a robot unit control unit 80 for performing the feedback control of the robot based on the target value corrected with the correction value. The force control unit 20 includes a preliminary calculation unit 22 for preliminarily calculating a control parameter varying in response to a posture of the robot, and an implementing unit 26 for implementing calculation for determining the correction value based on the sensor information and the control parameter.

Description

本発明は、ロボット制御システム、ロボットシステム等に関する。   The present invention relates to a robot control system, a robot system, and the like.

マニピュレーター等のロボットを用いて行う作業において、種々の拘束条件、例えば物体との接触を伴う作業がある。このような場合においては、位置の制御に加えて、力の制御が要求される場合が多い。例えば、物体の表面をなぞる場合、1つの物体を他の物体に嵌め合わせる場合、柔軟物を破壊しないように把持する場合などにおいては、単なる位置の制御に加えて、物体からの反力に対応した動きが必要となる。   In operations performed using a robot such as a manipulator, there are various constraints such as operations involving contact with an object. In such cases, force control is often required in addition to position control. For example, when tracing the surface of an object, fitting one object to another object, grasping a flexible object without breaking it, etc., in addition to simply controlling the position, respond to the reaction force from the object Movement is required.

ロボットにおいて力制御を行う代表的な手法としては、インピーダンス制御と呼ばれる手法がある。インピーダンス制御とは、ロボットを、その実際の質量や粘性特性や弾性特性に関わらず、あたかも作業に適したそれらの値を持つかのように動作させる制御手法である。これは、ロボットに取り付けられた力覚センサーなどから得られる力情報に基づいて運動方程式を解き、ロボットをその解に従って動作させる制御手法である。この運動方程式を適切に設定することにより、マニピュレーター等のロボットを、あたかも所定の質量、粘性、弾性を持っているかのごとく動作させることが可能になる。このようなインピーダンス制御や力制御に関する従来技術としては、特許文献1、2、3に開示される技術が知られている。   A typical technique for performing force control in a robot is a technique called impedance control. Impedance control is a control method for operating a robot as if it had those values suitable for work regardless of its actual mass, viscosity characteristics, and elastic characteristics. This is a control method that solves an equation of motion based on force information obtained from a force sensor attached to a robot and operates the robot according to the solution. By appropriately setting this equation of motion, it becomes possible to operate a robot such as a manipulator as if it has a predetermined mass, viscosity, and elasticity. As conventional techniques related to such impedance control and force control, techniques disclosed in Patent Documents 1, 2, and 3 are known.

特開平6−320451号公報JP-A-6-320451 特開平2−205489号公報Japanese Patent Application Laid-Open No. 2-205489 特開平4−369004号公報JP-A-4-369004

特許文献1には、制御対象が柔軟である場合のような、非常に複雑な系においても、精度良くインピーダンス制御を行う手法が開示されている。   Patent Document 1 discloses a technique for performing impedance control with high accuracy even in a very complicated system such as a case where a control target is flexible.

特許文献2には、力覚センサーを用いずに力を推定し、より単純な機械的な構造により、インピーダンス制御を行う手法が開示されている。   Patent Document 2 discloses a technique for estimating the force without using a force sensor and performing impedance control with a simpler mechanical structure.

これらの特許文献1、2の手法は、より複雑な系での制御精度の改善、或いは、より単純な系でのインピーダンス制御を実現するものであるが、その代償として、リアルタイム性が要求される多くの演算が必要になるという問題がある。   These methods of Patent Documents 1 and 2 are intended to improve control accuracy in a more complicated system or to implement impedance control in a simpler system, but real-time performance is required as a compensation. There is a problem that many operations are required.

例えば、特許文献1の手法では、力制御の1ループごとに、順ダイナミクスモデルと逆ダイナミクスモデルの計算を必要とする。また特許文献2の手法では、力制御の1ループごとに力を推定するために、その明細書に記載された式の演算を行う必要がある。   For example, the method of Patent Document 1 requires calculation of a forward dynamics model and a reverse dynamics model for each loop of force control. Further, in the method of Patent Document 2, in order to estimate force for each loop of force control, it is necessary to perform calculation of an expression described in the specification.

一方、特許文献3には、演算量を削減するための1つの手法が開示されている。これは、上記の特許文献1、2に記載される逆ヤコビアン行列を求める計算を行わずに、転置ヤコビアン行列を用いることにより、計算量を削減するものである。   On the other hand, Patent Document 3 discloses one technique for reducing the amount of calculation. This is to reduce the amount of calculation by using the transposed Jacobian matrix without performing the calculation for obtaining the inverse Jacobian matrix described in Patent Documents 1 and 2 above.

しかしながら、この特許文献3の手法においても、リアルタイム性が要求される多くの演算が必要になるという問題がある。また、所望の反力を得るまでにマニピュレーターが加速してしまう事態が生じるおそれがあるため、異常時の対応にも問題がある。   However, the method of Patent Document 3 also has a problem that many operations requiring real-time performance are required. Moreover, since there is a possibility that the manipulator may be accelerated before a desired reaction force is obtained, there is a problem in dealing with an abnormality.

本発明の幾つかの態様によれば、制御ハードウェアーへの性能要求を低減できると共に応答性の改善も図れるロボット制御システム、ロボットシステム等を提供できる。   According to some aspects of the present invention, it is possible to provide a robot control system, a robot system, and the like that can reduce performance requirements for control hardware and improve responsiveness.

本発明の一態様は、ロボットのフィードバック制御の目標値を出力する目標値出力部と、力覚センサーからのセンサー情報に基づいて力制御を行い、前記目標値の補正値を出力する力制御部と、前記補正値により補正された前記目標値に基づいて、前記ロボットの前記フィードバック制御を行うロボット制御部とを含み、前記力制御部は、前記ロボットの姿勢に応じて変化する制御パラメーターを事前計算する事前計算部と、前記センサー情報と前記制御パラメーターとに基づき前記補正値を求める演算処理を実行する実行部とを含むロボット制御システムに関係する。   One aspect of the present invention is a target value output unit that outputs a target value for feedback control of a robot, and a force control unit that performs force control based on sensor information from a force sensor and outputs a correction value of the target value And a robot control unit that performs the feedback control of the robot based on the target value corrected by the correction value, the force control unit preliminarily controlling control parameters that change according to the posture of the robot. The present invention relates to a robot control system including a pre-calculation unit that calculates, and an execution unit that executes a calculation process for obtaining the correction value based on the sensor information and the control parameter.

本発明の一態様によれば、ロボットの姿勢に応じて変化する制御パラメーターの事前計算が行われ、力覚センサーからのセンサー情報と、事前計算された制御パラメーターとに基づき補正値を求める演算処理が実行される。そして、得られた補正値に基づいて目標値が補正され、補正された目標値に基づいて、ロボットのフィードバック制御が行われる。このようにすれば、実行部での演算処理の実行タイミング前に、ロボットの姿勢に応じて変化する制御パラメーターが、事前計算されるようになる。従って、制御ハードウェアーへの性能要求を低減できると共に応答性の改善も図れるロボット制御システムの提供が可能になる。   According to one aspect of the present invention, pre-calculation of control parameters that change according to the posture of the robot is performed, and calculation processing for obtaining a correction value based on sensor information from the force sensor and the pre-calculated control parameters Is executed. Then, the target value is corrected based on the obtained correction value, and feedback control of the robot is performed based on the corrected target value. In this way, control parameters that change in accordance with the posture of the robot are pre-calculated before the execution timing of the arithmetic processing in the execution unit. Therefore, it is possible to provide a robot control system that can reduce performance requirements for control hardware and improve responsiveness.

また本発明の一態様では、力制御部は、前記事前計算部で計算された前記制御パラメーターが格納されるFIFOを含み、前記実行部は、前記FIFOから前記制御パラメーターを読み出し、読み出された前記制御パラメーターに基づき前記補正値を求める前記演算処理を実行してもよい。   In one aspect of the present invention, the force control unit includes a FIFO in which the control parameter calculated by the pre-calculation unit is stored, and the execution unit reads and reads the control parameter from the FIFO. The calculation process for obtaining the correction value based on the control parameter may be executed.

このようにすれば、事前計算部は、事前計算した制御パラメーターをFIFOに格納した後は、他の処理を行ったり、処理を停止することなどが可能になるため、処理の効率化等を図れる。   In this way, the pre-calculation unit can perform other processes or stop the process after storing the pre-calculated control parameters in the FIFO, so that the process efficiency can be improved. .

また本発明の一態様では、前記FIFOには、前記実行部で使用される前記制御パラメーターが、前記実行部の演算処理が実行されるタイミングごとに、先入れ先出し方式で記憶されてもよい。   In one aspect of the present invention, the FIFO may store the control parameters used in the execution unit in a first-in first-out manner for each timing at which arithmetic processing of the execution unit is executed.

このようにすれば、実行部は、各演算処理が実行されるタイミングにおいて、制御パラメーターをFIFOから読み出すだけで、制御パラメーターを用いた演算処理を実行できるようになる。   If it does in this way, the execution part will be able to perform the calculation process using the control parameter only by reading the control parameter from the FIFO at the timing when each calculation process is executed.

また本発明の一態様では、前記実行部は、前記FIFOの残りデータ量が所与のしきい値以下になった場合に、前記事前計算部に対して、前記制御パラメーターを事前計算することを要求する事前計算要求を行ってもよい。   In the aspect of the invention, the execution unit may pre-calculate the control parameter with respect to the pre-calculation unit when a remaining data amount of the FIFO becomes a predetermined threshold value or less. A pre-calculation request may be made to request

このようにすれば、事前計算部は、少なくともFIFOの残りデータ量が無くなるまでの期間に、制御パラメーターを事前計算すれば済むようになるため、事前計算部に対するリアルタイム処理要求の緩和等を図れる。   In this way, the pre-calculation unit only needs to pre-calculate the control parameter at least until the remaining data amount of the FIFO disappears, so that the real-time processing request for the pre-calculation unit can be eased.

また本発明の一態様では、前記事前計算部は、前記制御パラメーターとして、逆ヤコビアンの行列要素を事前計算し、前記実行部は、事前計算された前記逆ヤコビアンの前記行列要素に基づいて、前記目標値の前記補正値を求めてもよい。   In one aspect of the present invention, the pre-calculation unit pre-calculates an inverse Jacobian matrix element as the control parameter, and the execution unit is based on the pre-calculated matrix element of the inverse Jacobian, The correction value of the target value may be obtained.

このようにすれば、逆ヤコビアンの行列要素については事前計算されるようになり、実行部は、逆ヤコビアンの行列要素を演算する必要がなくなるため、実行部に対する性能要求等を軽減できる。   In this way, the inverse Jacobian matrix elements are pre-computed, and the execution unit does not need to calculate the inverse Jacobian matrix elements, thereby reducing the performance requirements for the execution unit.

また本発明の一態様では、前記事前計算部は、前記制御パラメーターとして、計画軌道に対するロボット軌道の許容範囲を示すリミッター値を事前計算し、前記実行部は、前記計画軌道に対して前記ロボット軌道が前記許容範囲を超えたと判断した場合に、前記許容範囲を超えたことを示す割り込みを発生させてもよい。   In the aspect of the invention, the pre-calculation unit pre-calculates a limiter value indicating an allowable range of the robot trajectory with respect to the planned trajectory as the control parameter, and the execution unit performs the robot with respect to the planned trajectory. When it is determined that the trajectory exceeds the allowable range, an interrupt indicating that the allowable range has been exceeded may be generated.

このようにすれば、ロボット軌道の許容範囲を示すリミッター値については事前計算されるようになり、実行部は、リミッター値を演算する必要がなくなるため、実行部に対する性能要求等を軽減できる。また、ロボット軌道が許容範囲を超えた場合には、割り込みが発生するようになり、適切なエラー処理等を実行できるようになる。   In this way, the limiter value indicating the allowable range of the robot trajectory is calculated in advance, and the execution unit does not need to calculate the limiter value, so that performance requirements and the like for the execution unit can be reduced. Further, when the robot trajectory exceeds the allowable range, an interrupt is generated, and appropriate error processing can be executed.

また本発明の一態様では、前記事前計算部は、前記計画軌道の周辺のヤコビアンを求めることで、前記リミッター値を事前計算してもよい。   In the aspect of the invention, the pre-calculation unit may pre-calculate the limiter value by obtaining a Jacobian around the planned trajectory.

このようにすれば、ロボットの姿勢に応じて許容範囲が変化する場合にも、許容範囲を示すリミッター値を適切に事前計算できるようになる。   In this way, even when the allowable range changes according to the posture of the robot, the limiter value indicating the allowable range can be appropriately pre-calculated.

また本発明の一態様では、前記事前計算部は、前記制御パラメーターとして、前記力覚センサーの前記センサー情報を補正するための補正係数を事前計算し、前記実行部は、前記補正係数に基づいて前記センサー情報の補正処理を行ってもよい。   In the aspect of the invention, the pre-calculation unit pre-calculates a correction coefficient for correcting the sensor information of the force sensor as the control parameter, and the execution unit is based on the correction coefficient. The sensor information may be corrected.

このようにすれば、センサー情報を補正するための補正係数については事前計算されるようになり、実行部は、補正係数を演算する必要がなくなるため、実行部に対する性能要求等を軽減できる。   In this way, the correction coefficient for correcting the sensor information is calculated in advance, and the execution unit does not need to calculate the correction coefficient, so that performance requirements and the like for the execution unit can be reduced.

また本発明の一態様では、前記目標値出力部は、前記ロボットの軌道情報を出力する軌道生成部と、前記軌道生成部からの前記軌道情報に基づいてインバースキネマティクス処理を行い、前記ロボットの関節角情報を前記目標値として出力するインバースキネマティクス処理部とを含んでもよい。   In one aspect of the present invention, the target value output unit outputs a trajectory information of the robot, and performs inverse kinematics processing based on the trajectory information from the trajectory generation unit. An inverse kinematics processing unit that outputs joint angle information as the target value may be included.

このようにすれば、軌道生成部からの軌道情報に基づいて、インバースキネマティクス処理によりロボットの関節角情報を求め、求められた関節角情報を目標値として、ロボットのフィードバック制御を実行できるようになる。   In this way, based on the trajectory information from the trajectory generator, the robot joint angle information is obtained by inverse kinematics processing, and the feedback control of the robot can be executed using the obtained joint angle information as a target value. Become.

また本発明の一態様では、前記力制御部は、前記力制御としてインピーダンス制御を行ってもよい。   In the aspect of the invention, the force control unit may perform impedance control as the force control.

また本発明の一態様では、前記目標値は、前記ロボットの関節角情報であり、前記補正値は、前記関節角情報の補正値であってもよい。   In the aspect of the invention, the target value may be joint angle information of the robot, and the correction value may be a correction value of the joint angle information.

また本発明の一態様では、上記のいずれかに記載のロボット制御システムと、前記ロボットとを含むロボットシステムに関係する。   One embodiment of the present invention relates to a robot system including any one of the robot control systems described above and the robot.

本実施形態のロボット制御システム及びロボットシステムの構成例。1 is a configuration example of a robot control system and a robot system according to the present embodiment. 本実施形態のロボットシステムの一例。An example of the robot system of this embodiment. 図3(A)〜図3(C)は力制御についての説明図。FIG. 3A to FIG. 3C are explanatory diagrams regarding force control. 図4(A)、図4(B)はコンプライアンス制御についての説明図。4A and 4B are explanatory diagrams of compliance control. 図5(A)、図5(B)はインピーダンス制御についての説明図。FIG. 5A and FIG. 5B are explanatory diagrams of impedance control. 図6(A)、図6(B)はインバースキネマティクスについての説明図。6A and 6B are explanatory diagrams of inverse kinematics. 図7(A)、図7(B)はヤコビアンについての説明図。FIGS. 7A and 7B are explanatory diagrams of the Jacobian. ヤコビアンによる制御手法についての説明図。Explanatory drawing about the control method by Jacobian. ヤコビアンによる制御手法についての説明図。Explanatory drawing about the control method by Jacobian. 力覚フィードバックを含まない場合の制御系の基本構成例。A basic configuration example of a control system when force feedback is not included. 力覚フィードバックを含む場合の制御系の基本構成例。The example of basic composition of a control system in case a force feedback is included. 本実施形態のロボット制御システムの制御系の基本構成例。2 is a basic configuration example of a control system of the robot control system of the present embodiment. 本実施形態のロボット制御システムの詳細な構成例。2 is a detailed configuration example of a robot control system according to the present embodiment. FIFOを用いた本実施形態の処理の説明図。Explanatory drawing of the process of this embodiment using FIFO. 本実施形態のロボット制御システムの更に詳細な構成例。The detailed example of a structure of the robot control system of this embodiment. 本実施形態の詳細な処理を示すフローチャート。The flowchart which shows the detailed process of this embodiment. 本実施形態の詳細な処理を示すフローチャート。The flowchart which shows the detailed process of this embodiment. 図18(A)〜図18(C)は本実施形態の詳細な処理を示すフローチャート。FIG. 18A to FIG. 18C are flowcharts showing detailed processing of this embodiment. 本実施形態の詳細な処理を示すフローチャート。The flowchart which shows the detailed process of this embodiment. 本実施形態の詳細な処理を示すフローチャート。The flowchart which shows the detailed process of this embodiment.

以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。   Hereinafter, preferred embodiments of the present invention will be described in detail. The present embodiment described below does not unduly limit the contents of the present invention described in the claims, and all the configurations described in the present embodiment are indispensable as means for solving the present invention. Not necessarily.

1.構成
本実施形態のロボット制御システム(マニピュレーター制御システム)及びこれを含むロボットシステムの構成例を図1に示す。なお本実施形態のロボット制御システム、ロボットシステムは図1の構成には限定されず、その一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
1. Configuration FIG. 1 shows a configuration example of a robot control system (manipulator control system) of the present embodiment and a robot system including the same. Note that the robot control system and the robot system according to the present embodiment are not limited to the configuration shown in FIG. 1, and various modifications such as omitting some of the components or adding other components are possible. .

本実施形態のロボット制御システムは、力制御部20、目標値出力部60、ロボット制御部80を含む。また本実施形態のロボットシステムは、このロボット制御システムと、ロボット100(力覚センサー10)により構成される。   The robot control system of this embodiment includes a force control unit 20, a target value output unit 60, and a robot control unit 80. The robot system of this embodiment includes the robot control system and the robot 100 (force sensor 10).

目標値出力部60は、ロボット(狭義にはマニピュレーター)のフィードバック制御の目標値を出力する。この目標値に基づいてロボット100のフィードバック制御が実現される。多関節ロボット等を例に取れば、この目標値は、ロボットの関節角情報などである。ロボットの関節角情報は、例えばロボットのアームのリンク機構における各関節の角度(ジョイント軸とジョイント軸のなす角度)を表す情報である。   The target value output unit 60 outputs a target value for feedback control of the robot (manipulator in a narrow sense). Based on this target value, feedback control of the robot 100 is realized. Taking an articulated robot or the like as an example, this target value is information on the joint angle of the robot. The joint angle information of the robot is information representing the angle of each joint (angle formed by the joint axis) in the link mechanism of the robot arm, for example.

目標値出力部60は、軌道生成部62とインバースキネマティクス処理部64を含むことができる。軌道生成部62は、ロボットの軌道情報を出力する。軌道情報は、ロボットのエンドエフェクター部(エンドポイント)の位置情報(x,y,z)と、各座標軸回りでの回転角度情報(u,v,w)を含むことができる。インバースキネマティクス処理部64は、軌道生成部62からの軌道情報に基づいてインバースキネマティクス処理を行い、例えばロボットの関節角情報を目標値として出力する。インバースキネマティクス処理は、関節を有するロボットの動きを計算する処理であり、ロボットのエンドエフェクター部の位置姿勢などから関節角情報等を逆運動学により計算する処理である。   The target value output unit 60 can include a trajectory generation unit 62 and an inverse kinematics processing unit 64. The trajectory generator 62 outputs the trajectory information of the robot. The trajectory information can include position information (x, y, z) of the end effector section (end point) of the robot and rotation angle information (u, v, w) about each coordinate axis. The inverse kinematics processing unit 64 performs inverse kinematics processing based on the trajectory information from the trajectory generation unit 62, and outputs, for example, robot joint angle information as a target value. The inverse kinematics process is a process for calculating the motion of a robot having a joint, and is a process for calculating joint angle information and the like by inverse kinematics from the position and orientation of the end effector unit of the robot.

力制御部20(狭義にはインピーダンス制御部)は、力覚センサー10からのセンサー情報に基づいて力制御(力覚制御)を行って、目標値の補正値を出力する。更に具体的には、力制御部20(インピーダンス制御部)は、力覚センサー10からのセンサー情報(力情報、モーメント情報)に基づいてインピーダンス制御(或いはコンプライアンス制御)を行う。力制御は、例えば、従来の位置制御に対して、力のフィードバックが加わった制御である。インピーダンス制御は、外力に対するエンドエフェクター部(手先)の変位の生じやすさ(機械インピーダンス)を、制御により望ましい状態にする手法である。具体的には、ロボットのエンドエフェクター部の質量に粘性係数と弾性要素が接続されるモデルにおいて、目標として設定した粘性係数と弾性係数で物体に接触するようにする制御である。また力覚センサー10は、ロボット100が出している力の反力として受けている力やモーメントを検出するセンサーである。この力覚センサー10は、通常、ロボット100のアームの手首部分に取り付けられ、検出された力やモーメントは、センサー情報として、各種の力制御(インピーダンス制御)に用いられる。   The force control unit 20 (impedance control unit in a narrow sense) performs force control (force control) based on sensor information from the force sensor 10, and outputs a correction value of the target value. More specifically, the force control unit 20 (impedance control unit) performs impedance control (or compliance control) based on sensor information (force information and moment information) from the force sensor 10. Force control is, for example, control in which force feedback is added to conventional position control. Impedance control is a technique for making the ease of displacement (mechanical impedance) of the end effector section (hand) with respect to external force a desirable state by control. Specifically, in the model in which the viscosity coefficient and the elastic element are connected to the mass of the end effector unit of the robot, the control is performed so as to contact the object with the viscosity coefficient and the elastic coefficient set as targets. The force sensor 10 is a sensor that detects a force or moment received as a reaction force of the force generated by the robot 100. The force sensor 10 is usually attached to the wrist portion of the arm of the robot 100, and the detected force and moment are used for various types of force control (impedance control) as sensor information.

ロボット制御部80は、目標値出力部60からの目標値に基づいて、ロボットのフィードバック制御を行う。具体的には、力制御部20からの補正値により補正された目標値に基づいて、ロボットのフィードバック制御を行う。例えば補正値により補正された目標値と、ロボット100からのフィードバック信号に基づいて、ロボット100のフィードバック制御を行う。例えばロボット制御部80は、複数の駆動制御部82-1〜82-N(狭義にはモーター制御部)を含み、ロボット100が有する駆動部102-1〜102-Nに対して、その制御信号を出力する。ここで駆動部102-1〜102-Nは、ロボット100の各関節を動かすための駆動機構であり、例えばモーター等により実現される。   The robot control unit 80 performs feedback control of the robot based on the target value from the target value output unit 60. Specifically, the robot feedback control is performed based on the target value corrected by the correction value from the force control unit 20. For example, feedback control of the robot 100 is performed based on the target value corrected by the correction value and the feedback signal from the robot 100. For example, the robot control unit 80 includes a plurality of drive control units 82-1 to 82-N (in a narrow sense, motor control units), and controls the control signals for the drive units 102-1 to 102-N included in the robot 100. Is output. Here, the drive units 102-1 to 102-N are drive mechanisms for moving each joint of the robot 100, and are realized by, for example, a motor or the like.

そして本実施形態では、力制御部20が、事前計算部22と実行部26を含む。事前計算部22は、ロボット100の姿勢に応じて変化する制御パラメーター(演算パラメーター)を事前計算する。そして実行部26(ハードリアルタイム処理部)は、センサー情報と制御パラメーターとに基づき補正値を求める演算処理を実行する。即ち力覚センサー10からのセンサー情報と、事前計算された制御パラメーターとに基づいて、目標値の補正値を求め、例えば目標値出力部60に出力する。これにより、力制御により補正された目標値に基づいて、ロボット100のフィードバック制御が行われるようになる。   In the present embodiment, the force control unit 20 includes a pre-calculation unit 22 and an execution unit 26. The pre-calculation unit 22 pre-calculates control parameters (calculation parameters) that change according to the posture of the robot 100. The execution unit 26 (hard real-time processing unit) executes a calculation process for obtaining a correction value based on the sensor information and the control parameter. That is, the correction value of the target value is obtained based on the sensor information from the force sensor 10 and the control parameter calculated in advance, and is output to the target value output unit 60, for example. Thereby, the feedback control of the robot 100 is performed based on the target value corrected by the force control.

このように本実施形態では、ロボットの姿勢に応じて変化する制御パラメーターが事前計算され、この事前計算された制御パラメーターに基づいて、各制御タイミングでの補正値が求められる。そして、この補正値により補正された目標値に基づいてロボットのフィードバック制御が行われる。このように、ロボット制御に必要な制御パラメーターを、リアルタイム応答性が必要とされない事前計算により求めるようにすれば、制御ハードウェアーへの性能要求を低減できると共に、ロボット制御の応答性等も改善できるようになる。なお、事前計算は、例えば、実際に制御パラメーターが必要となるタイミングよりも前のタイミングで、ロボットの計画軌道等に基づいて制御パラメーターを予め計算しておくことである。   As described above, in the present embodiment, control parameters that change according to the posture of the robot are pre-calculated, and correction values at each control timing are obtained based on the pre-calculated control parameters. Then, feedback control of the robot is performed based on the target value corrected by the correction value. In this way, if the control parameters required for robot control are obtained by pre-calculation that does not require real-time responsiveness, performance requirements for control hardware can be reduced and responsiveness of robot control can be improved. It becomes like this. The pre-calculation is, for example, that the control parameters are calculated in advance based on the planned trajectory of the robot at a timing before the timing at which the control parameters are actually required.

また力制御部20は、事前計算部22で計算された制御パラメーターが格納されるFIFO(First-In First-Out)24を含む。このFIFO24は、先入れ先出しのメモリー(レジスター)などにより実現できる。このFIFO24には、実行部26で使用される制御パラメーターが、実行部26の演算処理が実行されるタイミングごとに、先入れ先出し方式で記憶される。   The force control unit 20 includes a first-in first-out (FIFO) 24 in which the control parameters calculated by the pre-calculation unit 22 are stored. The FIFO 24 can be realized by a first-in first-out memory (register). In the FIFO 24, control parameters used in the execution unit 26 are stored in a first-in first-out manner at each timing when the arithmetic processing of the execution unit 26 is executed.

そして実行部26は、FIFO24から制御パラメーターを読み出し、読み出された制御パラメーターに基づき補正値を求める演算処理を実行する。即ち本実施形態では、事前計算された制御パラメーターをFIFO24に格納しておく。そして実行部26は、各演算処理実行タイミングにおいて、FIFO24からの制御パラメーターを読み出して、補正値を求める演算処理を実行する。   Then, the execution unit 26 reads the control parameter from the FIFO 24 and executes a calculation process for obtaining a correction value based on the read control parameter. In other words, in the present embodiment, pre-calculated control parameters are stored in the FIFO 24. The execution unit 26 reads out the control parameter from the FIFO 24 and executes a calculation process for obtaining a correction value at each calculation process execution timing.

この場合に実行部26は、FIFO24の残りデータ量が所与のしきい値以下(所与のデータ量以下)になった場合に、事前計算部22に対して、制御パラメーターを事前計算することを要求する事前計算要求を行う。この事前計算要求により、事前計算部22は、制御パラメーターの事前計算を行い、事前計算された制御パラメーターをFIFO24に格納する。   In this case, the execution unit 26 pre-calculates the control parameter to the pre-calculation unit 22 when the remaining data amount of the FIFO 24 is less than a given threshold value (below the given data amount). Make a pre-calculation request to request In response to this pre-calculation request, the pre-calculation unit 22 performs a pre-calculation of the control parameter and stores the pre-calculated control parameter in the FIFO 24.

ここで、制御パラメーターは、補正値の演算処理に使用されるパラメーター(演算パラメーター)であり、例えばロボット100の姿勢に応じてその値が変化するパラメーターである。この制御パラメーターとしては、逆ヤコビアンの行列要素や、ロボット軌道の許容範囲を示すリミッター値や、力覚センサー10のセンサー情報を補正するための補正係数などの種々のパラメーターを想定できる。   Here, the control parameter is a parameter (calculation parameter) used in the correction value calculation processing, and is a parameter whose value changes according to the posture of the robot 100, for example. As this control parameter, various parameters such as an inverse Jacobian matrix element, a limiter value indicating an allowable range of the robot trajectory, and a correction coefficient for correcting sensor information of the force sensor 10 can be assumed.

例えば事前計算部22は、制御パラメーターとして、逆ヤコビアンの行列要素を事前計算する。そして実行部26は、事前計算された逆ヤコビアンの行列要素に基づいて、目標値の補正値を求める。また事前計算部22は、制御パラメーターとして、計画軌道に対するロボット軌道の許容範囲を示すリミッター値を事前計算する。そして実行部26は、計画軌道に対してロボット軌道が許容範囲を超えたと判断した場合に、許容範囲を超えたことを示す割り込みを発生させる。この場合に事前計算部22は、計画軌道の周辺のヤコビアン(計画軌道からの所与の範囲のポイントでのヤコビアン)を求めることで、リミッター値を事前計算する。また事前計算部22は、制御パラメーターとして、力覚センサー10のセンサー情報を補正するための補正係数(力覚センサー補正値)を事前計算する。そして実行部26は、補正係数に基づいてセンサー情報の補正処理を行う。この補正処理後のセンサー情報に基づいて、目標値の補正値が求められる。なお、逆ヤコビアン、リミッター値、補正係数の詳細については後述する。なお、ロボット軌道は、例えばエンドエフェクター部(エンドポイント)の移動軌道であり、計画軌道は、制御系が予め予定しているロボット軌道である。   For example, the pre-calculation unit 22 pre-calculates inverse Jacobian matrix elements as control parameters. The execution unit 26 calculates a correction value for the target value based on the pre-calculated inverse Jacobian matrix elements. The pre-calculation unit 22 pre-calculates a limiter value indicating the allowable range of the robot trajectory with respect to the planned trajectory as a control parameter. If the execution unit 26 determines that the robot trajectory exceeds the allowable range with respect to the planned trajectory, the execution unit 26 generates an interrupt indicating that the allowable range has been exceeded. In this case, the pre-calculation unit 22 pre-calculates the limiter value by obtaining the Jacobian around the planned trajectory (the Jacobian at a given range of points from the planned trajectory). The pre-calculation unit 22 pre-calculates a correction coefficient (force sensor correction value) for correcting the sensor information of the force sensor 10 as a control parameter. Then, the execution unit 26 performs sensor information correction processing based on the correction coefficient. Based on the sensor information after the correction processing, a correction value for the target value is obtained. Details of the inverse Jacobian, the limiter value, and the correction coefficient will be described later. The robot trajectory is, for example, a movement trajectory of an end effector unit (end point), and the planned trajectory is a robot trajectory scheduled in advance by the control system.

図2に本実施形態のロボット制御システムを含むロボットシステムの例を示す。このロボットシステムは、制御装置300(情報処理装置)とロボット310(図1のロボット100)とを含む。制御装置300はロボット310の制御処理を行う。具体的には、動作シーケンス情報(シナリオ情報)に基づいてロボット310を動作させる制御を行う。ロボット310は、アーム320及びハンド(把持部)330を有する。そして制御装置300からの動作指示にしたがって動作する。例えば、図示しないパレットに載せられたワークを把持したり、移動するなどの動作を行う。また、図示しない撮像装置で取得された撮像画像情報に基づいて、ロボットの姿勢やワークの位置などの情報が検出され、検出された情報が制御装置300に送られる。   FIG. 2 shows an example of a robot system including the robot control system of this embodiment. This robot system includes a control device 300 (information processing device) and a robot 310 (robot 100 in FIG. 1). The control device 300 performs control processing for the robot 310. Specifically, control for operating the robot 310 is performed based on the operation sequence information (scenario information). The robot 310 includes an arm 320 and a hand (gripping unit) 330. Then, it operates according to an operation instruction from the control device 300. For example, operations such as gripping or moving a workpiece placed on a pallet (not shown) are performed. Further, information such as the posture of the robot and the position of the workpiece is detected based on captured image information acquired by an imaging device (not shown), and the detected information is sent to the control device 300.

本実施形態のロボット制御システムは例えば図2の制御装置300に設けられ、例えば制御装置300のハードウェアーやプログラムによりロボット制御システムが実現される。そして本実施形態のロボット制御システムによれば、制御装置300などの制御ハードウェアーに対する性能要求を低減できると共に、ロボット310を高い応答性で動作させることが可能になる。なお図2は単腕型の例であるが、双腕型等の多腕型のロボットであってもよい。   The robot control system of this embodiment is provided in, for example, the control device 300 in FIG. 2, and the robot control system is realized by, for example, hardware or a program of the control device 300. According to the robot control system of this embodiment, it is possible to reduce performance requirements for control hardware such as the control device 300 and to operate the robot 310 with high responsiveness. Although FIG. 2 shows an example of a single arm type, a multi-arm type robot such as a double arm type may be used.

2.本実施形態の手法
次に本実施形態のロボット制御手法について詳細に説明する。
2. Next, the robot control method of this embodiment will be described in detail.

2.1 概要
本実施形態では、リアルタイム応答性の必要とされる部分を最小化することにより、応答性を改善し、また制御ハードウェアーの性能要求を低減することを目的としている。即ち、ロボット(マニピュレーター)に用いられる力制御、インピーダンス制御を、単純で低コストな制御系で実現する。現状の制御系が高コストである原因は、高速なハードリアルタイム性を要求される部分が大きいからであり、高コストが許容されるのは、現在のシステム全体が高価なものであるからである。従って、低コスト化のためには、高速なリアルタイム性が要求される部分を小さくし、性能要求を緩和することが必要である。
2.1 Overview This embodiment aims to improve the responsiveness by minimizing the portion that requires real-time responsiveness and reduce the performance requirements of the control hardware. That is, force control and impedance control used for a robot (manipulator) are realized by a simple and low-cost control system. The reason for the high cost of the current control system is that a portion requiring high-speed hard real-time performance is large, and the high cost is allowed because the entire current system is expensive. . Therefore, in order to reduce the cost, it is necessary to reduce the portion where high-speed real-time performance is required and relax the performance requirement.

このような本実施形態の基本的なアイデアは次のような事実による。つまり、インピーダンス制御を用いようとも、その軌道は予測可能である場合が多いということである。   The basic idea of this embodiment is based on the following facts. In other words, even if impedance control is used, the trajectory is often predictable.

例えば、双腕又は単腕のロボット(マニピュレーター)が対象物体をインピーダンス制御しながら運搬するというような場合、その軌道は予測可能である。   For example, when a double-arm or single-arm robot (manipulator) carries the target object while controlling the impedance, the trajectory can be predicted.

例えば、ロボットを用いてある物体を別の物体に嵌め合わせるような場合、或いは、溶接等のようにロボットがある物体の表面をなぞる場合を考える。このような場合に、従来手法においても、全くの手探りということはなく、治具を用いてある程度の位置が決まっているか、或いは近年の場合には撮像装置を用いて位置を決める場合がほとんどである。この場合も、その位置、軌道はほぼ予測可能である。   For example, consider a case where an object is fitted to another object using a robot, or a case where the surface of an object is traced, such as welding. In such a case, the conventional method does not require any groping, and the position is determined to some extent by using a jig, or in most cases, the position is determined by using an imaging device in recent years. is there. Also in this case, the position and trajectory are almost predictable.

要するに、従来の場合も近年の場合も、インピーダンス制御を用いる場合に、その軌道が全くの手探りということは非常に少なく、むしろ多くの場合は事前に予測可能である。つまり、インピーダンス制御などを用い、外部拘束による軌道変化は非常に小さい。   In short, both in the conventional case and in recent years, when using the impedance control, the trajectory is very rare, and in many cases it can be predicted in advance. That is, using impedance control or the like, the trajectory change due to external constraints is very small.

このように、主たる軌道が予測可能であり、インピーダンス制御などによる軌道変化が小さいものであるならば、それに最適な構造・制御手法を採用することにより、応答性を改善すると共に、制御ハードウェアーの性能要求を低減することが可能になる。つまり、インピーダンス制御に関わるヤコビアンや逆ヤコビアンは、ロボットの姿勢に依存するものである。しかしながら、軌道が予測可能であるならば、その軌道上のある点について、ヤコビアンや逆ヤコビアンを予め計算しておくことが可能となる。この部分はリアルタイム応答性を必要としない。   In this way, if the main trajectory is predictable and the trajectory change due to impedance control or the like is small, by adopting the optimal structure and control method for it, the responsiveness is improved and the control hardware Performance requirements can be reduced. That is, Jacobian and inverse Jacobian related to impedance control depend on the posture of the robot. However, if the trajectory can be predicted, the Jacobian or the inverse Jacobian can be calculated in advance for a certain point on the trajectory. This part does not require real-time responsiveness.

その結果、各点での値が予め計算されていることによる応答性の改善や、その値の事前計算にはリアルタイム応答性を必要としないことによるハードウェアへの性能要求の低減が可能となる。   As a result, it is possible to improve responsiveness by pre-calculating values at each point, and to reduce hardware performance requirements by not requiring real-time responsiveness to pre-calculate the values. .

以上の本実施形態の基本的アイデアをまとめると、以下の通りである。   The basic idea of the present embodiment as described above is summarized as follows.

即ち、従来の場合、逐次に変化する軌道に対し、姿勢の変化に対応して変化するパラメーターを、その都度、時間遅れなく計算するする必要があった。しかしながら、人や他の機器との時間的に変化する相互作用のある場合を除き、インピーダンス制御を行っても、軌道は予想可能である。産業用機械のタスクのうちのかなりの部分は、これに該当する。つまり、産業用機械において、予測不能な外力により軌道が変化する事態は、異常な事態である。   That is, in the conventional case, it has been necessary to calculate a parameter that changes in response to a change in posture with respect to a trajectory that changes sequentially without any time delay. However, the trajectory can be predicted even if impedance control is performed, except when there is a time-varying interaction with a person or other equipment. This is a significant part of industrial machine tasks. That is, in an industrial machine, a situation where the track changes due to an unpredictable external force is an abnormal situation.

軌道が予測可能であれば、高速リアルタイム性が要求される部分のうち、事前計算が可能な部分がかなり存在する。この事前計算を予め行っておき、FIFO(先入れ先出しメモリ)に入れておく。FIFOの長さを適当に取ることにより、事前計算処理のリアルタイム性は非常に緩和される。なお、リアルタイム処理とは、応答時間の最悪値(イベント発生後に実際に応答が起こるまでの時間の最悪値)が保証されている処理である。そして、その応答の価値が時間経過に対してゆっくりと下がるのがソフトリアルタイム処理であり、急激に下がるのがハードリアルタイム処理である。例えばロボット制御やエアーバック制御の処理は、ハードリアルタイム処理になる。   If the trajectory can be predicted, there are quite a few parts that can be pre-calculated out of the parts that require high-speed real-time performance. This pre-calculation is performed in advance and put in a FIFO (first-in first-out memory). By appropriately taking the length of the FIFO, the real-time property of the pre-calculation process is greatly relaxed. Real-time processing is processing in which the worst value of response time (the worst value of time until an actual response occurs after the occurrence of an event) is guaranteed. The value of the response is gradually lowered with time, and the soft real-time processing is rapidly reduced, and the hard real-time processing is rapidly lowered. For example, the robot control and air bag control processes are hard real-time processes.

本実施形態では、事前計算を、FIFOが空にならないような時間間隔で行う。高速なハードリアルタイム処理を行う部分は、FIFOから制御パラメーターを読み出して、その制御パラメーターを用いる。   In the present embodiment, the pre-calculation is performed at a time interval such that the FIFO does not become empty. The part that performs high-speed hard real-time processing reads out the control parameter from the FIFO and uses the control parameter.

また、ハードリアルタイム処理の結果が、事前計算において想定していた範囲を超えた場合は、それを事前計算部へ通知する。また、指定のエラー処理を行う。   Further, when the result of the hard real-time processing exceeds the range assumed in the pre-calculation, this is notified to the pre-calculation unit. Also performs specified error handling.

具体的には本実施形態では、従来では一体型であったインピーダンス制御部を、上位制御層と下位制御層に分割する。即ち図1に示すように、上位制御層である事前計算部22と、下位制御層のハードリアルタイム処理部である実行部26と、これらの間に介在するFIFO24に分割する。ここで実行部26とFIFO24は各関節ごとに与えられる。なお、前述した特許文献3でも階層分割を行っているが、その内容は本実施形態とは全く異なる。   Specifically, in the present embodiment, the impedance control unit that has been conventionally integrated is divided into an upper control layer and a lower control layer. That is, as shown in FIG. 1, the pre-calculation unit 22 that is the upper control layer, the execution unit 26 that is the hard real-time processing unit of the lower control layer, and the FIFO 24 interposed therebetween are divided. Here, the execution unit 26 and the FIFO 24 are given for each joint. In addition, although the patent document 3 mentioned above also performs the hierarchy division | segmentation, the content is completely different from this embodiment.

また、これらの各制御層での処理の時間間隔が異ならせる。即ち、リアルタイム応答を行う下位制御層である実行部26は、例えば100μs〜1msの時間間隔で処理を行う.一方、まとめて事前計算を行う上位制御層である事前計算部22は、例えば数ms〜数十msの時間間隔で処理を行う。つまり、マルチレートの処理を行う。   In addition, the time intervals of processing in these control layers are made different. That is, the execution unit 26, which is a lower control layer that performs real-time response, performs processing at a time interval of, for example, 100 μs to 1 ms. Processing is performed at time intervals of tens of ms. That is, multirate processing is performed.

上位制御層でまとめて事前計算された値は、先入れ先出しメモリであるFIFO24に送られ、下位制御層は、事前計算された値を逐次的にFIFOから読み出して、ハードリアルタイム処理を行う。   The values pre-calculated together in the upper control layer are sent to the FIFO 24 which is a first-in first-out memory, and the lower control layer sequentially reads the pre-calculated values from the FIFO and performs hard real-time processing.

ここで、事前計算部22で事前計算され、FIFO24を通じて通信されるパラメーターは、例えば、後に詳述する逆ヤコビアン、リミッター値、センサー姿勢の補正係数(ハンド自重補正係数)である。   Here, the parameters pre-calculated by the pre-calculation unit 22 and communicated through the FIFO 24 are, for example, an inverse Jacobian, a limiter value, and a sensor orientation correction coefficient (hand weight correction coefficient), which will be described in detail later.

事前計算部22は、上記のパラメーターの事前計算を行う。即ち、上位制御層である事前計算部22は、FIFO24の状態を見ながら、適切な間隔で事前計算を行う。この適切な間隔とは、FIFO24が空にならないように、余裕を持って事前計算が行える程度であればよい。具体的には、事前計算部22は、FIFO24の残りデータ量が少なくなった時に起動される。これにより事前計算部22に対するリアルタイム処理要求は緩和される。そして、ハードリアルタイム処理部である実行部26は、センサー姿勢の補正係数、逆ヤコビアンを用いてインピーダンス制御処理を行う。そして実行部26は、インピーダンス制御処理の結果が、リミッター値の範囲を超えた場合に、事前計算部22に対してエラーを通知する。そして実行部26は、エラーの発生時に、所定のエラー処理を行う。   The pre-calculation unit 22 performs pre-calculation of the above parameters. That is, the pre-calculation unit 22 that is the upper control layer performs pre-calculation at appropriate intervals while looking at the state of the FIFO 24. The appropriate interval may be such that the pre-calculation can be performed with a margin so that the FIFO 24 does not become empty. Specifically, the pre-calculation unit 22 is activated when the remaining data amount in the FIFO 24 decreases. Thereby, the real-time processing request to the pre-calculation unit 22 is relaxed. And the execution part 26 which is a hard real-time processing part performs an impedance control process using the correction coefficient of a sensor attitude | position, and an inverse Jacobian. The execution unit 26 notifies the precalculation unit 22 of an error when the result of the impedance control process exceeds the limiter value range. The execution unit 26 performs predetermined error processing when an error occurs.

なお、本実施形態では、軌道は予測可能であることを仮定しており、リミッター値は、その仮定から外れるほどの大きなインピーダンス制御による軌道変化があったことを検出するためのものである。このような状態となった場合には、例えば上位制御層への割り込み処理を要求するようにする。   In this embodiment, it is assumed that the trajectory is predictable, and the limiter value is for detecting that there has been a trajectory change due to impedance control that is so large that it deviates from the assumption. In such a state, for example, an interrupt process to the upper control layer is requested.

以上の本実施形態の手法によれば、パラメーターが予め事前計算されていることによる応答性の改善と、その事前計算にはリアルタイム応答性を必要としないことによる制御ハードウェアーへの性能要求の低減を実現できるようになる。   According to the method of the present embodiment described above, the responsiveness is improved by pre-calculating the parameters, and the performance requirement to the control hardware is reduced by not requiring real-time responsiveness for the pre-calculation. Can be realized.

2.2 力制御、インピーダンス制御
次に、力制御、インピーダンス制御(コンプライアンス制御)の概要について説明する。
2.2 Force Control, Impedance Control Next, an overview of force control and impedance control (compliance control) will be described.

図3(A)は、ロボットの左のアームAL、右のアームARで物体OBを挟んで移動している様子を示している。例えば、位置制御だけでは、物体を落としたり、破壊してしまうおそれがある、力制御によれば、柔軟な物体や脆い物体を、図3(A)のように両側から適切な力で挟んで移動させることが可能になる。   FIG. 3A shows a situation where the object OB is sandwiched between the left arm AL and the right arm AR of the robot. For example, with position control alone, there is a risk of dropping or destroying an object. With force control, a flexible object or a fragile object is sandwiched with appropriate force from both sides as shown in FIG. It can be moved.

また、力制御によれば、図3(B)に示すように、不確実性のある物体の表面SFをアームAM等でなぞることが可能になる。このような制御は位置制御だけでは実現不能である。また、力制御によれば、図3(C)に示すように、粗い位置決めの後に、探って位置合わせをして、物体OBを穴部HLにはめ込むことも可能になる。   Further, according to the force control, as shown in FIG. 3B, it is possible to trace the surface SF of an uncertain object with the arm AM or the like. Such control cannot be realized only by position control. Further, according to the force control, as shown in FIG. 3C, after rough positioning, it is possible to probe and align the object OB into the hole HL.

しかしながら、バネなどの実際の機械部品による力制御では、用途が限られるという問題がある。また、このような機械部品による力制御では、特性の動的な切り替えが困難である。   However, there is a problem that the application is limited in force control using actual mechanical parts such as a spring. In addition, in such force control using mechanical parts, it is difficult to dynamically switch characteristics.

一方、モーターのトルクを制御するトルク制御は簡単であるが、位置精度が悪くなるという問題がある。また、異常時に衝突などの問題が生じる。例えば図3(A)において、異常事態が起きて、物体OBを落としてしまった場合に、トルク制御では、釣合うべき反力が無くなるため、左右のアームAL、ARが衝突してしまうなどの問題が生じる。   On the other hand, torque control for controlling the torque of the motor is simple, but there is a problem that the positional accuracy is deteriorated. In addition, a problem such as a collision occurs when an abnormality occurs. For example, in FIG. 3A, when an abnormal situation occurs and the object OB is dropped, there is no reaction force to be balanced in the torque control, so the left and right arms AL and AR collide. Problems arise.

これに対して、インピーダンス制御(コンプライアンス制御)は、制御が複雑であるという不利点があるものの、汎用性や安全性が高いという利点がある。   On the other hand, impedance control (compliance control) has the disadvantage of high versatility and safety, although it has the disadvantage of complicated control.

図4(A)、図4(B)は、インピーダンス制御の1つであるコンプライアンス制御を説明する図である。コンプライアンスはバネ定数の逆数を意味し、バネ定数が硬さを表すのに対して、コンプライアンスは柔らかさを意味する。ロボットと環境との間に相互作用が働くときに、機械的柔軟性であるコンプライアンスを与える制御をコンプライアンス制御と呼ぶ。   FIG. 4A and FIG. 4B are diagrams for explaining the compliance control which is one of the impedance controls. Compliance means the reciprocal of the spring constant, and the spring constant represents hardness, whereas compliance means softness. Control that provides compliance, which is mechanical flexibility, when interaction between the robot and the environment works is called compliance control.

例えば図4(A)では、ロボットのアームAMには力覚センサーSEが取り付けられている。このロボットのアームAMは、力覚センサーSEで得られたセンサー情報(力・トルク情報)に応じて姿勢が変わるようにプログラムされている。具体的には、図4(A)のA1に示す仮想的なバネが、あたかもアームAMの先端に取り付けられているかのようにロボットを制御する。   For example, in FIG. 4A, a force sensor SE is attached to the arm AM of the robot. The robot arm AM is programmed so that its posture changes according to sensor information (force / torque information) obtained by the force sensor SE. Specifically, the robot is controlled as if a virtual spring indicated by A1 in FIG. 4A is attached to the tip of the arm AM.

例えばA1に示すバネのバネ定数が100Kg/mであったとする。これを図4(B)のA2に示すように5Kgの力で押せば、A3に示すようにバネは5cmだけ縮む。逆に言えば、5cmだけ縮んでいれば、5Kgの力で押されているといえる。つまり、力情報と位置情報とが対応づけられている。   For example, it is assumed that the spring constant of the spring indicated by A1 is 100 kg / m. If this is pressed with a force of 5 kg as shown at A2 in FIG. 4B, the spring contracts by 5 cm as shown at A3. In other words, if it shrinks by 5 cm, it can be said that it is pushed with a force of 5 kg. That is, force information and position information are associated with each other.

コンプライアンス制御では、このA1に示す仮想的なバネがアームAMの先端に取り付けられているかのような制御が行われる。具体的には、ロボットは、力覚センサーSEの入力に応答して動作し、A2に示す5Kgの加重に対して、A3に示すように5cmだけ後退するように制御され、力情報に対応して位置情報が変化するように制御される。   In the compliance control, control is performed as if the virtual spring indicated by A1 is attached to the tip of the arm AM. Specifically, the robot operates in response to the input of the force sensor SE, and is controlled to move back by 5 cm as shown in A3 with respect to the 5 kg weight shown in A2, corresponding to the force information. The position information is controlled to change.

このような単純なコンプライアンス制御では時間項を含まないが、時間項を含み、その2次の項までを考慮した制御が、インピーダンス制御である。具体的には、2次の項は質量項であり、1次の項は粘性項であり、インピーダンス制御のモデルは下式(1)に示すような運動方程式で表すことができる。   Such simple compliance control does not include a time term, but the control including the time term and considering the second order term is impedance control. Specifically, the second-order term is a mass term, the first-order term is a viscosity term, and the impedance control model can be expressed by an equation of motion as shown in the following equation (1).

Figure 2013000856
Figure 2013000856

上式(1)において、mは質量、μは粘性係数、kは弾性係数、fは力、xは目標位置からの変位である。またxの1次微分、2次微分は、各々、速度、加速度に対応する。インピーダンス制御では、上式(1)の特性をアームの先端であるエンドエフェクター部に持たせるための制御系を構成する。即ち上式(1)で表される仮想質量、仮想粘性係数、仮想弾性係数を、あたかもアームの先端が持っているかのように制御を行う。   In the above equation (1), m is mass, μ is a viscosity coefficient, k is an elastic coefficient, f is a force, and x is a displacement from a target position. The first and second derivatives of x correspond to speed and acceleration, respectively. In the impedance control, a control system for providing the end effector unit, which is the tip of the arm, with the characteristic of the above formula (1) is configured. That is, control is performed as if the tip of the arm has the virtual mass, virtual viscosity coefficient, and virtual elastic coefficient represented by the above equation (1).

このように、インピーダンス制御は、アームの先端の質量に粘性要素と弾性要素が各方向に接続されるモデルにおいて、目的として設定された粘性係数と弾性係数で物体に接触するようにする制御である。   As described above, impedance control is control that makes a contact with an object with a viscosity coefficient and an elastic coefficient set as an object in a model in which a viscous element and an elastic element are connected to the mass of the tip of the arm in each direction. .

例えば図5(A)に示すように、ロボットのアームAL、ARで物体OBをつかんで、軌道TRに沿って移動させる制御を考える。この場合に、軌道TRLは、物体OBの左側の内側に設定された点PLが通る軌道であり、インピーダンス制御を想定して決定された仮想的な左手の軌道である。また軌道TRRは、物体OBの右側の内側に設定された点PRが通る軌道であり、インピーダンス制御を想定して決定された仮想的な右手の軌道である。この場合に、アームALは、アームALの先端と点PLの距離差に応じた力が発生するように制御される。またアームARは、アームARの先端と点PRの距離差に応じた力が発生するように制御される。このようにすれば、物体OBを柔らかくつかみながら移動させるインピーダンス制御を実現できる。そして、インピーダンス制御では、図5(A)のB1に示すように物体OBが落下する事態が生じたとしても、アームAL、ARは、B2、B3に示すように、その先端が点PL、PRの位置で止まるように制御される。即ち、仮想的な軌道が衝突軌道でなければ、アームAL、ARが衝突するのを防止できる。   For example, as shown in FIG. 5A, let us consider a control in which an object OB is held by robot arms AL and AR and moved along a trajectory TR. In this case, the trajectory TRL is a trajectory through which the point PL set inside the left side of the object OB passes, and is a virtual left-hand trajectory determined on the assumption of impedance control. The trajectory TRR is a trajectory through which the point PR set inside the right side of the object OB passes, and is a virtual right-hand trajectory determined on the assumption of impedance control. In this case, the arm AL is controlled so that a force corresponding to the distance difference between the tip of the arm AL and the point PL is generated. The arm AR is controlled so that a force corresponding to the distance difference between the tip of the arm AR and the point PR is generated. In this way, it is possible to realize impedance control that moves the object OB while grasping it softly. In the impedance control, even if the situation where the object OB falls as shown by B1 in FIG. 5A occurs, the ends of the arms AL and AR are points PL and PR as shown by B2 and B3. It is controlled to stop at the position. That is, if the virtual trajectory is not a collision trajectory, it is possible to prevent the arms AL and AR from colliding.

また図5(B)のように、物体の表面SFをなぞるように制御する場合にも、インピーダンス制御では、アームAMの先端に対して、仮想的な軌道TRVAと先端との距離差DFに応じた力が働くように制御される。従って、アームAMを、力を加えながら表面SFをなぞるような制御が可能になる。   In addition, as shown in FIG. 5B, when the control is performed so that the surface SF of the object is traced, the impedance control is performed according to the distance difference DF between the virtual trajectory TRVA and the tip with respect to the tip of the arm AM. It is controlled so that the applied force works. Therefore, the arm AM can be controlled to trace the surface SF while applying a force.

2.3 ヤコビアン、逆ヤコビアン
以上のようなインピーダンス制御、コンプライアンス制御等においては、その動作は、基本的にはデカルト座標系で計算される。そして、デカルト座標系でのロボットの手先の動きを、ロボットの各関節の動きに翻訳するためにはインバースキネマティクス処理が必要となる。例えば図6(A)において、C1に示す力が働いて、アームAMの先端PTがC2に示すように移動した場合に、各関節J1、J2の角度を求めるためには、インバースキネマティクス処理が必要になる。
2.3 Jacobian, inverse Jacobian In the above impedance control, compliance control, etc., the operation is basically calculated in a Cartesian coordinate system. Inverse kinematics processing is required to translate the movement of the robot's hand in the Cartesian coordinate system into the movement of each joint of the robot. For example, in FIG. 6A, when the force indicated by C1 is applied and the tip PT of the arm AM moves as indicated by C2, in order to obtain the angles of the joints J1 and J2, inverse kinematics processing is performed. I need it.

しかしながら、図6(B)に示すように、一般的には、インバースキネマティクス処理は非常に難しい処理である。一方、ロボットの各関節の値を設定し、それを手先の動きに変換する処理であるフォワードキネマティクス処理は簡単な処理である。このような処理において、姿勢変化が微小であれば、フォワードキネマティクスを用いたヤコビアンを用いることができる。   However, as shown in FIG. 6B, inverse kinematics processing is generally very difficult processing. On the other hand, the forward kinematics process, which is a process for setting the values of each joint of the robot and converting it into the movement of the hand, is a simple process. In such processing, if the posture change is minute, Jacobian using forward kinematics can be used.

例えば下式(2)に示すように、m個の変数を入力とし、n個の出力を与えるある関数fを考える。或いは、m個の変数を入力とし、1つの出力を与える関数fをn組用意する。   For example, as shown in the following equation (2), consider a function f that takes m variables as inputs and gives n outputs. Alternatively, n sets of functions f which take m variables as inputs and give one output are prepared.

Figure 2013000856
Figure 2013000856

この場合に、ヤコビアン(ヤコビ行列)は、下式(3)に表される行列である。   In this case, the Jacobian (Jacobi matrix) is a matrix represented by the following expression (3).

Figure 2013000856
Figure 2013000856

つまり、ヤコビアンは、xの「ある値」の近傍において、xとyの関係を線形近似したものである。従って、一般的には、xの「ある値」が変化すれば、ヤコビアンも変化する。   That is, the Jacobian is a linear approximation of the relationship between x and y in the vicinity of “a certain value” of x. Therefore, in general, when “a certain value” of x changes, the Jacobian also changes.

ここで、xを関節角、yをロボットの手先の姿勢(xyzuvw)とすれば、上式(2)の関数は、フォワードキネマティクス関数となり、これは簡単に求めることができる。   Here, if x is the joint angle and y is the posture of the hand of the robot (xyzuvw), the function of the above equation (2) becomes a forward kinematic function, which can be easily obtained.

上式(2)の関数をフォワードキネマティクス関数と考えれば、上式(3)のヤコビアン(ヤコビ行列)は、ある姿勢において各関節が微小に変化した場合の、それに伴う手先の微小な変化を与える関係式となる。即ち図7(A)において、関節J1の角度が微小な単位量だけ変位した場合に、先端PTがどれだけ変位するかを表す関係式になる。或いは図7(B)において、関節J2の角度が微小な単位量だけ変位した場合に、先端PTがどれだけ変位するかを表す関係式になる。   If we consider the function of the above equation (2) as a forward kinematics function, the Jacobian (Jacobi matrix) of the above equation (3) shows the minute change of the hand when each joint changes minutely in a certain posture. It becomes the relational expression to give. That is, in FIG. 7 (A), when the angle of the joint J1 is displaced by a minute unit amount, the relational expression represents how much the distal end PT is displaced. Alternatively, in FIG. 7B, when the angle of the joint J2 is displaced by a minute unit amount, the relational expression represents how much the tip PT is displaced.

この場合に、各関節角の微小変化と、手先の微小変化との対応は、その姿勢に応じて変化する。つまり、ヤコビアンは、姿勢の変化に対応して、その都度、計算する必要がある。   In this case, the correspondence between the minute change of each joint angle and the minute change of the hand varies depending on the posture. In other words, the Jacobian needs to be calculated each time the posture changes.

さて、前述したように、手先の位置から関節角を求めるインバースキネマティクス処理は、一般的には非常に難しい処理である。   As described above, the inverse kinematics process for obtaining the joint angle from the position of the hand is generally a very difficult process.

しかしながら、下式(4)のように、ヤコビアンの逆行列である逆ヤコビアンを求めることができれば、手先の微小な変化を各関節角の微小な変化に変換する関係式を求めることができる。   However, if the inverse Jacobian, which is the inverse matrix of Jacobian, can be obtained as shown in the following equation (4), a relational expression for converting a minute change of the hand into a minute change of each joint angle can be obtained.

Figure 2013000856
Figure 2013000856

ところが、一般的には、ヤコビアンは正方行列ではなく、且つ、rank(階数)も低く、通常の意味の逆行列は存在しない。例えば7軸のロボットでは、手先の自由度は6つしかないので、7×7ではなく、7×6の行列になってしまう。但し、通常の意味の逆行列と類似した性質を持つ一般化逆行列は存在し得る。この一般化逆行列を用いることにより、インバースキネマティクス関数を必要とする処理を、フォワードキネマティクス関数を用いて実行することが可能になる。これを利用して、本実施形態では、処理の簡素化を図っている。具体的には、制御パラメーターとして、逆ヤコビアンの行列要素を事前計算し、事前計算された逆ヤコビアンの行列要素に基づいて、目標値の補正値を求めている。   However, in general, the Jacobian is not a square matrix and rank (rank) is low, and there is no inverse matrix in the normal sense. For example, in a 7-axis robot, there are only 6 degrees of freedom of the hand, so a 7 × 6 matrix is formed instead of 7 × 7. However, there can be a generalized inverse matrix having properties similar to the inverse matrix of ordinary meaning. By using this generalized inverse matrix, a process that requires an inverse kinematics function can be executed using the forward kinematics function. By utilizing this, the present embodiment simplifies the processing. Specifically, the inverse Jacobian matrix elements are pre-calculated as control parameters, and the correction value of the target value is obtained based on the pre-calculated inverse Jacobian matrix elements.

2.4 リミッター値
さて、図8において、計画軌道TRPに沿ってアームAMの先端PTを移動させる場合を考える。この場合に、産業用途のロボットにおいては、ロボット軌道が、軌道TRAのように大きくずれることはなく、このような軌道TRAになった場合には、それは異常状態であると判断できる。
2.4 Limiter Value Now, let us consider a case where the tip PT of the arm AM is moved along the planned trajectory TRP in FIG. In this case, in a robot for industrial use, the robot trajectory does not deviate as much as the trajectory TRA, and when it becomes such a trajectory TRA, it can be determined that it is in an abnormal state.

そこで本実施形態では、制御パラメーターとして、計画軌道TRPに対するロボット軌道の許容範囲RTを示すリミッター値(例えばモーターのエンコーダー値のリミッター値)を事前計算する。そして計画軌道TRPに対してロボット軌道が許容範囲RTを超えたか否かを判断する。そして許容範囲を超えた場合には、それを示す割り込みを発生させる。   Therefore, in the present embodiment, as a control parameter, a limiter value (for example, a limiter value of a motor encoder value) indicating an allowable range RT of the robot trajectory with respect to the planned trajectory TRP is pre-calculated. Then, it is determined whether or not the robot trajectory exceeds the allowable range RT with respect to the planned trajectory TRP. If the allowable range is exceeded, an interrupt indicating that is generated.

具体的には本実施形態では、計画軌道TRPの周辺のヤコビアンを求めることで、リミッター値を事前計算する。即ち、ヤコビアンの誤差が許容される範囲を、許容範囲RTとして、リミッター値を事前計算する。例えばヤコビアンの行列要素の誤差が所与の値以下になる範囲を許容範囲RTとして、リミッター値を事前計算する。   Specifically, in this embodiment, the limiter value is pre-calculated by obtaining the Jacobian around the planned trajectory TRP. That is, the limiter value is pre-calculated with the range in which the Jacobian error is allowed as the allowable range RT. For example, a limiter value is pre-calculated by setting a range where an error of a Jacobian matrix element is equal to or less than a given value as an allowable range RT.

この場合に、図8に示すように、許容範囲RTは一定ではなく、許容範囲RTの大きさはロボットのアームAMの姿勢に依存する。例えば図8のD1に示す姿勢の場合とD2に示す姿勢の場合とで、許容範囲RTは同一ではない。そしてD1とD2とで、ヤコビアン(逆ヤコビアン)の値も異なる。このため本実施形態では、計画軌道TRPの各点の周辺においてヤコビアンを求めることで(各姿勢におけるヤコビアンを求めることで)、リミッター値を事前計算するようにしている。   In this case, as shown in FIG. 8, the allowable range RT is not constant, and the size of the allowable range RT depends on the posture of the robot arm AM. For example, the allowable range RT is not the same in the case of the posture shown by D1 in FIG. 8 and the case of the posture shown by D2. The values of Jacobian (reverse Jacobian) are different between D1 and D2. For this reason, in this embodiment, the limiter value is pre-calculated by obtaining the Jacobian around each point of the planned trajectory TRP (by obtaining the Jacobian in each posture).

なお、この場合にヤコビアンを計算する姿勢は、図9において実線で示す姿勢であり、破線で示す姿勢ではない。即ち、図5(A)で説明したように、インピーダンス制御においては、物体の内側に設定された点PL、PRを通る仮想的な軌道を目標として制御が行われる。例えば図9のアームAMの先端PTと仮想点VPT(PL、PR)との差に応じた力が発生するように制御される。そしてヤコビアンの計算時には、このような仮想的な軌道に対応する破線で示す姿勢ではなく、実線で示す姿勢においてヤコビアンを計算することになる。   In this case, the posture for calculating the Jacobian is the posture shown by the solid line in FIG. 9 and is not the posture shown by the broken line. That is, as described with reference to FIG. 5A, in the impedance control, control is performed with a virtual trajectory passing through the points PL and PR set inside the object as a target. For example, control is performed so that a force corresponding to the difference between the tip PT of the arm AM in FIG. 9 and the virtual point VPT (PL, PR) is generated. When calculating the Jacobian, the Jacobian is calculated in the posture indicated by the solid line, not the posture indicated by the broken line corresponding to the virtual trajectory.

2.5 制御系の構成
図10に、力覚フィードバックを含まない場合の制御系の基本構成例を示す。
2.5 Configuration of Control System FIG. 10 shows a basic configuration example of a control system when force feedback is not included.

軌道生成部562は、軌道情報p(xyzuvw)を生成してインバースキネマティクス処理部564に出力する。ここで軌道情報pは、例えばアームの先端(エンドエフェクター部)の位置情報(xyz)と各軸回りの回転情報(uvw)を含む。そしてインバースキネマティクス処理部564は、この軌道情報pに基づいてインバースキネマティクス処理を行って、目標値である各関節の関節角θを生成して出力する。そして、この関節角θに基づいて、モーター制御を行うことで、ロボットのアームの動作制御が行われる。この場合に図10のモーター(M)の制御は、公知のPID制御により実現されている。このPID制御は公知の技術であるため、ここでは詳細な説明を省略する。   The trajectory generation unit 562 generates trajectory information p (xyzuvw) and outputs it to the inverse kinematics processing unit 564. Here, the trajectory information p includes, for example, position information (xyz) of the tip of the arm (end effector section) and rotation information (uvw) about each axis. Then, the inverse kinematics processing unit 564 performs inverse kinematics processing based on the trajectory information p, and generates and outputs a joint angle θ of each joint as a target value. Then, by performing motor control based on the joint angle θ, the operation control of the robot arm is performed. In this case, the control of the motor (M) in FIG. 10 is realized by known PID control. Since this PID control is a known technique, a detailed description thereof is omitted here.

図10において、軌道生成部562とインバースキネマティクス処理部564とにより目標値出力部が構成される。この目標値出力部の処理は、ロボットの全体的な処理になる。一方、後段のモーター制御は、関節毎の制御になる。   In FIG. 10, the trajectory generation unit 562 and the inverse kinematics processing unit 564 constitute a target value output unit. The processing of this target value output unit is the overall processing of the robot. On the other hand, the latter-stage motor control is control for each joint.

なお、前述した特許文献3の従来技術においても、上位制御層と下位制御層の区分分割を行っている。しかしながら、特許文献3における上位制御層は、図10の軌道生成部562とインバースキネマティクス処理部564の部分であり、下位制御層は、モーター制御の部分であり、本実施形態とは異なる区分分割となっている。   In the prior art of Patent Document 3 described above, the upper control layer and the lower control layer are divided and divided. However, the upper control layer in Patent Document 3 is a part of the trajectory generation unit 562 and the inverse kinematics processing unit 564 in FIG. 10, and the lower control layer is a part of motor control, which is different from the division division of this embodiment. It has become.

図11に、力覚フィードバックを含む場合の制御系の基本構成例を示す。図11では、図10に対して、更に、力覚センサー510と、姿勢補正部532と、ハンド・ツール自重補正部534と、運動方程式処理部536と、フォワードキネマティクス処理部540が設けられている。   FIG. 11 shows a basic configuration example of the control system in the case of including force feedback. 11, a force sensor 510, a posture correction unit 532, a hand / tool self-weight correction unit 534, a motion equation processing unit 536, and a forward kinematics processing unit 540 are further provided with respect to FIG. Yes.

図11では、力覚センサー510からのセンサー情報を受けて、姿勢補正部532がセンサーの姿勢補正を行い、ハンド・ツール自重補正部534がハンド・ツール自重補正を行う。そして、運動方程式処理部536が、前述の式(1)に示すような運動方程式の解を求める処理を行い、補正値Δpを出力する。この補正値Δpにより軌道情報pが補正されることで、目標値である関節角θの補正処理が行われる。またフォワードキネマティクス処理部540は、フォワードキネマティクス処理を行って、ロボットの軌道情報p’を求めて軌道生成部562にフィードバックする。また姿勢補正部532、ハンド・ツール補正部534に対して姿勢を特定するための情報を出力する。   In FIG. 11, in response to sensor information from the force sensor 510, the posture correction unit 532 corrects the posture of the sensor, and the hand / tool self-weight correction unit 534 corrects the hand / tool self-weight. Then, the equation of motion processing unit 536 performs processing for obtaining a solution of the equation of motion as shown in the above equation (1), and outputs a correction value Δp. By correcting the trajectory information p with this correction value Δp, a correction process for the joint angle θ, which is a target value, is performed. The forward kinematics processing unit 540 performs forward kinematics processing, obtains the trajectory information p ′ of the robot, and feeds it back to the trajectory generation unit 562. Information for specifying the posture is output to the posture correction unit 532 and the hand / tool correction unit 534.

図12に、本実施形態の制御系の基本構成例を示す。この制御系は、図11と同様に力覚フィードバックを含む。図12が図11と異なるのは、図12では逆ヤコビアン処理部38が更に設けられている点である。   FIG. 12 shows a basic configuration example of the control system of the present embodiment. This control system includes force feedback as in FIG. FIG. 12 differs from FIG. 11 in that an inverse Jacobian processing unit 38 is further provided in FIG.

具体的には、図11では、運動方程式処理部536からのΔpにより、軌道生成部562が出力するpが補正されている。これに対して図12では、運動方程式処理部536からのΔpに基づいて、逆ヤコビアン処理部38が、Δθを求める逆ヤコビアン処理を行う。即ち、前述の式(4)において、Δy(Δy1,Δy2・・・)がΔpになり、Δx(Δx1,Δx2・・・)がΔθになる逆ヤコビアン処理を行って、Δθを求める。そして、求められたΔθにより、目標値である関節角θが補正される。このような構成にすることにより、運動方程式の処理結果を関節ごとに分解できるようになる。   Specifically, in FIG. 11, p output from the trajectory generation unit 562 is corrected by Δp from the motion equation processing unit 536. On the other hand, in FIG. 12, based on Δp from the motion equation processing unit 536, the inverse Jacobian processing unit 38 performs an inverse Jacobian process for obtaining Δθ. That is, in the above equation (4), Δy (Δy1, Δy2...) Becomes Δp and Δx (Δx1, Δx2...) Becomes Δθ, and reverse Jacobian processing is performed to obtain Δθ. Then, the joint angle θ as the target value is corrected by the obtained Δθ. With such a configuration, the processing result of the equation of motion can be decomposed for each joint.

そして図12において、姿勢補正部32、ハンド・ツール自重補正部34、逆ヤコビアン処理部38、フォワードキネマティクス処理部40の処理では、ロボット姿勢に応じて、使用されるパラメーターの値が変化する。   In FIG. 12, in the processing of the posture correction unit 32, the hand / tool self-weight correction unit 34, the inverse Jacobian processing unit 38, and the forward kinematics processing unit 40, the value of the parameter used changes according to the robot posture.

しかしながら、ロボットの姿勢変化が予めプログラムされたものであるか、或いはそこからの差異が小さければ、これらのパラメーター値は軌道をプログラムする時点で予め計算しておくことができる。そこで本実施形態では、これらのパラメーター値を事前計算で求める手法を採用している。   However, if the posture change of the robot is pre-programmed or the difference from it is small, these parameter values can be calculated in advance when the trajectory is programmed. Therefore, in the present embodiment, a method for obtaining these parameter values by pre-calculation is adopted.

また、上述の「差異が小さい」とは、各補正における誤差が、運動方程式の解の誤差となった時に、その誤差が許容範囲内にあるということであり、またその結果のヤコビアン処理の結果の誤差が許容範囲内にあるということである。   The above-mentioned “small difference” means that when the error in each correction becomes an error in the solution of the equation of motion, the error is within an allowable range, and the result of the Jacobian processing as a result thereof Is within an acceptable range.

この「差異が小さい」ということは、上記のように、ロボットの実際の姿勢とプログラムされた姿勢との差異が小さいということに依存するものであり、その差異が想定よりも大きなものとなった場合には、エラーとして処理する必要がある。そこで本実施形態では、図8で説明したように許容範囲RTに対応するリミッター値を事前計算しておき、ロボット軌道が許容範囲RTを超えたと判断された場合には、割り込みを発生させるようにしている。   This “small difference” is dependent on the small difference between the actual posture of the robot and the programmed posture as described above, and the difference is larger than expected. In some cases, it must be handled as an error. Therefore, in this embodiment, as described with reference to FIG. 8, a limiter value corresponding to the allowable range RT is calculated in advance, and an interrupt is generated when it is determined that the robot trajectory exceeds the allowable range RT. ing.

2.6 詳細な構成例
図13に本実施形態のロボット制御システムの詳細な構成例を示す。図13は、図12で説明した制御系に対応する構成である。なお本実施形態のロボット制御システムは図13の構成には限定されず、その一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば本実施形態のロボット制御システムとして、図11等で説明した制御系の構成を採用してもよい。
2.6 Detailed Configuration Example FIG. 13 shows a detailed configuration example of the robot control system of this embodiment. FIG. 13 shows a configuration corresponding to the control system described in FIG. Note that the robot control system of the present embodiment is not limited to the configuration shown in FIG. 13, and various modifications such as omitting some of the components or adding other components are possible. For example, as the robot control system of the present embodiment, the configuration of the control system described with reference to FIG.

図13の逆ヤコビアン事前計算部42、リミッター値事前計算部44、補正係数事前計算部46が、図1の事前計算部22に相当する。また図13のFIFO50、52、54が、図1のFIFO24に相当する。また図13のハンド・ツール自重・姿勢補正部35、運動方程式処理部36、逆ヤコビアン処理部38、リミッター処理部39、割り込み発生部48が、図1の実行部26に相当する。なおFIFO56はインバースキネマティクス処理部64からの関節角θを格納するためのFIFOである。   The inverse Jacobian pre-calculation unit 42, limiter value pre-calculation unit 44, and correction coefficient pre-calculation unit 46 in FIG. 13 correspond to the pre-calculation unit 22 in FIG. Further, the FIFOs 50, 52, and 54 in FIG. 13 correspond to the FIFO 24 in FIG. Further, the hand / tool self-weight / posture correction unit 35, the motion equation processing unit 36, the inverse Jacobian processing unit 38, the limiter processing unit 39, and the interrupt generation unit 48 of FIG. 13 correspond to the execution unit 26 of FIG. The FIFO 56 is a FIFO for storing the joint angle θ from the inverse kinematics processing unit 64.

逆ヤコビアン事前計算部42は、前述の式(4)の逆ヤコビアン(逆ヤコビアンの行列要素)を事前計算し、事前計算した逆ヤコビアン(逆ヤコビアンに対応する値)をFIFO50に格納する。そして逆ヤコビアン処理部38は、各演算処理実行タイミングにおいて、事前計算された逆ヤコビアンをFIFO50から読み出して、前述の式(4)に示すような逆ヤコビアン処理を行って、関節角を補正するための補正値を出力する。   The inverse Jacobian pre-calculation unit 42 pre-calculates the inverse Jacobian (matrix element of the inverse Jacobian) of the above formula (4) and stores the pre-calculated inverse Jacobian (value corresponding to the inverse Jacobian) in the FIFO 50. Then, the inverse Jacobian processing unit 38 reads out the pre-calculated inverse Jacobian from the FIFO 50 at each arithmetic processing execution timing, performs the inverse Jacobian processing as shown in the above-described equation (4), and corrects the joint angle. The correction value of is output.

リミッター値事前計算部44は、図8で説明したロボット軌道の許容範囲に対応するリミッター値を事前計算し、事前計算したリミッター値をFIFO52に格納する。そしてリミッター処理部39は、各演算処理実行タイミングにおいて、事前計算されたリミッター値をFIFO52から読み出して、計画軌道に対してロボット軌道が許容範囲を超えたか否かを判断する。そして、許容範囲を超えたと判断されると、割り込み発生部48が、許容範囲を超えたことを示す割り込みを発生する。   The limiter value pre-calculating unit 44 pre-calculates the limiter value corresponding to the allowable range of the robot trajectory described with reference to FIG. 8 and stores the pre-calculated limiter value in the FIFO 52. Then, the limiter processing unit 39 reads the limiter value calculated in advance from the FIFO 52 at each calculation processing execution timing, and determines whether or not the robot trajectory exceeds the allowable range with respect to the planned trajectory. When it is determined that the allowable range has been exceeded, the interrupt generation unit 48 generates an interrupt indicating that the allowable range has been exceeded.

補正係数事前計算部46は、力覚センサー10のセンサー情報を補正するための補正係数を事前計算し、事前計算した補正係数をFIFO54に格納する。そしてハンド・ツール自重・姿勢補正部35は、事前計算された補正係数に基づいてセンサー情報の補正処理を行う。そして運動方程式処理部36は、この補正処理後のセンサー情報を用いて、前述の式(1)に対応する運動方程式の解を求める処理を行い、処理結果を逆ヤコビアン処理部38に出力する。すると、逆ヤコビアン処理部38は、この運動方程式処理部38からの処理結果と、事前計算された逆ヤコビアンに基づいて、前述の式(4)に示す逆ヤコビアン処理を行って、関節角の補正値を生成する。   The correction coefficient pre-calculation unit 46 pre-calculates a correction coefficient for correcting the sensor information of the force sensor 10 and stores the pre-calculated correction coefficient in the FIFO 54. Then, the hand / tool self-weight / posture correction unit 35 performs sensor information correction processing based on a pre-calculated correction coefficient. The motion equation processing unit 36 performs processing for obtaining a solution of the motion equation corresponding to the above-described equation (1) using the sensor information after the correction processing, and outputs the processing result to the inverse Jacobian processing unit 38. Then, the inverse Jacobian processing unit 38 performs the inverse Jacobian processing shown in the above equation (4) based on the processing result from the motion equation processing unit 38 and the pre-calculated inverse Jacobian, thereby correcting the joint angle. Generate a value.

ここで、ハンド・ツール自重・姿勢補正部35は、図12のハンド・ツール自重補正部34及び姿勢補正部32に対応するものである。ここでハンド・ツール自重補正は、ロボットのハンドの自重や、ハンドがつかむツールの自重による影響を、力覚センサー10からのセンサー情報(力情報)から相殺するための補正処理である。また姿勢補正は、力覚センサー10の姿勢による影響を、センサー情報(力情報)から相殺するための補正処理である。これらのハンド・ツール自重補正及び姿勢補正は、例えば下式(5)のように表すことができる。   Here, the hand / tool self-weight / posture correction unit 35 corresponds to the hand / tool self-weight correction unit 34 and the posture correction unit 32 of FIG. 12. Here, the hand / tool self-weight correction is a correction process for offsetting the influence of the weight of the robot hand and the weight of the tool held by the hand from the sensor information (force information) from the force sensor 10. The posture correction is a correction process for offsetting the influence of the posture of the force sensor 10 from the sensor information (force information). These hand tool self-weight correction and posture correction can be expressed as, for example, the following expression (5).

Figure 2013000856
Figure 2013000856

上式(5)において、Fx,Fy,Fz、Fu,Fv,Fwは力覚センサー10からのセンサー情報である力情報、トルク情報である。またBx,By,Bz、Bu,Bv,Bwはバイアス項である。そして、補正後のセンサー情報(力情報、トルク情報)であるfx,fy,fz、fu,fv,fwが運動方程式処理部36に入力される。なお、データには固定値があるため、実質的な補正係数は6×7=42個となる。これらのハンド・ツール自重補正及び姿勢補正は公知の補正処理であるため、詳しい説明は省略する。   In the above equation (5), Fx, Fy, Fz, Fu, Fv, and Fw are force information and torque information that are sensor information from the force sensor 10. Bx, By, Bz, Bu, Bv, and Bw are bias terms. Then, the corrected sensor information (force information, torque information) fx, fy, fz, fu, fv, fw is input to the motion equation processing unit 36. Since the data has a fixed value, the substantial correction coefficient is 6 × 7 = 42. Since these hand tool self-weight correction and posture correction are known correction processes, detailed description thereof will be omitted.

図14は、FIFOを用いた本実施形態の処理を説明するための図である。図14において、TM1、TM2、TM3・・・は、実行部26(ハンド・ツール自重・姿勢補正部35、運動方程式処理部36、逆ヤコビアン処理部38、リミッター処理部39等)の演算処理の実行タイミングである。このように、本実施形態では、実行部26は、TM1、TM2、TM3・・・の各演算処理実行タイミングにおいて、事前計算された制御パラメーター(逆ヤコビアン、リミッター値、補正係数)をFIFO(FIFO50、52、54)から読み出す。   FIG. 14 is a diagram for explaining processing of this embodiment using a FIFO. In FIG. 14, TM1, TM2, TM3,... Are calculation processes of the execution unit 26 (hand / tool self-weight / posture correction unit 35, motion equation processing unit 36, inverse Jacobian processing unit 38, limiter processing unit 39, etc.). It is execution timing. As described above, in the present embodiment, the execution unit 26 uses the FIFO (FIFO 50) to calculate the control parameters (inverse Jacobian, limiter value, correction coefficient) calculated in advance at the respective arithmetic processing execution timings of TM1, TM2, TM3. , 52, 54).

そして図14のE1では、FIFOの残りデータ量(制御パラメーターの残りデータ量)がしきい値以下になったため、下位制御層である実行部26は、E2に示すように、上位制御層である事前計算部22(逆ヤコビアン事前計算部42、リミッター値事前計算部44、補正係数事前計算部46)に対して、制御パラメーターの事前計算要求を行う。すると、事前計算部22が、制御パラメーターの事前計算を行い、E3に示すように、事前計算された制御パラメーターをFIFOに格納する。   In E1 of FIG. 14, the remaining data amount of the FIFO (remaining data amount of the control parameter) is equal to or less than the threshold value, so that the execution unit 26, which is the lower control layer, is the upper control layer as shown in E2. A pre-calculation request for control parameters is made to the pre-calculation unit 22 (inverse Jacobian pre-calculation unit 42, limiter value pre-calculation unit 44, correction coefficient pre-calculation unit 46). Then, the pre-calculation unit 22 performs pre-calculation of the control parameters, and stores the pre-calculated control parameters in the FIFO as indicated by E3.

この場合に、FIFOには、以前に事前計算した制御パラメーターが残存しているため、E4に示すタイミングについては、TM1、TM2、TM3・・・の演算処理実行タイミングに比べて、十分に長いインターバルを取ることができる。従って、実行部26に対しては、高速且つハードなリアルタイム処理が要求されるものの、事前計算部22に対しては、ある程度の処理の遅延が許容されるため、低速又はソフトなリアルタイム処理が要求されるだけになる。従って、事前計算部22は、逆ヤコビアンやリミッター値や補正係数を求めるというような負荷の高い計算処理を、時間的に余裕を持って実行することが可能になる。一方、実行部26では、逆ヤコビアンやリミッター値や補正係数を求めるというような負荷の高い計算処理を行わなくも済むため、高速且つハードなリアルタイム処理が要求されても、これに対応することが可能になる。   In this case, since the control parameters previously calculated in the FIFO remain in the FIFO, the timing indicated by E4 is an interval that is sufficiently longer than the calculation processing execution timings of TM1, TM2, TM3,. Can take. Therefore, the execution unit 26 requires high-speed and hard real-time processing, but the pre-calculation unit 22 requires a certain amount of processing delay, and therefore requires low-speed or soft real-time processing. It will only be done. Accordingly, the pre-calculation unit 22 can execute a calculation process with a high load such as obtaining an inverse Jacobian, a limiter value, and a correction coefficient with sufficient time. On the other hand, since the execution unit 26 does not need to perform a heavy load calculation process such as obtaining an inverse Jacobian, a limiter value, or a correction coefficient, it can cope with high-speed and hard real-time processing. It becomes possible.

なお図15は、ロボット制御部80と実行部26の接続関係の例を示す図である。図15では、図1のロボット制御部80が制御するモーター(広義には駆動部)が2つの場合を示している。   FIG. 15 is a diagram illustrating an example of a connection relationship between the robot control unit 80 and the execution unit 26. FIG. 15 shows a case where there are two motors (drive units in a broad sense) controlled by the robot control unit 80 of FIG.

インバースキネマティクス処理部64からの目標値(関節角)は、FIFO56-1を介してモーター制御部84-1に入力される。この場合に、この目標値は、逆ヤコビアン処理部38からの補正値により補正されて、モーター制御部84-1に入力される。そしてモーター制御部84-1は、補正後の目標値に基づいて、モーターM1の制御を行う。   The target value (joint angle) from the inverse kinematics processing unit 64 is input to the motor control unit 84-1 via the FIFO 56-1. In this case, the target value is corrected by the correction value from the inverse Jacobian processing unit 38 and input to the motor control unit 84-1. Then, the motor control unit 84-1 controls the motor M1 based on the corrected target value.

同様に、インバースキネマティクス処理部64からの目標値(関節角)は、FIFO56-2を介してモーター制御部84-2に入力される。この場合に、この目標値は、逆ヤコビアン処理部38からの補正値により補正されて、モーター制御部84-2に入力される。そしてモーター制御部84-2は、補正後の目標値に基づいて、モーターM2の制御を行う。   Similarly, the target value (joint angle) from the inverse kinematics processing unit 64 is input to the motor control unit 84-2 via the FIFO 56-2. In this case, the target value is corrected by the correction value from the inverse Jacobian processing unit 38 and input to the motor control unit 84-2. Then, the motor control unit 84-2 controls the motor M2 based on the corrected target value.

また、リミッター値事前計算部44で事前計算されたリミッター値は、FIFO52-1を介してリミッター処理部39-1に入力される。リミッター処理部39-1は、事前計算されたリミッター値と、モーター制御部84-1からのエンコード値(回転角度検出情報)に基づいて、ロボット軌道が許容範囲を超えたか否かを判断する。そして、許容範囲を超えたと判断された場合には、割り込み発生部48が割り込みを発生する。   Further, the limiter value pre-calculated by the limiter value pre-calculating unit 44 is input to the limiter processing unit 39-1 via the FIFO 52-1. The limiter processing unit 39-1 determines whether or not the robot trajectory exceeds the allowable range based on the limit value calculated in advance and the encoded value (rotation angle detection information) from the motor control unit 84-1. When it is determined that the allowable range is exceeded, the interrupt generation unit 48 generates an interrupt.

同様に、リミッター値事前計算部44で事前計算されたリミッター値は、FIFO52-2を介してリミッター処理部39-2に入力される。リミッター処理部39-2は、事前計算されたリミッター値と、モーター制御部84-2からのエンコード値に基づいて、ロボット軌道が許容範囲を超えたか否かを判断する。そして、許容範囲を超えたと判断された場合には、割り込み発生部48が割り込みを発生する。   Similarly, the limiter value pre-calculated by the limiter value pre-calculating unit 44 is input to the limiter processing unit 39-2 via the FIFO 52-2. The limiter processing unit 39-2 determines whether or not the robot trajectory exceeds the allowable range based on the limit value calculated in advance and the encoded value from the motor control unit 84-2. When it is determined that the allowable range is exceeded, the interrupt generation unit 48 generates an interrupt.

3.詳細な処理
次に本実施形態の詳細な処理例について図16〜図20のフローチャートを用いて説明する。
3. Detailed Processing Next, a detailed processing example of this embodiment will be described with reference to the flowcharts of FIGS.

図16は、ハードリアルタイム処理部である実行部の全体的な処理についてのフローチャートである。   FIG. 16 is a flowchart of the overall processing of the execution unit which is a hard real-time processing unit.

まず、制御パラメーターを更新するタイミングか否かを判断する(ステップS1)。そして、更新タイミングである場合には、図14で説明したように、FIFOに残りデータ(制御パラメーター)があるか否かを判断する(ステップS2)。そして、残りデータが無い場合には、制御パラメーター無しの割り込みを発生させて(ステップS3)、割り込み処理へ移行する(ステップS4)。一方、FIFOに残りデータがある場合には、FIFOから制御パラメーターを取得する(ステップS5)。   First, it is determined whether it is time to update the control parameter (step S1). If it is the update timing, as described with reference to FIG. 14, it is determined whether or not there is remaining data (control parameter) in the FIFO (step S2). If there is no remaining data, an interrupt without a control parameter is generated (step S3), and the process proceeds to an interrupt process (step S4). On the other hand, if there is remaining data in the FIFO, a control parameter is acquired from the FIFO (step S5).

次に、FIFOの残りデータ量はしきい値よりも多いか否かを判断する(ステップS6)。そして、しきい値以下である場合には、図14で説明したように、事前計算部に対して制御パラメーターの作成を要求する(ステップS7)。一方、残りデータ量がしきい値よりも多い場合には、インピーダンス制御処理を実行する(ステップS8)。   Next, it is determined whether or not the remaining data amount of the FIFO is larger than a threshold value (step S6). If it is equal to or less than the threshold value, as described with reference to FIG. 14, the pre-calculation unit is requested to create a control parameter (step S7). On the other hand, when the remaining data amount is larger than the threshold value, the impedance control process is executed (step S8).

次に、インピーダンス制御処理が正常に終了したか否かを判断する(ステップS9)。そして、正常に終了しなかった場合には、事前計算部に対して制御パラメーターの更新を要求する(ステップS10)。一方、正常に終了した場合にはステップS1に戻る。   Next, it is determined whether or not the impedance control process is normally completed (step S9). And when not complete | finished normally, the update of a control parameter is requested | required with respect to the prior calculation part (step S10). On the other hand, if the process ends normally, the process returns to step S1.

図17は、図16のステップS8のインピーダンス制御処理についてのフローチャートである。   FIG. 17 is a flowchart of the impedance control process in step S8 of FIG.

まず、力覚センサーから6次元入力値を得て(ステップS11)、7×7の補正行列との積を計算する(ステップS12)。即ち、前述の式(5)のFx,Fy,Fz、Fu,Fv,Fwを得て、ハンド・自重補正及び姿勢補正を行う。そして、得られた補正済み値に基づいてインピーダンスフィルター処理を行う(ステップS13)。即ち、前述の式(1)の運動方程式の処理を行う。   First, a 6-dimensional input value is obtained from the force sensor (step S11), and a product with a 7 × 7 correction matrix is calculated (step S12). That is, Fx, Fy, Fz, Fu, Fv, and Fw of the above equation (5) are obtained, and hand / self weight correction and posture correction are performed. Then, impedance filter processing is performed based on the obtained corrected value (step S13). That is, the above-described equation of motion (1) is processed.

次に、インピーダンスフィルターの出力値と、7×6のヤコビ行列との積を求める(ステップS14)。即ち、前述の式(4)の行列演算を行う。そして、各関節の指令値に対して、ステップS14で得られた値を加える補正処理を行う(ステップS15)。   Next, the product of the output value of the impedance filter and the 7 × 6 Jacobian matrix is obtained (step S14). That is, the matrix calculation of the above-described equation (4) is performed. And the correction process which adds the value obtained by step S14 with respect to the command value of each joint is performed (step S15).

次に、モーターのエンコーダー値(回転角度)を得る(ステップS16)。そして、エンコーダー値はリミッター値の範囲内か否かを判断し(ステップS17)、リミッター値の範囲内でない場合には、リミッターエラー割り込みを発生する(ステップS18)。一方、リミッター値の範囲内である場合には、正常状態であるとして図16のLoopへ戻る。   Next, an encoder value (rotation angle) of the motor is obtained (step S16). Then, it is determined whether or not the encoder value is within the limiter value range (step S17). If the encoder value is not within the limiter value range, a limiter error interrupt is generated (step S18). On the other hand, when it is within the range of the limiter value, it returns to the Loop of FIG. 16 as being in a normal state.

図18(A)〜図18(C)は割り込み処理についてのフローチャートである。   18A to 18C are flowcharts for interrupt processing.

図18(A)に示すように、図16のステップS3で制御パラメーター無し割り込みが発生した場合には、予め設定された停止処理に入る(ステップS21)。   As shown in FIG. 18A, when an interrupt without a control parameter occurs in step S3 of FIG. 16, a preset stop process is entered (step S21).

図18(B)に示すように、図17のステップS18でリミッターエラー割り込みが発生した場合には、予め設定された停止処理に入る(ステップS22)。即ち、上位コントローラー(上位制御層)で、許容範囲のリミッター値を設定し、それを超えるような事態では、ともかく停止させる。   As shown in FIG. 18B, when a limiter error interrupt occurs in step S18 of FIG. 17, a preset stop process is entered (step S22). That is, the upper limit controller (upper control layer) sets an allowable range limiter value, and stops in any event that exceeds that limit value.

或いは、図18(C)に示すように、図17のステップS18でリミッターエラー割り込みが発生した場合に、NOP(No OPeration)とし、異常事態発生としてLoopに戻るようにしてもよい(ステップS23)。即ち、上位コントローラー(上位制御層)で、余裕を見込んだリミッター値を設定し、下位コントローラー(下位制御層)のオーバーシュートを許容する。そして、割り込みを受けた上位コントローラーは、軌道を更新し、FIFOを新しいデータで上書きする。一方、下位コントローラーは、新しいデータで動作を継続する。そして、上位コントローラーが軌道を更新できない場合には、下位コントローラーへの割り込みを発生させて、動作を停止させる。   Alternatively, as shown in FIG. 18C, when a limiter error interrupt is generated in step S18 of FIG. 17, NOP (No OPeration) may be set, and the loop may return to Loop as an abnormal situation occurs (step S23). . That is, the upper controller (upper control layer) sets a limiter value that allows for a margin, and allows overshoot of the lower controller (lower control layer). The host controller that received the interrupt updates the trajectory and overwrites the FIFO with new data. On the other hand, the lower controller continues to operate with new data. If the upper controller cannot update the trajectory, an interrupt to the lower controller is generated to stop the operation.

図19は事前計算部の処理についてのフローチャートである。   FIG. 19 is a flowchart for the processing of the pre-calculation unit.

まず、事前計算部は、割り込みが発生するのを待ち(ステップS31)、割り込みが発生した場合には、制御パラメーター無し割り込みか否かを判断する(ステップS32)。そして、制御パラメーター無し割り込みの場合には、制御パラメーターを計算して、FIFOに設定する(ステップS33)。そして、ハードリアルタイム処理部(実行部)を再起動する(ステップS34)。   First, the pre-calculation unit waits for an interrupt to occur (step S31), and if an interrupt occurs, determines whether the interrupt is a control parameter-less interrupt (step S32). In the case of an interrupt without a control parameter, the control parameter is calculated and set in the FIFO (step S33). Then, the hard real-time processing unit (execution unit) is restarted (step S34).

一方、制御パラメーター無し割り込みではない場合には、制御パラメーター作成割り込みか否かを判断する(ステップS35)。そして、制御パラメーター作成割り込みの場合には、FIFOの空きデータ量を取得し(ステップS36)、制御パラメーターを計算して、FIFOに設定する(ステップS37)。   On the other hand, if it is not an interrupt without a control parameter, it is determined whether or not it is a control parameter creation interrupt (step S35). In the case of the control parameter creation interrupt, the FIFO free data amount is acquired (step S36), the control parameter is calculated and set in the FIFO (step S37).

制御パラメーター作成割り込みではない場合には、制御パラメーター更新割り込みか否かを判断する(ステップS38)。そして、制御パラメーター更新割り込みの場合には、現在のロボットの姿勢を取得し、復旧軌道を求める(ステップS39)。そして、制御パラメーターを計算して、FIFOに上書きする(ステップS40)。   If it is not a control parameter creation interrupt, it is determined whether or not it is a control parameter update interrupt (step S38). In the case of a control parameter update interrupt, the current robot posture is acquired to obtain a recovery trajectory (step S39). Then, the control parameter is calculated and overwritten in the FIFO (step S40).

図20は、パラメーター計算処理についてのフローチャートである。   FIG. 20 is a flowchart of the parameter calculation process.

まず、FIFOに空きはあるか否かを判断し(ステップS41)、空きがある場合には、計画軌道を求める(ステップS42)。そして、計画軌道のヤコビアン、逆ヤコビアンを求め(ステップS43)、FIFOに逆ヤコビアンの値を設定する(ステップS44)。   First, it is determined whether or not there is a vacancy in the FIFO (step S41). If there is a vacancy, a planned trajectory is obtained (step S42). Then, the Jacobian and reverse Jacobian of the planned trajectory are obtained (Step S43), and the value of the reverse Jacobian is set in the FIFO (Step S44).

次に、図8で説明したように、計画軌道の周辺のヤコビアンを求め、差異が所定の値以下である範囲を求め(ステップS45)、FIFOにリミッター値を設定する(ステップS46)。また、計画軌道に対する力覚センサー補正値(補正係数)を求め(ステップS47)、FIFOに力覚センサー補正値を設定する(ステップS48)。   Next, as described with reference to FIG. 8, a Jacobian around the planned trajectory is obtained, a range in which the difference is equal to or smaller than a predetermined value is obtained (step S45), and a limiter value is set in the FIFO (step S46). Further, a force sensor correction value (correction coefficient) for the planned trajectory is obtained (step S47), and the force sensor correction value is set in the FIFO (step S48).

なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また本実施形態及び変形例の全ての組み合わせも、本発明の範囲に含まれる。またロボット制御システム、ロボットシステムの構成・動作や、制御パラメーターの事前計算手法、FIFOへの制御パラメーターの格納手法、制御パラメーターに基づく演算処理の実行手法、制御系の構成等も、本実施形態で説明したものに限定されず、種々の変形実施が可能である。   Although the present embodiment has been described in detail as described above, it will be easily understood by those skilled in the art that many modifications can be made without departing from the novel matters and effects of the present invention. Accordingly, all such modifications are intended to be included in the scope of the present invention. For example, a term described at least once together with a different term having a broader meaning 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. All combinations of the present embodiment and the modified examples are also included in the scope of the present invention. In this embodiment, the robot control system, the configuration and operation of the robot system, the control parameter pre-calculation method, the method for storing the control parameter in the FIFO, the method for executing the arithmetic processing based on the control parameter, the configuration of the control system, etc. It is not limited to what was demonstrated, Various deformation | transformation implementation is possible.

OB 物体、AL、AR、AM アーム、SF 表面、HL 穴部、J1〜J3 関節、
PT 先端部、M、M1、M2 モーター、
10 力覚センサー、20 力制御部(インピーダンス制御部)、22 事前計算部、
24 FIFO、26 実行部、32 姿勢補正部、34 ハンド・ツール自重補正部、
35 ハンド・ツール自重・姿勢補正部、36 運動方程式処理部、
38 逆ヤコビアン処理部、39、39-1、39-2 リミッター処理部、
40 フォワードキネマティクス処理部、42 逆ヤコビアン事前計算部、
44 リミッター値事前計算部、46 補正係数事前計算部、
50、52、52-1、52-2、54、56、56-1、56-2 FIFO、
60 目標値出力部、62 軌道生成部、64 インバースキネマティクス処理部、
80 ロボット制御部、82-1〜82-N 駆動制御部、
84-1、84-2 モーター制御部、100 ロボット、102-1〜102-N 駆動部、
300 制御装置、310 ロボット、320 アーム、330 ハンド
OB object, AL, AR, AM arm, SF surface, HL hole, J1-J3 joint,
PT tip, M, M1, M2 motor,
10 force sensor, 20 force control unit (impedance control unit), 22 pre-calculation unit,
24 FIFO, 26 execution unit, 32 posture correction unit, 34 hand / tool self-weight correction unit,
35 hand / tool self-weight / posture correction unit, 36 equation of motion processing unit,
38 Reverse Jacobian processing unit, 39, 39-1, 39-2 Limiter processing unit,
40 forward kinematics processing unit, 42 inverse Jacobian pre-calculation unit,
44 Limiter value pre-calculation unit, 46 Correction coefficient pre-calculation unit,
50, 52, 52-1, 52-2, 54, 56, 56-1, 56-2 FIFO,
60 target value output unit, 62 trajectory generation unit, 64 inverse kinematics processing unit,
80 Robot controller, 82-1 to 82-N Drive controller,
84-1, 84-2 Motor control unit, 100 robot, 102-1 to 102-N drive unit,
300 control device, 310 robot, 320 arm, 330 hand

Claims (12)

ロボットのフィードバック制御の目標値を出力する目標値出力部と、
力覚センサーからのセンサー情報に基づいて力制御を行い、前記目標値の補正値を出力する力制御部と、
前記補正値により補正された前記目標値に基づいて、前記ロボットの前記フィードバック制御を行うロボット制御部と、
を含み、
前記力制御部は、
前記ロボットの姿勢に応じて変化する制御パラメーターを事前計算する事前計算部と、
前記センサー情報と前記制御パラメーターとに基づき前記補正値を求める演算処理を実行する実行部と、
を含むことを特徴とするロボット制御システム。
A target value output unit for outputting a target value for feedback control of the robot;
A force control unit that performs force control based on sensor information from the force sensor and outputs a correction value of the target value;
A robot control unit that performs the feedback control of the robot based on the target value corrected by the correction value;
Including
The force control unit
A pre-calculation unit that pre-calculates control parameters that change according to the posture of the robot;
An execution unit for executing a calculation process for obtaining the correction value based on the sensor information and the control parameter;
A robot control system comprising:
請求項1において、
前記力制御部は、
前記事前計算部で計算された前記制御パラメーターが格納されるFIFOを含み、
前記実行部は、
前記FIFOから前記制御パラメーターを読み出し、読み出された前記制御パラメーターに基づき前記補正値を求める前記演算処理を実行することを特徴とするロボット制御システム。
In claim 1,
The force control unit
Including a FIFO in which the control parameters calculated by the pre-calculation unit are stored;
The execution unit is
The robot control system, wherein the control parameter is read from the FIFO, and the arithmetic processing for obtaining the correction value is executed based on the read control parameter.
請求項2において、
前記FIFOには、
前記実行部で使用される前記制御パラメーターが、前記実行部の演算処理が実行されるタイミングごとに、先入れ先出し方式で記憶されることを特徴とするロボット制御システム。
In claim 2,
The FIFO includes
The robot control system according to claim 1, wherein the control parameter used in the execution unit is stored in a first-in first-out manner at each timing when the calculation process of the execution unit is executed.
請求項2又は3において、
前記実行部は、
前記FIFOの残りデータ量が所与のしきい値以下になった場合に、前記事前計算部に対して、前記制御パラメーターを事前計算することを要求する事前計算要求を行うことを特徴とするロボット制御システム。
In claim 2 or 3,
The execution unit is
When the remaining data amount of the FIFO is equal to or less than a given threshold value, a pre-calculation request is made to the pre-calculation unit that requests to pre-calculate the control parameter. Robot control system.
請求項1乃至4のいずれかにおいて、
前記事前計算部は、
前記制御パラメーターとして、逆ヤコビアンの行列要素を事前計算し、
前記実行部は、
事前計算された前記逆ヤコビアンの前記行列要素に基づいて、前記目標値の前記補正値を求めることを特徴とするロボット制御システム。
In any one of Claims 1 thru | or 4,
The pre-calculation unit
Pre-calculate inverse Jacobian matrix elements as the control parameter,
The execution unit is
The robot control system characterized in that the correction value of the target value is obtained based on the matrix element of the inverse Jacobian calculated in advance.
請求項1乃至5のいずれかにおいて、
前記事前計算部は、
前記制御パラメーターとして、計画軌道に対するロボット軌道の許容範囲を示すリミッター値を事前計算し、
前記実行部は、
前記計画軌道に対して前記ロボット軌道が前記許容範囲を超えたと判断した場合に、前記許容範囲を超えたことを示す割り込みを発生させることを特徴とするロボット制御システム。
In any one of Claims 1 thru | or 5,
The pre-calculation unit
As the control parameter, a limiter value indicating the allowable range of the robot trajectory with respect to the planned trajectory is pre-calculated,
The execution unit is
An interrupt indicating that the allowable range has been exceeded is generated when it is determined that the robot trajectory has exceeded the allowable range with respect to the planned trajectory.
請求項6において、
前記事前計算部は、
前記計画軌道の周辺のヤコビアンを求めることで、前記リミッター値を事前計算することを特徴とするロボット制御システム。
In claim 6,
The pre-calculation unit
A robot control system, wherein the limiter value is pre-calculated by obtaining a Jacobian around the planned trajectory.
請求項1乃至7のいずれかにおいて、
前記事前計算部は、
前記制御パラメーターとして、前記力覚センサーの前記センサー情報を補正するための補正係数を事前計算し、
前記実行部は、
前記補正係数に基づいて前記センサー情報の補正処理を行うことを特徴するロボット制御システム。
In any one of Claims 1 thru | or 7,
The pre-calculation unit
As the control parameter, pre-calculate a correction coefficient for correcting the sensor information of the force sensor,
The execution unit is
A robot control system, wherein the sensor information is corrected based on the correction coefficient.
請求項1乃至8のいずれかにおいて、
前記目標値出力部は、
前記ロボットの軌道情報を出力する軌道生成部と、
前記軌道生成部からの前記軌道情報に基づいてインバースキネマティクス処理を行い、前記ロボットの関節角情報を前記目標値として出力するインバースキネマティクス処理部と、
を含むことを特徴とするロボット制御システム。
In any one of Claims 1 thru | or 8.
The target value output unit
A trajectory generator that outputs trajectory information of the robot;
An inverse kinematics processing unit that performs inverse kinematics processing based on the trajectory information from the trajectory generation unit, and outputs joint angle information of the robot as the target value;
A robot control system comprising:
請求項1乃至9のいずれかにおいて、
前記力制御部は、
前記力制御としてインピーダンス制御を行うことを特徴とするロボット制御システム。
In any one of Claims 1 thru | or 9,
The force control unit
A robot control system that performs impedance control as the force control.
請求項1乃至10のいずれかにおいて、
前記目標値は、前記ロボットの関節角情報であり、前記補正値は、前記関節角情報の補正値であることを特徴とするロボット制御システム。
In any one of Claims 1 thru | or 10.
The robot control system according to claim 1, wherein the target value is joint angle information of the robot, and the correction value is a correction value of the joint angle information.
請求項1乃至11のいずれかに記載のロボット制御システムと、
前記ロボットと、
を含むことを特徴とするロボットシステム。
The robot control system according to any one of claims 1 to 11,
The robot;
A robot system characterized by including:
JP2011136421A 2011-06-20 2011-06-20 Robot control system and robot system Withdrawn JP2013000856A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011136421A JP2013000856A (en) 2011-06-20 2011-06-20 Robot control system and robot system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011136421A JP2013000856A (en) 2011-06-20 2011-06-20 Robot control system and robot system

Publications (1)

Publication Number Publication Date
JP2013000856A true JP2013000856A (en) 2013-01-07

Family

ID=47669968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011136421A Withdrawn JP2013000856A (en) 2011-06-20 2011-06-20 Robot control system and robot system

Country Status (1)

Country Link
JP (1) JP2013000856A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104097199A (en) * 2013-04-10 2014-10-15 精工爱普生株式会社 Robot, robot control device, and robot system
KR101485003B1 (en) * 2014-05-14 2015-01-27 한양대학교 산학협력단 Device and method for controlling position and posture of walking robot
JP2017159429A (en) * 2016-03-11 2017-09-14 セイコーエプソン株式会社 Robot control device, information processing device, and robot system
CN111168677A (en) * 2020-01-08 2020-05-19 山东理工大学 Stability control method for humanoid flexible arm system
CN113954078A (en) * 2021-11-17 2022-01-21 深圳市优必选科技股份有限公司 Force control joint control method and device, robot and readable storage medium

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104097199A (en) * 2013-04-10 2014-10-15 精工爱普生株式会社 Robot, robot control device, and robot system
CN104097199B (en) * 2013-04-10 2017-11-10 精工爱普生株式会社 Robot, robot controller and robot system
KR101485003B1 (en) * 2014-05-14 2015-01-27 한양대학교 산학협력단 Device and method for controlling position and posture of walking robot
JP2017159429A (en) * 2016-03-11 2017-09-14 セイコーエプソン株式会社 Robot control device, information processing device, and robot system
CN111168677A (en) * 2020-01-08 2020-05-19 山东理工大学 Stability control method for humanoid flexible arm system
CN113954078A (en) * 2021-11-17 2022-01-21 深圳市优必选科技股份有限公司 Force control joint control method and device, robot and readable storage medium
CN113954078B (en) * 2021-11-17 2023-02-24 深圳市优必选科技股份有限公司 Force control joint control method and device, robot and readable storage medium

Similar Documents

Publication Publication Date Title
EP3067162B1 (en) Master-slave system
US9463573B2 (en) Robot control system, robot system, and sensor information processing apparatus
JP6924145B2 (en) Robot teaching method and robot arm control device
JP3808321B2 (en) Robot controller
EP1696294A2 (en) Method and apparatus for generating teaching data for a robot
US10864632B2 (en) Direct teaching method of robot
WO2001038048A1 (en) Robot controller
EP2617533A1 (en) Robot controller, robot system, robot control method
EP2781315A1 (en) Robot picking system, control device and method of manufacturing a workpiece
WO2008001713A1 (en) Articulated robot and its control program
JP3681431B2 (en) Servo system with adjustable softness on Cartesian coordinate system
JP2018506439A (en) Apparatus and method for controlling robot manipulator
JP6044511B2 (en) Robot control method and robot system
JP2011206886A (en) Device and method for controlling robot
JP2013000856A (en) Robot control system and robot system
US12103183B2 (en) Robot controller
US10507581B2 (en) Robot system
WO2016073367A1 (en) Position/force control of a flexible manipulator under model-less control
JP2019013984A (en) Robot for performing learning control in application for which constant speed is required and control method therefor
US20150051735A1 (en) Control apparatus of robot, robot, and program thereof
WO1995002214A1 (en) Method for controlling flexible servo capable of designating flexibility on work coordinates
US9827673B2 (en) Robot controller inhibiting shaking of tool tip in robot equipped with travel axis
CN113474130B (en) Method and system for executing preset tasks by using robot
JP7227018B2 (en) Learning controller, robot controller and robot
JP2013119133A (en) Robot and robot control method

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140902