JP2021056001A - Arithmetic system, arithmetic device and arithmetic program - Google Patents

Arithmetic system, arithmetic device and arithmetic program Download PDF

Info

Publication number
JP2021056001A
JP2021056001A JP2018016724A JP2018016724A JP2021056001A JP 2021056001 A JP2021056001 A JP 2021056001A JP 2018016724 A JP2018016724 A JP 2018016724A JP 2018016724 A JP2018016724 A JP 2018016724A JP 2021056001 A JP2021056001 A JP 2021056001A
Authority
JP
Japan
Prior art keywords
calculation
unit
angular velocity
interpolation
predetermined
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.)
Pending
Application number
JP2018016724A
Other languages
Japanese (ja)
Inventor
山田 幸光
Yukimitsu Yamada
幸光 山田
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.)
Alps Alpine Co Ltd
Original Assignee
Alps Alpine Co Ltd
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 Alps Alpine Co Ltd filed Critical Alps Alpine Co Ltd
Priority to JP2018016724A priority Critical patent/JP2021056001A/en
Priority to PCT/JP2019/003006 priority patent/WO2019151258A1/en
Publication of JP2021056001A publication Critical patent/JP2021056001A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Navigation (AREA)

Abstract

To suppress the increase in current consumption and the lengthening of processing time.SOLUTION: An arithmetic system includes: an object; an acceleration sensor that is placed on the object and outputs acceleration data; an angular velocity sensor that is placed on the object and outputs angular velocity data; an output unit that outputs posture information at a predetermined cycle; an arithmetic unit that calculates the posture information by an operation including a matrix operation in a part of periods of the predetermined cycle based on the acceleration data and the angular velocity data; and an interpolation unit that calculates the posture information by interpolation calculation based on the calculation result of the arithmetic unit in some other periods of the predetermined cycle.SELECTED DRAWING: Figure 2

Description

本開示は、演算システム、演算装置及び演算プログラムに関する。 The present disclosure relates to arithmetic systems, arithmetic units and arithmetic programs.

機器の姿勢を表現するのに、クオータニオン(四元数)演算を基にオイラー角(姿勢情報の一例)を用いる技術が知られている。 There is known a technique that uses Euler angles (an example of posture information) based on quaternion (quaternion) operations to express the posture of a device.

特開2016−109608号公報Japanese Unexamined Patent Publication No. 2016-109608

しかしながら、上記の従来技術のように、クオータニオン演算などの行列演算を処理周期ごとに毎回行うと消費電流の増加や処理時間の長時間化が発生するという問題がある。 However, as in the above-mentioned conventional technique, if a matrix operation such as a quaternion operation is performed every processing cycle, there is a problem that the current consumption increases and the processing time becomes long.

そこで、1つの側面では、本発明は、消費電流の増加や処理時間の長時間化を抑制することを目的とする。 Therefore, in one aspect, it is an object of the present invention to suppress an increase in current consumption and an increase in processing time.

1つの側面では、物体と、
前記物体に配置され、加速度データを出力する加速度センサと、
前記物体に配置され、角速度データを出力する角速度センサと、
前記物体の姿勢を表す姿勢情報を所定周期ごとに出力する出力部と、
前記加速度データと前記角速度データに基づき、前記所定周期ごとの一部の周期で、前記姿勢情報を、行列演算を含む演算により算出する演算部と
前記所定周期ごとの他の一部の周期で、前記演算部の演算結果に基づき、前記姿勢情報を補間演算により算出する補間部とを有する、演算システムが提供される。
On one side, the object and
An acceleration sensor that is placed on the object and outputs acceleration data,
An angular velocity sensor that is placed on the object and outputs angular velocity data,
An output unit that outputs posture information representing the posture of the object at predetermined intervals, and
Based on the acceleration data and the angular velocity data, the attitude information is calculated by an operation including a matrix operation in a part of the predetermined period, and the other part of the period in the predetermined period. An arithmetic system is provided that includes an interpolation unit that calculates the attitude information by interpolation calculation based on the calculation result of the arithmetic unit.

1つの側面では、本発明によれば、消費電流の増加や処理時間の長時間化を抑制することが可能となる。 On one side, according to the present invention, it is possible to suppress an increase in current consumption and a long processing time.

一実施例による演算システム1のシステム構成図である。It is a system block diagram of the arithmetic system 1 by one Example. マイコン4の機能ブロックの一例を示す図である。It is a figure which shows an example of the functional block of the microcomputer 4. 補間演算の一例の説明図である。It is explanatory drawing of an example of the interpolation operation. センサログを用いたオイラー角出力のミュレーション結果(補間無し)を示す図である。It is a figure which shows the simulation result (without interpolation) of Euler angle output using a sensor log. センサログを用いたオイラー角出力のミュレーション結果(間引き回数=2)を示す図である。It is a figure which shows the simulation result (the number of thinnings = 2) of the Euler angle output using a sensor log. センサログを用いたオイラー角出力のミュレーション結果(間引き回数=5)を示す図である。It is a figure which shows the simulation result (the number of thinnings = 5) of the Euler angle output using a sensor log. 間引き回数N3とマイコン4の消費電流との関係を示す図である。It is a figure which shows the relationship between the thinning number N3 and the current consumption of a microcomputer 4. 演算システム1の動作例を示す概略フローチャートである。It is a schematic flowchart which shows the operation example of the arithmetic system 1.

以下、添付図面を参照しながら各実施例について詳細に説明する。 Hereinafter, each embodiment will be described in detail with reference to the accompanying drawings.

図1は、一実施例による演算システム1のシステム構成図である。 FIG. 1 is a system configuration diagram of an arithmetic system 1 according to an embodiment.

演算システム1は、筐体10(物体の一例)に搭載される。演算システム1は、角速度センサ2と、加速度センサ3と、マイクロコンピュータ4(以下、「マイコン4」と称する)とを含む。 The arithmetic system 1 is mounted on a housing 10 (an example of an object). The arithmetic system 1 includes an angular velocity sensor 2, an acceleration sensor 3, and a microcomputer 4 (hereinafter, referred to as “microcomputer 4”).

