JP4743699B2 - POSITION CONTROL DEVICE, POSITION CONTROL METHOD, AND POSITION CONTROL PROGRAM - Google Patents

POSITION CONTROL DEVICE, POSITION CONTROL METHOD, AND POSITION CONTROL PROGRAM Download PDF

Info

Publication number
JP4743699B2
JP4743699B2 JP2005325277A JP2005325277A JP4743699B2 JP 4743699 B2 JP4743699 B2 JP 4743699B2 JP 2005325277 A JP2005325277 A JP 2005325277A JP 2005325277 A JP2005325277 A JP 2005325277A JP 4743699 B2 JP4743699 B2 JP 4743699B2
Authority
JP
Japan
Prior art keywords
data
length
target
error
data format
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.)
Expired - Fee Related
Application number
JP2005325277A
Other languages
Japanese (ja)
Other versions
JP2007007837A (en
Inventor
佳樹 荒川
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.)
ATR Advanced Telecommunications Research Institute International
Original Assignee
ATR Advanced Telecommunications Research Institute International
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 ATR Advanced Telecommunications Research Institute International filed Critical ATR Advanced Telecommunications Research Institute International
Priority to JP2005325277A priority Critical patent/JP4743699B2/en
Publication of JP2007007837A publication Critical patent/JP2007007837A/en
Application granted granted Critical
Publication of JP4743699B2 publication Critical patent/JP4743699B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Description

本発明は、関節を介して複数のリンクを連結したリンク機構の所定部位、例えば、先端部を目標3次元位置及び目標方向に制御する位置制御装置、位置制御方法及び位置制御プログラムに関する。   The present invention relates to a position control device, a position control method, and a position control program for controlling a predetermined portion of a link mechanism in which a plurality of links are connected via joints, for example, a tip portion in a target three-dimensional position and a target direction.

従来のロボットアームの制御方式としては、スレーブアームと同じ軸構成等を有するマスターアームを操作者が操作してスレーブアームを制御するマスターアーム方式、操作者の腕と手の主要部(各関節)にセンサを装着して操作者の腕と手の関節の動きを検出してロボットアームを制御するモーションキャプチャー方式、操作者の手首・手の甲等に付けた3次元位置方向センサにより操作者の手首・手の甲の3次元位置及び方向を検出し、このデータを用いてアーム(リンク)の各関節角度を求める逆変換を行ってロボットアームを制御する逆変換方式等の種々の方式がある。   As a conventional robot arm control method, a master arm method in which an operator operates a master arm having the same axis configuration as the slave arm to control the slave arm, and the main part of the operator's arm and hand (each joint) A motion capture system that controls the robot arm by detecting movements of the operator's arm and hand joints by attaching a sensor to the operator's wrist, and a 3D position / direction sensor attached to the operator's wrist, back of the hand, etc. There are various methods such as a reverse conversion method for detecting the three-dimensional position and direction of the back of the hand and performing reverse conversion to obtain each joint angle of the arm (link) using this data to control the robot arm.

上記のマスターアーム方式では、操作者側には、制御されるスレーブアームだけでなく、マスターアームが必要となり、システムが重装備になる。また、モーションキャプチャー方式では、操作者の腕と手の複数箇所にセンサを装着する必要があり、操作者にとって煩わしいものとなる。   In the above master arm system, not only the slave arm to be controlled but also the master arm is required on the operator side, and the system becomes heavy equipment. In addition, in the motion capture method, it is necessary to attach sensors to a plurality of locations of the operator's arm and hand, which is troublesome for the operator.

一方、逆変換方式では、操作者は手の甲等に1個のセンサのみを装着するだけで済み、操作者にとって煩わしさがないが、操作者の手首の位置と方向データから各関節角度を求める逆変換が必要となる。この逆変換では、人の腕のような高い自由度(6自由度以上)を持つ軸構成における各関節角度を求める必要があるため、逆変換が非線形連立方程式となり、複雑な計算となる。   On the other hand, in the reverse conversion method, the operator only has to install one sensor on the back of the hand and the like, and there is no trouble for the operator. However, the inverse of obtaining each joint angle from the wrist position and direction data of the operator. Conversion is required. In this inverse transformation, since it is necessary to obtain each joint angle in a shaft configuration having a high degree of freedom (6 degrees of freedom or more) like a human arm, the inverse transformation becomes a nonlinear simultaneous equation and is a complicated calculation.

このため、本願発明者は、逆変換が非線形連立方程式とならず、単純且つ少ない演算量で厳密解を求めることができるロボットアーム・ハンドの操作方法を提案した(特許文献1参照)。この操作方法では、ロボットアームの操作者の手首に付けたセンサにより検出された3次元位置及び方向からアームの各関節角度を求めるために、浮動小数点演算を用いた誤差有り演算を用いている。この浮動小数点フォーマットを用いた実数表現は、非常に小さな数から大きな数まで表現でき、計算効率がよいという優れた特徴があるため、逆変換のような実数の数値計算に適している。
特開2005−46931号公報
For this reason, the inventor of the present application has proposed a robot arm / hand operation method in which the inverse transformation is not a nonlinear simultaneous equation, and an exact solution can be obtained with a simple and small amount of calculation (see Patent Document 1). In this operation method, in order to obtain each joint angle of the arm from the three-dimensional position and direction detected by the sensor attached to the wrist of the operator of the robot arm, the calculation with error using the floating point calculation is used. The real number expression using the floating point format is suitable for numerical calculation of a real number such as inverse transformation because it can express from a very small number to a large number and has a superior calculation efficiency.
JP 2005-46931 A

しかしながら、上記の浮動小数点演算を用いた数値制御では、以下のような問題がある。
(1)浮動小数点演算では、数値演算誤差が発生し、且つその蓄積が起こるため、演算結果に大きな誤差が含まれる場合があり、ロボットアームの先端位置が大幅にずれる場合がある。
(2)上記の数値演算誤差とその蓄積のために、当初想定していなかった状態が発生し、結果として制御が破綻してロボットアーム動作が暴走する状況が発生する。
(3)上記のロボットアーム動作の暴走を防止するためには、暴走対策を施す必要があり、制御が複雑化する。
However, the numerical control using the floating point arithmetic has the following problems.
(1) In floating point calculations, numerical calculation errors occur and accumulate, so that the calculation results may include large errors, and the tip position of the robot arm may be significantly displaced.
(2) Due to the above numerical calculation error and its accumulation, a state that was not initially assumed occurs, and as a result, a situation occurs in which the control is broken and the robot arm operation runs out of control.
(3) In order to prevent the robot arm operation from running out of control, it is necessary to take measures against the runaway, which complicates the control.

本発明の目的は、リンク機構の制御動作を安定化及び高信頼化することができるとともに、リンク機構を高精度に制御することができる位置制御装置、位置制御方法及び位置制御プログラムを提供することである。   An object of the present invention is to provide a position control device, a position control method, and a position control program capable of stabilizing and improving the control operation of a link mechanism and controlling the link mechanism with high accuracy. It is.

本発明に係る位置制御装置は、関節を介して複数のリンクを連結したリンク機構の所定部位を目標3次元位置及び目標方向に制御する位置制御装置であって、リンク機構の所定部位の目標3次元位置データ及び目標方向データからなる目標データをP、リンク機構の各関節角度をθとし、目標データPから関節角度θを求める解法処理に使用されるデータを固定長数値データ形式から可変長整数データ形式へ変換する変換手段と、上記解法処理において、変換手段により変換された可変長整数データ形式のデータを用いて、除算を除く加減算及び乗算からなる無誤差演算を実行する無誤差演算手段とを備え、前記変換手段は、前記無誤差演算手段の演算結果を可変長整数データ形式から固定長数値データ形式へ変換し、前記解法処理において、前記変換手段により変換された固定長数値データ形式の演算結果を用いて1回のみの除算を含む固定長数値演算を実行することにより固定長数値データ形式の関節角度θを求める誤差演算手段をさらに備えるものである。 A position control device according to the present invention is a position control device that controls a predetermined portion of a link mechanism in which a plurality of links are connected via joints in a target three-dimensional position and a target direction, and includes a target 3 of the predetermined portion of the link mechanism. The target data consisting of the dimension position data and the target direction data is P, each joint angle of the link mechanism is θ, and the data used for the solution processing for obtaining the joint angle θ from the target data P is a variable length integer from the fixed length numerical data format. A conversion means for converting to a data format; and an error-free calculation means for executing an error-free calculation including addition / subtraction and multiplication excluding division using the data in the variable-length integer data format converted by the conversion means in the solution processing. The conversion means converts the calculation result of the error-free calculation means from a variable-length integer data format to a fixed-length numeric data format, and in the solution processing, Error calculation means for obtaining a joint angle θ in fixed-length numerical data format by executing fixed-length numerical calculation including only one division using the calculation result in fixed-length numerical data format converted by the conversion means It is to be prepared .

本発明に係る位置制御装置では、目標データPから関節角度θを求める解法処理において、この解法処理に使用されるデータが固定長数値データ形式から可変長整数データ形式へ変換され、変換された可変長整数データ形式のデータを用いて、除算を除く加算、減算及び乗算からなる無誤差演算が実行される。この無誤差演算においては、数値演算誤差が発生せず、その蓄積もないため、リンク機構の制御動作を安定化及び高信頼化することができるとともに、リンク機構を高精度に制御することができる。   In the position control device according to the present invention, in the solution processing for obtaining the joint angle θ from the target data P, the data used for the solution processing is converted from the fixed-length numeric data format to the variable-length integer data format, and the converted variable Using data in the long integer data format, an error-free operation including addition, subtraction, and multiplication excluding division is executed. In this error-free calculation, no numerical calculation error occurs and no accumulation occurs, so that the control operation of the link mechanism can be stabilized and highly reliable, and the link mechanism can be controlled with high accuracy. .

この場合、目標データPから関節角度θを求める解法処理において、可変長整数データ形式の係数データを用いて、除算を除く加算、減算及び乗算からなる無誤差演算が実行された後、この演算結果が可変長整数データ形式から固定長数値データ形式へ変換され、変換された固定長数値データ形式の演算結果を用いて1回のみの除算を含む固定長数値演算が実行され、固定長数値データ形式の関節角度θが算出されるので、上記解法処理において、数値演算誤差の発生を多くとも1回の除算によるものだけに制限して数値演算誤差を非常に小さくすることができるとともに、その蓄積を防止することができる。   In this case, in the solution processing for obtaining the joint angle θ from the target data P, error-free operations including addition, subtraction, and multiplication excluding division are performed using coefficient data in the variable-length integer data format, and then the calculation result Is converted from a variable-length integer data format to a fixed-length numeric data format, and a fixed-length numeric operation including only one division is executed using the operation result of the converted fixed-length numeric data format. Since the joint angle θ is calculated, in the above-described solution processing, the numerical calculation error can be limited to at most one division and the numerical calculation error can be made extremely small. Can be prevented.

無誤差演算手段は、θ=θ’+Δθ(i=1,…,n)(ここで、θは関節iの求める関節角度、θ’は微小時間Δt前の関節iの関節角度、Δθは微小時間Δt経過後の関節iの微小関節角度変化量、nは求める関節角度θの数)とし、n元連立一次方程式AΔθ=B(ここで、Aはその要素aij(i=1,…,n、j=1,…,n)がリンク機構のリンク長及び微小時間Δt前の関節iの関節角度θ’により決定される係数行列、Bはその要素b(i=1,…,n)が目標データP及び微小時間Δt前の位置方向データP’により決定されるベクトル)をAnΔθ=Bn(ここで、Anは対角要素an+1 ii(i=1,…,n)以外が0となる対角行列、Bnは要素bn+1 (i=1,…,n)のベクトル)に変形したときの係数データan+1 ii及び係数データbn+1 を、除算を除く加算、減算及び乗算からなる無誤差演算を用いて求め、変換手段は、無誤差演算手段により求められた係数データan+1 ii及び係数データbn+1 を可変長整数データ形式から固定長数値データ形式へ変換し、誤差演算手段は、変換手段により変換された固定長数値データ形式の係数データan+1 ii及び係数データbn+1 を用いて、θ=θ’+bn+1 /an+1 ii(i=1,…,n)を固定長数値演算により求めることが好ましい。 The error-free computing means is θ i = θ ′ i + Δθ i (i = 1,..., N) (where θ i is the joint angle obtained by the joint i, θ ′ i is the joint of the joint i before the minute time Δt) The angle, Δθ i is the minute joint angle change amount of the joint i after the minute time Δt has elapsed, n is the number of joint angles θ to be obtained, and n-ary simultaneous linear equations AΔθ = B (where A is the element a ij ( i = 1,..., n, j = 1,..., n) is a coefficient matrix determined by the link length of the link mechanism and the joint angle θ ′ i of the joint i before the minute time Δt, and B is its element b i ( i = 1, ..., a vector) n) is determined by the target data P and minute time Δt before the position-direction data P 'AnΔθ = Bn (where, an is diagonal element a n + 1 ii (i = 1, ..., n) except becomes zero diagonal matrix, Bn elements b n + 1 i (i = 1, ..., deformed vectors) of n) Coefficient data a n + 1 ii and coefficient data b n + 1 i, adding except division time, calculated using a non-error operation consisting of subtraction and multiplication, conversion means, coefficient data obtained by an error calculating unit a n + 1 ii And the coefficient data b n + 1 i from the variable-length integer data format to the fixed-length numeric data format, and the error calculation means converts the coefficient data a n + 1 ii and coefficient data b n + 1 i in the fixed-length numeric data format converted by the conversion means. It is preferable to obtain θ i = θ ′ i + b n + 1 i / a n + 1 ii (i = 1,..., N) by a fixed-length numerical calculation.

この場合、目標データPから関節角度θを求める解法処理において、θ=θ’+bn+1 /an+1 ii以外の演算を、除算を除く加算、減算及び乗算からなる無誤差演算により実行するとともに、数値演算誤差の発生を多くともθ=θ’+bn+1 /an+1 iiにおける1回の除算だけに制限しているので、関節角度θを高精度に求めることができる。 In this case, in the solution processing for obtaining the joint angle θ from the target data P, operations other than θ i = θ ′ i + b n + 1 i / a n + 1 ii are executed by error-free operations including addition, subtraction and multiplication excluding division. In addition, since the occurrence of numerical calculation errors is limited to at most one division in θ i = θ ′ i + b n + 1 i / a n + 1 ii , the joint angle θ can be obtained with high accuracy.

上記位置制御装置は、操作者の所定部位の3次元位置及び方向を検出する検出手段をさらに備え、検出手段により検出された3次元位置及び方向をリンク機構の所定部位の目標3次元位置データ及び目標方向データとして用いて、リンク機構の所定部位を目標3次元位置及び目標方向に制御することが好ましい。   The position control device further includes detection means for detecting the three-dimensional position and direction of the predetermined part of the operator, and the target three-dimensional position data of the predetermined part of the link mechanism is detected from the three-dimensional position and direction detected by the detection means. It is preferable to control the predetermined part of the link mechanism to the target three-dimensional position and the target direction using the target direction data.

この場合、リンク機構の所定部位を操作者の所定部位の動きに応じた目標3次元位置及び目標方向に高精度に制御することができる。   In this case, the predetermined part of the link mechanism can be controlled with high accuracy in the target three-dimensional position and the target direction according to the movement of the predetermined part of the operator.

本発明に係る位置制御方法は、関節を介して複数のリンクを連結したリンク機構の所定部位を目標3次元位置及び目標方向に制御するロボットアーム制御方法であって、リンク機構の所定部位の目標3次元位置データ及び目標方向データからなる目標データをP、リンク機構の各関節角度をθとし、目標データPから関節角度θを求める解法処理に使用されるデータを固定長数値データ形式から可変長整数データ形式へ変換する変換ステップと、上記解法処理において、変換された可変長整数データ形式のデータを用いて、除算を除く加算、減算及び乗算からなる無誤差演算を実行する無誤差演算ステップとを含み、前記変換ステップは、前記無誤差演算ステップにおける演算結果を可変長整数データ形式から固定長数値データ形式へ変換するステップを含み、前記解法処理において、前記変換ステップにおいて変換された固定長数値データ形式の演算結果を用いて1回のみの除算を含む固定長数値演算を実行することにより固定長数値データ形式の関節角度θを求める誤差演算ステップをさらに含むものである。 A position control method according to the present invention is a robot arm control method for controlling a predetermined part of a link mechanism in which a plurality of links are connected via joints to a target three-dimensional position and a target direction, and the target of the predetermined part of the link mechanism The target data consisting of three-dimensional position data and target direction data is P, each joint angle of the link mechanism is θ, and the data used for the solution processing for obtaining the joint angle θ from the target data P is variable length from the fixed length numerical data format. A conversion step for converting to an integer data format, and an error-free calculation step for performing error-free operations including addition, subtraction, and multiplication except division using the data in the variable-length integer data format converted in the above-described solution processing, only including, the converting step converts the calculation result in the no-error calculating step from the variable length integer data format to a fixed-length numeric data format A fixed-length numeric data format joint by performing a fixed-length numeric operation including only one division using the calculation result in the fixed-length numeric data format converted in the conversion step in the solution processing It further includes an error calculation step for obtaining the angle θ .

本発明に係る位置制御プログラムは、関節を介して複数のリンクを連結したリンク機構の所定部位を目標3次元位置及び目標方向に制御するための位置制御プログラムであって、リンク機構の所定部位の目標3次元位置データ及び目標方向データからなる目標データをP、リンク機構の各関節角度をθとし、目標データPから関節角度θを求める解法処理に使用されるデータを固定長数値データ形式から可変長整数データ形式へ変換する変換手段と、上記解法処理において、変換手段により変換された可変長整数データ形式の係数データを用いて、除算を除く加算、減算及び乗算からなる無誤差演算を実行する無誤差演算手段としてコンピュータを機能させ、前記変換手段は、前記無誤差演算手段の演算結果を可変長整数データ形式から固定長数値データ形式へ変換し、前記解法処理において、前記変換手段により変換された固定長数値データ形式の演算結果を用いて1回のみの除算を含む固定長数値演算を実行することにより固定長数値データ形式の関節角度θを求める誤差演算手段として前記コンピュータをさらに機能させるものである。 A position control program according to the present invention is a position control program for controlling a predetermined part of a link mechanism in which a plurality of links are connected via a joint to a target three-dimensional position and a target direction, The target data consisting of the target three-dimensional position data and the target direction data is P, each joint angle of the link mechanism is θ, and the data used for the solution processing for obtaining the joint angle θ from the target data P is variable from the fixed-length numerical data format. A conversion means for converting to a long integer data format, and in the above solution processing, using the coefficient data in the variable length integer data format converted by the conversion means, an error-free operation including addition, subtraction and multiplication excluding division is executed. The computer functions as error-free computing means, and the converting means converts the computation result of the error-free computing means from a variable-length integer data format to a fixed length. Fixed-length numeric data by converting to a numeric data format and executing fixed-length numeric operations including only one division using the calculation results in the fixed-length numeric data format converted by the conversion means in the solution processing The computer is further caused to function as an error calculation means for obtaining a joint angle θ of a form .

本発明によれば、目標データPから関節角度θを求める解法処理において、可変長整数データ形式のデータを用いて、除算を除く加算、減算及び乗算からなる無誤差演算が実行され、この無誤差演算においては、数値演算誤差が発生せず、その蓄積もないため、リンク機構の制御動作を安定化及び高信頼化することができるとともに、リンク機構を高精度に制御することができる。   According to the present invention, in the solution processing for obtaining the joint angle θ from the target data P, error-free operations including addition, subtraction, and multiplication excluding division are executed using data in the variable-length integer data format. In calculation, no numerical calculation error occurs and no accumulation occurs, so that the control operation of the link mechanism can be stabilized and highly reliable, and the link mechanism can be controlled with high accuracy.

以下、本発明の一実施の形態による位置制御装置の一例であるロボットアーム制御装置をいたロボットアーム制御システムについて図面を参照しながら説明する。   Hereinafter, a robot arm control system including a robot arm control device which is an example of a position control device according to an embodiment of the present invention will be described with reference to the drawings.

図1は、本発明の一実施の形態によるロボットアーム制御装置を用いたロボットアーム制御システムの構成を示すブロック図である。図1に示すロボットアーム制御システムは、ロボットアーム制御装置1、ロボットアーム部2、3次元操作グローブ3、3次元位置方向センサ4及び3次元ディスプレイ5を備える。   FIG. 1 is a block diagram showing a configuration of a robot arm control system using a robot arm control device according to an embodiment of the present invention. The robot arm control system shown in FIG. 1 includes a robot arm control device 1, a robot arm unit 2, a three-dimensional operation globe 3, a three-dimensional position / direction sensor 4, and a three-dimensional display 5.

ロボットアーム部2は、一対のロボットアーム21及びハンド22、胴体部23並びにカメラ部24を備え、人の上半身(頭部を除く)と同程度の大きさと自由度とを有し、両腕と両手の機能を実現している。   The robot arm unit 2 includes a pair of robot arms 21 and a hand 22, a body unit 23, and a camera unit 24. The robot arm unit 2 has a size and a degree of freedom similar to those of a human upper body (excluding the head). Realizes the function of both hands.

ロボットアーム21は、肩、肘及び手首に関節を有し、これらの関節を介してリンクとなる上腕21a及び前腕21bが連結されたリンク機構(マニプレータ)であり、人の腕と同程度の大きさ及び自由度を有する。ハンド22は、人の手と同程度の大きさと自由度を有する触覚付きの5本指ロボットハンドであり、前腕21bの先端に取り付けられる。ハンド22には触覚センサ(図示省略)が設けられており、物をつかんだ時の触覚(圧力)がロボットアーム制御装置1を介して3次元操作グローブ3へ伝達される。   The robot arm 21 is a link mechanism (manipulator) having joints on shoulders, elbows and wrists, and an upper arm 21a and a forearm 21b that are linked via these joints, and is as large as a human arm. And has flexibility. The hand 22 is a tactile five-fingered robot hand having the same size and flexibility as a human hand, and is attached to the tip of the forearm 21b. The hand 22 is provided with a tactile sensor (not shown), and a tactile sensation (pressure) at the time of grasping an object is transmitted to the three-dimensional operation glove 3 via the robot arm control device 1.