角速度センサ2は、筐体10に配置され、角速度データを出力する。本実施例では、一例として、角速度センサ2は、例えば3軸まわりの角速度を検出する。 The angular velocity sensor 2 is arranged in the housing 10 and outputs angular velocity data. In this embodiment, as an example, the angular velocity sensor 2 detects, for example, the angular velocity around three axes.

加速度センサ3は、筐体10に配置され、加速度データを出力する。本実施例では、一例として、加速度センサ3は、例えば3軸まわりの加速度を検出する。尚、加速度センサ3に係る3軸は、角速度センサ2に係る3軸と同じであるとする。 The acceleration sensor 3 is arranged in the housing 10 and outputs acceleration data. In this embodiment, as an example, the acceleration sensor 3 detects acceleration around three axes, for example. It is assumed that the three axes related to the acceleration sensor 3 are the same as the three axes related to the angular velocity sensor 2.

マイコン4は、例えば筐体10に配置される。マイコン4は、データバスで接続されたCPU(Central Processing Unit)や、RAM(Random Access Memory)、ROM(Read Only Memory)等を有する。 The microcomputer 4 is arranged in, for example, a housing 10. The microcomputer 4 has a CPU (Central Processing Unit) connected by a data bus, a RAM (Random Access Memory), a ROM (Read Only Memory), and the like.

図2は、マイコン4の機能ブロックの一例を示す図である。図2には、マイコン4に接続される角速度センサ2及び加速度センサ3が併せて示される。尚、角速度センサ2及び加速度センサ3は、マイコン4に、I2C(I-squared-C)を介して接続されてよい。 FIG. 2 is a diagram showing an example of a functional block of the microcomputer 4. FIG. 2 also shows an angular velocity sensor 2 and an acceleration sensor 3 connected to the microcomputer 4. The angular velocity sensor 2 and the acceleration sensor 3 may be connected to the microcomputer 4 via I 2 C (I-squared-C).

マイコン4は、データ取得部40と、データバッファ部41と、通常演算部42(演算部の一例)と、演算結果記憶部43と、補間部44と、出力部46とを含む。データ取得部40、通常演算部42、補間部44、及び出力部46は、例えば、CPUがROM内の1つ以上のプログラムを実行することで実現できる。データバッファ部41及び演算結果記憶部43は、例えばRAMにより実現できる。尚、データバッファ部41及び/又は演算結果記憶部43は、フラッシュメモリなどで実現されてもよい。 The microcomputer 4 includes a data acquisition unit 40, a data buffer unit 41, a normal calculation unit 42 (an example of a calculation unit), a calculation result storage unit 43, an interpolation unit 44, and an output unit 46. The data acquisition unit 40, the normal calculation unit 42, the interpolation unit 44, and the output unit 46 can be realized, for example, by the CPU executing one or more programs in the ROM. The data buffer unit 41 and the calculation result storage unit 43 can be realized by, for example, RAM. The data buffer unit 41 and / or the calculation result storage unit 43 may be realized by a flash memory or the like.

データ取得部40は、角速度センサ2から角速度データを取得し、加速度センサ3から加速度データを取得する。本実施例では、一例として、データ取得部40は、同期した所定周期ごとに、各周期の角速度データ及び加速度データを取得する。 The data acquisition unit 40 acquires the angular velocity data from the angular velocity sensor 2 and acquires the acceleration data from the acceleration sensor 3. In this embodiment, as an example, the data acquisition unit 40 acquires the angular velocity data and the acceleration data of each cycle at each synchronized predetermined cycle.

データ取得部40は、取得した角速度データ及び加速度データをデータバッファ部41に記憶(バッファリング)する。尚、角速度データ及び加速度データは、FIFO(First-in, First-out)形式で所定数の周期分だけ記憶されてもよい。尚、データ取得部40は、角速度データについて積算値(前回周期の値に今回周期の値を積算した値)として記憶してもよい。また、データ取得部40は、加速度データについて平均値(今回周期以前の所定数の周期分の平均値)として記憶してもよい。 The data acquisition unit 40 stores (buffers) the acquired angular velocity data and acceleration data in the data buffer unit 41. The angular velocity data and the acceleration data may be stored in a FIFO (First-in, First-out) format for a predetermined number of cycles. The data acquisition unit 40 may store the angular velocity data as an integrated value (a value obtained by integrating the value of the current cycle with the value of the previous cycle). Further, the data acquisition unit 40 may store the acceleration data as an average value (an average value for a predetermined number of cycles before this cycle).

通常演算部42は、データバッファ部41内の加速度データと角速度データに基づき、筐体10の姿勢を表すオイラー角(姿勢情報の一例)を、クオータニオン演算を含む演算により算出する。算出されるオイラー角は、地上に固定された座標系で、例えばピッチ、ロール、及びヨーで表現されてよい。通常演算部42は、演算結果を演算結果記憶部43に記憶する。演算結果は、FIFO形式で所定数の周期分だけ記憶されてもよい。 Based on the acceleration data and the angular velocity data in the data buffer unit 41, the normal calculation unit 42 calculates Euler angles (an example of posture information) representing the posture of the housing 10 by a calculation including a quaternion calculation. The calculated Euler angles may be expressed in a coordinate system fixed on the ground, for example, in pitch, roll, and yaw. The normal calculation unit 42 stores the calculation result in the calculation result storage unit 43. The calculation result may be stored in the FIFO format for a predetermined number of cycles.

クオータニオン演算を含む演算は、角速度データ及び加速度データをクオータニオン変換する変換処理と、クオータニオン変換したデータに対してクオータニオン演算を行う処理と、クオータニオン演算結果をオイラー角表現に変換する変換処理とを含む。 The operation including the quaternion operation includes a conversion process for converting the angular velocity data and the acceleration data into quaternions, a process for performing a quaternion operation on the quaternion-converted data, and a conversion process for converting the result of the quaternion operation into Euler angles representation.

例えば、加速度A = (Ax,Ay,Az)、角速度 G = (Gx,Gy,Gz)、直前(前回)のクオータニオンをQ=(Qw,Qx,Qy,Qz)とすると、通常演算部42は、(Ax,Ay,Az)と(Qw,Qx,Qy,Qz)の外積演算を行うことで、ベクトルBを算出する。具体的には、以下のとおりである。
B = A×Q
ここで、B=(Bx,By,Bz)とする。
次いで、通常演算部42は、ベクトルBをクオータニオン化してベクトルCを算出する。
C = (0,Bx,By,Bz)
次いで、通常演算部42は、ベクトルCとベクトルGの加算を行うことで、ベクトルDを算出する。具体的には、以下のとおりである。
D = (0,Bx+Gx,By+Gy,Bx+Gz)
次いで、通常演算部42は、ベクトルDと直前のクオータニオンQの乗算(クオータニオン演算)を行うことで、ベクトルFを算出する。具体的には、以下のとおりである。
F = D×Q
尚、一般的に、q = s + iu + jv + kwと、q' = s' + iu' + jv' + kw'との間のクオータニオン演算は、次式で表される。
For example, if the acceleration A = (Ax, Ay, Az), the angular velocity G = (Gx, Gy, Gz), and the immediately preceding (previous) quaternion is Q = (Qw, Qx, Qy, Qz), the normal calculation unit 42 , (Ax, Ay, Az) and (Qw, Qx, Qy, Qz) are cross-producted to calculate the vector B. Specifically, it is as follows.
B = A × Q
Here, let B = (Bx, By, Bz).
Next, the normal calculation unit 42 quaternions the vector B to calculate the vector C.
C = (0, Bx, By, Bz)
Next, the normal calculation unit 42 calculates the vector D by adding the vector C and the vector G. Specifically, it is as follows.
D = (0, Bx + Gx, By + Gy, Bx + Gz)
Next, the normal calculation unit 42 calculates the vector F by multiplying the vector D by the immediately preceding quaternion Q (quaternion calculation). Specifically, it is as follows.
F = D × Q
In general, the quota operation between q = s + iu + jv + kw and q'= s'+ iu' + jv'+ kw'is expressed by the following equation.

Figure 2021056001
次いで、通常演算部42は、以下のようにして、ベクトルFに対してオイラー変換を行うことで、ピッチ、ロール、及びヨーを算出する。尚、F = (Quat.w,Quat.x,Quat.y,Quat.z)とすると、ピッチEpitch、ロールEroll、及びヨーEyawを算出するためのオイラー変換は、以下の通りである。尚、記号"*"は、乗算を表す。
Epitch = Arcsin (2 * Quat.w * Quat.y - 2 * Quat.x * Quat.z)
Eroll = Arctan{(2 * Quat.y * Quat.z + 2 * Quat.w * Quat.x) / (-Quat.w * Quat.w + Quat.x * Quat.x + Quat.y * Quat.y - Quat.z * Quat.z)}
Eyaw = Arctan{(2 * Quat.x * Quat.y + 2 * Quat.w * Quat.z) / (Quat.w * Quat.w + Quat.x * Quat.x - Quat.y * Quat.y - Quat.z * Quat.z)}
Figure 2021056001
Next, the normal calculation unit 42 calculates the pitch, roll, and yaw by performing an oiler conversion on the vector F as follows. If F = (Quat.w, Quat.x, Quat.y, Quat.z), the Euler transformations for calculating pitch E pitch , roll E roll , and yaw E yaw are as follows. .. The symbol "*" represents multiplication.
E pitch = Arcsin (2 * Quat.w * Quat.y --2 * Quat.x * Quat.z)
E roll = Arctan {(2 * Quat.y * Quat.z + 2 * Quat.w * Quat.x) / (-Quat.w * Quat.w + Quat.x * Quat.x + Quat.y * Quat .y --Quat.z * Quat.z)}
E yaw = Arctan {(2 * Quat.x * Quat.y + 2 * Quat.w * Quat.z) / (Quat.w * Quat.w + Quat.x * Quat.x --Quat.y * Quat. y --Quat.z * Quat.z)}

補間部44は、通常演算部42の演算結果に基づき、オイラー角を補間演算により算出する。補間演算により算出されるオイラー角は、地上に固定された座標系で、例えばピッチ、ロール、及びヨーで表現されてよい。補間演算は、線形補間や非線形補間(指数、対数、移動平均、重み付け補間等)による方法であってよい。例えば、図3では、現時点t5におけるピッチP5は、現時点より前の5時点(t0〜t4)のピッチの演算結果P1〜P4(通常演算部42の演算結果)を用いて線形補間で得られる近似直線C1上に算出される。ロール及びヨーについても同様に演算することができる。尚、本例では、直近の5時点の演算結果が利用されるが、直近の5時点以外の数の時点の演算結果(通常演算部42の演算結果)が利用されてもよい。例えば、ピッチ、ロール、及びヨーの前回の演算結果をEp1、Er1、Ey1とし、前々回の結果をEp2,Er2,Ey2とすると、補間演算は、次のように実行されてもよい。
Ep = (Ep1-Ep2)/2 + Ep1
Er = (Er1-Er2)/2 + Er1
Ey = (Ey1-Ey2)/2 + Ey1
The interpolation unit 44 calculates Euler angles by interpolation calculation based on the calculation result of the normal calculation unit 42. Euler angles calculated by interpolation operations may be expressed in a coordinate system fixed on the ground, for example, in pitch, roll, and yaw. The interpolation operation may be a method using linear interpolation or non-linear interpolation (exponent, logarithmic, moving average, weighted interpolation, etc.). For example, in FIG. 3, the pitch P5 at the current time t5 is an approximation obtained by linear interpolation using the calculation results P1 to P4 (calculation results of the normal calculation unit 42) of the pitches at the five time points (t0 to t4) before the current time. Calculated on the straight line C1. The same calculation can be performed for rolls and yaws. In this example, the calculation results at the latest 5 time points are used, but the calculation results at a number of time points other than the latest 5 time points (the calculation result of the normal calculation unit 42) may be used. For example, assuming that the previous calculation results of pitch, roll, and yaw are Ep1, Er1, and Ey1, and the results of the previous two times are Ep2, Er2, and Ey2, the interpolation calculation may be executed as follows.
Ep = (Ep1-Ep2) / 2 + Ep1
Er = (Er1-Er2) / 2 + Er1
Ey = (Ey1-Ey2) / 2 + Ey1