なお、図示を省略しているが、ロボットアーム21及びハンド22は、その内部にモータ等の駆動源を有し、この駆動源により任意の角度に駆動される。また、本実施の形態では、ロボットアーム21を人の腕に模倣させ、ハンド22を人の手指に模倣させているが、ロボットアーム及びハンドの構成は、この例に特に限定されず、ハンド22の指の数を増減させる等の種々の変更が可能である。また、リンク機構の関節数及びリンク数も、上記の例に特に限定されず、種々の変更が可能である。   Although not shown, the robot arm 21 and the hand 22 have a driving source such as a motor inside thereof, and are driven at an arbitrary angle by the driving source. In the present embodiment, the robot arm 21 is imitated by a human arm and the hand 22 is imitated by a human finger. However, the configurations of the robot arm and the hand are not particularly limited to this example. Various changes, such as increasing or decreasing the number of fingers, are possible. Further, the number of joints and the number of links of the link mechanism are not particularly limited to the above example, and various changes can be made.

カメラ部24は、3次元カメラ(ステレオカメラ)等から構成され、ロボットアーム制御装置1を介して、撮影した画像を3次元ディスプレイ5へ出力する。3次元ディスプレイ5は、カメラ部24により撮影された画像を表示し、操作者Mに提示する。なお、撮影された画像の提示方法は、この例に特に限定されず、3次元ディスプレイに替えて、操作者Mに装着させたヘッドマウントディスプレイに表示させる等の種々の変更が可能である。   The camera unit 24 is configured by a three-dimensional camera (stereo camera) or the like, and outputs a photographed image to the three-dimensional display 5 via the robot arm control device 1. The three-dimensional display 5 displays an image photographed by the camera unit 24 and presents it to the operator M. The method of presenting the captured image is not particularly limited to this example, and various changes such as displaying on a head-mounted display worn by the operator M instead of the three-dimensional display are possible.

3次元操作グローブ3は、公知の3次元操作用データグローブから構成され、操作者Mの両手にそれぞれ装着される。3次元操作グローブ3は、操作者Mの手の甲及び指の動き(関節角度)を検出し、検出した関節角度データをロボットアーム制御装置1へ出力する。3次元操作グローブ3の手首の位置には、3次元位置方向センサ4が取り付けられ、3次元位置方向センサ4は、前腕21bの先端部の目標3次元位置及び目標方向として、操作者Mの手首の3次元位置及び方向を検出し、検出した3次元位置データ及び方向データをロボットアーム制御装置1へ出力する。   The three-dimensional operation glove 3 is composed of a known three-dimensional operation data glove, and is attached to both hands of the operator M. The three-dimensional operation glove 3 detects the back of the hand of the operator M and the movement of the finger (joint angle), and outputs the detected joint angle data to the robot arm control device 1. The three-dimensional position / direction sensor 4 is attached to the wrist position of the three-dimensional operation glove 3, and the three-dimensional position / direction sensor 4 uses the wrist of the operator M as the target three-dimensional position and target direction of the tip of the forearm 21b. The three-dimensional position and direction are detected, and the detected three-dimensional position data and direction data are output to the robot arm control device 1.

なお、目標3次元位置及び目標方向を検出又は入力する方法は、上記の例に特に限定されず、データグローブ又はデータスーツ等から操作者の所定部位の3次元位置及び方向を検出したり、ハプティクス・デバイス等を用いて入力したりしてもよい。   Note that the method for detecting or inputting the target three-dimensional position and target direction is not particularly limited to the above example, and the three-dimensional position and direction of a predetermined part of the operator can be detected from a data glove, a data suit, or the like. -You may input using a device etc.

ロボットアーム制御装置1は、操作者Mの両手に装着された3次元操作グローブ3及び3次元位置方向センサ4からの検出結果を基に、ロボットアーム21及びハンド22の各関節角度を算出する。ハンド22に関しては、3次元操作グローブ3が手の甲の曲がり(手首の)角度及び指の関節角度を検出し、ロボットアーム制御装置1は、これらの角度データに基づいてハンド22を制御する。   The robot arm control device 1 calculates the joint angles of the robot arm 21 and the hand 22 based on the detection results from the three-dimensional operation glove 3 and the three-dimensional position / direction sensor 4 attached to both hands of the operator M. Regarding the hand 22, the three-dimensional operation glove 3 detects the bending angle of the back of the hand (the wrist) and the joint angle of the finger, and the robot arm control device 1 controls the hand 22 based on these angle data.

一方、ロボットアーム21に関しては、操作者Mの手首に装着した3次元位置方向センサ4から操作者Mの手首の三次元位置及びその方向、すなわち、ロボットアーム21の先端部の目標3次元位置及び目標方向が得られるだけである。このため、ロボットアーム21の先端部の目標3次元位置データ及び目標方向データから、ロボットアーム21の各関節角度を計算する必要がある。このように、ロボットアーム21の先端部の3次元位置及び方向からロボットアーム21の各関節角度を計算することを逆変換と呼び、これとは逆に、ロボットアーム21の各関節角度からロボットアーム21の先端部の3次元位置及び方向を計算することを順変換と呼ぶことにする。   On the other hand, with respect to the robot arm 21, the three-dimensional position and direction of the wrist of the operator M from the three-dimensional position / direction sensor 4 attached to the wrist of the operator M, that is, the target three-dimensional position of the tip of the robot arm 21 and Only the target direction is obtained. For this reason, it is necessary to calculate each joint angle of the robot arm 21 from the target three-dimensional position data and target direction data of the tip of the robot arm 21. In this way, calculating each joint angle of the robot arm 21 from the three-dimensional position and direction of the tip of the robot arm 21 is referred to as inverse transformation, and conversely, the robot arm is calculated from each joint angle of the robot arm 21. The calculation of the three-dimensional position and direction of the tip 21 is referred to as forward conversion.

図2は、図1に示すロボットアーム制御装置1の構成を示すブロック図である。図2に示すように、ロボットアーム制御装置1は、外部インターフェース部11、浮動小数点データ記憶部12、データ変換処理部13、可変長整数データ記憶部14、誤差有制御処理部15及び無誤差制御処理部16を備える。誤差有制御処理部15は、座標変換処理部15a及び浮動小数点演算部15bを備え、無誤差制御処理部16は、方程式解法処理部16a及び可変長整数演算部16bを備える。   FIG. 2 is a block diagram showing a configuration of the robot arm control device 1 shown in FIG. As shown in FIG. 2, the robot arm control device 1 includes an external interface unit 11, a floating-point data storage unit 12, a data conversion processing unit 13, a variable-length integer data storage unit 14, an error presence control processing unit 15, and no error control. A processing unit 16 is provided. The control unit with error 15 includes a coordinate conversion processing unit 15a and a floating point arithmetic unit 15b, and the error-free control processing unit 16 includes an equation solution processing unit 16a and a variable length integer arithmetic unit 16b.

ロボットアーム制御装置1は、CPU(中央演算処理装置)、ROM(リードオンリメモリ)、RAM(ランダムアクセスメモリ)、外部記憶装置、記録媒体駆動装置、入力装置、表示装置、外部機器インターフェース等を備えるコンピュータから構成することができる。この場合、後述するロボットアーム制御処理(位置制御処理)を実行するためのロボットアーム制御プログラム(位置制御プログラム)を、CPU等を用いて実行することにより、外部インターフェース部11、浮動小数点データ記憶部12、データ変換処理部13、可変長整数データ記憶部14、誤差有制御処理部15及び無誤差制御処理部16としてコンピュータを機能させることができる。なお、ロボットアーム制御装置1の構成は、この例に特に限定されず、上記の各機能の一部又は全部を専用のハードウエアから構成する等の種々の変更が可能である。   The robot arm control device 1 includes a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), an external storage device, a recording medium driving device, an input device, a display device, an external device interface, and the like. It can consist of computers. In this case, a robot arm control program (position control program) for executing a robot arm control process (position control process), which will be described later, is executed using a CPU or the like, so that the external interface unit 11 and the floating point data storage unit are executed. 12, the computer can function as the data conversion processing unit 13, the variable-length integer data storage unit 14, the control unit 15 with error, and the control unit 16 without error. The configuration of the robot arm control device 1 is not particularly limited to this example, and various modifications such as configuring a part or all of the above-described functions from dedicated hardware are possible.

外部インターフェース部11は、3次元位置方向センサ4から3次元位置データ及び方向データを取得して浮動小数点データ記憶部12に格納する。また、外部インターフェース部11は、ロボットアーム制御処理により求められた関節角度を浮動小数点データ記憶部12から読み出してロボットアーム部2へ出力し、ロボットアーム21の各関節角度がロボットアーム制御処理により求められた関節角度に制御される。   The external interface unit 11 acquires three-dimensional position data and direction data from the three-dimensional position / direction sensor 4 and stores them in the floating point data storage unit 12. Further, the external interface unit 11 reads out the joint angles obtained by the robot arm control processing from the floating point data storage unit 12 and outputs them to the robot arm unit 2, and each joint angle of the robot arm 21 is obtained by the robot arm control processing. The joint angle is controlled.

浮動小数点データ記憶部12は、誤差有制御処理部15において処理される種々のデータを浮動小数点データ形式で記憶し、可変長整数データ記憶部14は、無誤差制御処理部16において処理される種々のデータを可変長整数データ形式で記憶する。   The floating point data storage unit 12 stores various data processed by the control unit with error 15 in a floating point data format, and the variable length integer data storage unit 14 stores various data processed by the error-free control processing unit 16. Are stored in a variable-length integer data format.

図3は、浮動小数点データ及び可変長整数データのデータ構成の一例を示す図である。図3の(a)に示すように、固定長数値データの一例である浮動小数点データは、符号部、指数部及び仮数部から構成され、このようなデータ形式で浮動小数点データ記憶部12に格納される。また、図3の(b)に示すように、可変長整数データは、語長部、符号部、及び数値部(整数表現)から構成され、このようなデータ形式で可変長整数データ記憶部14に格納される。   FIG. 3 is a diagram illustrating an example of the data configuration of floating point data and variable-length integer data. As shown in FIG. 3A, floating-point data, which is an example of fixed-length numeric data, includes a sign part, an exponent part, and a mantissa part, and is stored in the floating-point data storage part 12 in such a data format. Is done. Further, as shown in FIG. 3B, the variable-length integer data is composed of a word length part, a sign part, and a numerical value part (integer expression), and the variable-length integer data storage unit 14 in such a data format. Stored in

データ変換処理部13は、浮動小数点データ記憶部12から浮動小数点データを読み出し、読み出した浮動小数点データを可変長整数データへ変換し、変換した可変長整数データを可変長整数データ記憶部14に格納する。また、データ変換処理部13は、可変長整数データ記憶部14から可変長整数データを読み出し、読み出した可変長整数データを浮動小数点データへ変換し、変換した浮動小数点データを浮動小数点データ記憶部12に格納する。   The data conversion processing unit 13 reads the floating point data from the floating point data storage unit 12, converts the read floating point data into variable length integer data, and stores the converted variable length integer data in the variable length integer data storage unit 14. To do. The data conversion processing unit 13 reads the variable length integer data from the variable length integer data storage unit 14, converts the read variable length integer data into floating point data, and converts the converted floating point data into the floating point data storage unit 12. To store.

なお、本発明に用いられる固定長数値データは、上記の例に特に限定されず、例えば、固定長整数データを用いることもできる。図3の(c)に示すように、固定長整数データは、符号部及び数値部(整数表現)から構成され、この固定長整数データ形式も、固定長であるため、誤差(数値のオーバーフロー及びそのまるめによる誤差)が発生し、本発明を同様に適用することができる。   The fixed-length numerical data used in the present invention is not particularly limited to the above example, and, for example, fixed-length integer data can be used. As shown in FIG. 3C, the fixed-length integer data is composed of a sign part and a numerical part (integer representation). Since this fixed-length integer data format is also a fixed length, an error (numeric overflow and An error due to rounding occurs, and the present invention can be applied similarly.

例えば、3次元位置方向センサ4が出力する値(角度)が、−255〜+255等の整数値であり、ロボットアーム21の関節を動作させるモータに対する出力(回転角度)も、−1000〜+1000パルス等の整数値である場合、浮動小数点データ記憶部12を固定長数値データ記憶部に変更し、固定長整数データ形式で各データを格納するようにしてもよい。また、固定長整数データ形式でデータを取り扱う場合、浮動小数点演算部15bを固定長整数演算部に変更し、固定長整数演算部により固定長整数演算を実行するようにしてもよい。   For example, the value (angle) output by the three-dimensional position / direction sensor 4 is an integer value such as −255 to +255, and the output (rotation angle) to the motor that operates the joint of the robot arm 21 is also −1000 to +1000 pulses. For example, the floating-point data storage unit 12 may be changed to a fixed-length numeric data storage unit, and each data may be stored in a fixed-length integer data format. When handling data in the fixed-length integer data format, the floating-point arithmetic unit 15b may be changed to a fixed-length integer arithmetic unit, and the fixed-length integer arithmetic unit may execute the fixed-length integer arithmetic.

誤差有制御処理部15は、ロボットアーム部2のロボットアーム21及びハンド22の制御処理のうち、固定長数値演算の一例である浮動小数点演算を用いた誤差有制御処理を実行する。座標変換処理部15aは、浮動小数点データ記憶部12から浮動小数点データを読み出し、浮動小数点演算部15bを用いて座標変換処理等(sin、cos演算)を浮動小数点演算で実行し、演算結果を浮動小数点データ記憶部12に格納する。浮動小数点演算部15bは、加算器、減算器、乗算器及び除算器としての機能を有し、浮動小数点演算を用いて、加算、減算、乗算及び除算を実行する。   The control unit with error 15 executes a control process with error using a floating-point calculation, which is an example of a fixed-length numerical calculation, among the control processes of the robot arm 21 and the hand 22 of the robot arm unit 2. The coordinate conversion processing unit 15a reads floating-point data from the floating-point data storage unit 12, performs coordinate conversion processing (sin, cos calculation), etc. by floating-point calculation using the floating-point calculation unit 15b, and floats the calculation result. Stored in the decimal point data storage unit 12. The floating point arithmetic unit 15b functions as an adder, a subtracter, a multiplier, and a divider, and executes addition, subtraction, multiplication, and division using floating point arithmetic.

無誤差制御処理部16は、ロボットアーム部2のロボットアーム21及びハンド22の制御処理のうち、可変長整数演算を用いた無誤差制御処理を実行する。方程式解法処理部16aは、可変長整数データ記憶部14から可変長整数データを読み出し、制御方程式の求解等を可変長整数演算部16bを用いて可変長整数演算で実行し、演算結果を可変長整数データ記憶部14に格納する。可変長整数演算部16bは、加算器、減算器及び乗算器としての機能を有し、可変長整数演算を用いて、加算、減算及び乗算を無誤差で実行する。   The error-free control processing unit 16 executes error-free control processing using variable-length integer arithmetic among the control processing of the robot arm 21 and the hand 22 of the robot arm unit 2. The equation solution processing unit 16a reads the variable-length integer data from the variable-length integer data storage unit 14, executes solution of the control equation, etc. by variable-length integer calculation unit 16b using the variable-length integer calculation unit 16b, and sets the calculation result to variable length Stored in the integer data storage unit 14. The variable-length integer arithmetic unit 16b functions as an adder, a subtracter, and a multiplier, and performs addition, subtraction, and multiplication without error using variable-length integer arithmetic.

ここで、本実施の形態の制御対象となるロボットアーム21について詳細に説明する。図4は、図1に示すロボットアーム部2における右側のロボットアーム21の構成を示す模式図であり、図5は、図1に示す右側のロボットアーム21の座標系を説明するための図である。なお、左側のロボットアーム21も、図4及び図5に示す右側のロボットアーム21と同様に構成されているので、詳細な説明は省略する。   Here, the robot arm 21 to be controlled in this embodiment will be described in detail. 4 is a schematic diagram showing a configuration of the right robot arm 21 in the robot arm unit 2 shown in FIG. 1, and FIG. 5 is a diagram for explaining a coordinate system of the right robot arm 21 shown in FIG. is there. The left robot arm 21 is configured in the same manner as the right robot arm 21 shown in FIGS.

図4に示すように、グローバル座標系の原点Oを上腕21aの右肩(第1関節)に、グローバル座標系のX座標軸を胴体部23(図1参照)の正面方向に沿って床面と平行方向に、グローバル座標系のY座標軸を右肩から左肩方向に、グローバル座標系のZ座標軸を床面から天井への垂直方向にそれぞれ設定する。また、ロボットアーム21の上腕21aの長さをe、前腕21bの長さをeとし、上腕21aの肩関節のうち第1関節(Y軸回り)の関節角度θ、第2関節(X軸回り)の関節角度θ、第3関節(Z軸回り)の関節角度θとし、上腕21aと前腕21bとの間の第4関節(Y軸回り)の関節角度θ、第5関節(Z軸回り)の関節角度θとし、前腕21bとハンド22との間の第6関節(Y軸回り)の関節角度θとする。 As shown in FIG. 4, the origin O of the global coordinate system is on the right shoulder (first joint) of the upper arm 21a, and the X coordinate axis of the global coordinate system is on the floor surface along the front direction of the body portion 23 (see FIG. 1). In the parallel direction, the Y coordinate axis of the global coordinate system is set from the right shoulder to the left shoulder direction, and the Z coordinate axis of the global coordinate system is set in the vertical direction from the floor surface to the ceiling. Further, the length of the upper arm 21a of the robot arm 21 is e 1 , the length of the forearm 21b is e 2, and the joint angle θ 1 of the first joint (around the Y axis) out of the shoulder joints of the upper arm 21a, the second joint ( The joint angle θ 2 around the X axis, the joint angle θ 3 around the third joint (around the Z axis), and the joint angle θ 4 around the fourth joint (around the Y axis) between the upper arm 21a and the forearm 21b, the fifth a joint angle theta 5 of the joint (Z axis), and the sixth joint angle theta 6 of the joint (Y axis) between a forearm 21b and the hand 22.

このとき、前腕21bの先端位置・方向Pすなわち操作者Mの手首に装着した3次元位置方向センサ4が示すグローバル座標に対する変換行列をH0sとすると、以下の式(1)のように表現することができる。 In this case, when the transformation matrix for the global coordinates indicated by the 3-dimensional position-direction sensor 4 attached to the wrist front end position and direction P s That operator M forearm 21b and H 0 s, expressed as the following equation (1) can do.

Figure 0004743699
Figure 0004743699

ここで、図5に示すように、3次元位置方向センサ4の3次元位置はP(x,y,z)、3次元位置方向センサ4の方向を表すX軸方向の単位ベクトルはdxs(uxs,vxs,wxs)、Y軸方向の単位ベクトルはdys(uys,vys,wys)、Z軸方向の単位ベクトルはdzs(uzs,vzs,wzs)となる。これらの値はすべて、3次元位置方向センサ4から取得されるので、既知となる。一方、H0sの各要素は、各アーム(上腕21a及び前腕21b)の軸の長さe,eと各関節角度θ,θ,θ,θ,θを用いて、以下のように表現することができる。 Here, as shown in FIG. 5, the three-dimensional position of the three-dimensional position / direction sensor 4 is P s (x s , y s , z s ), a unit vector in the X-axis direction that represents the direction of the three-dimensional position / direction sensor 4. Is d xs (u xs , v xs , w xs ), a unit vector in the Y-axis direction is d ys (u ys , v ys , w ys ), and a unit vector in the Z-axis direction is d zs (u zs , v zs , w zs ). These values are all known from the three-dimensional position / direction sensor 4. On the other hand, each element of H 0s uses the shaft lengths e 1 and e 2 and the joint angles θ 1 , θ 2 , θ 3 , θ 4 , and θ 5 of each arm (the upper arm 21a and the forearm 21b), It can be expressed as follows.

Figure 0004743699
Figure 0004743699

ここで、C=cos(θ)、S=sin(θ)(n=1,…,5)であり、関節角度θは、アーム動作により刻々と変化するので、時間tの関数となり、θ’を微小時間Δt前の関節角度(直前の関節角度)とし、微小時間Δt経過後における微小関節角度変化量をΔθとすると、以下のように表現することができる。
θ=θ’+Δθ (6)
ここで、微小時間Δt前の関節角度値θ’は既知であり、微小時間Δtは制御時間間隔である。
Here, C n = cos (θ n ), S n = sin (θ n ) (n = 1,..., 5), and the joint angle θ n changes every moment due to the arm operation. Assuming that θ n ′ is the joint angle before the minute time Δt (the previous joint angle) and the minute joint angle change amount after the minute time Δt has elapsed is Δθ n , it can be expressed as follows.
θ n = θ n '+ Δθ n (6)
Here, the joint angle value θ n ′ before the minute time Δt is known, and the minute time Δt is a control time interval.

上記の前提を基に、以下のように近似することができる。なお、下記式では、(Δθ)は微小であるので、(Δθ)以上の高次項は無視できるとした。
sin(θ)=sin(θ’+Δθ)≒sin(θ’)+(sin(θ’))’Δθ=sin(θ’)+cos(θ’)Δθ (7a)
cos(θ)=cos(θ’+Δθ)≒cos(θ’)+(cos(θ’))’Δθ=cos(θ’)−sin(θ’)Δθ (7b)
上記の式(7a)、(7b)を式(2)〜(5)へ代入すると、以下となる。なお、ここでも、ΔθΔθ等の高次のΔθは微小であり、無視できるとした。
Based on the above assumptions, it can be approximated as follows. In the following expression, (Δθ) 2 is very small, and therefore higher-order terms of (Δθ) 2 or more can be ignored.
sin (θ) = sin (θ ′ + Δθ) ≈sin (θ ′) + (sin (θ ′)) ′ Δθ = sin (θ ′) + cos (θ ′) Δθ (7a)
cos (θ) = cos (θ ′ + Δθ) ≈cos (θ ′) + (cos (θ ′)) ′ Δθ = cos (θ ′) − sin (θ ′) Δθ (7b)
Substituting the above equations (7a) and (7b) into equations (2) to (5) yields the following. In this case as well, high-order Δθ such as Δθ 1 Δθ 2 is very small and can be ignored.

Figure 0004743699
Figure 0004743699

Figure 0004743699
Figure 0004743699

Figure 0004743699
Figure 0004743699

Figure 0004743699
Figure 0004743699

上記各式より、式(1)は、以下のように表現することができる。   From the above equations, equation (1) can be expressed as follows.

Figure 0004743699
Figure 0004743699

そこで、Δθ,Δθ,Δθ,Δθ,Δθは、以下の5元連立一次方程式の解として求めることができる。 Therefore, Δθ 1 , Δθ 2 , Δθ 3 , Δθ 4 , and Δθ 5 can be obtained as solutions of the following five-way simultaneous linear equations.

Figure 0004743699
Figure 0004743699

また、上式の左辺の行列の各要素を係数aij(i=1,…,5、j=1,…,5)、右辺のベクトルの各要素を係数b(i=1,…,5)で表すと、以下のように表現することができる。 Further, each element of the matrix on the left side of the above expression is a coefficient a ij (i = 1,..., 5, j = 1,..., 5), and each element of the vector on the right side is a coefficient b i (i = 1,. When expressed in 5), it can be expressed as follows.

Figure 0004743699
Figure 0004743699

上記の5元連立一次方程式の解法では、加減乗除算が繰り返されるために、浮動小数点演算を用いた数値計算では、数値演算誤差とその蓄積のために解の誤差が大きくなり、連立方程式の解を求める処理が演算誤差のために暴走及び破綻することが多々ある。このように解の誤差が大きくなること、及び連立方程式の解を求める処理が暴走及び破綻することは、ロボットアームが人に危害を加える恐れがあるため、ロボットアームの制御においては許されない。また、除算を使用する場合、数値計算に計算精度の低下等の様々な悪影響を及ぼすことはもちろんのこと、無誤差演算自体を行うことはできない。   In the solution of the above five-way simultaneous linear equations, addition / subtraction / multiplication / division is repeated. Therefore, in numerical calculation using floating point arithmetic, the numerical calculation error and the error due to its accumulation increase. In many cases, the process for obtaining a runaway and failure occurs due to a calculation error. Such an increase in the error of the solution and the runaway and failure of the processing for finding the solution of the simultaneous equations are not allowed in the control of the robot arm because the robot arm may cause harm to humans. In addition, when division is used, error-free calculation itself cannot be performed as well as various adverse effects such as a decrease in calculation accuracy in numerical calculations.

このため、本実施の形態では、ガウス・ジョルダンの消去法を基本にし、最後の1回を除いて除算が発生しない無誤差連立一次方程式解法処理を考案し、式(15)の解法に誤差を発生させない無誤差演算を用い、各関節角度θ,θ,θ,θ,θを以下のようにして求めている。 Therefore, in this embodiment, based on the Gauss-Jordan elimination method, an error-free simultaneous linear equation solving process that does not generate division except for the last one is devised, and an error is introduced into the solution of equation (15). Using the error-free calculation that does not occur, the joint angles θ 1 , θ 2 , θ 3 , θ 4 , and θ 5 are obtained as follows.

まず、式(15)の係数aij(i=1,…,5、j=1,…,5)及び係数b(i=1,…,5)を用いて、k=1,…,5として、下記の式を繰り返し演算することにより係数a ij及び係数b を求める。
k+1 ij=a ij (i=k) (16a)
k+1 ij=a ij kk−a kj ik (i≠k) (16b)
k+1 =b (i=k) (16c)
k+1 =b kk−b ik (i≠k) (16d)
上記の係数a ij及び係数b により、式(15)は以下の形式となる。
First, k = 1,..., Using coefficients a ij (i = 1,..., 5, j = 1,..., 5) and coefficients b i (i = 1,. 5, the coefficient a 6 ij and the coefficient b 6 i are obtained by repeatedly calculating the following equation.
a k + 1 ij = a k ij (i = k) (16a)
a k + 1 ij = a k ij a k kk −a k kj a k ik (i ≠ k) (16b)
b k + 1 i = b k i (i = k) (16c)
b k + 1 i = b k i a k kk -b k k a k ik (i ≠ k) (16d)
With the coefficient a 6 ij and the coefficient b 6 i , the expression (15) is in the following form.

Figure 0004743699
Figure 0004743699

上記のように、式(17)の左辺の係数行列は、対角要素以外が0となる対角行列となる。上記の演算までは、除算を使用する必要がないため、本実施の形態では、式(15)の連立一次方程式の解法処理のうち上記の演算までの処理を、無誤差制御処理部16による無誤差演算を用いて実行し、ここまでの演算を無誤差で行っている。   As described above, the coefficient matrix on the left side of Expression (17) is a diagonal matrix in which the elements other than the diagonal elements are zero. Since it is not necessary to use division until the above calculation, in the present embodiment, the processing up to the above calculation in the solution processing of the simultaneous linear equations of Equation (15) is performed by the error-free control processing unit 16. The calculation is performed using error calculation, and the calculation so far is performed without error.

次に、各関節角度θ,θ,θ,θ,θは、以下の式により求めることができる。 Next, the joint angles θ 1 , θ 2 , θ 3 , θ 4 , and θ 5 can be obtained by the following equations.

Figure 0004743699
Figure 0004743699

上記の式(18)の演算だけは、除算が回避できないために、本実施の形態では、誤差有制御処理部15による浮動小数点演算を用いて実行している。この浮動小数点演算により誤差が発生するが、この処理は最終処理であり、且つ1回の除算を行うだけであるため、除算に充分な精度が確保されていれば、誤差が問題になることはなく、誤差の蓄積も起こらない。なお、手首の角度θは、3次元操作グローブ3により直接取得することができるので、上記の無誤差連立一次方程式解法処理からは求めていない。 In the present embodiment, only the calculation of the above equation (18) cannot be avoided, and therefore, in the present embodiment, the calculation is performed using the floating point calculation by the control unit with error 15. Although an error occurs due to this floating-point operation, since this process is a final process and only one division is performed, the error may be a problem if sufficient accuracy is ensured for the division. There is no error accumulation. Since the wrist angle θ 6 can be directly obtained by the three-dimensional operation glove 3, it is not obtained from the above error-free simultaneous linear equation solving process.

ロボットアーム制御装置1は、上記の無誤差連立一次方程式解法処理(目標データPから関節角度θを求める解法処理)を以下のようにして実行している。   The robot arm control device 1 executes the error-free simultaneous linear equation solving process (the solving process for obtaining the joint angle θ from the target data P) as follows.

外部インターフェース部11は、ロボットアームの21の先端部の目標3次元位置(3次元位置方向センサ4の3次元位置P)及び目標方向(X、Y、Z軸方向の単位ベクトルdxs、dys、dzs)からなる目標データPを3次元位置方向センサ4から取得し、浮動小数点データ記憶部12に浮動小数点データ形式で記憶させる。このとき、浮動小数点データ記憶部12には、微小時間Δt前の位置方向データP’及び微小時間Δt前の関節角度データθ’が記憶されており、また、上腕21aの長さe、前腕21bの長さe等の初期値は予め記憶されているものとする。 The external interface unit 11 includes a target three-dimensional position (three-dimensional position P s of the three-dimensional position / direction sensor 4) and a target direction (unit vectors d xs , d in the X, Y, and Z axis directions) of the tip of the robot arm 21. Target data P consisting of ys , d zs ) is acquired from the three-dimensional position / direction sensor 4 and stored in the floating point data storage unit 12 in the floating point data format. At this time, the floating-point data storage unit 12 stores the position direction data P ′ before the minute time Δt and the joint angle data θ ′ i before the minute time Δt, and the length e 1 of the upper arm 21a. the initial value of such length e 2 of the forearm 21b is assumed to be stored in advance.

ここで、上記の微小時間Δt前の位置方向データP’は、微小時間Δt前の目標データではなく、微小時間Δt前の実際の3次元位置データ及び方向データであり、微小時間Δt前の関節角度データθ’もアームの実際の関節角度である。これは、後述するように、P’、θ’及びPからΔθを求め(線形近似後、連立一次方程式を無誤差で解く)、そして、θ=θ’+Δθからθを求めており、ここで(線形)近似しているため、このθから求めた実際の位置方向データは目標データと一致せず、次の時刻の計算では、微小時間Δt前の目標データ等ではなく、微小時間Δt前の実際の3次元位置データ及び方向データ、並びに微小時間Δt前の実際の関節角度データを用いているためである。 Here, the position direction data P ′ before the minute time Δt is not the target data before the minute time Δt but the actual three-dimensional position data and direction data before the minute time Δt, and the joint before the minute time Δt. The angle data θ ′ i is also the actual joint angle of the arm. As will be described later, Δθ is obtained from P ′, θ ′ and P (after linear approximation, the simultaneous linear equations are solved without error), and θ is obtained from θ = θ ′ + Δθ. Since (linear) approximation is performed, the actual position / direction data obtained from θ does not match the target data, and the next time calculation is not the target data before the minute time Δt but the minute data Δt before. This is because actual three-dimensional position data and direction data, and actual joint angle data before a minute time Δt are used.

座標変換処理部15aは、浮動小数点データ記憶部12から微小時間Δt前の関節角度θ’、上腕21aの長さe、前腕21bの長さeを読み出し、浮動小数点演算部15bを用いて浮動小数点演算を実行することにより式(15)の係数データaijを算出し、浮動小数点データ記憶部12に記憶させる。また、座標変換処理部15aは、浮動小数点データ記憶部12から目標データP及び微小時間Δt前の位置方向データP’を読み出し、浮動小数点演算部15bを用いて浮動小数点演算を実行することにより式(15)の係数データbを算出し、浮動小数点データ記憶部12に記憶させる。 Coordinate conversion processing unit 15a reads the floating-point data minute time from the storage unit 12 Delta] t before joint angle theta 'i, the length e 1 of the upper arm 21a, the forearm 21b length e 2, using a floating point arithmetic unit 15b Then, the coefficient data a ij of the equation (15) is calculated by executing the floating point calculation, and is stored in the floating point data storage unit 12. Further, the coordinate conversion processing unit 15a reads the target data P and the position direction data P ′ before the minute time Δt from the floating point data storage unit 12, and executes the floating point calculation using the floating point calculation unit 15b. The coefficient data b i of (15) is calculated and stored in the floating point data storage unit 12.

データ変換処理部13は、浮動小数点データ記憶部12から係数aij及び係数bを順次読み出し、浮動小数点データ形式から可変長整数データ形式に変換した係数aij及び係数bを、係数a ij及び係数b として可変長整数データ記憶部14に格納する。 The data conversion processing unit 13 sequentially reads the coefficient a ij and the coefficient b i from the floating-point data storage unit 12 and converts the coefficient a ij and the coefficient b i converted from the floating-point data format to the variable-length integer data format into the coefficient a 1 ij and coefficient b 1 i are stored in the variable-length integer data storage unit 14.

方程式解法処理部16aは、可変長整数データ記憶部14から係数a ij及び係数b を読み出し、可変長整数演算部16bを用いて可変長整数演算(無誤差演算)を実行することにより、式(16a)乃至(16d)を用いて係数ak+1 ij及びbk+1 を順次算出し、最終的に係数a ij及びb を可変長整数データ記憶部14に格納する。 The equation solution processing unit 16a reads the coefficient a 1 ij and the coefficient b 1 i from the variable length integer data storage unit 14, and executes a variable length integer calculation (error-free calculation) using the variable length integer calculation unit 16b. The coefficients a k + 1 ij and b k + 1 i are sequentially calculated using the equations (16a) to (16d), and finally the coefficients a 6 ij and b 6 i are stored in the variable-length integer data storage unit 14.

データ変換処理部13は、可変長整数データ記憶部14から係数a ii及び係数b を順次読み出し、可変長整数データ形式から浮動小数点データ形式に変換した係数a ii及び係数b を浮動小数点データ記憶部12に格納する。 The data conversion processing unit 13 sequentially reads the coefficient a 6 ii and the coefficient b 6 i from the variable length integer data storage unit 14 and converts the coefficient a 6 ii and the coefficient b 6 i from the variable length integer data format to the floating point data format. Is stored in the floating-point data storage unit 12.

座標変換処理部15aは、浮動小数点データ記憶部12から係数a ii及び係数b を順次読み出し、浮動小数点演算部15bを用いて浮動小数点演算の除算を1回だけ実行することにより、微小関節角度変化量Δθ=b /a iiを算出し、浮動小数点データ記憶部12に格納する。そして、座標変換処理部15aは、浮動小数点データ記憶部12から直前の関節角度値θ’及び微小関節角度変化量Δθを順次読み出し、浮動小数点演算部15bを用いて浮動小数点演算を実行することにより式(18)を用いて関節角度θを算出し、浮動小数点データ記憶部12に格納する。 The coordinate conversion processing unit 15a sequentially reads the coefficient a 6 ii and the coefficient b 6 i from the floating-point data storage unit 12 and executes the division of the floating-point calculation only once using the floating-point calculation unit 15b. The joint angle change amount Δθ i = b 6 i / a 6 ii is calculated and stored in the floating point data storage unit 12. Then, the coordinate conversion processing unit 15a sequentially reads the previous joint angle value θ ′ i and the minute joint angle change amount Δθ i from the floating point data storage unit 12, and executes the floating point calculation using the floating point calculation unit 15b. Thus, the joint angle θ i is calculated using the equation (18) and stored in the floating point data storage unit 12.

外部インターフェース部11は、浮動小数点データ記憶部12から関節角度θを読み出してロボットアーム部2へ出力する。ロボットアーム部2は、ロボットアーム21の各関節角度が関節角度θとなるようにロボットアーム21を動作させる。 The external interface unit 11 reads the joint angle θ i from the floating point data storage unit 12 and outputs it to the robot arm unit 2. The robot arm unit 2 operates the robot arm 21 so that each joint angle of the robot arm 21 becomes the joint angle θ i .

上記の制御動作により、操作者Mは、3次元ディスプレイ5を用いて、カメラ部24により撮影された画像を見ながら、両手に装着した3次元操作グローブ3を用いて、ロボットアーム21及びハンド22を操作し、操作者Mの腕と手の動きとがロボットアーム21及びハンド22により忠実に再現される。   By the above control operation, the operator M uses the 3D operation glove 3 attached to both hands while viewing the image taken by the camera unit 24 using the 3D display 5 and uses the robot arm 21 and the hand 22. The movement of the arm and hand of the operator M is faithfully reproduced by the robot arm 21 and the hand 22.

本実施の形態では、データ変換処理部13が変換手段の一例に相当し、無誤差制御処理部16(方程式解法処理部16a及び可変長整数演算部16b)が無誤差演算手段の一例に相当し、誤差有制御処理部15(座標変換処理部15a及び浮動小数点演算部15b)が誤差演算手段の一例に相当する。   In the present embodiment, the data conversion processing unit 13 corresponds to an example of a conversion unit, and the error-free control processing unit 16 (the equation solution processing unit 16a and the variable length integer calculation unit 16b) corresponds to an example of an error-free calculation unit. The control unit 15 with error (coordinate conversion processing unit 15a and floating point calculation unit 15b) corresponds to an example of an error calculation unit.

次に、上記のように構成されたロボットアーム制御装置1によるロボットアーム制御処理について説明する。図6は、図1に示すロボットアーム制御装置1によるロボットアーム制御処理を説明するためのフローチャートである。   Next, robot arm control processing by the robot arm control device 1 configured as described above will be described. FIG. 6 is a flowchart for explaining the robot arm control processing by the robot arm control device 1 shown in FIG.

図6に示すように、まず、ステップS11において、外部インターフェース部11は、3次元位置方向センサ4から3次元位置データP(x,y,z)、X軸方向の単位ベクトルdxs(uxs,vxs,wxs)、Y軸方向の単位ベクトルdys(uys,vys,wys)、及びZ軸方向の単位ベクトルdzs(uzs,vzs,wzs)を取得して浮動小数点データ記憶部12に格納する。 As shown in FIG. 6, first, in step S11, the external interface unit 11 receives the three-dimensional position data P s (x s , y s , z s ) from the three-dimensional position / direction sensor 4 and the unit vector d in the X-axis direction. xs (u xs , v xs , w xs ), unit vector d ys (u ys , v ys , w ys ) in the Y-axis direction, and unit vector d zs (u zs , v zs , w zs ) in the Z-axis direction Is stored in the floating-point data storage unit 12.

次に、ステップS12において、座標変換処理部15aは、浮動小数点データ記憶部12から3次元位置データP(x,y,z)等を順次読み出し、浮動小数点演算部15bを用いて、式(15)の係数aij(i=1,…,5、j=1,…,5)及び係数b(i=1,…,5)を求め、浮動小数点データ記憶部12に格納する。 Next, in step S12, the coordinate conversion processing unit 15a sequentially reads the three-dimensional position data P s (x s , y s , z s ) and the like from the floating point data storage unit 12 and uses the floating point calculation unit 15b. , The coefficient a ij (i = 1,..., 5, j = 1,..., 5) and the coefficient b i (i = 1,..., 5) in Expression (15) are obtained and stored in the floating-point data storage unit 12. To do.

次に、ステップS13において、データ変換処理部13は、浮動小数点データ記憶部12から係数aij及び係数bを順次読み出し、浮動小数点データ形式から可変長整数データ形式に変換した係数aij及び係数bを、係数a ij及び係数b として可変長整数データ記憶部14に格納する。 Next, in step S13, the data conversion processing unit 13 sequentially reads the coefficient a ij and the coefficient b i from the floating point data storage unit 12, and converts the coefficient a ij and the coefficient converted from the floating point data format to the variable length integer data format. b i is stored in the variable-length integer data storage unit 14 as a coefficient a 1 ij and a coefficient b 1 i .

なお、上記のステップS12及びS13では、浮動小数点演算を用いて3次元位置データP(x,y,z)等から係数aij及び係数bを求めた後に、可変長整数データへフォーマット変換したが、この例に特に限定されず、データ変換処理部13により3次元位置データP(x,y,z)、X軸方向の単位ベクトルdxs(uxs,vxs,wxs)、Y軸方向の単位ベクトルdys(uys,vys,wys)、及びZ軸方向の単位ベクトルdzs(uzs,vzs,wzs)を浮動小数点データから可変長整数データに変換し、その後、方程式解法処理部16aにより可変長整数データの3次元位置データP(x,y,z)等から可変長整数データの係数aij及び係数bを求めるようにしてもよい。 In steps S12 and S13, variable length integer data is obtained after the coefficients a ij and the coefficients b i are obtained from the three-dimensional position data P s (x s , y s , z s ) and the like using floating point arithmetic. However, the present invention is not particularly limited to this example, and the data conversion processing unit 13 uses the three-dimensional position data P s (x s , y s , z s ) and the unit vector d xs (u xs , v) in the X-axis direction. xs , w xs ), unit vector d ys (u ys , v ys , w ys ) in the Y-axis direction, and unit vector d zs (u zs , v zs , w zs ) in the Z-axis direction are variable from floating-point data converted to a long integer data, then, three-dimensional position data P s of the variable length integer data by equation solving section 16a (x s, y s, z s) coefficients a ij and engagement of the variable-length integer data from such I may be obtained b i.