補間演算は、通常演算部42による演算よりも演算負荷が有意に低い。通常演算部42による演算は、比較的計算負荷が高いクオータニオン演算を含むためである。このため、クオータニオン演算を行うことなくオイラー角を補間演算により算出する補間部44を備えることで、オイラー角を演算するための演算負荷を低減できる。補間部44は、通常演算部42が通常を行わない周期で、オイラー角を補間演算により算出する。通常演算部42及び補間部44は、いずれか一方がオイラー角を算出することで、全体として所定周期ごとにオイラー角を算出することになる。 The calculation load of the interpolation calculation is significantly lower than that of the calculation by the normal calculation unit 42. This is because the calculation by the normal calculation unit 42 includes a quaternion calculation having a relatively high calculation load. Therefore, by providing the interpolation unit 44 that calculates Euler angles by interpolation calculation without performing quaternion calculation, it is possible to reduce the calculation load for calculating Euler angles. The interpolation unit 44 calculates Euler angles by interpolation calculation at a cycle in which the normal calculation unit 42 does not normally perform. Either one of the normal calculation unit 42 and the interpolation unit 44 calculates the Euler angles, so that the Euler angles are calculated every predetermined cycle as a whole.

本実施例では、一例として、補間部44は、所定周期ごとに所定の切り替え条件が成立したか否かを判定し、所定の切り替え条件が成立した周期では、オイラー角を補間演算により算出する。この場合は、当該周期では、通常演算部42は演算を行わない。 In this embodiment, as an example, the interpolation unit 44 determines whether or not a predetermined switching condition is satisfied for each predetermined cycle, and calculates Euler angles by interpolation calculation in a cycle in which the predetermined switching condition is satisfied. In this case, the normal calculation unit 42 does not perform the calculation in the cycle.

所定の切り替え条件は、任意であるが、例えば、加速度センサ3の出力及び角速度センサ2の出力が所定レベルよりも小さい場合に満たされてよい。所定レベルは、筐体10が略静止状態であるとき生じる出力のレベルに対応してよい。この場合、オイラー角が大きく変動しない期間、補間部44が演算することになるので、常に通常演算部42が演算を行う場合に比べて、効率的に演算負荷を低減できる。 The predetermined switching condition is arbitrary, but may be satisfied, for example, when the output of the acceleration sensor 3 and the output of the angular velocity sensor 2 are smaller than the predetermined level. The predetermined level may correspond to the level of output that occurs when the housing 10 is in a substantially stationary state. In this case, since the interpolation unit 44 performs the calculation during the period when the Euler angles do not fluctuate significantly, the calculation load can be efficiently reduced as compared with the case where the normal calculation unit 42 always performs the calculation.

他の例では、所定の切り替え条件は、加速度センサ3の出力及び角速度センサ2の出力とは無関係に、通常演算部42が連続して演算を行う周期の数が所定数N1に到達した場合に満たされてよい。この場合、所定数N1は、2以上の任意の数であってよい。 In another example, the predetermined switching condition is when the number of cycles in which the normal calculation unit 42 continuously performs the calculation reaches the predetermined number N1 regardless of the output of the acceleration sensor 3 and the output of the angular velocity sensor 2. May be satisfied. In this case, the predetermined number N1 may be any number of 2 or more.

本実施例では、一例として、補間部44は、所定の切り替え条件が成立すると、以後、所定周期ごとに所定の復帰条件が成立したか否かを判定し、所定の復帰条件が成立した周期で、補間演算を停止する。この場合は、当該周期では、通常演算部42が演算を行う。以後、補間部44は、同様に、所定周期ごとに所定の切り替え条件が成立したか否かを判定し、所定の切り替え条件が成立した周期では、オイラー角を補間演算により算出する。 In this embodiment, as an example, when the predetermined switching condition is satisfied, the interpolation unit 44 subsequently determines whether or not the predetermined return condition is satisfied at each predetermined cycle, and in the cycle in which the predetermined return condition is satisfied. , Stop the interpolation operation. In this case, the normal calculation unit 42 performs the calculation in the cycle. After that, the interpolation unit 44 similarly determines whether or not the predetermined switching condition is satisfied for each predetermined cycle, and calculates the Euler angles by the interpolation calculation in the cycle in which the predetermined switching condition is satisfied.

所定の復帰条件は、任意であるが、例えば、所定の切り替え条件が加速度センサ3の出力及び角速度センサ2の出力が所定レベルよりも小さい場合に満たされる構成では、所定の復帰条件は、加速度センサ3の出力及び角速度センサ2の出力が所定レベル以上である場合に満たされてよい。 The predetermined return condition is arbitrary, but for example, in a configuration in which the predetermined switching condition is satisfied when the output of the acceleration sensor 3 and the output of the angular velocity sensor 2 are smaller than the predetermined level, the predetermined return condition is the acceleration sensor. It may be satisfied when the output of 3 and the output of the angular velocity sensor 2 are equal to or higher than a predetermined level.

他の例では、所定の復帰条件は、加速度センサ3の出力及び角速度センサ2の出力とは無関係に、補間部44が連続して補間演算を行う周期の数が所定数N2に到達した場合に満たされてよい。この場合、所定数N2は、2以上の任意の数であってよい。 In another example, the predetermined return condition is when the number of cycles in which the interpolation unit 44 continuously performs the interpolation calculation reaches the predetermined number N2 regardless of the output of the acceleration sensor 3 and the output of the angular velocity sensor 2. May be satisfied. In this case, the predetermined number N2 may be any number of 2 or more.