次に、ステップS14〜S16において、方程式解法処理部16aは、初期設定として、k=1、i=1、j=1に設定する。次に、ステップS17において、方程式解法処理部16aは、可変長整数データ記憶部14から係数a ij,a kk,a kj,a ikを読み出し、可変長整数演算部16bを用いて、i=kの場合はak+1 ij=a ijに設定し、i≠kの場合はak+1 ij=a ij kk−a kj ikを算出し、係数ak+1 ijを可変長整数データ記憶部14に格納する。 Next, in steps S14 to S16, the equation solution processing unit 16a sets k = 1, i = 1, and j = 1 as initial settings. Next, in step S17, the equation solution processing unit 16a reads the coefficients a k ij , a k kk , a k kj , and a k ik from the variable length integer data storage unit 14, and uses the variable length integer calculation unit 16b. , If i = k, set a k + 1 ij = a k ij , if i ≠ k, calculate a k + 1 ij = a k ij a a k kk −a k kj a k ik and calculate the coefficient a k + 1 ij It is stored in the variable length integer data storage unit 14.

次に、ステップS18において、方程式解法処理部16aは、j<5であるか否かを判断し、j<5の場合、ステップS27においてjを1だけインクリメントしてステップS17以降の処理を継続し、j<5でない(j=5)場合、ステップS19へ処理を移行する。   Next, in step S18, the equation solution processing unit 16a determines whether or not j <5. If j <5, j is incremented by 1 in step S27 and the processing from step S17 is continued. If j <5 is not satisfied (j = 5), the process proceeds to step S19.

j<5でない場合、ステップS19において、方程式解法処理部16aは、可変長整数データ記憶部14から係数b ,a kk,b ,a ikを読み出し、可変長整数演算部16bを用いて、i=kの場合はbk+1 =b に設定し、i≠kの場合はbk+1 =b kk−b ikを算出し、係数bk+1 を可変長整数データ記憶部14に格納する。 If j <5 is not satisfied, in step S19, the equation solution processing unit 16a reads the coefficients b k i , a k kk , b k k , and a k ik from the variable-length integer data storage unit 14, and the variable-length integer calculation unit 16b. Is set to b k + 1 i = b k i if i = k, and b k + 1 i = b k i a k kk −b k k a k ik if i ≠ k, and the coefficient b k + 1 i is stored in the variable-length integer data storage unit 14.

次に、ステップS20において、方程式解法処理部16aは、i<5であるか否かを判断し、i<5の場合、ステップS26においてiを1だけインクリメントしてステップS16以降の処理を継続し、i<5でない(i=5)場合、ステップS21へ処理を移行する。   Next, in step S20, the equation solution processing unit 16a determines whether i <5. If i <5, i is incremented by 1 in step S26, and the processing from step S16 is continued. If i <5 is not satisfied (i = 5), the process proceeds to step S21.

i<5でない場合、ステップS21において、方程式解法処理部16aは、k<5であるか否かを判断し、k<5の場合、ステップS25においてkを1だけインクリメントしてステップS15以降の処理を継続し、k<5でない(k=5)場合、ステップS22へ処理を移行する。このように、ステップS14〜S21及びS25〜S27までの処理が無誤差演算を用いて実行される。   If i <5 is not satisfied, the equation solving processing unit 16a determines whether or not k <5 in step S21. If k <5, k is incremented by 1 in step S25, and the processing after step S15 is performed. If k <5 is not satisfied (k = 5), the process proceeds to step S22. In this way, the processes from steps S14 to S21 and S25 to S27 are executed using error-free computation.