本実施例では、一例として、所定の切り替え条件は、通常演算部42が演算を行った場合に満たされ、所定の復帰条件は、補間部44が連続して補間演算を行う周期の数が所定数N3に到達した場合に満たされる。即ち、補間部44は、通常演算部42が演算を行う周期ごとに、次の所定数N3の周期で、補間演算を行う。例えば所定数N3=3であるとき、補間部44は、通常演算部42が演算を行う周期ごとに、次の3周期で、補間演算を連続して行う。この場合、4周期のうちの1周期だけが通常演算部42が演算を行う周期となる。以下、所定数N3を、「間引き回数N3」とも称する。 In this embodiment, as an example, the predetermined switching condition is satisfied when the normal calculation unit 42 performs the calculation, and the predetermined return condition is the number of cycles in which the interpolation unit 44 continuously performs the interpolation calculation. Satisfied when the number N3 is reached. That is, the interpolation unit 44 performs the interpolation calculation in the next predetermined number N3 cycle for each cycle in which the normal calculation unit 42 performs the calculation. For example, when the predetermined number N3 = 3, the interpolation unit 44 continuously performs the interpolation calculation in the next three cycles for each cycle in which the normal calculation unit 42 performs the calculation. In this case, only one of the four cycles is the cycle in which the normal calculation unit 42 performs the calculation. Hereinafter, the predetermined number N3 is also referred to as “thinning number N3”.

尚、変形例では、所定の切り替え条件は、複数の条件の組み合わせで実現されてもよい。同様に、所定の復帰条件は、複数の条件の組み合わせで実現されてもよい。 In the modified example, the predetermined switching condition may be realized by a combination of a plurality of conditions. Similarly, the predetermined return condition may be realized by a combination of a plurality of conditions.

このようにして、本実施例では、通常演算部42が演算を行う状態(以下、「通常演算状態」とも称する)では、所定周期ごとに所定の切り替え条件が成立したか否かが判定され、所定の切り替え条件が成立した場合は、通常演算部42が演算を行う状態から、補間部44が補間演算を行う状態へと切り替わる。他方、所定の切り替え条件が成立しない場合は、通常演算部42が演算を行う状態が継続する。また、補間部44が補間演算を行う状態(以下、「補間演算状態」とも称する)では、所定周期ごとに所定の復帰条件が成立したか否かが判定され、所定の復帰条件が成立した場合は、補間部44が補間演算を行う状態から、通常演算部42が演算を行う状態へと切り替わる。他方、所定の復帰条件が成立しない場合は、補間部44が補間演算を行う状態が継続する。 In this way, in the present embodiment, in the state where the normal calculation unit 42 performs the calculation (hereinafter, also referred to as “normal calculation state”), it is determined whether or not the predetermined switching condition is satisfied at each predetermined cycle. When a predetermined switching condition is satisfied, the state in which the normal calculation unit 42 performs the calculation is switched to the state in which the interpolation unit 44 performs the interpolation calculation. On the other hand, when the predetermined switching condition is not satisfied, the state in which the normal calculation unit 42 performs the calculation continues. Further, in the state where the interpolation unit 44 performs the interpolation calculation (hereinafter, also referred to as “interpolation calculation state”), it is determined whether or not the predetermined return condition is satisfied at each predetermined cycle, and when the predetermined return condition is satisfied. Switches from the state in which the interpolation unit 44 performs the interpolation calculation to the state in which the normal calculation unit 42 performs the calculation. On the other hand, if the predetermined return condition is not satisfied, the state in which the interpolation unit 44 performs the interpolation calculation continues.

出力部46は、演算システム1の作動中、オイラー角を所定周期ごとに出力する。例えば、出力部46は、筐体10に設けられうるディスプレイ(図示せず)等にオイラー角を出力する。或いは、出力部46は、有線や無線通信網を介して、外部装置にオイラー角を出力してもよい。外部装置は、例えばPC(Personal Computer)やサーバ等であってよい。無線通信網は、Bluetooth(登録商標)やWi−Fi(Wireless Fidelity)に基づくものであってもよいし、携帯電話の無線通信網、インターネット、World Wide Web、WAN(Wide Area Network)等を含んでもよい。 The output unit 46 outputs Euler angles at predetermined intervals while the arithmetic system 1 is operating. For example, the output unit 46 outputs Euler angles to a display (not shown) or the like that can be provided in the housing 10. Alternatively, the output unit 46 may output Euler angles to an external device via a wired or wireless communication network. The external device may be, for example, a PC (Personal Computer), a server, or the like. The wireless communication network may be based on Bluetooth (registered trademark) or Wi-Fi (Wireless Fidelity), and includes a wireless communication network for mobile phones, the Internet, World Wide Web, WAN (Wide Area Network), and the like. It may be.

次に、図4A以降を参照して、本実施例の効果について説明する。 Next, the effect of this embodiment will be described with reference to FIGS. 4A and after.

図4A乃至図4Cは、センサログを用いたオイラー角出力(ここでは、一例としてロール)のミュレーション結果を示す図であり、横軸は時間である。図4Aは、補間無し(通常演算部42が常に演算を行う構成)によるミュレーション結果を示し、図4B及び図4Cは、補間有りによるミュレーション結果を示す。図4Bは、間引き回数N3=2の場合を示し、図4Cは、間引き回数N3=5の場合を示す。図5は、間引き回数N3とマイコン4の消費電流との関係を示す図であり、横軸は、間引き回数N3を表し、縦軸は、消費電流を表す。消費電流は、間引き回数N3=0(即ち補間無し)のときを"1"として正規化されている。 4A to 4C are diagrams showing the simulation results of Euler angles output (here, roll as an example) using sensor logs, and the horizontal axis is time. FIG. 4A shows the simulation result without interpolation (the configuration in which the normal calculation unit 42 always performs the calculation), and FIGS. 4B and 4C show the simulation result with interpolation. FIG. 4B shows a case where the number of thinnings N3 = 2, and FIG. 4C shows a case where the number of thinnings N3 = 5. FIG. 5 is a diagram showing the relationship between the number of thinnings N3 and the current consumption of the microcomputer 4. The horizontal axis represents the number of thinnings N3, and the vertical axis represents the current consumption. The current consumption is normalized as "1" when the number of thinnings N3 = 0 (that is, no interpolation).

間引き回数N3=2の場合、図4BのQ1部で示すように、オイラー角出力が、図4Aに示す場合に比べて、若干変動するものの、補間演算による影響が略無い。同様に、間引き回数N3=5の場合、図4CのQ2部で示すように、オイラー角出力が、図4Aに示す場合に比べて、若干変動するものの、補間演算による影響が略無い。 When the number of thinnings N3 = 2, as shown in the Q1 part of FIG. 4B, the Euler angles output fluctuates slightly as compared with the case shown in FIG. 4A, but there is almost no influence of the interpolation calculation. Similarly, when the number of thinnings N3 = 5, as shown in the Q2 part of FIG. 4C, the Euler angle output fluctuates slightly as compared with the case shown in FIG. 4A, but there is almost no influence of the interpolation calculation.

また、図5に示すように、間引き回数N3が多くなるほど、消費電流が低減される。例えば、間引き回数N3=3のとき、間引き回数N3=0のときの消費電流に対して3割程度削減できる。 Further, as shown in FIG. 5, as the number of thinnings N3 increases, the current consumption decreases. For example, when the number of thinnings N3 = 3, the current consumption when the number of thinnings N3 = 0 can be reduced by about 30%.

このようにして、本実施例によれば、オイラー角出力の精度を大きく落とすことなく、オイラー角算出のためのマイコン4の消費電流を低減できる。尚、消費電流が低減するのは、演算負荷が低減するためである。尚、演算負荷が低減すると、処理時間も低減される。従って、本実施例によれば、消費電流の増加や処理時間の長時間化を抑制することが可能となる。 In this way, according to this embodiment, it is possible to reduce the current consumption of the microcomputer 4 for calculating Euler angles without significantly reducing the accuracy of Euler angles output. The current consumption is reduced because the calculation load is reduced. When the calculation load is reduced, the processing time is also reduced. Therefore, according to this embodiment, it is possible to suppress an increase in current consumption and a long processing time.

次に、図6を参照して、本実施例の演算システム1の動作例について説明する。 Next, an operation example of the arithmetic system 1 of this embodiment will be described with reference to FIG.

図6は、演算システム1の動作例を示す概略フローチャートである。図6に示す処理は、演算システム1の動作中、所定周期ごとに実行される。 FIG. 6 is a schematic flowchart showing an operation example of the arithmetic system 1. The process shown in FIG. 6 is executed at predetermined intervals during the operation of the arithmetic system 1.

ステップS600では、演算システム1は、今回周期の角速度データ及び加速度データを取得してデータバッファ部41に記憶する。 In step S600, the arithmetic system 1 acquires the angular velocity data and the acceleration data of the current cycle and stores them in the data buffer unit 41.

ステップS601では、演算システム1は、演算状態が通常演算状態であるか否かを判定する。通常演算状態とは、上述したように、通常演算部42が演算を行う状態である。演算状態は、通常演算状態と補間演算状態とを含む。補間演算状態とは、上述したように、補間部44が補間演算を行う状態である。判定結果が"YES"の場合は、ステップS602に進み、それ以外の場合は、ステップS614に進む。 In step S601, the arithmetic system 1 determines whether or not the arithmetic state is a normal arithmetic state. As described above, the normal calculation state is a state in which the normal calculation unit 42 performs a calculation. The calculation state includes a normal calculation state and an interpolation calculation state. The interpolation calculation state is a state in which the interpolation unit 44 performs the interpolation calculation as described above. If the determination result is "YES", the process proceeds to step S602, and if not, the process proceeds to step S614.

ステップS602では、演算システム1は、所定の切り替え条件が成立したか否かを判定する。判定結果が"YES"の場合は、ステップS610に進み、それ以外の場合は、ステップS604に進む。 In step S602, the arithmetic system 1 determines whether or not a predetermined switching condition is satisfied. If the determination result is "YES", the process proceeds to step S610, and if not, the process proceeds to step S604.

ステップS604では、演算システム1の通常演算部42は、センサ単位換算処理を実行する。センサ単位換算処理は、角速度データ及び加速度データをクオータニオン変換する変換処理を含む。 In step S604, the normal calculation unit 42 of the calculation system 1 executes the sensor unit conversion process. The sensor unit conversion process includes a conversion process for converting angular velocity data and acceleration data into quarters.

ステップS606では、演算システム1の通常演算部42は、ノイズ判定処理を実行する。尚、ノイズが所定レベルより大きい場合は、今回周期のデータが破棄されてもよい。この場合、次回周期でステップS600に戻る。尚、ステップS606は、ステップS604の前に実行されてもよい。 In step S606, the normal calculation unit 42 of the calculation system 1 executes the noise determination process. If the noise is greater than the predetermined level, the data of this cycle may be discarded. In this case, the process returns to step S600 in the next cycle. Note that step S606 may be executed before step S604.

ステップS608では、演算システム1の通常演算部42は、クオータニオン演算を行う。 In step S608, the normal calculation unit 42 of the calculation system 1 performs a quaternion calculation.

ステップS609では、演算システム1の通常演算部42は、クオータニオン演算結果をオイラー角表現に変換する変換処理を実行する。これにより、今回周期のオイラー角が得られる。 In step S609, the normal calculation unit 42 of the calculation system 1 executes a conversion process for converting the quaternion calculation result into Euler angles representation. As a result, Euler angles of this cycle can be obtained.

ステップS610では、演算システム1は、演算状態を補間演算状態に設定する。 In step S610, the calculation system 1 sets the calculation state to the interpolation calculation state.

ステップS612では、演算システム1の補間部44は、今回周期以前の通常演算部42の演算結果に基づき、オイラー角を補間演算により算出する。これにより、今回周期のオイラー角が得られる。 In step S612, the interpolation unit 44 of the calculation system 1 calculates Euler angles by interpolation calculation based on the calculation result of the normal calculation unit 42 before the current cycle. As a result, Euler angles of this cycle can be obtained.

ステップS614では、演算システム1は、所定の復帰条件が成立したか否かを判定する。判定結果が"YES"の場合は、ステップS616に進み、それ以外の場合は、ステップS612に進む。 In step S614, the arithmetic system 1 determines whether or not the predetermined return condition is satisfied. If the determination result is "YES", the process proceeds to step S616, and if not, the process proceeds to step S612.

ステップS616では、演算システム1は、演算状態を通常演算状態に設定する。この場合、ステップS616が終了すると、ステップS604に進む。 In step S616, the calculation system 1 sets the calculation state to the normal calculation state. In this case, when step S616 is completed, the process proceeds to step S604.

ステップS618では、演算システム1の出力部46は、ステップS608又はステップS612で得たオイラー角を出力する。尚、出力部46は、所定周期ごとに所定の記憶装置にオイラー角を出力(記憶)するだけであってもよい。この場合、記憶装置内のオイラー角データは、後に外部装置等に出力されてもよい。 In step S618, the output unit 46 of the arithmetic system 1 outputs the Euler angles obtained in step S608 or step S612. The output unit 46 may only output (store) Euler angles to a predetermined storage device at predetermined intervals. In this case, the Euler angle data in the storage device may be output to an external device or the like later.

以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。 Although each embodiment has been described in detail above, the present invention is not limited to a specific embodiment, and various modifications and changes can be made within the scope of the claims. It is also possible to combine all or a plurality of the components of the above-described embodiment.

例えば、上述した実施例では、補間演算の際に、通常演算部42の演算結果のみ使用されるが、これに限られない。例えば、ある周期での補間演算の際に、当該周期以前の通常演算部42の演算結果と当該周期以前の補間演算の演算結果とが使用されてもよい。 For example, in the above-described embodiment, only the calculation result of the normal calculation unit 42 is used in the interpolation calculation, but the calculation is not limited to this. For example, when performing an interpolation calculation in a certain cycle, the calculation result of the normal calculation unit 42 before the cycle and the calculation result of the interpolation calculation before the cycle may be used.

また、上述した実施例では、筐体10が物体の一例であるが、演算システム1は、任意の物体に搭載できる。例えば、演算システム1は、ユーザが身に付けるもの(例えば靴)や、ユーザ自身に装着されてもよい。 Further, in the above-described embodiment, the housing 10 is an example of an object, but the arithmetic system 1 can be mounted on any object. For example, the arithmetic system 1 may be worn by the user (for example, shoes) or may be worn by the user himself / herself.

また、上述した実施例では、通常演算部42は、筐体10の姿勢を表すオイラー角を算出する際に、クオータニオン演算(行列演算の一例)を用いているが、他の行列演算を用いてもよい。例えば、通常演算部42は、以下のような回転行列を用いて筐体10の姿勢を表すオイラー角を算出してもよい。 Further, in the above-described embodiment, the normal calculation unit 42 uses quaternion operations (an example of matrix operations) when calculating Euler angles representing the postures of the housing 10, but uses other matrix operations. May be good. For example, the normal calculation unit 42 may calculate Euler angles representing the posture of the housing 10 using the following rotation matrix.

Figure 2021056001
尚、ここで回転の方向は、Rxはy軸をz軸に向ける方向であり、Ryはz軸をx軸に向ける方向であり、Rzはx軸をy軸に向ける方向である。
Figure 2021056001
Here, as for the direction of rotation, Rx is the direction in which the y-axis is directed to the z-axis, Ry is the direction in which the z-axis is directed to the x-axis, and Rz is the direction in which the x-axis is directed to the y-axis.

1 演算システム
2 角速度センサ
3 加速度センサ
4 マイクロコンピュータ
10 筐体
40 データ取得部
41 データバッファ部
42 通常演算部
43 演算結果記憶部
44 補間部
46 出力部
1 Calculation system 2 Angle speed sensor 3 Accelerometer 4 Microcomputer 10 Housing 40 Data acquisition unit 41 Data buffer unit 42 Normal calculation unit 43 Calculation result storage unit 44 Interpretation unit 46 Output unit

Claims (8)