次に、ステップS22において、データ変換処理部13は、可変長整数データ記憶部14から係数a ii及び係数b (i=1,…,5)を順次読み出し、可変長整数データ形式から浮動小数点データ形式に変換し、変換した係数a ii及び係数b を浮動小数点データ記憶部12に格納する。 Next, in step S22, the data conversion processing unit 13 sequentially reads the coefficient a 6 ii and the coefficient b 6 i (i = 1,..., 5) from the variable length integer data storage unit 14, and from the variable length integer data format. The data is converted into the floating-point data format, and the converted coefficient a 6 ii and coefficient b 6 i are stored in the floating-point data storage unit 12.

次に、ステップS23において、座標変換処理部15aは、浮動小数点データ記憶部12から係数a ii及び係数b (i=1,…,5)を順次読み出し、浮動小数点演算部15bを用いて、微小関節角度変化量Δθ=b /a ii(i=1,…,5)を算出し、浮動小数点データ記憶部12に格納する。 Next, in step S23, the coordinate conversion processing unit 15a sequentially reads the coefficient a 6 ii and the coefficient b 6 i (i = 1,..., 5) from the floating point data storage unit 12, and uses the floating point calculation unit 15b. Then, the small joint angle change amount Δθ i = b 6 i / a 6 ii (i = 1,..., 5) is calculated and stored in the floating-point data storage unit 12.

次に、ステップS24において、座標変換処理部15aは、浮動小数点データ記憶部12から直前の関節角度値θ’及び微小関節角度変化量Δθ(i=1,…,5)を順次読み出し、浮動小数点演算部15bを用いて、式(18)に従って関節角度θ=θ’+Δθ(i=1,…,5)を算出し、浮動小数点データ記憶部12に格納する。このとき、外部インターフェース部11は、浮動小数点データ記憶部12から関節角度θ,θ,θ,θ,θを読み出してロボットアーム部2へ出力する。 Next, in step S24, the coordinate conversion processing unit 15a sequentially reads the previous joint angle value θ ′ i and the minute joint angle change amount Δθ i (i = 1,..., 5) from the floating point data storage unit 12, The joint angle θ i = θ ′ i + Δθ i (i = 1,..., 5) is calculated using the floating point arithmetic unit 15 b according to the equation (18) and stored in the floating point data storage unit 12. At this time, the external interface unit 11 reads out the joint angles θ 1 , θ 2 , θ 3 , θ 4 , θ 5 from the floating point data storage unit 12 and outputs them to the robot arm unit 2.

ロボットアーム部2は、ロボットアーム21の各関節角度が関節角度θ,θ,θ,θ,θとなるようにロボットアーム21を動作させる。なお、手首の関節角度θは、3次元操作グローブ3から直接取得することができるので、3次元操作グローブ3により検出された関節角度θがロボットアーム制御装置1を介してロボットアーム部2へ出力され、ロボットアーム部2は、ロボットアーム21の手首の関節角度が関節角度θとなるようにロボットアーム21を動作させる。上記の処理が制御時間間隔ごとに繰り返され、ロボットアーム21の先端位置が操作者Mの手首の位置に応じて正確に制御される。 The robot arm unit 2 operates the robot arm 21 so that the joint angles of the robot arm 21 are the joint angles θ 1 , θ 2 , θ 3 , θ 4 , and θ 5 . Since the wrist joint angle θ 6 can be directly obtained from the three-dimensional operation glove 3, the joint angle θ 6 detected by the three-dimensional operation glove 3 is obtained via the robot arm control device 1. is output to the robot arm unit 2 operates the robot arm 21 as wrist joint angles of the robot arm 21 is joint angle theta 6. The above process is repeated every control time interval, and the tip position of the robot arm 21 is accurately controlled according to the wrist position of the operator M.