物体と、
前記物体に配置され、加速度データを出力する加速度センサと、
前記物体に配置され、角速度データを出力する角速度センサと、
前記物体の姿勢を表す姿勢情報を所定周期ごとに出力する出力部と、
前記加速度データと前記角速度データに基づき、前記所定周期ごとの一部の周期で、前記姿勢情報を、行列演算を含む演算により算出する演算部と
前記所定周期ごとの他の一部の周期で、前記演算部の演算結果に基づき、前記姿勢情報を補間演算により算出する補間部とを有する、演算システム。
With an object
An acceleration sensor that is placed on the object and outputs acceleration data,
An angular velocity sensor that is placed on the object and outputs angular velocity data,
An output unit that outputs posture information representing the posture of the object at predetermined intervals, and
Based on the acceleration data and the angular velocity data, the attitude information is calculated by an operation including a matrix operation in a part of the predetermined period, and the other part of the period in the predetermined period. A calculation system including an interpolation unit that calculates the attitude information by an interpolation calculation based on the calculation result of the calculation unit.
前記行列演算は、クオータニオン演算を含む、請求項1に記載の演算システム。 The arithmetic system according to claim 1, wherein the matrix operation includes a quaternion operation. 前記他の一部の周期は、所定の切り替え条件が成立した周期を含む、請求項2に記載の演算システム。 The arithmetic system according to claim 2, wherein the other partial cycle includes a cycle in which a predetermined switching condition is satisfied. 前記所定の切り替え条件は、前記加速度センサの出力及び前記角速度センサの出力が所定レベルよりも小さい場合に満たされる、請求項3に記載の演算システム。 The calculation system according to claim 3, wherein the predetermined switching condition is satisfied when the output of the acceleration sensor and the output of the angular velocity sensor are smaller than a predetermined level. 前記補間部は、前記演算部が演算を行う周期ごとに、次の所定数の周期で、前記補間演算を行う、請求項2に記載の演算システム。 The calculation system according to claim 2, wherein the interpolation unit performs the interpolation calculation in the next predetermined number of cycles for each cycle in which the calculation unit performs the calculation. 前記姿勢情報は、オイラー角で表現される、請求項1〜5のうちのいずれか1項に記載の演算システム。 The arithmetic system according to any one of claims 1 to 5, wherein the posture information is expressed by Euler angles. 物体に配置された加速度センサ及び角速度センサから、所定周期ごとに加速度データ及び角速度データを取得するデータ取得部と、
前記加速度データと前記角速度データに基づき、前記所定周期ごとの一部の周期で、前記物体の姿勢を表す姿勢情報を、行列演算を含む演算により算出する演算部と、
前記所定周期ごとの他の一部の周期で、前記演算部の演算結果に基づき、前記姿勢情報を補間演算により算出する補間部とを含む、演算装置。
A data acquisition unit that acquires acceleration data and angular velocity data at predetermined intervals from an acceleration sensor and an angular velocity sensor placed on an object.
Based on the acceleration data and the angular velocity data, a calculation unit that calculates posture information representing the posture of the object in a part of each predetermined cycle by a calculation including a matrix calculation, and a calculation unit.
An arithmetic unit including an interpolation unit that calculates the posture information by interpolation calculation based on the calculation result of the calculation unit in a part of other cycles for each predetermined cycle.
物体に配置された加速度セン及び角速度センサから、所定周期ごとに加速度データ及び角速度データを取得し、
前記加速度データと前記角速度データに基づき、前記所定周期ごとの一部の周期で、前記物体の姿勢を表す姿勢情報を、行列演算を含む演算により算出し、
前記所定周期ごとの他の一部の周期で、前記演算の演算結果に基づき、前記姿勢情報を補間演算により算出する、
処理をコンピュータに実行させる演算プログラム。
Acceleration data and angular velocity data are acquired at predetermined intervals from the accelerometer and angular velocity sensor placed on the object.
Based on the acceleration data and the angular velocity data, posture information representing the posture of the object is calculated by a calculation including a matrix calculation in a part of the predetermined cycles.
The posture information is calculated by interpolation calculation based on the calculation result of the calculation in some other cycles for each predetermined cycle.
An arithmetic program that causes a computer to perform processing.
JP2018016724A 2018-02-01 2018-02-01 Arithmetic system, arithmetic device and arithmetic program Pending JP2021056001A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018016724A JP2021056001A (en) 2018-02-01 2018-02-01 Arithmetic system, arithmetic device and arithmetic program
PCT/JP2019/003006 WO2019151258A1 (en) 2018-02-01 2019-01-29 Computation system, computation device, and computation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018016724A JP2021056001A (en) 2018-02-01 2018-02-01 Arithmetic system, arithmetic device and arithmetic program

Publications (1)

Publication Number Publication Date
JP2021056001A true JP2021056001A (en) 2021-04-08

Family

ID=67478227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018016724A Pending JP2021056001A (en) 2018-02-01 2018-02-01 Arithmetic system, arithmetic device and arithmetic program

Country Status (2)

Country Link
JP (1) JP2021056001A (en)
WO (1) WO2019151258A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2913122B2 (en) * 1991-07-16 1999-06-28 株式会社トキメック Strap down gyro device
JP4612675B2 (en) * 2005-03-25 2011-01-12 パイオニア株式会社 Current position calculation device, current position calculation method, current position calculation program, and computer-readable recording medium
KR101196532B1 (en) * 2010-12-27 2012-11-01 엘지이노텍 주식회사 Method for Location Determination of the Wireless device

Also Published As

Publication number Publication date
WO2019151258A1 (en) 2019-08-08

Similar Documents

Publication Publication Date Title
CN111524166B (en) Video frame processing method and device
US11926052B2 (en) Robot control method, computer-readable storage medium and biped robot
JP2007042244A (en) Fall-sensing device
JP6222096B2 (en) Electronic device and program
CN113283082B (en) Centroid track generation method, centroid track generation device, computer readable storage medium and robot
CN114186632A (en) Method, device, equipment and storage medium for training key point detection model
CN111290732B (en) Floating-point number multiplication circuit based on posit data format
US20220297001A1 (en) Server, processing system, processing method, and program
JP5978687B2 (en) Moving situation determination program and moving situation determination apparatus
JP2021056001A (en) Arithmetic system, arithmetic device and arithmetic program
JP6385380B2 (en) Arithmetic device, control device and program
JP7016101B2 (en) Information processing system, information processing device, program, and information processing method
KR20200101210A (en) Electronic device and method for determining operating frequency of processor
CN109472735B (en) Accelerator, method and accelerating system for realizing fabric defect detection neural network
US20240069497A1 (en) Electronic device, form determination method, and recording medium
US20140085232A1 (en) Information processing device and display control method
JP2015143661A (en) Structure monitoring device, structure monitoring system and structure monitoring method
JP7237756B2 (en) Electronics and information processing systems
CN113927157B (en) Method and device for controlling output power of laser equipment, computer equipment and medium
CN117272593B (en) Wind tunnel test data analysis processing method
CN111915674B (en) Object posture recognition precision calculation method and device, storage medium and terminal
CN110555892B (en) Multi-angle image generation method and device and electronic equipment
US20230315804A1 (en) Information processing device and program
CN109255095B (en) IMU data integration method and device, computer readable medium and electronic equipment
JP2007130714A (en) Control device, control method and control program