上記の処理により、本実施の形態では、ロボットアーム制御処理において用いられる逆変換制御演算(連立一次方程式解法)に使用される数値を可変長の整数により表現するとともに、除算を実行することなく(最後の除算を除く)、加算、減算及び乗算のみを用いた無誤差演算処理を実行し、制御演算誤差をなくすことができる。   By the above processing, in this embodiment, the numerical value used for the inverse transformation control calculation (simultaneous linear equation solving) used in the robot arm control processing is expressed by a variable-length integer, and division is not performed ( Error-free arithmetic processing using only addition, subtraction, and multiplication can be executed (except for the last division), and control arithmetic errors can be eliminated.

この結果、ロボットアーム21の先端部を高精度に制御することができるとともに、制御処理の破綻をなくしてロボットアーム21の動作の暴走等をなくすことができ、ロボットアーム21の動作の安定化及び高信頼化を図ることができる。また、ロボットアーム21の暴走防止対策等が不要となるので、ロボットアーム制御装置1の構成を単純化することができ、装置の低コスト化を実現することができる。   As a result, the tip of the robot arm 21 can be controlled with high accuracy, the control process can be prevented from being broken, and the robot arm 21 can be prevented from running out of control. High reliability can be achieved. In addition, since it is not necessary to take measures to prevent the robot arm 21 from running away, the configuration of the robot arm control device 1 can be simplified, and the cost of the device can be reduced.

なお、本実施の形態では、操作者の手首の位置及び方向を検出し、これらを目標位置及び目標方向として制御したが、本発明による制御例は、この例に特に限定されず、3次元操作グローブ3、3次元位置方向センサ4及び3次元ディスプレイ5を省略し、テーチングを行うことにより浮動小数点データ記憶部12に記憶した目標位置及び目標方向となるようにロボットアーム21を制御する等の他の制御例にも適用可能である。また、ロボットアーム21を制御対象としたが、この例に特に限定されず、ハンド22を制御対象にする等の種々の変更が可能である。   In this embodiment, the position and direction of the wrist of the operator are detected and controlled as the target position and target direction. However, the control example according to the present invention is not particularly limited to this example, and the three-dimensional operation is performed. Other than the globe 3, the three-dimensional position / direction sensor 4 and the three-dimensional display 5, the robot arm 21 is controlled so that the target position and target direction stored in the floating-point data storage unit 12 are obtained by performing teaching. This example can also be applied. Although the robot arm 21 is the control target, the present invention is not particularly limited to this example, and various modifications such as making the hand 22 a control target are possible.

本発明の一実施の形態によるロボットアーム制御装置を用いたロボットアーム制御システムの構成を示すブロック図である。It is a block diagram which shows the structure of the robot arm control system using the robot arm control apparatus by one embodiment of this invention. 図1に示すロボットアーム制御装置の構成を示すブロック図である。It is a block diagram which shows the structure of the robot arm control apparatus shown in FIG. 浮動小数点データ及び可変長整数データのデータ構成の一例を示す図である。It is a figure which shows an example of the data structure of floating point data and variable-length integer data. 図1に示すロボットアーム部における右側のロボットアームの構成を示す模式図である。It is a schematic diagram which shows the structure of the robot arm of the right side in the robot arm part shown in FIG. 図3に示す右側のロボットアームの座標系を説明するための図である。It is a figure for demonstrating the coordinate system of the robot arm of the right side shown in FIG. 図1に示すロボットアーム制御装置によるロボットアーム制御処理を説明するためのフローチャートである。It is a flowchart for demonstrating the robot arm control processing by the robot arm control apparatus shown in FIG.

符号の説明Explanation of symbols

1 ロボットアーム制御装置
2 ロボットアーム部
3 3次元操作グローブ
4 3次元位置方向センサ
5 3次元ディスプレイ
11 外部インターフェース部
12 浮動小数点データ記憶部
13 データ変換処理部
14 可変長整数データ記憶部
15 誤差有制御処理部
15a 座標変換処理部
15b 浮動小数点演算部
16 無誤差制御処理部
16a 方程式解法処理部
16b 可変長整数演算部
21 ロボットアーム
21a 上腕
21b 前腕
22 ハンド
23 胴体部
24 カメラ部
DESCRIPTION OF SYMBOLS 1 Robot arm control apparatus 2 Robot arm part 3 3D operation glove 4 3D position direction sensor 5 3D display 11 External interface part 12 Floating point data storage part 13 Data conversion process part 14 Variable length integer data storage part 15 Control with error Processing unit 15a Coordinate transformation processing unit 15b Floating point arithmetic unit 16 Error-free control processing unit 16a Equation solution processing unit 16b Variable length integer arithmetic unit 21 Robot arm 21a Upper arm 21b Forearm 22 Hand 23 Body unit 24 Camera unit

Claims (5)

関節を介して複数のリンクを連結したリンク機構の所定部位を目標3次元位置及び目標方向に制御する位置制御装置であって、
リンク機構の所定部位の目標3次元位置データ及び目標方向データからなる目標データをP、リンク機構の各関節角度をθとし、目標データPから関節角度θを求める解法処理に使用されるデータを固定長数値データ形式から可変長整数データ形式へ変換する変換手段と、
前記解法処理において、前記変換手段により変換された可変長整数データ形式のデータを用いて、除算を除く加算、減算及び乗算からなる無誤差演算を実行する無誤差演算手段とを備え
前記変換手段は、前記無誤差演算手段の演算結果を可変長整数データ形式から固定長数値データ形式へ変換し、
前記解法処理において、前記変換手段により変換された固定長数値データ形式の演算結果を用いて1回のみの除算を含む固定長数値演算を実行することにより固定長数値データ形式の関節角度θを求める誤差演算手段をさらに備えることを特徴とする位置制御装置。
A position control device that controls a predetermined part of a link mechanism in which a plurality of links are connected via a joint in a target three-dimensional position and a target direction,
The target data consisting of target three-dimensional position data and target direction data of a predetermined part of the link mechanism is P, each joint angle of the link mechanism is θ, and the data used for the solution processing for obtaining the joint angle θ from the target data P is fixed. Conversion means for converting from a long numeric data format to a variable-length integer data format;
In the solution processing, using the data in the variable-length integer data format converted by the conversion means, comprising error-free calculation means for executing error-free calculation including addition, subtraction, and multiplication excluding division ,
The converting means converts the calculation result of the error-free calculating means from a variable-length integer data format to a fixed-length numeric data format,
In the solution processing, the joint angle θ in the fixed-length numeric data format is obtained by executing a fixed-length numeric calculation including only one division using the calculation result in the fixed-length numeric data format converted by the conversion means. A position control device further comprising error calculation means .
前記無誤差演算手段は、θ=θ’+Δθ(i=1,…,n)(ここで、θは関節iの求める関節角度、θ’は微小時間Δt前の関節iの関節角度、Δθは微小時間Δt経過後の関節iの微小関節角度変化量、nは求める関節角度θの数)とし、n元連立一次方程式AΔθ=B(ここで、Aはその要素aij(i=1,…,n、j=1,…,n)がリンク機構のリンク長及び微小時間Δt前の関節iの関節角度θ’により決定される係数行列、Bはその要素b(i=1,…,n)が目標データP及び微小時間Δt前の位置方向データP’により決定されるベクトル)をAnΔθ=Bn(ここで、Anは対角要素an+1 ii(i=1,…,n)以外が0となる対角行列、Bnは要素bn+1 (i=1,…,n)のベクトル)に変形したときの係数データan+1 ii及び係数データbn+1 を、除算を除く加算、減算及び乗算からなる無誤差演算を用いて求め、
前記変換手段は、前記無誤差演算手段により求められた係数データan+1 ii及び係数データbn+1 を可変長整数データ形式から固定長数値データ形式へ変換し、
前記誤差演算手段は、前記変換手段により変換された固定長数値データ形式の係数データan+1 ii及び係数データbn+1 を用いて、θ=θ’+bn+1 /an+1 ii(i=1,…,n)を固定長数値演算により求めることを特徴とする請求項記載の位置制御装置。
The error-free computing means is: θ i = θ ′ i + Δθ i (i = 1,..., N) (where θ i is the joint angle obtained by the joint i, θ ′ i is the joint i before the minute time Δt) The joint angle, Δθ i is a minute joint angle change amount of the joint i after the minute time Δt has elapsed, n is the number of joint angles θ to be obtained, and n-ary simultaneous linear equations AΔθ = B (where A is an element a ij (I = 1,..., N, j = 1,..., N) is a coefficient matrix determined by the link length of the link mechanism and the joint angle θ ′ i of the joint i before the minute time Δt, and B is an element b i (i = 1, ..., n ) is a vector) which is determined by the target data P and minute time Δt before the position-direction data P 'AnΔθ = Bn (where, an is diagonal element a n + 1 ii (i = 1 , ..., n) except becomes zero diagonal matrix, Bn elements b n + 1 i (i = 1, ..., n) varying in vector) of The coefficient data a n + 1 ii and coefficient data b n + 1 i when the, determined using summing except division, the error free operation consisting of subtraction and multiplication,
The conversion means converts the coefficient data a n + 1 ii and coefficient data b n + 1 i obtained by the error-free calculating means from a variable-length integer data format to a fixed-length numeric data format,
The error calculation means uses the coefficient data an + 1 ii and coefficient data bn + 1 i in the fixed-length numerical data format converted by the conversion means, and θ i = θ ′ i + b n + 1 i / a n + 1 ii (i = 1, ..., n) position control device according to claim 1, wherein the determination by the fixed length numerical operations to.
操作者の所定部位の3次元位置及び方向を検出する検出手段をさらに備え、
前記検出手段により検出された3次元位置及び方向を前記リンク機構の所定部位の目標3次元位置データ及び目標方向データとして用いて、前記リンク機構の所定部位を目標3次元位置及び目標方向に制御することを特徴とする請求項1又は2に記載の位置制御装置。
It further comprises detection means for detecting the three-dimensional position and direction of the predetermined part of the operator,
Using the three-dimensional position and direction detected by the detection means as target three-dimensional position data and target direction data of the predetermined part of the link mechanism, the predetermined part of the link mechanism is controlled to the target three-dimensional position and target direction. The position control device according to claim 1 or 2 , wherein
関節を介して複数のリンクを連結したリンク機構の所定部位を目標3次元位置及び目標方向に制御するロボットアーム制御方法であって、
前記リンク機構の所定部位の目標3次元位置データ及び目標方向データからなる目標データをP、前記リンク機構の各関節角度をθとし、目標データPから関節角度θを求める解法処理に使用されるデータを固定長数値データ形式から可変長整数データ形式へ変換する変換ステップと、
前記解法処理において、変換された可変長整数データ形式の係数データを用いて、除算を除く加算、減算及び乗算からなる無誤差演算を実行する無誤差演算ステップとを含み、
前記変換ステップは、前記無誤差演算ステップにおける演算結果を可変長整数データ形式から固定長数値データ形式へ変換するステップを含み、
前記解法処理において、前記変換ステップにおいて変換された固定長数値データ形式の演算結果を用いて1回のみの除算を含む固定長数値演算を実行することにより固定長数値データ形式の関節角度θを求める誤差演算ステップをさらに含むことを特徴とする位置制御方法。
A robot arm control method for controlling a predetermined part of a link mechanism in which a plurality of links are connected via a joint to a target three-dimensional position and a target direction,
Data used for the solution processing for determining the joint angle θ from the target data P, where P is target data composed of target three-dimensional position data and target direction data of a predetermined part of the link mechanism, and θ is each joint angle of the link mechanism. A conversion step for converting from a fixed-length numeric data format to a variable-length integer data format;
In the solution process, using the coefficient data of the converted variable-length integer data format, seen including adding, a non-error calculation step of performing a non-error calculation consisting of subtraction and multiplication, except for division,
The conversion step includes a step of converting the calculation result in the error-free calculation step from a variable-length integer data format to a fixed-length numeric data format,
In the solution processing, the joint angle θ in the fixed-length numeric data format is obtained by executing a fixed-length numeric calculation including only one division using the calculation result in the fixed-length numeric data format converted in the conversion step. A position control method further comprising an error calculation step .
関節を介して複数のリンクを連結したリンク機構の所定部位を目標3次元位置及び目標方向に制御するための位置制御プログラムであって、
前記リンク機構の所定部位の目標3次元位置データ及び目標方向データからなる目標データをP、前記リンク機構の各関節角度をθとし、目標データPから関節角度θを求める解法処理に使用されるデータを固定長数値データ形式から可変長整数データ形式へ変換する変換手段と、
前記解法処理において、前記変換手段により変換された可変長整数データ形式の係数データを用いて、除算を除く加算、減算及び乗算からなる無誤差演算を実行する無誤差演算手段としてコンピュータを機能させ
前記変換手段は、前記無誤差演算手段の演算結果を可変長整数データ形式から固定長数値データ形式へ変換し、
前記解法処理において、前記変換手段により変換された固定長数値データ形式の演算結果を用いて1回のみの除算を含む固定長数値演算を実行することにより固定長数値データ形式の関節角度θを求める誤差演算手段として前記コンピュータをさらに機能させることを特徴とする位置制御プログラム。
A position control program for controlling a predetermined part of a link mechanism in which a plurality of links are connected via a joint to a target three-dimensional position and a target direction,
Data used for the solution processing for determining the joint angle θ from the target data P, where P is target data composed of target three-dimensional position data and target direction data of a predetermined part of the link mechanism, and θ is each joint angle of the link mechanism. Means for converting from a fixed-length numeric data format to a variable-length integer data format;
In the solution processing, using the coefficient data in the variable-length integer data format converted by the conversion means, the computer functions as error-free calculation means for performing error-free calculation including addition, subtraction, and multiplication excluding division ,
The converting means converts the calculation result of the error-free calculating means from a variable-length integer data format to a fixed-length numeric data format,
In the solution processing, the joint angle θ in the fixed-length numeric data format is obtained by executing a fixed-length numeric calculation including only one division using the calculation result in the fixed-length numeric data format converted by the conversion means. A position control program for causing the computer to further function as error calculation means .
JP2005325277A 2005-06-03 2005-11-09 POSITION CONTROL DEVICE, POSITION CONTROL METHOD, AND POSITION CONTROL PROGRAM Expired - Fee Related JP4743699B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005325277A JP4743699B2 (en) 2005-06-03 2005-11-09 POSITION CONTROL DEVICE, POSITION CONTROL METHOD, AND POSITION CONTROL PROGRAM

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005164567 2005-06-03
JP2005164567 2005-06-03
JP2005325277A JP4743699B2 (en) 2005-06-03 2005-11-09 POSITION CONTROL DEVICE, POSITION CONTROL METHOD, AND POSITION CONTROL PROGRAM

Publications (2)

Publication Number Publication Date
JP2007007837A JP2007007837A (en) 2007-01-18
JP4743699B2 true JP4743699B2 (en) 2011-08-10

Family

ID=37746956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005325277A Expired - Fee Related JP4743699B2 (en) 2005-06-03 2005-11-09 POSITION CONTROL DEVICE, POSITION CONTROL METHOD, AND POSITION CONTROL PROGRAM

Country Status (1)

Country Link
JP (1) JP4743699B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4743700B2 (en) * 2005-11-09 2011-08-10 株式会社国際電気通信基礎技術研究所 Control device, control method, and control program
JP5465129B2 (en) * 2010-08-16 2014-04-09 本田技研工業株式会社 Robot and behavior control system
JP7088591B1 (en) * 2022-03-30 2022-06-21 株式会社Share-RIZ Exterior wall repair device and exterior wall repair method
JP7109845B1 (en) 2022-03-30 2022-08-01 株式会社Share-RIZ Exterior wall repair device and exterior wall repair method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005046931A (en) * 2003-07-30 2005-02-24 National Institute Of Information & Communication Technology Robot arm-hand operation control method and robot arm-hand operation control system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61122707A (en) * 1984-11-20 1986-06-10 Matsushita Electric Ind Co Ltd Locus control method of robot

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005046931A (en) * 2003-07-30 2005-02-24 National Institute Of Information & Communication Technology Robot arm-hand operation control method and robot arm-hand operation control system

Also Published As

Publication number Publication date
JP2007007837A (en) 2007-01-18

Similar Documents

Publication Publication Date Title
JP7273880B2 (en) Virtual object driving method, device, electronic device and readable storage medium
CN108874119B (en) System and method for tracking arm movement to generate input for a computer system
US9785249B1 (en) Systems and methods for tracking motion and gesture of heads and eyes
EP3707584B1 (en) Method for tracking hand pose and electronic device thereof
US11498216B2 (en) Remote control manipulator system and control device
JP5444209B2 (en) Frame mapping and force feedback method, apparatus and system
US9381642B2 (en) Wearable robot assisting manual tasks
US11370117B2 (en) Collision handling by a robot
US8648797B2 (en) Information input/output device, information input/output method and computer program
JP6380828B2 (en) Robot, robot system, control device, and control method
JP5349478B2 (en) Inverse kinematics
JP6700726B2 (en) Robot controller, robot control method, robot control system, and computer program
US10884487B2 (en) Position based energy minimizing function
JP4743699B2 (en) POSITION CONTROL DEVICE, POSITION CONTROL METHOD, AND POSITION CONTROL PROGRAM
JP3742879B2 (en) Robot arm / hand operation control method, robot arm / hand operation control system
Maycock et al. Robust tracking of human hand postures for robot teaching
US11093037B2 (en) Computer-implemented method, system and computer program product for simulating the behaviour of a hand that interacts with objects in a virtual environment
Baldi et al. Using inertial and magnetic sensors for hand tracking and rendering in wearable haptics
JP2014014902A (en) Control system, program and control method for mechanical device
JP4743700B2 (en) Control device, control method, and control program
JP2008217260A (en) Force feedback apparatus
Wakamatsu et al. Dynamic modeling of linear object deformation based on differential geometry coordinates
Pérez et al. FPGA-based visual control system using dynamic perceptibility
US20230131269A1 (en) Continuum robot control system and control method, and program
Kobayashi et al. Motion capture with inertial measurement units for hand/arm robot teleoperation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110412

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110502

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees