KR20210095624A - Method and Apparatus for Calibrating Zero Rate Output of Sensors - Google Patents

Method and Apparatus for Calibrating Zero Rate Output of Sensors Download PDF

Info

Publication number
KR20210095624A
KR20210095624A KR1020217012311A KR20217012311A KR20210095624A KR 20210095624 A KR20210095624 A KR 20210095624A KR 1020217012311 A KR1020217012311 A KR 1020217012311A KR 20217012311 A KR20217012311 A KR 20217012311A KR 20210095624 A KR20210095624 A KR 20210095624A
Authority
KR
South Korea
Prior art keywords
zro
inertial sensor
calibration
stationary
state
Prior art date
Application number
KR1020217012311A
Other languages
Korean (ko)
Inventor
브라이언 에이 쿡
마크 터너
더글라스 칼레스 칼손
윤 리
Original Assignee
세바 테크놀러지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세바 테크놀러지, 인크. filed Critical 세바 테크놀러지, 인크.
Priority claimed from PCT/US2019/062769 external-priority patent/WO2020087088A2/en
Publication of KR20210095624A publication Critical patent/KR20210095624A/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C25/00Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
    • G01C25/005Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass initial alignment, calibration or starting-up of inertial devices
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C19/00Gyroscopes; Turn-sensitive devices using vibrating masses; Turn-sensitive devices without moving masses; Measuring angular rate using gyroscopic effects
    • G01C19/02Rotary gyroscopes
    • G01C19/44Rotary gyroscopes for indicating the vertical
    • G01C19/46Erection devices for restoring rotor axis to a desired position
    • G01C19/54Erection devices for restoring rotor axis to a desired position with correction for acceleration forces due to movement of instrument
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P21/00Testing or calibrating of apparatus or devices covered by the preceding groups
    • G01P21/02Testing or calibrating of apparatus or devices covered by the preceding groups of speedometers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Gyroscopes (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

장치에 위치한 제1 관성 센서의 제로율 오프셋(ZRO)을 보정하는 방법에 있어서, 장치에 위치한 적어도 하나의 비관성 센서에 관련된 정보에 기초하여 장치의 안정성 수준을 결정하는 것; 및 안정성 레벨이 문턱보다 높을 때 제1 관성 센서의 ZRO 보정을 수행하는 것.A method of correcting a zero rate offset (ZRO) of a first inertial sensor located in a device, the method comprising: determining a level of stability of the device based on information related to at least one non-inertial sensor located in the device; and performing ZRO correction of the first inertial sensor when the stability level is above the threshold.

Description

센서의 제로율 출력 보정 방법 및 장치Method and Apparatus for Calibrating Zero Rate Output of Sensors

관련 출원Related applications

본 출원은 "센서의 제로율 출력 보정 방법 및 장치"의 명칭으로 2018년 9월 25일에 출원된 미국 가특허 출원 제 62/736,355 호, "센서의 제로율 출력 보정 방법 및 장치"의 명칭으로 2018년 12월 13일 출원된 미국 가특허 출원 제 62/779,336호, 및 "센서의 제로율 출력 보정 방법 및 장치"의 명칭으로 2019년 6월 4일 출원된 미국 가특허 출원 제 62/856,953호로부터 우선권을 주장하면 이들에 관련된 것이며, 이 세 출원의 내용이 여기에 참조로 통합된다.This application is a US Provisional Patent Application No. 62/736,355 filed on September 25, 2018 under the title of "Method and Apparatus for Correcting Zero Rate Output of Sensors", "Method and Apparatus for Correcting Zero Rate Output of Sensors" U.S. Provisional Patent Application No. 62/779,336, filed on December 13, 2018, and U.S. Provisional Patent Application No. 62/856,953, filed on June 4, 2019, entitled “Method and Apparatus for Correcting Zero Rate Output of Sensors” All claims of priority from, relate to, and the contents of these three applications are hereby incorporated by reference.

배경background

향상된 기능을 제공하기 위해 9-축 센서같은 소위 동작 센서(motion sensor)를 포함하는 전자 장치, 특히, 셀룰러 전화, 디지털 카메라, GPS 장치, 랩톱 및 팜톱 컴퓨터, 자동차, 로봇 진공 청소기 등과 같은 모바일 장치가 점점 대중화되고 널리 보급되고 있다. 총 9개의 센서를 포함하면서, 3개의 직교 방향 각각에 대해 하나의 자이로스코프, 하나의 가속도계 및 하나의 자력계를 포함하기 때문에, 9-축으로 언급된다. 이러한 동작 센서를 가지는 칩 또는 기타 전자 부품이 일반적으로 IMU 또는 관성 동작 유닛로 언급된다. 3-D 자이로스코프는 각속도를 측정한다. 3D 가속도계는 선형 가속도들을 측정한다. 자력계는 로컬 자기장 벡터(또는 그 편차)를 측정한다. 이들의 인기에도 불구하고, 이러한 9-축 센서의 예측 가능한 능력은, 무엇보다 센서로부터 바람직하지 않은 효과의 보정과 제거의 어려움 때문에, 완전히 활용되지 않는다. 예를 들어, 자이로스코프는, 실제로 자이로스코프가 회전하지 않을 때 그 출력이 0이 아닌(회전을 나타냄) 제로율 오프셋(ZRO)으로 잘 알려진 현상에, 영향을 받는 경향이 있다. 자력계는 근거리 장 간섭, 연철 효과 및 경철 효과와 같이, 몇몇의 상이한 잘 알려진 노이즈 인자들로 인해 어려움을 겪는다. Electronic devices containing so-called motion sensors, such as 9-axis sensors, in particular mobile devices, such as cellular telephones, digital cameras, GPS devices, laptop and palmtop computers, automobiles, robotic vacuums, etc. It is becoming increasingly popular and widespread. It is referred to as 9-axis because it contains a total of 9 sensors, including one gyroscope, one accelerometer and one magnetometer for each of the three orthogonal directions. A chip or other electronic component having such a motion sensor is commonly referred to as an IMU or inertial motion unit. A 3-D gyroscope measures angular velocity. A 3D accelerometer measures linear accelerations. A magnetometer measures the local magnetic field vector (or its deviation). Despite their popularity, the predictable capabilities of these 9-axis sensors are not fully exploited, among other things, because of the difficulty of correcting and eliminating undesirable effects from the sensor. For example, gyroscopes tend to be susceptible to a phenomenon well known as zero rate offset (ZRO), in which the output is non-zero (indicating rotation) when the gyroscope is not actually rotating. Magnetometers suffer from several different well-known noise factors, such as near-field interference, soft-iron effect, and hard-iron effect.

또한 휴대 전화, 가상 현실 안경 및 헤드셋, 증강 현실 안경 및 헤드셋, 텔레비전 리모콘 장치 및 다른 3-D 포인팅 장치, 및 다른 휴대용 통신 장치들은 이제 일반적으로 IMU와 함께 이용가능하며, 제한적이지는 않지만 게임 분야, 가상 현실(VR) 및 증강 현실(AR) 분야와 사진 및 비디오 그래픽 분야를 포함하는 많은 다양한 용도로 3D 분야에 사용되고 있다. 3D 포인팅 장치의 예는, Matthew G. Liberty의 미국 특허 제 7,118,518(이하 '518 특허라고 함)에서 발견될 수 있으며, 그 개시 내용은 여기에 참조로 포함된다.In addition, cell phones, virtual reality glasses and headsets, augmented reality glasses and headsets, television remote control devices and other 3-D pointing devices, and other portable communication devices are now commonly available with IMUs, including but not limited to gaming applications, It is used in the 3D field for many different uses, including the fields of virtual reality (VR) and augmented reality (AR), as well as photography and video graphics. An example of a 3D pointing device can be found in US Pat. No. 7,118,518 to Matthew G. Liberty (hereinafter referred to as the '518 patent), the disclosure of which is incorporated herein by reference.

'518 특허는, 예를 들어 하나 또는 두 개의 회전 센서 및 가속도계를 포함하는 3D 포인팅 장치를 설명한다. 회전 센서(들)가, 아래에서 더 자세히 설명하는 바와 같이, 사용자에 의해서 회전되고 있는 3D 포인팅 장치에서 각속도를 감지하기 위해 사용된다. 그러나, 회전 센서(들)의 출력은, 예를 들어, 앞서 언급한 "제로율 오프셋" 또는 센서의 ZRO 출력으로 인해, 3D 포인팅 장치가 회전되고 있는 각속도를 완벽하게 나타내지 않는다. 예를 들어, 3D IMU가 움직이지 않을 때, 회전 센서는 전형적으로 ZRO로 인해 0이 아닌 출력을 가진다. 예를 들어, 일 예로 커서를 이동시키거나 또는 가상 현실 장면을 디스플레이하기 위해 사용자 인터페이스에 대한 입력장치로 사용되는 3D 포인팅 장치에 IMU가 통합되는 경우, 사용자가 커서를 정지 상태로 유지하려고 의도할 때, 커서가 화면을 가로 질러 드리프트 하는 것을 야기하는 원치않는 효과를 가질 것이다. 또 다른 예로서, ZRO는 고정되어 있어야 할 때 VR장면이 드리프트하는 것을 야기할 수 있으며, 로봇 청소기가 잘못된 방향으로 이동하는 것을 야기할 수 있다. 따라서 센서 출력에서 ZRO를 추산(estimate)하고 제거하는 것이 매우 바람직하다. 이 프로세스를 더 어렵게 만드는 것은 바이어스가 센서마다, 심지어, 개별 센서에 대해서도 다르며, 온도 및/또는 에이징(aging)에서의 변화로 인해, 시간에 따라 변한다는 것이다. The '518 patent describes, for example, a 3D pointing device comprising one or two rotation sensors and an accelerometer. Rotation sensor(s) are used to sense the angular velocity in the 3D pointing device being rotated by the user, as described in more detail below. However, the output of the rotation sensor(s) does not perfectly represent the angular velocity at which the 3D pointing device is being rotated, for example due to the aforementioned “zero rate offset” or the ZRO output of the sensor. For example, when the 3D IMU is not moving, the rotation sensor typically has a non-zero output due to ZRO. For example, when an IMU is integrated into a 3D pointing device used as an input device for a user interface to move a cursor or display a virtual reality scene, for example, when the user intends to hold the cursor in a stationary state , will have the unwanted effect of causing the cursor to drift across the screen. As another example, ZRO can cause the VR scene to drift when it should be stationary and cause the robot cleaner to move in the wrong direction. Therefore, it is highly desirable to estimate and remove ZRO from the sensor output. What makes this process more difficult is that the bias varies from sensor to sensor, even for individual sensors, and varies over time due to changes in temperature and/or aging.

많은 ZRO 알고리즘은 온도 기울기를 직접 해결하지 않으며, 장치가 안정적일 때, 즉 정지된 때 ZRO를 동적으로 학습하고, 그리고 이 추산치를 지속적으로 개선하려고 시도한다. Many ZRO algorithms do not directly solve for temperature gradients, they dynamically learn ZRO when the device is stable, i.e. at rest, and attempt to continuously improve this estimate.

온도에 대해 보정하는 센서의 공장 보정이 일반적이다. 그러나 이러한 타입의 ZRO 보상에는 단점이 있다. 예를 들어, 장치는 여러 온도에서 측정되야 하기 때문에, 높은 보정 비용을 가진다. 이것은 보정 수행 없음 또는 단일 온도 보정 수행보다 더 많은 장치 요구하며, 실질적으로 더 많은 시간을 걸린다. 또한 온도 성능은 장치가 장착될 때 또는 시간이 지남에 따라 변화될 수 있으며, 그래서 장치에 동적 알고리즘을 가지는 것은 보정된 온도 기울기를 유지할 수 있다.Factory calibration of sensors that calibrate for temperature is common. However, this type of ZRO compensation has its drawbacks. For example, the device has a high calibration cost because it has to be measured at different temperatures. This requires more equipment than no calibration or performing a single temperature calibration, and takes substantially more time. Also, the temperature performance can change over time or when the device is mounted, so having a dynamic algorithm in the device can maintain a corrected temperature gradient.

전체가 본 명세서에 참조로 포함되는 PCT공개 특허출원 2018/118574는 ZRO의 온도 기울기를 직접 해결하는 ZRO 보상을 수행하는 방법 및 장치를 개시한다.PCT Published Patent Application 2018/118574, which is incorporated herein by reference in its entirety, discloses a method and apparatus for performing ZRO compensation that directly resolves the temperature gradient of ZRO.

요약summary

일 실시 예에 따르면, 장치에 위치한 제1 관성 센서의 제로율 오프셋 (ZRO)을 보정하는 방법은 장치에 위치한 적어도 하나의 비관성 센서에 관련된 정보에 기초하여 장치의 안정성 레벨을 결정하는 것과, 그리고 안정성 레벨이 문턱(threshold) 위에 있을 때, 제1 관성 센서의 ZRO의 보정을 수행하는 것을 포함한다.According to one embodiment, a method of correcting a zero rate offset (ZRO) of a first inertial sensor located on a device includes determining a stability level of the device based on information related to at least one non-inertial sensor located on the device, and when the stability level is above a threshold, performing calibration of the ZRO of the first inertial sensor.

일 실시예에 따르면, 로봇 장치를 작동하는 방법은 복수의 동작 제어 요구를 로봇 장치에 위치한 하나 이상의 관성 센서에 관련된 현재 제로율 오프셋(ZRO)에 기초하여 제어기에 보내는 것과, 동작 제어 요구에 기초하여 로봇 장치의 움직임을 제어하는 것을 포함한다.According to one embodiment, a method of operating a robotic device comprises: sending a plurality of motion control requests to a controller based on a current zero rate offset (ZRO) associated with one or more inertial sensors located on the robotic device; and controlling the movement of the robotic device.

일 실시 예에 따르면, 장치에 위치한 제1 관성 센서의 제로율 오프셋 (ZRO)을 보정하는 방법은 ZRO 보정과 관련되지 않은 이유로 제1 기간 동안 장치를 정지시키는 것; 제1 기간 동안 ZRO 보정 데이터를 축적하는 것; 제1 기간 후에 장치를 이동시키는 것; ZRO 보정과 관련되지 않은 이유로 제2 기간 동안 장치를 정지시키는 것; 제2 기간 동안 ZRO 보정 데이터를 축적하는 것; 및 제1 및 제2 기간으로부터 축적된 ZRO 보정 데이터를 이용하여 ZRO 보정을 수행하는 것을 포함한다. According to one embodiment, a method of correcting a zero rate offset (ZRO) of a first inertial sensor located in a device includes stopping the device for a first period for reasons not related to the ZRO calibration; accumulating ZRO correction data during the first period; moving the device after the first period; suspending the device for a second period of time for reasons not related to the ZRO calibration; accumulating ZRO correction data for a second period; and performing ZRO correction using the accumulated ZRO correction data from the first and second periods.

일 실시 예에 따르면, 장치는 적어도 하나의 비관성 센서; 적어도 하나의 관성 센서; 적어도 하나의 모터; 적어도 하나의 비관성 센서에 관련된 정보에 기초하여 장치의 안정성 레벨을 결정하는 것에 의해 장치에 위치한 관성 센서의 제로율 오프셋(ZRO)을 보정을 위한 제어기; 및 안정성 레벨이 문턱 위에 있을 때, 적어도 하나의 관성 센서의 하나의 ZRO의 보정을 수행하는 것을 포함한다.According to one embodiment, the device comprises at least one non-inertial sensor; at least one inertial sensor; at least one motor; a controller for correcting a zero rate offset (ZRO) of an inertial sensor located in the device by determining a stability level of the device based on information related to the at least one non-inertial sensor; and when the stability level is above the threshold, performing calibration of one ZRO of the at least one inertial sensor.

일 실시 예에 따르면, 로봇 장치는 적어도 하나의 모터; 및 로봇 장치에 위치한 하나 이상의 관성 센서에 관련된 현재 제로율 오프셋(ZRO) 에러 레벨에 기초한 복수의 모션 제어 요청 중 하나를 수신하고, 그리고 적어도 하나의 모터를 이용하여 모션 제어 요구에 기초하여 로봇 장치의 움직임을 제어하도록 구성된 제어기를 포함한다. According to one embodiment, the robot device includes at least one motor; and receiving one of a plurality of motion control requests based on a current zero rate offset (ZRO) error level associated with one or more inertial sensors located on the robotic device; and a controller configured to control movement.

일 실시 예에 따르면, 장치는 적어도 하나의 모터; 및 제로율 오프셋(ZRO) 보정과 무관한 이유로 제1 기간 동안 장치를 중지하고; 제1 기간 동안 ZRO 보정 데이터를 축적하고; 제1 기간 후에 장치를 이동시키고; ZRO 보정과 무관한 이유로 제2 기간 동안 장치를 중지하고; 제2 기간 동안 ZRO 보정 데이터를 축적하고; 그리고 제1 및 제2 기간으로부터 축적된 ZRO 보정 데이터를 사용하여 ZRO 보정을 수행;하도록 구성된 제어기를 포함한다. According to one embodiment, the device comprises at least one motor; and suspending the device for a first period for reasons unrelated to zero rate offset (ZRO) correction; accumulate ZRO correction data during the first period; move the device after the first period; stop the device for a second period of time for reasons unrelated to the ZRO calibration; accumulate ZRO correction data for a second period; and a controller configured to perform a ZRO correction using the accumulated ZRO correction data from the first and second periods.

여기 첨부된 도면과 함께 실시 예로서 주어진, 아래의 상세한 설명으로부터보다 보다 상세한 이해가 이루어질 수 있다. 상세한 설명에서 도면은 예이다. 따라서, 도면과 상세한 설명은 제한적인 것으로 간주되어서는 안되며, 그리고 다른 동등하게 효과적인 실시 예가 가능하며 가능성이 있다. A more detailed understanding may be obtained from the following detailed description, given by way of example in conjunction with the accompanying drawings herein. In the detailed description, the drawings are examples. Accordingly, the drawings and detailed description are not to be regarded as limiting, and other equally effective embodiments are possible and possible.

도면의 간단한 설명
또한, 도면들에서 비슷한 참조 번호는 유사한 요소를 나타내며, 여기서:
도 1은 일 실시 예에 따른 예시적인 시스템의 구성 요소를 보여주는 블록도이며,
도 2A 및 2B는 일 실시 예에 따른 프로세싱 시스템에 대한 상태도를 도시하며,
도 3A 및 3B는 다른 실시 예에 따른 프로세싱 시스템에 대한 상태도를 도시하며,
도 4는 장치가 MotionRequest 플래그의 다양한 상태에 응답하도록 어떻게 프로그래밍될 수 있는지 예시적인 일 실시 예를 보여주는 표이며,
도 5 내지 도 7은 실시 예에 따른 방법을 예시하는 흐름도이다.
Brief description of the drawing
Also, like reference numbers in the drawings indicate like elements, where:
1 is a block diagram showing the components of an exemplary system in accordance with one embodiment;
2A and 2B show state diagrams for a processing system according to an embodiment;
3A and 3B show state diagrams for a processing system according to another embodiment;
4 is a table illustrating an exemplary embodiment of how a device may be programmed to respond to various states of a MotionRequest flag;
5 to 7 are flowcharts illustrating a method according to an embodiment.

상세 설명detailed description

본 발명의 다음의 상세한 설명은 첨부된 도면을 참조한다. 다른 도면의 동일한 참조 번호는 동일하거나 유사한 구성을 가리킨다. 또한, 다음의 상세한 설명은 본 발명을 제한하지 않는다. 대신, 본 발명의 범위는 첨부된 청구 범위에 의해 정의된다.BRIEF DESCRIPTION OF THE DRAWINGS The following detailed description of the invention refers to the accompanying drawings. Like reference numbers in different drawings indicate the same or similar components. Moreover, the following detailed description does not limit the present invention. Instead, the scope of the invention is defined by the appended claims.

위에서 언급한 바와 같이, IMU는 로봇 진공 청소기와 같은 로봇공학에 사용될 수 있으며, 이것은 로봇을 제어하는데 사용하기 위한 방향 정보를 제공하기 위해, 하나 이상의 가속도계, 자력계 및 자이로스코프를 포함하는 IMU를 가질 수 있다. 로봇은 또한 휠들의 선형 운동을 측정하기 위해 휠 엔코더와 같은 센서들과 및/또는 네비게이션을 위한 카메라 또는 라이다와 통합할 수 있다. 로봇은 또한 모든 센서들로부터의 데이터에 대한 접근을 가지는 프로세서와 같은 제어기를 가질 수 있으며, 그러므로 로봇의 동작과 위치 및/또는 방향 상태를 계산할 수 있다. 예를 들어, 휠 인코더와 카메라 둘다 움직임이 없고, 그리고 모든 모터가 아이들(idle) 상태인 경우, 제어기는 로봇이 정지되어 있다고 합리적으로 가정할 수 있다.As mentioned above, an IMU may be used in robotics, such as a robotic vacuum cleaner, which may have an IMU comprising one or more accelerometers, magnetometers and gyroscopes to provide orientation information for use in controlling the robot. there is. The robot may also integrate with sensors such as a wheel encoder to measure the linear motion of the wheels and/or with a camera or lidar for navigation. The robot may also have a controller, such as a processor, that has access to data from all sensors, thus calculating the robot's motion and position and/or orientation status. For example, if both the wheel encoder and the camera are motionless, and all motors are idle, the controller can reasonably assume that the robot is stationary.

또한, 로봇은, 임의의 축에 대한 회전 및/또는 임의 방향으로의 병진(translation)을 포함하고, 로봇의 다른 부분에 대한 로봇 부분의 회전 및 병진(예 : 로봇의 본체에 대해 상대적으로 움직이는 기계 팔)을 포함하여, 임의의 수의 방식으로 로봇의 이동을 야기시키기 위한 모터를 포함할 수 있다. 제어기는 또한 모터를 제어하는 것에 의해 로봇의 동작을 지시하도록 구성될 수 있다.Robots also include rotation about any axis and/or translation in any direction, and rotation and translation of robot parts relative to other parts of the robot (eg, a machine moving relative to the body of the robot). arm), including motors to cause movement of the robot in any number of ways. The controller may also be configured to direct the motion of the robot by controlling the motor.

일 실시 예에 따르면, 제어기(또는 다른 처리 장치)는 IMU 센서(들)의 보정을 개선하기 위해 IMU 센서 및 다른 센서들 및 구성 요소(예를 들어, 카메라, 휠 인코더) 모두로부터의 데이터를 사용한다.According to one embodiment, the controller (or other processing device) uses data from both the IMU sensor and other sensors and components (eg, camera, wheel encoder) to improve the calibration of the IMU sensor(s). do.

위에서 언급한 바와 같이, 자이로스코프의 적절한 바이어스 보정(예를 들어, ZRO)은 IMU의 성능 및 따라서 로봇의 방향에 중요하다. 일반적으로 센서가 정지(stationary)되어 있을 때 ZRO를 보정하는 것이 가장 쉽다. 그러나, 이 프로세스를 더 어렵게 만드는 것은 바이어스가 센서마다 다르고 개별 센서에서조차도 시간에 따라, 예를 들어, 노화 및 온도 변화에 따라 변한다는 사실이다.As mentioned above, proper bias correction (eg, ZRO) of the gyroscope is critical to the performance of the IMU and thus the orientation of the robot. It is usually easiest to calibrate the ZRO when the sensor is stationary. However, what makes this process more difficult is the fact that the bias varies from sensor to sensor and even for individual sensors changes over time, for example with aging and temperature changes.

많은 ZRO 알고리즘은 장치가 안정적일 때, 즉, 정지되어 있을 때 ZRO를 동적으로 학습하고 이 추산치를 지속적으로 개선하려고 한다. 이것은 장치가 주기적으로 안정된 경우에는 잘 작동하지만, 장치가 안정된 후 장시간 연속적으로 움직이면 작동하지 않는다. 예를 들어, 로봇 진공 청소기는 초기 안정 윈도우 이후 큰 방을 청소하는데 오랜 시간이 걸릴 수 있으며, 이 시간 동안 자이로스코프의 ZRO가 달라질 수 있다. 한 가지 가능한 해결책은 ZRO 보정을 위해 로봇을 주기적으로 정지하는 것이다. 그러나, ZRO 변화는 여러 요인에 따라 달라질 수 있으므로, ZRO 재보정이 반드시 고정된 시간 간격으로 필요한 것은 아니다. 불필요할 때 로봇을 멈추는 것은 시간 낭비이다. 따라서 제어기가 ZRO 보정이 필요한 때와 필요하지 않은 때를 아는 것이 유용한다.Many ZRO algorithms dynamically learn ZRO when the device is stable, i.e. stationary, and try to continuously improve this estimate. This works fine if the device is periodically stable, but it doesn't work if the device is in continuous motion for a long time after it is stable. For example, a robotic vacuum cleaner may take a long time to clean a large room after the initial stabilization window, during which time the ZRO of the gyroscope may vary. One possible solution is to periodically stop the robot for ZRO calibration. However, ZRO changes can depend on many factors, so ZRO recalibration is not necessarily required at fixed time intervals. Stopping the robot when not needed is a waste of time. Therefore, it is useful for the controller to know when ZRO correction is needed and when it is not.

더욱이, 때때로 로봇이 절대적으로 안정한 것은 아니며, 그래서 관성 센서가 ZRO 보정을 수행하기에 좋은 시기가 아니라는 것을 나타내지만, 이것은 합리적인 ZRO 보정을 허용하기에 충분히 안정적일 수 있다. 예를 들어, 로봇 진공 청소기가 정지되어 있을 때, 즉 직선 운동과 각 운동이 없지만, 송풍기가 작동 중일 때, 관성 센서는 송풍기의 진동으로 인해 상당한 양의 측정 노이즈를 감지할 수 있으며, 그래서, 관성 센서 출력에 기초한 안정적인 감지 알고리즘은 ZRO가 수행될 수 있을 정도로 로봇이 안정적이라고 결정하지 않을 가능성이 크다. 그러나 실제로 로봇이 움직이지 않고 회전하지 않고 단지 진동하고 있을 때, 특히 비교적 긴 데이터 수집 윈도우(예: 몇 초)에서 좋은 ZRO 보정이 수행될 수 있다(안정적이고 송풍기가 꺼진 상태만큼 좋지는 않지만). 따라서 로봇이 병진하거나 회전하지 않고 송풍기가 켜져 있을 때, 특히 마지막 ZRO 보정 이후 오랜 시간이 경과한 때, ZRO 보정을 수행하는 것이 매우 바람직할 수 있다.Moreover, although sometimes the robot is not absolutely stable, indicating that the inertial sensor is not a good time to perform a ZRO calibration, this may be stable enough to allow for a reasonable ZRO calibration. For example, when the robot vacuum cleaner is stationary, i.e. there is no linear and angular motion, but the blower is running, the inertial sensor can detect a significant amount of measurement noise due to the vibration of the blower, so, inertial A stable detection algorithm based on sensor output is likely not to determine that the robot is stable enough for ZRO to perform. However, in practice a good ZRO correction can be performed (although it is stable and not as good as with the blower off), especially when the robot is not moving, rotating, and just vibrating, especially in relatively long data collection windows (eg, a few seconds). Therefore, it may be highly desirable to perform a ZRO calibration when the robot is not translating or rotating and the blower is on, especially when a long time has elapsed since the last ZRO calibration.

또 다른 특별한 경우는, 로봇이 일정한 각속도(예 : 짐벌에서)로 중력 축을 중심으로 회전하고 있으며, 로봇의 IMU에 하나 이상의 자이로스코프와 하나 이상의 가속도계는 있지만 자력계는 없는 경우이다. 자이로스코프와 가속도계 데이터는 로봇이 정지했을 때와 동일하고, 그리고 방향의 변화를 감지할 자력계가 없기 때문에, 안정된 감지기는 속아서("fooled") 로봇이 정지되어 있다고 생각하고, 따라서 회전 각속도는 ZRO로 간주된다. 이 경우, 로봇이 움직이고 있음을 나타내는 로봇으로부터의 플래그는 잘못된 안정 감지를 피할 수 있게 한다.Another special case is when the robot is rotating about the axis of gravity at a constant angular velocity (eg on a gimbal), and the robot's IMU has one or more gyroscopes and one or more accelerometers, but no magnetometer. Since the gyroscope and accelerometer data are the same as when the robot is stationary, and there is no magnetometer to detect a change in orientation, the stable detector is "fooled" into thinking the robot is stationary, and thus the rotational angular velocity is ZRO. is considered In this case, a flag from the robot indicating that the robot is moving makes it possible to avoid false stability detection.

위에서 언급한 이유 때문에, 로봇이 정지되어 있는지에 대한 훨씬 더 정확한 추산을 얻기 위해 로봇 제어기와 ZRO(Zero Rate Offset) 보정 유닛/프로세스 간의 상호 작용을 통합하는 것이 유익할 것이며, 따라서 ZRO 보정이 바람직한 경우에만 수행되고 바람직하지 않거나 필요하지 않은 경우에는 수행되지 않는 것을 야기하다(또는 적어도 수행해서는 안되는 때 ZRO 보정을 수행하거나, 수행해야 할 때 ZRO를 수행하지 않는 경우의 횟수를 줄인다). 보다 구체적으로, 휠 인코더 데이터 및/또는 카메라 데이터와 같이 장치가 안정적인지를 나타내는 데이터를 로봇 제어기에서 ZRO 보정 유닛으로 제공하는 것은, 과거에는 적절하지 않은 것으로 간주될 수 있는 경우에, 더 빈번한 ZRO 보정을 허여하면서, 따라서 필요하거나 바람직할 때ZRO 보정을 수행하게 만들 수 있다. 보완적으로 ZRO 보정 유닛은 ZRO 보정이 필요할 때 로봇을 중지하도록 요청하기 위해 로봇 제어기와 통신할 수 있으며, 다른 경우 로봇이 움직이기 때문에 수행될 수 없다.For the reasons mentioned above, it would be beneficial to incorporate the interaction between the robot controller and the Zero Rate Offset (ZRO) calibration unit/process to obtain a much more accurate estimate of whether the robot is stationary, and thus where ZRO calibration is desirable. (or at least do a ZRO correction when it shouldn't, or at least reduce the number of times it doesn't perform a ZRO when it should). More specifically, providing data indicative of whether the device is stable, such as wheel encoder data and/or camera data, from the robot controller to the ZRO calibration unit would allow for more frequent ZRO calibrations, where in the past it might not have been considered appropriate. allowing, thus making ZRO corrections performed when necessary or desirable. Complementarily, the ZRO calibration unit can communicate with the robot controller to request that the robot be stopped when a ZRO calibration is needed, which in other cases cannot be performed because the robot is moving.

도 1은 실시 예에 따른 예시적인 로봇 시스템, 예를 들어 로봇 진공 청소기의 블록도이다. 시스템은 로봇 제어기를 포함하며, 이것은 IMU(102)와 휠 인코더 및 카메라와 같은 로봇 상의 다른 센서들(104)로부터 수신된 데이터를 처리하기 위한 프로세서를 포함할 수 있다. IMU(102)는 하나 이상의 축에 대한 회전을 감지하기 위한 하나 이상의 자이로스코프, 하나 이상의 방향을 따라 가속을 감지하기 위한 가속도계들 및 지구 자기장에 상대적인 방향을 감지하기 위한 하나 이상의 자력계와 같은 관성 센서들을 포함할 수 있다. 로봇 제어기(100)는 로봇 및/또는 그것의 별개의 부분이 이동하고 병진 운동 및 회전 운동을 포함하는 기능의 수행을 야기할 수 있는 하나 이상의 모터(106)와 통신할 수 있다. 로봇 제어기(100) 및 IMU(102)는 둘 다 하나 이상의 프로세서 및 하나 이상의 메모리(별도로 도시되지 않음)를 포함할 수 있다. 예를 들어, IMU 내부 또는 그렇지 않으면 연관된 프로세서는 바이어스 오프셋 보상 기술을 실행하기 위해 관성 센서와 상호 작용할 수 있다. 마찬가지로, 로봇 제어기 내의 프로세서는 모터와 같은 시스템의 다른 구성 요소와 상호 작용하고 제어할 수 있다. 로봇 제어기(100)와 연관된 프로세서 및 IMU(102)와 연관된 프로세서는 두 세트의 기능을 모두 수행하도록 구성된 단일 프로세서로 구성될 수 있다. 사실, 도 1의 각 구성 요소는 범용 컴퓨터를 포함하여 프로세서에서 실행되는 하나 이상의 소프트웨어 모듈을 포함할 수 있거나, 아래 기술된 ASIC, 상태 머신, 논리 회로, 아날로그 회로, 디지털 회로, 프로세서 또는 위에 언급된 요소의 조합을 포함하지만 제한되지는 않는 기능을 수행하기 위해 하드웨어 구성에 전용된 하드웨어 구성요소들로 구성될 수 있다. IMU는 또한 관성 센서로부터의 데이터를 기반으로 장치(예 : 로봇)가 정지/안정 상태인지 여부를 판단하는 기능을 수행할 수 있다. 1 is a block diagram of an exemplary robotic system, eg, a robotic vacuum cleaner, in accordance with an embodiment. The system includes a robot controller, which may include a processor for processing data received from the IMU 102 and other sensors 104 on the robot, such as wheel encoders and cameras. IMU 102 includes inertial sensors, such as one or more gyroscopes for sensing rotation about one or more axes, accelerometers for sensing acceleration along one or more directions, and one or more magnetometers for sensing orientation relative to the Earth's magnetic field. may include The robot controller 100 may communicate with one or more motors 106 that may cause the robot and/or discrete portions thereof to move and perform functions including translational and rotational movements. Both robot controller 100 and IMU 102 may include one or more processors and one or more memories (not shown separately). For example, a processor inside or otherwise associated with the IMU may interact with the inertial sensor to implement a bias offset compensation technique. Likewise, the processor within the robot controller can interact with and control other components of the system, such as motors. The processor associated with the robot controller 100 and the processor associated with the IMU 102 may be configured as a single processor configured to perform both sets of functions. In fact, each component of Figure 1 may comprise one or more software modules executing on a processor, including a general purpose computer, or as described below, an ASIC, a state machine, a logic circuit, an analog circuit, a digital circuit, a processor or any of the above-mentioned It may consist of hardware components dedicated to hardware configuration to perform functions, including but not limited to combinations of elements. The IMU can also perform the function of determining whether a device (eg a robot) is stationary/steady based on data from an inertial sensor.

일 실시 예에 따르면, 전술한 구성 요소, 기능 및 신호에 더하여, 로봇 제어기 구성 요소(100) 및 IMU 구성 요소(102)는 MotionRequest 플래그 시그널 및 Motionlntent 플래그 시그널을 교환할 수 있다. 또한, 로봇 제어기는 별도의 안정성 감지 기능을 더 포함할 수 있다.According to an embodiment, in addition to the components, functions and signals described above, the robot controller component 100 and the IMU component 102 may exchange a MotionRequest flag signal and a Motionlntent flag signal. In addition, the robot controller may further include a separate stability detection function.

아래에서 더 자세히 설명되는 바와 같이, 로봇 제어기의 안정성 감지 기능은 로봇이 안정적인지 여부 및/또는 다른 센서(즉, IMU에 있는 관성 센서가 아님)로부터 수신된 데이터를 기반으로 로봇이 얼마나 안정적인지(또는 정지되어 있는지) 결정한다. As explained in more detail below, the stability sensing function of the robot controller determines whether the robot is stable and/or how stable the robot is based on data received from other sensors (i.e. not the inertial sensors located on the IMU). or stopped).

이하에서 더 상세히 설명되는 바와 같이, Motionlntent 플래그는 로봇 제어기에서 로봇의 동작 상태를 나타내는 IMU에 발행하는 신호이다. 비관성 센서의 데이터가 로봇 제어기가 로봇의 실제 동작을 잘못 계산하는 것을 야기할 수 있기 때문에 Motionlntent 플래그라고한다. 예를 들어, 휠 엔코더 데이터는 휠이 구르지 않는다는 것을 나타낼 수 있으며, 이는 로봇 제어기가 로봇이 정지되어 있다고 결론짖는 로봇 제어기에 의해 합리적으로 사용될 수 있다. 그러나, 로봇이 미끄러운 표면에 있다면, 로봇이 실제로 바닥을 따라 미끄러지고 있음을 상상할 수 있다. 카메라 출력이 로봇의 움직임 상태를 정확하게 반영하지 못할 수도 있다. MotionRequest 플래그는, IMU가 ZRO 보정을 수행할 수 있도록 IMU가 로봇을 중지하기를 원하는지 여부를 나타내는, IMU가 로봇 제어기에 발행하는 신호이다. As will be described in more detail below, the Motionlntent flag is a signal issued by the robot controller to the IMU indicating the operating state of the robot. It is called the Motionlntent flag because data from non-inertial sensors can cause the robot controller to miscalculate the robot's actual motion. For example, wheel encoder data may indicate that the wheel is not rolling, which can be reasonably used by the robot controller to conclude that the robot is stationary. However, if the robot is on a slippery surface, you can imagine that the robot is actually sliding along the floor. The camera output may not accurately reflect the robot's movement status. The MotionRequest flag is a signal the IMU issues to the robot controller that indicates whether the IMU wants the robot to stop so that the IMU can perform ZRO calibration.

I. 적응형 센서 노이즈 레벨을 가지는 안정성 감지 기능I. Stability detection with adaptive sensor noise level

ZRO 보정 목적을 위해서는 안정성 감지가 바람직하다. 로봇/센서가 안정적인 경우, 시간 윈도우에 걸친 자이로스코프 출력 데이터의 평균은 본질적으로 ZRO의 추산치이다. 이 추산치의 정확도는 자이로스코프 노이즈 레벨과 노이즈가 관찰되는 시간 윈도우의 길이에 달려있다. 다른 실시 예에서, ZRO 추산은 단순히 시간 윈도우에 걸쳐 자이로스코프 출력 데이터의 평균을 취하는 것보다 훨씬 더 복잡할 수 있다. 예를 들어, 이전에 언급된 PCT 공개 특허 출원 2018/118574는, 현재 온도에서 정확한 ZRO 추산을 얻기 위해 ZRO의 온도 기울기를 직접 해결하는 ZRO 보상을 수행하는 방법 및 장치를 개시한다.Stability sensing is desirable for ZRO calibration purposes. When the robot/sensor is stable, the average of the gyroscope output data over the time window is essentially an estimate of the ZRO. The accuracy of this estimate depends on the gyroscope noise level and the length of the time window over which the noise is observed. In other embodiments, the ZRO estimate may be much more complex than simply averaging the gyroscope output data over a time window. For example, the previously mentioned PCT published patent application 2018/118574 discloses a method and apparatus for performing ZRO compensation that directly solves the temperature gradient of ZRO to obtain an accurate ZRO estimate at the current temperature.

센서의 노이즈 레벨이 알려져 있다면, 로봇이 안정적이라는 결정(예를들어, 그래서 바이어스 추산이 수행될 수 있음)은 (1) 윈도우에서 샘플의 피크-투-피크 변동이 제1 문턱(이하, 샘플 문턱이라고 함)내에 있는지와 (2) 윈도우 평균이 제2 문턱(여기서는 평균 문턱이라고 함) 이상으로 변경되지 않았는지에 기초할 수 있다. 여러 센서(예를 들어, IMU 내부에 가속도계, 자이로스코프 및 자력계)가 있는 경우, 안정성 감지는 모든 센서의 측정 데이터를 기반으로 해야 하며, 예를 들어 로봇은 모든 센서가 안정일 때만 안정적인 것으로 간주될 수 있다. If the noise level of the sensor is known, then a determination that the robot is stable (eg, so bias estimation can be done) determines that (1) the peak-to-peak variation of the sample in the window is a first threshold ) and (2) whether the window average has not changed beyond a second threshold (referred to herein as an average threshold). If there are multiple sensors (e.g. accelerometers, gyroscopes and magnetometers inside the IMU), stability detection should be based on measurement data from all sensors, e.g. a robot can only be considered stable when all sensors are stable. there is.

샘플 문턱 및 평균 문턱은 둘 다 센서 노이즈 레벨로부터 계산된다. 그러나 동일한 모델 내에서 센서마다 노이즈 레벨이 상이하다. 각 센서 모델 노이즈에 대한 공칭 값(예 : 제조업체에서 제공하거나 사전 작동 테스트에 의해 제공되거나 현재 시간 이전에 결정된 값)이 노이즈 레벨로 사용될 수 있다. 그러나 이 값은 일반적으로 대부분의 센서에서 정확하지는 않다. 실제 노이즈 수준이 공칭 값보다 크면 센서가 움직임에 매우 민감하고, 그래서 이러한 센서로 안정성을 정확하게 결정하기는 것은 어렵다. 반면에, 실제 노이즈 수준이 공칭 값보다 훨씬 작으면, 이것은 움직임에 충분히 민감하지 않으며, 이 경우 로봇이 실제로 천천히 움직일 때 안정된 것으로 판단될 수 있으며, 이것은 ZRO 정확도를 떨어뜨릴 것이다. 따라서 각 센서의 실제 노이즈 수준을 "학습"하는 것이 중요하다.Both the sample threshold and the average threshold are calculated from the sensor noise level. However, within the same model, different sensors have different noise levels. The nominal value for each sensor model noise (eg, provided by the manufacturer, provided by pre-operational tests, or determined prior to the current time) can be used as the noise level. However, this value is generally not accurate for most sensors. If the actual noise level is greater than the nominal value, the sensor is very sensitive to movement, so it is difficult to accurately determine stability with such a sensor. On the other hand, if the actual noise level is much smaller than the nominal value, it is not sensitive enough to movement, in which case the robot can be judged to be stable when actually moving slowly, which will reduce the ZRO accuracy. Therefore, it is important to "learn" the actual noise level of each sensor.

이하에서 더 상세히 설명되는 일 실시 예에서, 안정성 감지 기능은 센서 노이즈 레벨로서 공칭 값을 사용하는 것에 의해 시작할 수 있고, 안정성이 감지되는 각 시간 각각 센서에 대해 노이즈 수치를 업데이트할 수 있다. 이러한 방식에서, 샘플 문턱과 평균 문턱을 계산하기 위해 사용된 센서 노이즈 레벨은 시간이 지남에 따라 지속적으로 더 정확해진다.In one embodiment, described in more detail below, the stability sensing function may start by using a nominal value as the sensor noise level, and update the noise level for each sensor each time stability is sensed. In this way, the sensor noise levels used to calculate the sample threshold and average threshold continue to become more accurate over time.

센서 노이즈에 더해서 진동이 있으면, 장치가 안정적인지 판단하기가 더 복잡해진다. 예를 들어 로봇 진공 청소기(RVC)의 예에서, 이것은 RVC가 움직이지 않고 회전하지 않지만 적어도 하나의 모터가 켜져 있을 때 발생할 수 있다. 작동 중인 모터 또는 바닥 유형의 다양한 조합으로 인해 진동 수준이 다를 수 있기 때문에, 장치 안정성을 합리적으로 정확하게 감지하려면 대체 솔루션이 필요할 수 있다. 일 실시 예에서, 진동 노이즈를 동적으로 학습하기 위한 가중된 통계가 이용될 수 있고, 그래서, 안정성 감지기는 특정 시간 후에 상이한 수준의 진동에 적응할 수 있고 여전히 의도하지 않은 갑작스런 움직임을 검출할 수 있다.Vibration in addition to sensor noise makes it more complicated to determine if a device is stable. In the example of a robotic vacuum cleaner (RVC), for example, this can happen when the RVC is stationary and not rotating, but at least one motor is on. Because different combinations of motors or floor types in operation can result in different vibration levels, alternative solutions may be needed to reasonably accurately detect device stability. In an embodiment, weighted statistics for dynamically learning vibration noise may be used, so that the stability sensor may adapt to different levels of vibration after a certain time and still detect unintended sudden movements.

II. 실시 예 1II. Example 1

A. 로봇 제어기에서 IMU 로의 Motionlntent 플래그A. Motionlntent flag from robot controller to IMU

Motionlntent 플래그는 카메라, 휠 엔코더, 로봇의 이동성 상태에 대한 데이터를 제공할 수 있는 로봇의 비관성 센서 또는 로봇의 다른 기계 구성 요소의 출력 데이터를 기반으로 로봇 제어기에 의해 생성된다. 이 플래그는 IMU로 전송되고, 이것은 로봇이 안정적인지 여부 및/또는 얼마나 안정적인지 결정하는데 이 플래그를 사용한다. 단지 하나의 예로서, 모터 제어기가 휠 인코더로부터 휠이 움직이지 않고 있고, 카메라에 의해서 감지한 이미지가 변하지 않고 있고, 블로어 모터가 꺼져 있고, 그리고 휠 모터가 꺼져 있다고 판단하면, 그것이 로봇이 안정적이라고 믿고 있음을 나타내는 Motionlntent 플래그가 생성될 수 있다. 반면에 블로어가 꺼져 있지 않고 켜져있는 것(그리고 가능하게는 카메라에 의해서 수신된 이미지들이 흔들리며)을 제외하고는, 모든 조건이 동일하면, 그것이 로봇이 병진 및 회전하지 않고 있지만, 그러나 전체적으로 움직임이 없는 것은 아니다(예를 들어, 이것을 진동하고 있다)라고 믿는다는 것을 가리키는 Motionlntent 플래그를 생성할 수 있다.Motionlntent flags are generated by the robot controller based on output data from cameras, wheel encoders, the robot's inertial sensors, or other mechanical components of the robot, which can provide data about the robot's mobility status. This flag is sent to the IMU, which uses this flag to determine if and/or how stable the robot is. As just one example, if the motor controller determines that the wheel is not moving from the wheel encoder, the image detected by the camera is not changing, the blower motor is off, and the wheel motor is off, it indicates that the robot is stable. A Motionlntent flag may be generated indicating that it believes. On the other hand, except that the blower is not turned off and on (and possibly shaking the images received by the camera), all things being equal, it means that the robot is not translating and rotating, but overall motionless. You can create a Motionlntent flag to indicate that you believe it is not (eg, it is oscillating).

일 실시예에서, Motionlntent 플래그는 다음 상태들 중 하나를 나타내는 4 개의 상태를 갖는 2 비트 플래그 일 수 있다 :In one embodiment, the Motionlntent flag may be a 2-bit flag with 4 states indicating one of the following states:

언노운(UNKNOWN):UNKNOWN:

이 상태는 로봇 제어기가 로봇의 동작 상태의 정확한 추산을 제공할 수 있다고 믿지 않는다는 것을 나타낸다. 로봇이 안정적이다는 것은 여전히 가능하다. This state indicates that the robot controller does not believe that it can provide an accurate estimate of the robot's operating state. It is still possible that the robot is stable.

스테이셔너리-위아웃-바이브레이션(STATIONARY_WITHOUT_VIBRATION) :STATIONARY_WITHOUT_VIBRATION:

Motionlntent 플래그의 이 상태는 로봇 제어기가 로봇이 추가 진동없이 정지하고 있다고 예측하는 것을 나타낸다. 이것은 로봇이 가만히 있도록 의도된 때이며, 즉, 직선 운동, 회전 및 진동이 없다. 따라서 자이로스코프 데이터의 노이즈는 단지 센서 노이즈이어야하며, 그리고 자이로스코프 출력 데이터에서 캡처된 ZRO 추산 값이 정확해야 한다.This state of the Motionlntent flag indicates that the robot controller expects the robot to be stationary without further vibration. This is when the robot is intended to be still, i.e. there is no linear motion, no rotation and no vibration. Therefore, the noise in the gyroscope data should be just sensor noise, and the ZRO estimate captured in the gyroscope output data should be accurate.

스테이셔너리-위드-바이브레이션(STATIONARY_WITH_VIBRATION) :Stationary-with-vibration (STATIONARY_WITH_VIBRATION):

Motionlntent 플래그의 이러한 상태는 로봇 제어기가 로봇이 본질적으로 정지되어 있지만 진동하고 있음을 예측한다는 것을 나타낸다. 로봇이 직선 운동과 회전을 하지 않지만 그러나 진동하는 때(예를 들어, 로봇 진공 청소기에서 진공 블로어가 On 인 경우)에 이 상태에 있을 수 있다. 이러한 움직임 상태에서, 자이로스코프 출력 데이터의 노이즈는 IMU 프로세서(예 : ZRO 추산 기능)에서 센서 노이즈와 진동으로 인한 노이즈를 모두 포함한다고 가정될 수 있다. IMU는 이 데이터를 사용하여 상당히 정확한 ZRO 추산치를 계산할 수 있지만, 이 추산치는 관찰에 더 긴 시간 윈도우가 필요할 수 있으며 및/또는 로봇이 완전히 안정되었을 때 보다 덜 정확할 수 있다.This state of the Motionlntent flag indicates that the robot controller predicts that the robot is essentially stationary but vibrating. It can be in this state when the robot does not move linearly and rotates but vibrates (eg when the vacuum blower is On in a robotic vacuum cleaner). In such a moving state, it can be assumed that the noise of the gyroscope output data includes both sensor noise and noise caused by vibration in the IMU processor (eg, ZRO estimation function). The IMU can use this data to calculate a fairly accurate estimate of ZRO, but this estimate may require a longer time window for observation and/or may be less accurate than when the robot is fully stable.

인모션(IN_MOTION):IN_MOTION:

Motionlntent 플래그의 이 상태는 로봇 제어기가 로봇이 움직이고 있고 정지된 것으로 기대되지 않는 것으로 예측함을 나타낸다. Motionlntent 플래그가 이 상태에 있을 때, IMU는 일반적으로 ZRO 보정을 전혀 수행하지 않아야 한다.This state of the Motionlntent flag indicates that the robot controller predicts that the robot is moving and is not expected to be stationary. When the Motionlntent flag is in this state, the IMU should normally not perform any ZRO calibration at all.

위에서 언급한 바와 같이, 이러한 플래그는 로봇의 "의도"들일 뿐이다. 플래그가 정지 상태를 나타내는 때 조차도, "의도하지 않은" 움직임이 있을 수 있다. 예를 들어, 로봇이 갑자기 물체에 부딪히거나 로봇이 바닥에서 미끄러질 수 있다(휠 엔코더는 로봇이 고정되어 있음을 나타냄). 그러므로, 일 실시 예에서, Motionlntent 플래그가 로봇이 고정되어 있음을 나타내는 있을 때 조차도, IMU에 있는 별도의 안정성 검출기(예 : 관성 센서로부터의 데이터를 사용)는 로봇 제어기의 반대 결론에도 불구하고 로봇이 움직이고 있다고 예측하기 위해서 사용되는 그 동작 예측 작동을 계속하고, 그리고 매우 잘못된 ZRO 추산이 생성될 수 있는 이러한 조건에서 IMU가 ZRO를 추산하려고 시도하는 것을 방지한다. As mentioned above, these flags are just the "intents" of the robot. Even when the flag indicates a stationary state, there may be "unintentional" movement. For example, the robot may suddenly bump into an object or the robot may slide on the floor (wheel encoders indicate that the robot is stationary). Therefore, in one embodiment, even when the Motionlntent flag indicates that the robot is stationary, a separate stability detector in the IMU (e.g., using data from an inertial sensor) indicates that the robot is It continues its motion prediction operation, which is used to predict that it is moving, and prevents the IMU from attempting to estimate the ZRO under these conditions, which can produce a very erroneous ZRO estimate.

B. IMU로부터 로봇 제어기로의 MotionRequest 플래그B. MotionRequest flag from IMU to robot controller

IMU는 ZRO 상태를 결정하고(예를 들어, 현재 ZRO 추산치가 정확할 가능성이 있거나 현재 ZRO 추산이 정확하지 않을 가능성이 있음), 그리고 ZRO 상태에 따라 MotionRequest 플래그를 로봇 제어기에 전송할 수 있다. 예를 들어, ZRO를 재보정해야할 필요가 있는 경우, 센서는 로봇에게 정지를 요청하거나 로봇이 이미 정지된 경우 정지 상태를 유지하도록 요청할 수 있다. 플래그는 ZRO 추산치를 업데이트할 필요성의 긴급도의 상이한 수준에 따라 설계될 수 있다.The IMU may determine the ZRO state (eg, the current ZRO estimate is likely to be correct or the current ZRO estimate may not be accurate), and may send a MotionRequest flag to the robot controller according to the ZRO state. For example, if the ZRO needs to be recalibrated, the sensor may ask the robot to stop or to remain stationary if the robot is already stopped. Flags may be designed according to different levels of urgency of the need to update the ZRO estimate.

일 실시 예에서, ZRO 품질은 주로 다음 측면들에 의해 결정될 수 있다 : In one embodiment, ZRO quality may be primarily determined by the following aspects:

a. 노화 효과로 인한 마지막 ZRO 보정 이후 시간 경과, △t;a. Time elapsed since last ZRO correction due to aging effects, Δt;

b. 마지막 보정 이후의 온도 변화, △T;b. temperature change since last calibration, ΔT;

c. 마지막 보정의 보정 품질(이것은 ZRO 추산치의 표준 편차인 △ZRO로 표시될 수 있음)c. Calibration quality of the last calibration (this can be expressed as ΔZRO, which is the standard deviation of the ZRO estimate)

최대 ZRO 오류는 다음과 같이 추산될 수 있다.The maximum ZRO error can be estimated as

"ZRO_Err"= △t·aging_slope + △T·temperature_slope + △ZRO (1)"ZRO_Err" = △t aging_slope + △T temperature_slope + △ZRO (One)

목표는 총 "ZRO_Err"을 최소화하는 것이며, 이에 의해 주어진 센서에 대한 로봇 방향 정확도를 최대화하는 것이다. The goal is to minimize the total "ZRO_Err", thereby maximizing the robot orientation accuracy for a given sensor.

일 실시 예에서, MotionRequest 플래그는 2 비트일 수 있고 다음과 같이 4 개의 상태를 가질 수 있다 :In one embodiment, the MotionRequest flag may be 2 bits and may have 4 states as follows:

노컨스트레이트(NO_CONSTRAINT):NO_CONSTRAINT:

MotionRequest 플래그는 로봇이 안정된 상태에서 발행될 수 있으며, 이 경우 IMU가 정확한 ZRO 추산을 생성하기 위해 현재 정지 기간 동안 충분한 데이터를 획득했음을 나타낸다. 따라서 로봇은 원하는대로 자유롭게 움직이거나 멈출수 있다. 또한, 이 상태는, 로봇이 움직이고 있으며 그리고 ZRO 목적으로 멈출 필요가 없을 때, 발생될 수 있다.The MotionRequest flag can be issued when the robot is in a steady state, in which case it indicates that the IMU has acquired enough data during the current pause to generate an accurate ZRO estimate. Thus, the robot can freely move or stop as desired. This condition can also occur when the robot is moving and does not need to stop for ZRO purposes.

스테이-스테이셔너리(STAY_STATIONARY):STAY_STATIONARY:

MotionRequest 플래그는 로봇이 정지된 상태에서 발행될 수 있으며, 그리고 양호한 ZRO 보정을 위한 안정한 윈도우가 아직 충족되지 않았으며, 그리고 로봇을 정지 상태로 유지하라는 요청이 있음을 나타낸다.The MotionRequest flag may be issued while the robot is stationary, indicating that a stable window for good ZRO calibration has not yet been met, and a request is made to keep the robot stationary.

논-어전트-스테이셔너리(NON_URGENT_STATIONARY) :Non-agent-stationary (NON_URGENT_STATIONARY) :

MotionRequest 플래그는 로봇이 움직이고 있을 때, 그리고 IMU는 조만간 정지하는 것이 ZRO를 확인하는데 도움이 될 것이라고 생각할 때 발행될 수 있다. 요컨대 로봇 제어기에게 급히는 아니지만 조만간 정지해 달라는 요청이다. 로봇 제어기는 이 플래그의 수신에 대응하여 편리한 때 로봇의 동작을 중지해야 한다. 편리함의 수준은 배터리 잔량, 장애물 부딪힘과 같은 미래 사건에 대응하기 위해 다음 중지를 동기화하는 MotionRequest 플래그의 상태에 관계없이 로봇이 중지할 시간에 대한 지식, 로봇에 의해 현재 수행중인 기능 및/또는 로봇 방향이 부정확할 경우 발생할 수 있는 위험 수준에 할당된 임계 상태 등과 같은 여러 요인 중 하나 이상의 함수로 판단할 수 있다.The MotionRequest flag can be issued when the robot is moving, and when the IMU thinks stopping sooner or later will help identify the ZRO. In short, it is a request to the robot controller to stop sooner or later, though not urgently. The robot controller shall stop the motion of the robot at a convenient time in response to receipt of this flag. The level of convenience depends on the knowledge of when to stop the robot, the function currently being performed by the robot, and/or the orientation of the robot, regardless of the state of the MotionRequest flag that synchronizes the next stop to respond to future events such as battery level, bumping into an obstacle, etc. This inaccuracy can be judged as a function of one or more of several factors, such as the critical state assigned to the level of risk that may occur.

어전트-스테이셔너리(URGENT_STATIONARY) :Agent-stationary (URGENT_STATIONARY):

MotionRequest 플래그는 로봇이 움직이고 IMU가 가능한 빨리 ZRO를 보정해야 한다고 생각하는 상태에서 발행될 수 있다. 요컨대, 방향 오류가 원하는 것보다 더 악화되는 것을 방지하기 위해 가능한 빨리 정지하는 것이 중요하다. The MotionRequest flag can be issued while the robot is moving and the IMU believes it should calibrate the ZRO as soon as possible. In short, it is important to stop as quickly as possible to prevent the orientation error from getting worse than desired.

일 실시 예에서, "ZRO_Err"에 대한 세 가지 상이한 레벨의 문턱들, 즉 ZRO_Lo, ZRO_Md 및 ZRO_Hi가 있을 수 있다. 이 세 가지 레벨은 다음 방정식에 따라 MotionRequest 플래그를 설정하는 데 사용할 수 있다.In one embodiment, there may be three different levels of thresholds for "ZRO_Err": ZRO_Lo, ZRO_Md, and ZRO_Hi. These three levels can be used to set the MotionRequest flag according to the following equation:

만일, 로봇 제어기로부터의 Motionlntent 플래그가 UNKNOWN 또는 IN_MOTION이면, 다음:If the Motionlntent flag from the robot controller is UNKNOWN or IN_MOTION, then:

Figure pct00001
Figure pct00001

만일 Motionlntent 플래그가 STATIONARY_WITHOUT_VIBRATION 또는 STATIONARY_WITH_VIBRATION이면, 다음:If the Motionlntent flag is STATIONARY_WITHOUT_VIBRATION or STATIONARY_WITH_VIBRATION, then:

Figure pct00002
Figure pct00002

C. IMU에서 ZRO 보정 프로세스C. ZRO Calibration Process in IMU

Motionlntent 플래그는 로봇의 동작 상태의 지표로서 IMU에 의해 사용될 수 있으며, ZRO 보정을 위한 IMU 프로세스는 Motionlntent 플래그의 상태에 따라 다를 수 있다.The Motionlntent flag can be used by the IMU as an indicator of the robot's operating state, and the IMU process for ZRO calibration may vary depending on the state of the Motionlntent flag.

예를 들어, STATIONARY_WITHOUT_VIBRATION 상태에 있을 때, IMU는 적응형 노이즈 레벨로 안정성 감지를 실행한다. 이것은 일정 기간 동안 자이로스코프 및 가속도계 신호에 존재하는 동적 모션의 양을 확인하는 안정성 감지 알고리즘의 사용을 포함한다. "on table" 안정성 감지기는 일정량의 센서 "노이즈" 및 진동을 허용하지만, 여전히 정지 상태로 선언되는 고정된 문턱을 가지고 있다. 이 프로세스에 사용되는 노이즈 수준은 센서의 최초 공칭 값이거나 또는 가장 최근의 이전 정지 상태에서 저장된 정지 노이즈 수준이다. IMU에서 수행된 안정성 감지 프로세스가 로봇이 안정적이라는 로봇 제어기의 Motionlntent 플래그와 부동의하지 않는 경우, 이것은 미끄러짐 또는 부딪침과 같은 어떤 의도하지 않은 동작이 발생했거나 아니라면 발생하지 않으면 가능성이 높으며, IMU는 단순 윈도우 평균 알고리즘 또는 앞에서 언급한 PCT 공개된 특허 출원 2018/118574에서 공개된 보다 복잡한 프로세스와 같은 ZRO 재보정을 위한 프로세스를 수행한다. IMU는 동시에 ZRO의 표준 편차, 타임 스탬프 및 해당 시간의 온도도 저장해야 한다.For example, when in the STATIONARY_WITHOUT_VIBRATION state, the IMU performs stability detection with an adaptive noise level. This involves the use of stability sensing algorithms to determine the amount of dynamic motion present in the gyroscope and accelerometer signals over a period of time. An "on table" stability detector allows a certain amount of sensor "noise" and vibration, but still has a fixed threshold that is declared stationary. The noise level used in this process is either the initial nominal value of the sensor or the stored static noise level from the most recent previous standstill. If the stability detection process performed on the IMU does not float with the robot controller's Motionlntent flag that the robot is stable, this is most likely if some unintended motion, such as slipping or bumping, has occurred, or if not, the IMU has a simple window. Perform a process for ZRO recalibration, such as the averaging algorithm or the more complex process disclosed in the aforementioned PCT published patent application 2018/118574. The IMU must also store the standard deviation of the ZRO, the timestamp, and the temperature at that time.

초기에, 업데이트된 ZRO를 계산하는 동안, IMU는 MotionRequest 플래그를 STAY_STATIONARY 에 설정한다. 다음, ZRO 추산치가 특정 정확도에 도달한 후, 예를 들어, 식 (3)에서, 또는 미리 정해진 시간 윈도우가 지난 후, MotionRequest 플래그는 NO_CONSTRAINT로 변경된다. Initially, while calculating the updated ZRO, the IMU sets the MotionRequest flag to STAY_STATIONARY . Next, after the ZRO estimate reaches a certain accuracy, for example in equation (3), or after a predetermined time window has elapsed, the MotionRequest flag is changed to NO_CONSTRAINT.

Motionlntent 플래그가 상태를 STATIONARY_WITHOUT_VIBRATION에서 다른 상태로 변경할 때, IMU는 정지 센서 노이즈 레벨을 저장하고 향후 STATIONARY_WITHOUT_VIBRATION 상태를 계속하기 위해, 새로운 고정 노이즈 레벨 값을 사용할 것이다. When the Motionlntent flag changes the state from STATIONARY_WITHOUT_VIBRATION to another state, the IMU will use the new fixed noise level value to store the static sensor noise level and continue the STATIONARY_WITHOUT_VIBRATION state in the future.

Motionlntent 플래그가 STATIONARY_WITH_VIBRATION 상태에 있을 때, IMU는 다른 노이즈 레벨로 안정성 검출 프로세스를 실행할 수 있다. 특히, 노이즈 레벨은 예를 들어 로봇의 어떤 전형적인 진동에 기초하여 고정된 미리 설정된 값일 수 있다. 그것은 아마도 STATIONARY_WITHOUT_VIBRATION 상태에 대한 값보다 더 클 수 있다(일반적으로 ZRO를 결정하는데 더 긴 시간 윈도우로 나타남). 그것이 옵션일지라도, STATIONARY_WITHOUT_VIBRATION의 경우 작동하는 모터 또는 바닥 유형의 다양한 조합에 의해 야기되는 다양한 수준의 진동이 발생할 수 있기 때문에, 진동과 함께 노이즈 수준을 학습하는 것은 특별히 유용하지 않을 수 있다. 다른 한편으로, 다른 실시 예에서, 모터 상태(및/또는 다른 인자)의 가능한 상태의 각각의 조합에 대해 별개의 노이즈 레벨을 학습하고 저장할 수 있다. 그 후, 작동 중에, 장치는 모터 상태(및/또는 다른 요인)를 감지하고, 모터 상태(및/또는 다른 요인)의 특정 조합에 해당하는 여러 노이즈 레벨 중 하나를 선택할 수 있다..When the Motionlntent flag is in the STATIONARY_WITH_VIBRATION state, the IMU can run the stability detection process with different noise levels. In particular, the noise level may be a fixed preset value, for example based on some typical vibration of the robot. It could possibly be larger than the value for the STATIONARY_WITHOUT_VIBRATION state (usually represented by a longer time window to determine ZRO). Although that is an option, learning the noise level along with vibration may not be particularly useful for STATIONARY_WITHOUT_VIBRATION, since varying levels of vibration can be caused by various combinations of motors or floor types that are running. On the other hand, in other embodiments, a separate noise level may be learned and stored for each combination of possible states of motor states (and/or other factors). Then, during operation, the device can sense the motor state (and/or other factors) and select one of several noise levels that correspond to a particular combination of motor states (and/or other factors).

대안적인 실시 예에서, 로봇 제어기는 상이한 노이즈 레벨을 분류하는데 사용하기 위해 이러한 모터 상태들을 전달할 수 있다. 다른 대안적인 실시 예에서, 별개의 노이즈 레벨들을 학습하고 저장하는 대신, 시스템은 현재 노이즈 레벨에 동적으로 적응할 수 있다. 적응 속도는 노이즈 수준이 이전보다 더 큰 새로운 진동에 빠르게 적응할 수 있을만큼 충분히 빠르게 증가하도록 조정될 수 있지만, 충돌과 같은 예상치 못한 동작 이벤트를 거부할 수 있을 정도로 느리게 변경될 수 있다.In an alternative embodiment, the robot controller may communicate these motor states for use in classifying different noise levels. In another alternative embodiment, instead of learning and storing discrete noise levels, the system may dynamically adapt to the current noise level. The rate of adaptation can be adjusted so that the noise level increases fast enough to quickly adapt to new vibrations that are larger than before, but can change slowly enough to reject unexpected motion events such as collisions.

진동 중 ZRO를 계산하기 위해, 정지 기간 동안 샘플의 실행 평균이 ZRO의 합리적인 추산치로 취해질 수 있다. 더 짧은 윈도우와 큰 진동의 경우, 진동의 기본 주파수가 결정될 수 있고, 평균 윈도우의 길이는 진동의 기본 주파수의 배수가 되도록 조정될 수 있다. 이것은 ZRO 추산치가 편향되는 것을 방지하는 데 도움이 될 수 있다. 기본 주파수는 주파수 도메인 분석(예 : FFT 기반 분석) 또는 시간 도메인 분석(예 : 제로 교차 분석)에 의해 감지될 수 있다.To calculate the ZRO during oscillation, the running average of the samples during the quiescent period can be taken as a reasonable estimate of the ZRO. For shorter windows and larger oscillations, the fundamental frequency of the oscillations can be determined, and the length of the average window can be adjusted to be a multiple of the fundamental frequency of the oscillations. This can help avoid biasing the ZRO estimate. The fundamental frequency can be detected by frequency domain analysis (eg FFT-based analysis) or time domain analysis (eg zero cross analysis).

IMU에 의해 수행된 IMU 안정성 감지 프로세스가 로봇이 정지되어 있지만 진동/노이즈가 있다는 로봇 제어기의 Motionlntent 플래그와 비동의하지 않는 경우, 이것은 휠 미끄러짐이나 부딪힘과 같은 어떤 의도하지 않은 움직임이 발생하지 않으면 가능성이 높은데, IMU가 ZRO를 재보정한다. IMU는 또한 ZRO의 표준 편차, 타임 스탬프 및 온도를 또한 저장해야 한다. If the IMU stability detection process performed by the IMU does not agree with the Motionlntent flag in the robot controller that the robot is stationary but there is vibration/noise, this is likely unless some unintentional movement such as wheel slipping or bumping occurs. High, the IMU recalibrates the ZRO. The IMU must also store the ZRO's standard deviation, timestamp, and temperature.

초기에, 이 상태에서 업데이트된 ZRO를 계산하는 동안, IMU는 MotionRequest 플래그를 STAY_STATIONARY로 설정한다. 그런 다음 ZRO 추산치가 특정 정확도에 도달한 후, 예를 들어 식(3)을 참조, 또는 미리 정해진 시간 윈도우 경과후, MotionRequest 플래그가 NO_CONSTRAINT로 변경된다.Initially, while calculating the updated ZRO in this state, the IMU sets the MotionRequest flag to STAY_STATIONARY. Then, after the ZRO estimate has reached a certain accuracy, e.g., see equation (3), or after a predetermined time window, the MotionRequest flag is changed to NO_CONSTRAINT.

Motionlntent 플래그가 STATIONARY_WITH_VIBRATION에서 다른 상태로 상태를 변경할 때, IMU는 추후 사용을 위해 마지막 ZRO 추산의 시간과 온도를 저장한다. When the Motionlntent flag changes state from STATIONARY_WITH_VIBRATION to another state, the IMU saves the time and temperature of the last ZRO estimate for later use.

Motionlntent 플래그가 IN_MOTION 상태에 있을 때, IMU는 잘못된 안정성 감지를 피하기 위해 안정성 감지를 수행하지 않을 것이며, 따라서 부정확할 가능성이 있는 ZRO의 잠재적인 재보정을 피할 것이다. 또한 이 상태(즉, Motionlntent 플래그가 IN_MOTION으로 설정)에서, IMU는 다른 요인에 따라 MotionRequest 플래그를 NO_CONSTRAINT, NON_URGENT_STATIONARY 또는 URGENT_STATIONARY로 설정한다. 예를 들어, 일 실시 예에서, MotionRequest 플래그의 상태는 식(2)에 따라서 설정된다. 다른 실시 예에서, MotionRequest 플래그의 상태는 단순히 마지막 ZRO 보정 이후 시간의 함수로서 설정되고, 예를 들어, 시간이 진행함에 따라 NO_CONSTRAINT에서 NON_URGENT_STATIONARY로, 그리고 마지막으로 URGENT_STATIONARY로 바뀐다. When the Motionlntent flag is in the IN_MOTION state, the IMU will not perform stability detection to avoid false stability detection, thus avoiding potential recalibration of the ZRO which may be inaccurate. Also in this state (that is, the Motionlntent flag is set to IN_MOTION), the IMU sets the MotionRequest flag to NO_CONSTRAINT, NON_URGENT_STATIONARY, or URGENT_STATIONARY depending on other factors. For example, in one embodiment, the state of the MotionRequest flag is set according to equation (2). In another embodiment, the state of the MotionRequest flag is simply set as a function of time since the last ZRO calibration, eg, from NO_CONSTRAINT to NON_URGENT_STATIONARY and finally URGENT_STATIONARY as time progresses.

마지막으로, Motionlntent 플래그가 UNKNOWN 상태에 있을 때, IMU는 정지 노이즈 레벨로 안정성 감지를 실행할 것이다. IMU의 안정성 감지 프로세스에서 로봇이 안정적이라고 판단하면, 이것은 가능한데, 다음 IMU는 ZRO를 재보정한다. 다음 IMU는, Motionlntent 플래그가 IN_MOTION 상태에 있을 때, 예를 들어, 여러 요인들에 따라서 NO_CONSTRAINT, NON_URGENT_STATIONARY 또는 URGENT_STATIONARY), Motionlntent 플래그를 위에서 언급한 것과 동일하게 설정할 수 있다.Finally, when the Motionlntent flag is in the UNKNOWN state, the IMU will perform stability detection with a static noise level. If the IMU's stability sensing process determines that the robot is stable, this is possible, and the next IMU recalibrates the ZRO. The next IMU, when the Motionlntent flag is in IN_MOTION state, for example, NO_CONSTRAINT, NON_URGENT_STATIONARY or URGENT_STATIONARY, depending on several factors), can set the Motionlntent flag the same as mentioned above.

더욱이, Motionlntent 플래그가 상태를 변경할 때마다, IMU의 안정성 감지 알고리즘에 의해 사용되는 노이즈 문턱도 고려되어야 하며 잠재적으로 업데이트 되어야 한다. 예를 들어, Motionlntent 플래그가 상태를 STAIONARY_WITHOUT_VIBRATION으로 변경할 때마다, 노이즈 문턱은 저장된 정지 노이즈 레벨(이는 앞서 설명한 것과 같이, 공칭 값 또는 최근 업데이트된 값일 수 있음)으로 설정되어야한다. 이는 Motionlntent 플래그의 다른 상태에서 UNKNOWN 상태로의 모든 전환에도 또한 진실이다. 반면에, 어떤 다른 상태에서 STATIONARY_WITH_VIBRATION 상태로의 어떤 전환은 앞서 언급한 것처럼 IMU 안정성 감지 프로세스에서 사용하는 노이즈 문턱을 고정된 "진동"노이즈 레벨로 설정하는 것과 함께 수행되어야 한다. 마지막으로, Motionlntent 플래그가 IN_MOTION 으로 전환될 때마다, IMU의 안정성 감지 프로세스가 이 상태에서 항상 꺼지기 때문에, 노이즈 레벨의 세팅에 관해서 어떤 동작도 취해질 필요가 없다. Moreover, whenever the Motionlntent flag changes state, the noise threshold used by the IMU's stability detection algorithm should also be considered and potentially updated. For example, whenever the Motionlntent flag changes the state to STAIONARY_WITHOUT_VIBRATION, the noise threshold should be set to the stored static noise level (which can be a nominal value or a recently updated value, as previously described). This is also true for all transitions from other states of the Motionlntent flag to the UNKNOWN state. On the other hand, any transition from any other state to the STATIONARY_WITH_VIBRATION state must be performed in conjunction with setting the noise threshold used by the IMU stability sensing process to a fixed "vibration" noise level, as mentioned earlier. Finally, whenever the Motionlntent flag is switched to IN_MOTION , no action needs to be taken regarding the setting of the noise level, as the IMU's stability sensing process is always turned off in this state.

도 2a 및 2b는 Motionlntent 플래그가 한 상태에서 다른 상태로 변경 될 때 수행되는 기능뿐만 아니라 Motionlntent 플래그의 각 주어진 상태에 대해, 위에서 요약된 바와 같이, IMU에 의해 수행되는 기능을 보여주는 상태 테이블을 도시한다. 보다 구체적으로, 도 2a 및 도 2b에서 Motionlntent 플래그의 현재 상태는 첫 번째(가장 왼쪽) 열 아래에 나열되고 해당 상태의 끝에서 전환되는 상태가 첫 번째(맨 위) 행에 나열된다. 따라서 테이블의 대각선을 따르는 셀(회색 셀)은 Motionlntent 플래그의 상태 변경을 포함하지 않는다. 따라서 이러한 셀에 설명된 것은 Motionlntent 플래그가 해당 상태에 있을 때 수행하는 기능이다. 반면에 다른 셀(테이블의 대각선에 있지 않는)은 Motionlntent 플래그의 상태 변경에 해당한다. 따라서, 이들 셀들에 있는 텍스트는 두 대응 상태들 사이에서 변경시 수행되는 작업을 기술한다. Figures 2a and 2b show state tables showing the functions performed when the Motionlntent flag is changed from one state to another, as well as the functions performed by the IMU for each given state of the Motionlntent flag, as summarized above. . More specifically, in FIGS. 2A and 2B , the current state of the Motionlntent flag is listed under the first (leftmost) column, and the state transitioned at the end of that state is listed in the first (top) row. Therefore, the cells along the diagonal of the table (the gray cells) do not contain the state change of the Motionlntent flag. Thus, what is described in these cells is the function they perform when the Motionlntent flag is in that state. On the other hand, other cells (not on the diagonal of the table) correspond to state changes in the Motionlntent flag. Thus, the text in these cells describes the action to be performed when changing between the two corresponding states.

따라서, 예를 들어, 두 번째 행 및 두 번째 열의 셀은 Motionlntent 플래그가 STATIONARY_WITHOUT_VIBRATION 상태에 있을 때 수행되는 프로세스(들)를 반영한다. 반면에, 예를 들어 두 번째 행과 세 번째 열의 셀은 Motionlntent 플래그가 STATIONARY_WITHOUT_VIBRATION 상태에서 STATIONARY_WITH_VIBRATION 상태로 전환될 때 수행된 프로세스를 반영한다. 마찬가지로 두 번째 행과 네 번째 열의 셀은 Motionlntent 플래그가 STATIONARY_WITHOUT_VIBRATION 상태에서 UNKNOWN 상태로 전환될 때 수행되는 프로세스를 반영한다.So, for example, the cells in the second row and second column reflect the process(es) that are performed when the Motionlntent flag is in the STATIONARY_WITHOUT_VIBRATION state. On the other hand, for example, the cells in the second row and third column reflect the process performed when the Motionlntent flag transitions from the STATIONARY_WITHOUT_VIBRATION state to the STATIONARY_WITH_VIBRATION state. Similarly, the cells in the second row and fourth column reflect the process performed when the Motionlntent flag transitions from the STATIONARY_WITHOUT_VIBRATION state to the UNKNOWN state.

더욱이, 괄호없이 인쇄된 임의의 셀의 텍스트는 IMU의 안정성 검출 기능에 의해(또는 이와 관련하여) 수행되는 것을 나타낸다. 화살표 괄호 안에 있는 텍스트는 업데이트 및 저장중인 변수를 나타낸다. 괄호 안에 인쇄된 텍스트는 IMU가 MotionRequest 플래그를 설정하고 있는 상태를 나타낸다. 마지막으로 표준 괄호 안에 인쇄된 텍스트는 노이즈 문턱 변수와 관련하여 수행중인 작업을 나타낸다. 적어도 일부 셀에서 노이즈 레벨과 관련하여 두 가지 일이 발생하는데. 예를 들어, (1) 이전 상태가 끝날 때 기록된 노이즈 레벨은 향후 사용을 위해 저장될 수 있으며, 그리고 (2) 현재 상태에서 사용하기 위해 노이즈 레벨이 설정될 수 있다.Moreover, text in any cell printed without parentheses indicates that it is performed by (or in connection with) the stability detection function of the IMU. Text in arrow brackets indicates which variables are being updated and saved. Text printed in parentheses indicates that the IMU is setting the MotionRequest flag. Finally, the text printed in standard parentheses indicates what is being done with respect to the noise threshold. Two things happen with regards to noise level, at least in some cells. For example, (1) the noise level recorded at the end of the previous state may be stored for future use, and (2) the noise level may be set for use in the current state.

Ⅲ. 실시 예 2Ⅲ. Example 2

A. 로봇 제어기로부터 IMU로의 Motionlntent 플래그 A. Motionlntent flag from robot controller to IMU

제1 실시 예와 비교하여 Motionlntent 플래그와 관련하여 유의한 변화가 없다.There is no significant change with respect to the Motionlntent flag compared to the first embodiment.

B. IMU로부터 로봇 제어기로의 MotionRequest 플래그 B. MotionRequest flag from IMU to robot controller

ZRO 품질에서 두 가지 주요 요인은 마지막 보정 이후 온도 및 시간 경과이다. 시간 관련 ZRO 오류는 센서 불안정성, 비선형성, 히스테리시스, 노화 등으로 인해 발생한다. 온도 관련 ZRO 오류는 온도 변화로 인한 ZRO 변동으로 인해 발생한다. 온도-ZRO 피팅은 전술한 PCT 공개 특허 출원 2018/118574에 개시된 바와 같이, 현재 온도에서 ZRO 추산치를 얻기 위해, 학습되고 적용될 수 있다. 온도-ZRO 피팅은 피팅 상태(예 : 기울기, 피팅 품질, 적용 온도 범위 등)에 기초한 ZRO 오류를 제공할 수도 있다. The two main factors in ZRO quality are temperature and time elapsed since the last calibration. Time-related ZRO errors are caused by sensor instability, non-linearity, hysteresis, and aging. Temperature-related ZRO errors are caused by ZRO fluctuations due to temperature changes. The temperature-ZRO fitting can be learned and applied to obtain a ZRO estimate at the current temperature, as disclosed in the aforementioned PCT Published Patent Application 2018/118574. Temperature-ZRO fittings may also provide ZRO errors based on fit condition (eg slope, fit quality, applied temperature range, etc.).

이러한 고려 사항을 사용하여, MotionRequest 플래그의 다른 실시 예에서, 목표는 ZRO 오류를, 로봇 방향(heading) 정확도 요구 사항에 대한 정확도의 제1의, 더 낮은(또는 허용 가능한) 레벨로 제한하는 것이나, 소정의 다른 로봇 성능 파라미터에 악영향을 주는 것이 없이 합리적으로 가능할 때, 제2의 더 높은(또는 선호하는) 수준의 정확도를 달성하는 것이다. 두 가지 목표는 때때로 아래에서 각각 LoPerfGoal 및 HiPerfGoal로 언급된다.Using these considerations, in another embodiment of the MotionRequest flag, the goal is to limit the ZRO error to a first, lower (or acceptable) level of accuracy for robot heading accuracy requirements; A second, higher (or preferred) level of accuracy is achieved when reasonably possible without adversely affecting certain other robot performance parameters. The two goals are sometimes referred to below as LoPerfGoal and HiPerfGoal respectively.

이 예시적인 실시 예에서, 로봇이 정지되어 있을 때(예를 들어, Motionlntent 플래그 상태가 STATIONARY_WITHOUT_VIBRATION 또는 STATIONARY_WITH_VIBRATION 중 하나임), MotionRequest 플래그는 다음과 같은 가능한 상태를 가질 수 있다:In this exemplary embodiment, when the robot is stationary (eg, the Motionlntent flag state is either STATIONARY_WITHOUT_VIBRATION or STATIONARY_WITH_VIBRATION), the MotionRequest flag may have the following possible states:

스테이-스테이셔너리 리콰이어드(STAY_STATIONARY_REQUIRED):STAY_STATIONARY_REQUIRED:

MotionRequest 플래그는 ZRO 보정을 위한 안정 윈도우가 더 낮은(허용 가능한) 성능 목표조차 아직 만족하지 못한 때에 발행될 수 있으며, 로봇을 정지 상태로 유지하는 것이 필요한 것으로 간주된다.The MotionRequest flag may be issued when the stability window for ZRO calibration has not yet met even the lower (acceptable) performance target, and it is considered necessary to keep the robot stationary.

스테이-스테이셔너리-옵셔널(STAY_STATIONARY_OPTIONAL) :Stay-stationary-optional (STAY_STATIONARY_OPTIONAL) :

MotionRequest 플래그는 ZRO 보정을 위한 안정 윈도우가 낮은-성능 목표를 만족하였지만, 로봇을 정지로 유지하는 상태가 옵션으로 고려되는, 고성능(선호) 목표를 만족시키지 못한 때에 발행될 수 있다.The MotionRequest flag may be issued when the stability window for ZRO calibration meets the low-performance target, but does not meet the high-performance (preferred) target, where the state of keeping the robot stationary is considered an option.

노컨스트레이트(NO_CONSTRAINT):NO_CONSTRAINT:

MotionRequest 플래그는 IMU가 현재 정지로부터, 더 높은 정확도 요구 사항을 만족시키는 ZRO 추산치를 계산하기에 충분한 정보를 가지고 있을 때 발행될 수 있으며, 따라서 로봇은 ZRO 추산에 관계 없이 원하는대로 자유롭게 움직이거나 정지할 수 있다. The MotionRequest flag can be issued when the IMU has enough information to calculate, from the current stop, a ZRO estimate that satisfies the higher accuracy requirements, so the robot is free to move or stop as desired, regardless of the ZRO estimate. there is.

예시적인 실시 예에서, ZRO 추산지에 대해서 특정 성능 목표(예를 들어, 더 낮고 허용 가능한 성능 목표 또는 더 높고 선호되는 성능 목표)에 도달하는 것은 ZRO 추산치의 정확도(또는 특히 표준 편차)가 진술된 목표보다 더 좋다는 것을 의미한다. ZRO 추산치는 정지 윈도우에 걸친 자이로스코프 샘플 평균이므로, 윈도우가 길수록 계산된 ZRO 추산치가 더 정확한다. 가장 간단한 모델인 AWGN(Additive White Gaussian Noise) 노이즈 모델은 ZRO의 표준 편차가 자이로스코프 샘플의 표준 편차와 샘플 수의 제곱근에 비례 함을 의미한다.In an exemplary embodiment, reaching a specific performance target (eg, a lower and acceptable performance target or a higher and preferred performance target) for a ZRO estimate is a stated goal for which the accuracy (or in particular the standard deviation) of the ZRO estimate is stated. means better than Since the ZRO estimate is the gyroscope sample average over a stationary window, the longer the window, the more accurate the calculated ZRO estimate. The simplest model, the Additive White Gaussian Noise (AWGN) noise model, means that the standard deviation of ZRO is proportional to the standard deviation of the gyroscope samples and the square root of the number of samples.

Figure pct00003
Figure pct00003

그러나, 식(4)에 의해서 계산된 ZRO_Std가 색상 노이즈 때문에 때로 한 오더의 크기까지 실제 값과 매우 다를 수 있다는 것이 관측되었다. However, it has been observed that the ZRO_Std calculated by equation (4) can be very different from the actual value, sometimes up to an order of magnitude, due to color noise.

이 실시 예에서, 모든 이전 샘플의 저장을 요구하지 않는, ZRO_Std를 추산하는 새로운 방법이 사용된다. 특히 평균화 필터를 모방하기 위해 IIR 필터가 사용되고, 필터링된 샘플의 표준 편차가 ZRO_Std를 추산하기 위해 사용된다. 이것은 정지 윈도우가 특정 성능 목표를 충족하기에 충분히 긴 때에 대한 보다 나은 정보를 제공한다.In this embodiment, a new method of estimating ZRO_Std is used, which does not require the storage of all previous samples. Specifically, an IIR filter is used to mimic the averaging filter, and the standard deviation of the filtered sample is used to estimate ZRO_Std. This provides better information about when the quiescent window is long enough to meet certain performance goals.

전술한 바와 같은 MotionRequest 플래그의 일 실시 예에서, ZRO_Std에 대한 두 개의 상이한 레벨의 문턱이 있다: HiPerfGoal 및 LoPerfGoal. MotionRequest 플래그의 상태들은 다음과 같이 ZRO_Std의 함수로 구현될 수 있다.In one embodiment of the MotionRequest flag as described above, there are two different level thresholds for ZRO_Std: HiPerfGoal and LoPerfGoal. The states of the MotionRequest flag can be implemented as a function of ZRO_Std as follows.

Figure pct00004
Figure pct00004

한편, 로봇이 정지되어 있지 않은 경우(예를 들어, Motionlntent 플래그 상태가 UNKNOWN 또는 IN_MOTION인 경우), MotionRequest 플래그는 다음 상태를 가질 수 있다.Meanwhile, when the robot is not stopped (eg, when the Motionlntent flag state is UNKNOWN or IN_MOTION), the MotionRequest flag may have the following state.

타이머-스테이셔너리(TIMER_STATIONARY) :Timer-stationary (TIMER_STATIONARY):

MotionRequest 플래그는 로봇이 일정 시간 동안 움직이고 있을 때, 이 상태에서 발행될 수 있으며, ZRO 재보정을 위한 정지를 제안한다.The MotionRequest flag can be issued in this state when the robot has been moving for a certain amount of time, suggesting a stop for ZRO recalibration.

어전트-스테이셔너리(URGENT_STATIONARY) :Agent-stationary (URGENT_STATIONARY):

MotionRequest 플래그는 IMU가 ZRO가 가능한 빨리 보정되어야 할 필요가 있고, 그래서 헤딩 오류가 소정의 문턱 아래로 떨어지는 것을 방지하기 위해 중지하는 것이 중요하다고 결정한 때, 이 상태에서 발행될 수 있다.The MotionRequest flag may be issued in this state when the IMU determines that the ZRO needs to be corrected as soon as possible, so it is important to stop it to prevent heading errors from falling below a certain threshold.

논어전트-스테이셔너리(NON_URGENT_STATIONARY) :Non-agent-stationary (NON_URGENT_STATIONARY) :

MotionRequest 플래그는, IMU가 조만간 중지하는 것이 ZRO를 확인하는데 도움이 될 것이라고 결정할 때, 이 상태에서 발행될 수 있다. 요컨대 로봇 제어기에게 급하게는 아니지만 조만간 정지해 달라는 요청 사항이다. 로봇 제어기는 편리한 때, 이 플래그를 수신하면 로봇의 동작을 중지해야 한다. 편리함의 수준은, 배터리 잔량, 장애물 마주침과 같은 미래 사건에 대응하기 위해 다음 멈춤을 동기화하는 MotionRequest 플래그의 상태에 관계없이 로봇이 정지할수 있는 시간에 대한 지식, 로봇에 의해 현재 수행중인 기능 및/또는 로봇 방향이 부정확할 경우 발생할 수 있는 위해 수준에 할당된 임계 상태 등과 같은 여러 요인 중 하나 이상의 함수로 판단할 수 있다.A MotionRequest flag can be issued in this state when the IMU determines that stopping sooner or later will help identify the ZRO. In short, it is a request to the robot controller to stop sooner or later, if not urgently. The robot controller should, when convenient, stop the robot's motion upon receiving this flag. The level of convenience depends on the level of battery life, knowledge of how long the robot can stop, regardless of the state of the MotionRequest flag that synchronizes the next stop to respond to future events such as encountering an obstacle, the function currently being performed by the robot, and/or It can be judged as a function of one or more of several factors, such as the critical state assigned to the level of harm that can occur if the robot is oriented incorrectly.

일 실시 예에서, "ZRO_Err"에 대한 두 개의 상이한 레벨의 문턱, 즉, NonUrgentErr 및 UrgentErr이 있을 수 있다. 이 두 레벨은 다음 방정식에 따라 MotionRequest 플래그를 설정하는 데 사용할 수 있다. In one embodiment, there may be two different level thresholds for "ZRO_Err", namely NonUrgentErr and UrgentErr. These two levels can be used to set the MotionRequest flag according to the following equation:

Figure pct00005
Figure pct00005

C. IMU에서 ZRO 보정 프로세스C. ZRO Calibration Process in IMU

Motionlntent 플래그는 IMU에서 로봇의 움직임 상태의 지표로서 사용될 수 있으며, ZRO 보정을위한 IMU 프로세스는 Motionlntent 플래그의 상태에 따라 다를 수 있다.The Motionlntent flag can be used as an indicator of the robot's motion state in the IMU, and the IMU process for ZRO calibration may vary depending on the state of the Motionlntent flag.

예를 들어, STATIONARY_WITHOUT_VIBRATION 상태에 있을 때, IMU는 적응형 노이즈 레벨로 안정성 검출을 실행한다. 이 프로세스에 사용되는 노이즈 수준은 센서의 최초 공칭 값이거나 또는 가장 최근의 이전 정지 상태에서 저장된 정지 노이즈 수준이다. IMU에서 수행된 안정성 감지 프로세스가 로봇이 안정적이라는 로봇 제어기의 Motionlntent 플래그와 일치하는 경우, 이것은 미끄러짐 또는 부딪침과 같은 어떤 의도하지 않은 동작이 발생한 것이 아니라면 가능성이 매우 높은 것인데, IMU는 단순 윈도우 평균 알고리즘 또는 앞에서 언급한 PCT 공개된 특허 출원 2018/118574에서 공개된 보다 복잡한 프로세스와 같은 ZRO 재보정을 위한 프로세스를 수행한다. IMU는 동시에 ZRO의 표준 편차, 타임 스탬프 및 해당 시간의 온도도 저장해야 한다.For example, when in the STATIONARY_WITHOUT_VIBRATION state, the IMU performs stability detection with an adaptive noise level. The noise level used in this process is either the initial nominal value of the sensor or the stored static noise level from the most recent previous standstill. If the stability detection process performed by the IMU matches the robot controller's Motionlntent flag that the robot is stable, then this is very likely unless some unintended motion such as slipping or bumping has occurred. Perform the same process for ZRO recalibration as the more complex process disclosed in the aforementioned PCT published patent application 2018/118574. The IMU must also store the standard deviation of the ZRO, the timestamp, and the temperature at that time.

또한, ZRO의 표준 편차는 IIR 로우 패스 필터된 자이로스코프 샘플의 통계를 통해 얻어진다. 이 표준 편차는 식 5에 따라서 MotionRequest 플래그가 언제 STAY_STATIONARY_REQUIRED 상태에서 STAY_STATIONARY_OPTIONAL 상태로, 그리고 다음 NO_CONSTRAINT 상태로 변경될 수 있는지 결정하는 데 사용된다.In addition, the standard deviation of ZRO is obtained through statistics of IIR low-pass filtered gyroscope samples. This standard deviation is used to determine when the MotionRequest flag can change from the STAY_STATIONARY_REQUIRED state to the STAY_STATIONARY_OPTIONAL state and then to the NO_CONSTRAINT state according to Equation 5.

또한, Motionlntent 플래그가 STATIONARY_WITHOUT_VIBRATION 상태에서 다른 상태로 변경 될 때마다, 마지막 ZRO 추산 시간이 마지막 ZRO 보정 이후 얼마나 지났는지 결정하는데 있어 추후 사용하기 위해 저장되고. 위에 언급된 것과 같이, 이것은 MotionRequest 플래그의 상태를 결정하는 요소로 사용될 수 있다.Also, whenever the Motionlntent flag is changed from the STATIONARY_WITHOUT_VIBRATION state to another state, the last ZRO estimate time is saved for future use in determining how much has passed since the last ZRO calibration. As mentioned above, this can be used as an element to determine the state of the MotionRequest flag.

또한, 장치가 Motionlntent 플래그와는 독립적으로 정지된 때를 자동적으로 감지하기 위해, Motionlntent 플래그가 STATIONARY WITHOUT VIBRATION인 때, 그 시간에서 정지 센서 노이즈 레벨이 추후 사용을 위해 저장될 수 있다.Also, to automatically detect when the device is stationary independently of the Motionlntent flag, when the Motionlntent flag is STATIONARY WITHOUT VIBRATION, the stationary sensor noise level at that time can be saved for future use.

Motionlntent 플래그로 돌아가면, STATIONARY_WITH_VIBRATION 상태에서, 안정적인 감지, ZRO 업데이트 및 MotionRequest 생성은 노이즈 레벨이 추적되고 사용되는 방식을 제외하고는 STATIONARY_WITHOUT_VIBRATION 상태에서와 동일할 수 있다.Returning to the Motionlntent flag, in STATIONARY_WITH_VIBRATION state, stable detection, ZRO update, and MotionRequest generation can be the same as in STATIONARY_WITHOUT_VIBRATION state except how noise level is tracked and used.

STATIONARY_WITHOUT_VIBRATION 상태에서, 노이즈 레벨은 센서 노이즈 일 뿐이며, 안정성이 감지될 때마다 학습되어 향후 사용을 위해 저장된다. STATIONARY_WITH_VIBRATION 상태에서, 노이즈 수준은 모터에서 생성되는 진동 노이즈이며 수시로 변경될 수 있다. 일 실시 예에서, 가중된 통계가 진동 노이즈를 동적으로 학습하는데 사용되며, 그래서 안정성 검출기는 특정 시간 후에 다른 수준의 진동에 적응할 수 있고, 여전히 의도하지 않은 갑작스러운 움직임을 감지할 수 있다.In STATIONARY_WITHOUT_VIBRATION state, the noise level is just sensor noise, learned whenever stability is detected and stored for future use. In STATIONARY_WITH_VIBRATION state, the noise level is vibration noise generated by the motor and can be changed at any time. In one embodiment, weighted statistics are used to dynamically learn vibration noise, so that the stability detector can adapt to different levels of vibration after a certain time and still detect unintentional sudden movements.

Motionlntent 플래그가 IN_MOTION 상태에 있을 때, 잘못된 안정 검출의 가능성을 피하기 위해 안정성 검출 프로세스가 꺼진다. 앞서 언급했듯이, Motionlntent 플래그가 IN_MOTION 상태에 있을 때 생성될 수 있는 MotionRequest 플래그들은 온도 관련 요청에 대해 NO_CONSTRAINT, NON_URGENT_STATIONARY 또는 URGENT_STATIONARY이다. MotionRequest 플래그의 상태를 선택하는 한 가지 방법은 위의 식(6)에 나타나 있다. 또한 로봇이 이동을 중지하도록 시간 관련 요청을 생성하는 카운터인 TIMER_STATIONARY가 있다.When the Motionlntent flag is in the IN_MOTION state, the stability detection process is turned off to avoid the possibility of false stability detection. As mentioned earlier, the MotionRequest flags that can be generated when the Motionlntent flag is in the IN_MOTION state are NO_CONSTRAINT, NON_URGENT_STATIONARY, or URGENT_STATIONARY for temperature-related requests. One way to select the state of the MotionRequest flag is shown in Equation (6) above. There is also a counter, TIMER_STATIONARY, that generates a time-related request for the robot to stop moving.

Motionlntent 플래그가 UNKNOWN 상태에 있을 때, 고정 노이즈 레벨 프로세스를 통한 안정성 감지가 실행된다. 안정성이 감지되면 가능한한 ZRO가 업데이트된다. Motionlntent 플래그가 이 상태이면, Motionlntent 플래그가 IN_MOTION 상태일 때와 같은 방식으로 MotionRequest 플래그 상태가 생성된다.When the Motionlntent flag is in the UNKNOWN state, stability detection through a fixed noise level process is performed. When stability is detected, the ZRO is updated whenever possible. If the Motionlntent flag is in this state, the MotionRequest flag state is generated in the same way as when the Motionlntent flag is in the IN_MOTION state.

도 3a 및 도 3b는 제2 실시 예에 따라 Motionlntent 플래그가 한 상태에서 다른 상태로 변경될 때 수행되는 기능뿐만 아니라 Motionlntent 플래그의 각각의 주어진 상태에 대해, 위에서 논의된 바와 같이, IMU에 의해 수행되는 기능을 보여주는 상태 테이블을 도시한다. 도 2a 및 2b에 대해 위에서 기술된 상례는 도 3a 및 도 3b에도 적용 가능하다. 보다 구체적으로, 도 3a 및 3b에서, Motionlntent 플래그의 현재 상태는 첫 번째(가장 왼쪽) 열 아래에 나열되고 해당 상태의 끝에서 그것이 전환되는 상태가 첫 번째(맨 위) 행에 나열된다. 따라서 테이블의 대각선을 따르는 셀(회색 셀)은 Motionlntent 플래그의 상태 변경을 포함하지 않는다. 그래서, 이러한 셀에 설명된 것은 Motionlntent 플래그가 해당 상태에 있을 때 수행되는 기능이다. 반면에 다른 셀(테이블의 대각선에 있지 않음)은 Motionlntent 플래그의 상태 변경에 해당한다. 따라서 해당 셀의 텍스트는 두 해당 상태 간의 전환시 수행되는 작업을 설명한다.3a and 3b show the functions performed when the Motionlntent flag is changed from one state to another, as well as the functions performed by the IMU for each given state of the Motionlntent flag, as discussed above, according to the second embodiment. A state table showing the function is shown. The example described above with respect to FIGS. 2A and 2B is also applicable to FIGS. 3A and 3B . More specifically, in Figures 3a and 3b, the current state of the Motionlntent flag is listed under the first (leftmost) column and the state it transitions to at the end of that state is listed in the first (top) row. Therefore, the cells along the diagonal of the table (the gray cells) do not contain the state change of the Motionlntent flag. So, what is described in these cells is the function performed when the Motionlntent flag is in that state. On the other hand, other cells (not on the diagonal of the table) correspond to state changes in the Motionlntent flag. Thus, the text in that cell describes what happens when transitioning between the two corresponding states.

또한, 괄호없이 인쇄된 임의의 셀의 텍스트는 IMU의 안정성 감지 기능에 의해(또는 이와 관련하여) 수행되고 있는 것을 나타낸다. 화살표 괄호 안에 있는 텍스트는 업데이트 및 저장 중인 변수를 나타낸다. 괄호 안에 인쇄된 텍스트는 IMU가 MotionRequest 플래그를 설정하는 상태를 나타낸다. 마지막으로 표준 괄호 안에 인쇄된 텍스트는 노이즈 문턱 변수와 관련하여 수행중인 작업을 나타낸다. 적어도 일부 셀에서 노이즈 레벨과 관련하여 두 가지 일, 예를 들어,(1) 이전 상태의 끝에서 기록된 노이즈 레벨은 향후 사용을 위해 저장될 수 있으며, 그리고 (2) 현재 상태에서 사용하기 위해 노이즈 레벨 설정될 수 있다는 것이 일어나고 있음을 주목하라. Also, text in any cell printed without parentheses indicates what is being done by (or in connection with) the stability sensing function of the IMU. Text in arrow brackets indicates which variables are being updated and saved. Text printed in parentheses indicates the state in which the IMU sets the MotionRequest flag. Finally, the text printed in standard parentheses indicates what is being done with respect to the noise threshold. There are two things with respect to the noise level in at least some cells: (1) the noise level recorded at the end of the previous state can be stored for future use, and (2) the noise level for use in the current state. Note that it is happening that the level can be set.

도 3A 및 도 3B의 표에 예시된 실시 예에서. STAY_STATIONARY_REQUIRED는 어떤 다른 상태(즉, IN_MOTION 상태, UNKNOWN 상태 또는 두 정지 상태의 다른 상태)에서 정지 상태 중 하나로 들어갈 때 디폴트 MotionRequest이다. 또한 정지 상태 중 하나에 있는 동안 ZRO 추산 계산이 진행됨에 따라, MotionRequest 플래그는 STAY_STATIONARY_REQUIRED 상태에서 STAY_STATIONARY_OPTIONAL 상태, 그리고 결국 NO_CONSTRAINT 상태로 진행된다. 그러나, 다른 실시 예에서, Motionlntent 플래그가 하나의 정지 상태에서 다른 정지 상태로 전환될 때, MotionRequest 플래그는 반드시 STAY_STATIONARY_에서 시작할 필요는 없다. 오히려 한 정지 상태에서 다른 상태로 변경할 때, MotionRequest 플래그는 이미 있는 상태에서 계속될 수 있다. 특히 ZRO 정확도는 한 정지 MotionIntent 상태에서 다른 정지 MotionIntent 상태로 전환할 때 이미 HiPerfGoal 또는 LoPerfGoal 둘 중 하나의 문턱 보다 높을 수 있으며, 그래서 세 가지 MotionRequest 상태 모두를 다시 통과할 필요가 없다.In the embodiment illustrated in the table of Figures 3A and 3B. STAY_STATIONARY_REQUIRED is the default MotionRequest when entering one of the stop states from some other state (ie, IN_MOTION state, UNKNOWN state, or the other of two stop states). Also, as the ZRO estimate is computed while in one of the stationary states, the MotionRequest flag goes from the STAY_STATIONARY_REQUIRED state to the STAY_STATIONARY_OPTIONAL state and eventually to the NO_CONSTRAINT state. However, in another embodiment, when the Motionlntent flag transitions from one stop state to another, the MotionRequest flag does not necessarily start at STAY_STATIONARY_. Rather, when changing from one stop state to another, the MotionRequest flag can continue from the state it is already in. In particular, the ZRO accuracy can already be above the threshold of either HiPerfGoal or LoPerfGoal when transitioning from one stationary MotionIntent state to another, so there is no need to go through all three MotionRequest states again.

요컨대, 대안적인 실시 예에서, MotionRequest 플래그는 STATIONARY_WITH_VIBRATION과 STATIONARY_WITHOUT_VIBRATION 사이의 임의의 Motionlntent 플래그 상태 전환 동안 변경되지 않고 남아 있을 수 있다. 도 3을 참조하면, 이 실시예와 도 3에 의해 예시된 것의 차이는 3 행 2 열의 셀(STATIONARY WITHOUT_VIBRATION에서 STATIONARY_WITH_VIBRATION으로 전환) 및 2 행 3 열의 셀(STATIONARY_WITH_VIBRATION에서 STATIONARY_WITHOUT_VIBRATION으로 변환)에서 MotionRequest 플래그를 STAY_STATIONARY_REQUIRED로 설정하는 단계를 제거하는 것일 것이다. MotionRequest 플래그와 관련하여 어떠한 조치도 취하지 않기 때문에(두 정지 상태 사이의 전환 동안 변경되지 않은 상태로 유지되므로), 이 두 셀에서 "MotionRequest = STAY_STATIONARY_REQUIRED"단계는 간단히 제거될 것이다.In short, in alternative embodiments, the MotionRequest flag may remain unchanged during any Motionlntent flag state transitions between STATIONARY_WITH_VIBRATION and STATIONARY_WITHOUT_VIBRATION. Referring to FIG. 3 , the difference between this embodiment and that illustrated by FIG. 3 is that the MotionRequest flag is set to STAY_REQUIREDSTATIONARY_ in the cell at 3 row 2 (converting STATIONARY WITHOUT_VIBRATION to STATIONARY_WITH_VIBRATION) and in the cell at 2 row 3 (converting STATIONARY_WITH_VIBRATION to STATIONARY_WITHOUT_VIBRATION). It would be to remove the step of setting it to . The "MotionRequest = STAY_STATIONARY_REQUIRED" step in these two cells will simply be removed, since we are not taking any action regarding the MotionRequest flag (it remains unchanged during the transition between the two stationary states).

D. 로봇 측에서 MotionRequest 사용D. Using MotionRequest on the robot side

MotionRequest 플래그는 상이한 중요도의 수준을 가지기 때문에, 로봇은 예를 들어 센서 속성, 성능 요구 사항, 사용 사례 등에 따라 다양한 방식으로 MotionRequest를 수행할 수 있다. 예를 들어 일부 센서들은 뛰어난 안정성과 온도 -ZRO 선형성을 갖는 것으로 알려져 있으며, 이 경우 MotionRequest 플래그의 TIMER_STATIONARY 상태가 생략될 수 있으며(또는 적어도 로봇 제어기에 의해 무시 됨), 그렇게 하더라도 성능이 크게 저하되지 않는다.Because the MotionRequest flags have different levels of importance, the robot can make a MotionRequest in different ways depending on, for example, sensor properties, performance requirements, use cases, etc. For example, some sensors are known to have good stability and temperature-ZRO linearity, in which case the TIMER_STATIONARY state of the MotionRequest flag can be omitted (or at least ignored by the robot controller), and doing so does not significantly degrade performance. .

도 4는 어떻게 로봇이 소정의 성능에 따라 MotionRequest 플래그의 다양한 상태에 응답하도록 프로그래밍될 수 있는지의 예시적인 실시 예를 보여주는 표이다. 도 4에서, 로봇 진공 청소기에 대한 다수의 예시적인 가능한 소정의 성능 조건이 첫 번째(가장 왼쪽) 열에 나열되고, MotionRequest 플래그의 각 가능한 상태에 응답하여 RVC가 정지(또는 정지된 상태로 유지)되는지 여부가 첫 번째(맨 위) 행에서 나열된다. 그런 다음 표의 나머지 부분은 해당 열에 대한 MotionRequest 플래그 상태에 응답하여 RVC가 동작을 중지할지(또는 마지막 열의 경우 중지된 상태로 유지) 여부에 따라 YES 또는 NO로 채워진다.4 is a table illustrating an exemplary embodiment of how a robot may be programmed to respond to various states of a MotionRequest flag according to a given performance. In Figure 4, a number of exemplary possible predetermined performance conditions for a robotic vacuum cleaner are listed in the first (leftmost) column, and whether the RVC is stopped (or held stationary) in response to each possible state of the MotionRequest flag. Whether or not is listed in the first (top) row. The rest of the table is then populated with YES or NO depending on whether RVC will stop running (or stay stopped for the last column) in response to the MotionRequest flag status for that column.

따라서, 예를 들어, High Performance라고 표시된 테이블의 맨 위 행은 가장 큰 ZRO 정확도 성능에 해당하며, 그래서 정확한 ZRO 추산이 극도로 중요할 때 선택된다. 이 성능이 필요한 경우, RVC가 중지되어 RVC 중지에 대한 모든 요청에 응답하는 ZRO 보정을 허용한다(또는, 마지막 열의 경우 중지된 상태로 남아있으며, 그래서 ZRO 보정이, 낮고 허용 가능한 수준의 ZRO 정확도가 성취된 후 RVC가 언제든지 다시 움직이도록 허용하는 것이 아니라, 더 높고 선호되는 수준의 ZRO 정확도가 얻어질 때까지, 계속될 것이다). So, for example, the top row of a table marked High Performance corresponds to the highest ZRO accuracy performance, and is therefore chosen when an accurate ZRO estimate is extremely important. If this performance is required, RVC is stopped allowing ZRO calibration to respond to all requests to stop RVC (or, for the last column, it remains stopped, so ZRO calibration is low and acceptable level of ZRO accuracy is low). It will not allow the RVC to move again at any time after it has been achieved, but will continue until a higher and preferred level of ZRO accuracy is achieved).

일 실시 예에서, 성능 조건(가장 왼쪽 열의 항목)은 다음과 같이 정의될 수 있다.In an embodiment, the performance condition (item in the leftmost column) may be defined as follows.

고성능(High Performance)-RVC를 중지해야하는 빈도와 중지 상태를 유지해야 하는 시간에 관계없이 항상 최상의 ZRO 추산치를 원하는 경우 선택됨.High Performance - Chosen if you always want the best ZRO estimate, regardless of how often you need to stop RVC and how long you need to stay stopped.

잦은 짧은 정지(Frequency Short Stops)-ZRO 정확도는 고성능 조건보다 낮을 수 있지만, 그러나 일반적으로 정지 시간이 상대적으로 짧다(예를 들어, 잦은 짧은 정지가 선호될 때, 이 옵션을 선택할 수 있음);Frequency Short Stops - ZRO accuracy may be lower than under high performance conditions, however, generally the downtime is relatively short (eg, this option can be selected when frequent short stops are preferred);

낮은 듀티 사이클(Low Duty Cycle)-ZRO 정확도는 고성능 조건에서보다 낮을 수 있지만, 그러나 ZRO 보정을 위해 중지하는데 소요되는 총 시간은 상대적으로 더 적다(정지 기간 및 중지 빈도의 조합 측면에서).Low Duty Cycle-ZRO accuracy may be lower than in high performance conditions, however, the total time taken to stop for ZRO calibration is relatively less (in terms of the combination of stop duration and stop frequency).

타이머 중지 없음(No Timer Stop)-RVC는 타이머 기반 정지 요청에 대해 중지되지 않는다(예: 위에서 언급한 바와 같이, 이 옵션은 센서들이 큰 안정성과 온도-ZRO 선형성을 가지는 것으로 알려진 때에 선택할 수 있음).No Timer Stop - RVC does not stop for timer-based stop requests (e.g., as mentioned above, this option can be selected when sensors are known to have great stability and temperature-ZRO linearity) .

드물게 긴 정지(Rare Long Stops)-ZRO 정확도는 고성능 조건에서보다 낮을 수 있지만, 일반적으로 정지는 충분히 길어서, 더 높고 선호하는 ZRO 정확도 수준이 얻어질 수 있고, 하지만 상대적으로 빈도가 낮음(예를 들어, 이 옵션은 더 길지만 덜 잦은 정지가 선호될 때);Rare Long Stops - The ZRO accuracy may be lower than in high performance conditions, but generally the stops are long enough so that a higher and preferred ZRO accuracy level can be obtained, but with relatively low frequency (e.g. , this option is longer but less frequent stops are preferred);

단지 타이머 중지(Timer Stop Only)-RVC는 타이머 기반 정지 요청에 대해서만 중지된다(예를 들어 센서가 뛰어난 온도-ZRO 선형성을 가지는 것으로 알려진 경우, 이 옵션을 선택할 수 있음).Timer Stop Only - RVC will only stop on timer based stop requests (you can choose this option if, for example, the sensor is known to have good temperature-ZRO linearity).

비상호작용식 ZRO(No Interactive ZRO)-이 옵션은 기본적으로 이 명세서에서 공개된 ZRO 보정의 상호작용 특징을 끄는(off) 것이다. 베이스라인 비상호작용식 ZRO 보정 알고리즘, 즉 간단한 윈도우 평균 또는 더 복잡한 온도-ZRO 피팅이 이어지는 안정성 감지가 계속 사용될 수 있다. 비상호작용식 ZRO 보정으로 작동을 성취하는 한 가지 방법은(그러나 여전히 전통적인 ZRO 보정 작동을 가지고 있음), Motionlntent 플래그를 UNKNOWN의 디폴트 상태로 영구적으로 설정하고, 그리고 MotionRequest 플래그를 비활성화하거나 모터 제어기(100)가 그것에 응답하지 않도록 하는 것이다. 이 조건에서, 위에서 설명된 실시 예 3에 따르면, 예를 들어, 안정성 감지, 센서 노이즈 레벨의 적응형 학습 및 전통적인 ZRO 보정은 모두 여전히 발생하며, 실제로, STATIONARY WITHOUT VIBRATION 상태와 동일한다(예 : 도 4 참조). 또한, 구현에 대한 실용성이 본 발명의 상호작용형 ZRO 보정 특성을 사용하는 제품과 이러한 기능이 없는 제품 간의 호환성을 보장하기는 것을 지향하기 때문에, Motionlntent 플래그가 UNKNOWN 상태에 있는 동안 안정성 감지 및 노이즈 추적이 STATIONARY_WITHOUT_VIBRATION 상태에 있을 때와 동일하게 보장하는 것이 좋다. 도 3A 내지 도 3B에 의해 표현된 실시 예를 참조하면, 이것은 예를 들어, "from UNKNOWN" 행과 "to UNKNOWN" 열, 즉 4행, 4열에 상응하는 대각선상의 셀("from STATIONARY_WITHOUT_VIBRATION" 행 및 "to STATIONARY_WITHOUT_VIBRATION"열, 즉 2행, 2열에 상응하는 대각선 상의 셀에서 발견되는 것처럼)에 "Update noise at stable"의 노이즈 추적 단계를 추가하는 것을 수반한다. 특히, 도 3a 및 도 3b 실시 예에서, 노이즈는 UNKNOWN 모션 상태에서 업데이트되지 않은 반면, STATIONARY_WITHOUT_VIBRATION 상태에서 업데이트되었다. 이러한 변경은 성능에 거의 또는 전혀 영향을 주지 않지만, 본 발명의 상호작용형 ZRO 기능이 있는 제품을 해당 기능이 없는 제품과 호환되도록 만들 수 있다. 또한, Motionlntent 플래그 (UNKNOWN 및 STATIONARY_WITHOUT_VIBRATION)의 둘 다의 조건에 대해 이미 동일한 상태(즉, On)로 설정되었기 때문에, 도 3A 및 도 3B의 실시예에서 도시된 안정성 감지 동작에서 변경이 필요하지 않다는 점에 유의하라.No Interactive ZRO - This option basically turns off the interactive feature of the ZRO calibration disclosed in this specification. Baseline non-interactive ZRO correction algorithms, i.e. stability sensing followed by simple window averages or more complex temperature-ZRO fittings, can still be used. One way to achieve operation with non-interactive ZRO compensation (but still have traditional ZRO compensation behavior) is to permanently set the Motionlntent flag to the default state of UNKNOWN, and disable the MotionRequest flag or motor controller (100). so that it does not respond to it. In this condition, according to Example 3 described above, for example, stability sensing, adaptive learning of sensor noise level and traditional ZRO correction all still occur, and in fact, the same as the STATIONARY WITHOUT VIBRATION state (e.g. Fig. see 4). In addition, since the practicality of implementation is oriented towards ensuring compatibility between products using the interactive ZRO correction feature of the present invention and products without this capability, stability detection and noise tracking while the Motionlntent flag is in the UNKNOWN state. It is good to guarantee the same as when in this STATIONARY_WITHOUT_VIBRATION state. Referring to the embodiment represented by Figures 3A to 3B, this can be, for example, a cell on the diagonal corresponding to the row "from UNKNOWN" and the column "to UNKNOWN", i.e. row 4, column 4 (the row "from STATIONARY_WITHOUT_VIBRATION" and It entails adding a noise tracking step of "Update noise at stable" in the "to STATIONARY_WITHOUT_VIBRATION" column, i.e. as found in the diagonal cells corresponding to row 2, column 2. In particular, in the embodiment of FIGS. 3A and 3B , the noise is not updated in the UNKNOWN motion state, whereas it is updated in the STATIONARY_WITHOUT_VIBRATION state. While these changes have little or no performance impact, they can make products with interactive ZRO capabilities of the present invention compatible with products without them. Also, since the condition of both the Motionlntent flags (UNKNOWN and STATIONARY_WITHOUT_VIBRATION) has already been set to the same state (i.e. On), no change is required in the stability sensing behavior shown in the embodiment of Figures 3A and 3B. take note of

IV. 추가 구체 예IV. more specific examples

A. MotionRequest 플래그에 관한 대체 실시 예A. Alternative embodiment for MotionRequest flag

1. ZRO의 표준 편차 계산에 대한 변화1. Changes to the calculation of standard deviation of ZRO

이 제1 대체 실시 예에 대한 MotionRequest 플래그는 ZRO의 표준 편차를 계산하는 것과 관련하여 아래에 언급된 것을 제외하고는 제1 또는 제2 실시 예와 유사하게 기능할 수 있다(ZRO 추산치가 ZRO 추산 프로세스를 중지시킬만큼 충분히 정확한지를 결정하기 위해 사용된다).The MotionRequest flag for this first alternative embodiment may function similarly to the first or second embodiment except as noted below with respect to calculating the standard deviation of ZRO (where the ZRO estimate is the ZRO estimate process). is used to determine if it is accurate enough to stop the

제1 실시 예는 ZRO의 표준 편차를 추산하기 위해 백색 노이즈 모델 기술을 사용했다. 그러나 이전에 언급했듯이, 이 추산치는 색상 노이즈로 인해 실제 표준 편차와 상당히 다를 수 있다. 따라서, 두 번째 실시 예에서는, 이전 샘플을 모두 저장하는 것을 요구하지 않는 ZRO의 표준 편차를 계산하기 위한, IIR 필터 기반 기술을 도입하였다. 그러나 센서가 저주파 노이즈에 크게 영향을 받는 경우에는, IIR 필터 기반 기술은 솔루션으로 수렴하는데 오랜 시간이 걸릴 수 있다. 이러한 경우, 특히 로봇이 움직이지 않는 상태로 있는 시간에 적용 가능한 제약에 따라, 제1 실시 예의 백색 노이즈 방법을 사용하는 것이 더 바람직할 수 있지만, 그러나 한계 요인(marginal factor)(센서에 대한 관찰 경험에 기초하여 결정된 한계 요인)에 의해서 상기 식(4)를 이용하여 결정된 표준 편차를 곱하는 것에 의해 색상 노이즈를 보상한다. 따라서 방정식(4)는 다음과 같이 다시 작성될 수 있다. The first example used the white noise model technique to estimate the standard deviation of ZRO. However, as previously mentioned, this estimate can differ significantly from the actual standard deviation due to color noise. Therefore, in the second embodiment, an IIR filter-based technique was introduced for calculating the standard deviation of ZRO, which does not require storing all of the previous samples. However, if the sensor is heavily affected by low-frequency noise, IIR filter-based techniques may take a long time to converge to a solution. In this case, it may be more preferable to use the white noise method of the first embodiment, depending on the applicable constraints, especially for the time the robot is stationary, however, the marginal factor (observation experience with the sensor) The color noise is compensated for by multiplying the standard deviation determined using the above equation (4) by a limit factor determined based on Therefore, equation (4) can be rewritten as

Figure pct00006
Figure pct00006

여기서 f는 한계 요인이다. 센서 노이즈의 스펙트럼에 따라서, 이 한계 요인은 1을 중심으로 해야 하며, 이상적인 경우는 진정한 백색 노이즈의 경우 1.0이다. 현재 사용 가능한 센서의 경우, 한계 요인은 전형적으로 0.4 ~ 1.5 범위이다. where f is the limiting factor. Depending on the spectrum of sensor noise, this limiting factor should be centered at 1, ideally 1.0 for true white noise. For currently available sensors, the limiting factor is typically in the range of 0.4 to 1.5.

2. 온도 피팅과 관련된 변화2. Changes Related to Temperature Fitting

다른 대안적인 실시 예에서, MOTION_INTENT 플래그가 비 정지 상태(즉, IN_MOTION 또는 UNKNOWN) 중 하나에 있을 때, IMU(102)는 ZRO 추산치의 현재 품질에 기초할 뿐만 아니라, 전체 온도 피팅의 추산 품질의 함수로서 MotionRequest 플래그의 상태를 설정하도록 구성될 수 있다. 예를 들어, IMU(102)는 온도 피팅이 특정 품질 문턱 미만일 때(따라서, 현재 ZRO 품질 자체는 허용할 수 있을지라도, 더 많은 샘플이 장기 ZRO 정확도를 유지하는 데 중요할 것이다), MotionRequest 플래그를 URGENT_STATIONARY 상태 및/또는 NON-URGENT_STATIONARY 상태에 배치하도록 구성될 수 있다. 예를 들어, 이 특징의 한 예시적인 실시 예에서, MotionRequest 플래그를 트리거하여 URGENT_STATIONARY 및/또는 NONJJRGENT STATIONARY로 변경하기 위해 요구되는 최소 온도 변화(dT)는 피팅 품질(예 : 평균 제곱 오차 또는 MSE) 및 온도 범위의 함수일 수 있다. 즉, 현재 온도가 피팅의 온도 범위를 벗어나면, 로봇을 더 자주 멈추고, 및/또는 피팅 품질이 나쁘면, 또한 더 자주 멈춘다.In another alternative embodiment, when the MOTION_INTENT flag is in one of the non-stationary states (ie, IN_MOTION or UNKNOWN), the IMU 102 is based on the current quality of the ZRO estimate, as well as a function of the estimated quality of the overall temperature fit. It can be configured to set the state of the MotionRequest flag as For example, the IMU 102 may set the MotionRequest flag when the temperature fitting is below a certain quality threshold (thus, more samples will be important to maintain long-term ZRO accuracy, although the current ZRO quality itself may be acceptable). It may be configured to place in the URGENT_STATIONARY state and/or the NON-URGENT_STATIONARY state. For example, in one exemplary embodiment of this feature, the minimum temperature change (dT) required to trigger a MotionRequest flag to change to URGENT_STATIONARY and/or NONJJRGENT STATIONARY depends on the quality of the fit (e.g. mean squared error or MSE) and It may be a function of the temperature range. That is, if the current temperature is outside the temperature range of the fitting, the robot will stop more often, and/or if the fitting quality is poor, it will also stop more often.

이러한 원리에 따른 제2 실시 예의 하나의 예시적인 변형에서, 로봇이 비-정지 상태 중 하나일 때(즉, Motionlntent 플래그가 IN_MOTION 또는 UNKNOWN에 세팅된 때), MotionRequest 플래그는 다음과 같이 행동하도록 구성될 수 있다. In one exemplary variant of the second embodiment according to this principle, when the robot is in one of the non-stationary states (i.e., when the Motionlntent flag is set to IN_MOTION or UNKNOWN), the MotionRequest flag is configured to act as follows: can

타이머-스테이셔너리(TIMER_STATIONARY):Timer-stationary (TIMER_STATIONARY):

MotionRequest 플래그는 로봇이 일정 시간 동안 움직이고 있었고, ZRO 재보정을 위한 정지가 제안된 때, 이 상태에서 발행될 수 있다(이 조건에 들어가기 위한 MotionRequest 플래그가 이 조건은 제2 실시 예로부터 변경되지 않는다는 것을 주목하라.)The MotionRequest flag can be issued in this state when the robot has been moving for a certain period of time and a stop for ZRO recalibration is proposed (the MotionRequest flag to enter this condition indicates that this condition is not changed from the second embodiment) Pay attention.)

어전트-스테이셔너리(URGENT_STATIONARY) :Agent-stationary (URGENT_STATIONARY):

MotionRequest 플래그는 다음 둘 중 하나의 때의 상태에서 발행될 수 있다 (1) IMU가 ZRO가 가능한 빨리 보정되어야 할 필요한 때(헤딩 오류가 특정의 문턱 아래로 떨어지는 것을 방지하기 위해 로봇을 중지하는 것이 중요하다)(제2 실시예서와 동일하게), (2) 현재 온도에 대해서 사용되고 있는 ZRO 추산치의 품질은 수용가능할지라도, 온도 피팅의 품질이 좋지 않고, 그리고 더 많은 샘플이 장기 ZRO 정확도에 중요한 때.The MotionRequest flag can be issued in a state when either (1) the IMU needs the ZRO to be calibrated as soon as possible (it is important to stop the robot to prevent heading errors from falling below a certain threshold) (same as in Example 2), (2) when the quality of the ZRO estimate currently used for temperature is acceptable, but the quality of the temperature fit is poor, and more samples are important for long-term ZRO accuracy.

논어전트-스테이셔너리(NON_URGENT_STATIONARY) :Non-agent-stationary (NON_URGENT_STATIONARY) :

MotionRequest 플래그는 다음 둘 중 하나의 때에 발행될 수 있다.(1) IMU가 ZRO를 체크하기 위해 때때로 중단하는 것이 도움이 될 수 있다고 결정하는 때(두 번째 실시 예에서와 같이), 및 (2) 온도 피팅이 더 나은 장기 ZRO 정확도를 위해(하지만 중요하지는 않음), 더 많은 샘플을 선호할 때.The MotionRequest flag may be issued when either: (1) when the IMU determines that it may be helpful to pause from time to time to check the ZRO (as in the second embodiment), and (2) When temperature fitting prefers more samples for better (but not critical) long-term ZRO accuracy.

노컨스트레인트(NO_CONSTRAINT):NO_CONSTRAINT:

MotionRequest 플래그는, ZRO 보정 또는 온도 피팅을 위한 정지가 필요가 없을 때, 이 상태에서 발행될 수 있다.The MotionRequest flag can be issued in this state when no stop is needed for ZRO calibration or temperature fitting.

또한, 이 실시 예에서, "ZRO_Err, 즉 NonUrgentErr 및 UrgentErr에 대한 2 개의 상이한 레벨의 문턱 및 제2 실시예와 관련하여 위에서 논의된 바와 같이 식(6)에 따른 MotionRequest 플래그 상태의 설정에 추가하여, 온도 피팅과 관련된 다른 세트의 조건이 혼합에 추가될 수 있다. 예를 들어, 온도 피팅-기반 요청의 경우, ZRO가 마지막으로 계산된 시점에서부터의 온도 변화를 △T = Tcurrent - TlastZR0 로 정의하고, 두 문턱, Th nonUrgent 및 Th urgent를 온도 피팅 MSE(평균 제곱 오차)의 감소 함수로 정의한다.Also, in this embodiment, "ZRO_Err, i.e. the two different level thresholds for NonUrgentErr and UrgentErr, and in addition to setting the MotionRequest flag state according to equation (6) as discussed above with respect to the second embodiment, Another set of conditions related to temperature fitting can be added to the mix, for example, for a temperature fitting-based request, define the temperature change from when ZRO was last calculated as ΔT = Tcurrent - T lastZR0 and , define the two thresholds, Th nonUrgent and Th urgent, as decreasing functions of the temperature fitting MSE (mean square error).

Figure pct00007
Figure pct00007

다음, 피팅 기반 요청의 함수로서 MotionRequest 플래그의 상태는 다음과 같이 생성될 수 있다.Next, the state of the MotionRequest flag as a function of the fitting-based request can be generated as follows.

Figure pct00008
Figure pct00008

(a) MotionRequest 플래그의 ZRO 기반 제어의 조건, 즉 식(6)(참조의 편의를 위해 아래에서 다시 반복됨)을 (b) MotionRequest 플래그의 온도 피팅 기반 제어의 조건들, 즉 식(8)을 결합하는 것은 아래 식(9)에 표시된 것처럼 MotionRequest 플래그의 전체 동작을 생성한다.Combine (a) the conditions of the ZRO-based control of the MotionRequest flag, i.e., equation (6) (repeated below for convenience of reference) with (b) the conditions of the temperature fitting-based control of the MotionRequest flag, i.e., equation (8). This creates the overall action of the MotionRequest flag as shown in Equation (9) below.

Figure pct00009
Figure pct00009

B. ZRO 온도 피팅B. ZRO temperature fitting

PCT 공개 특허 출원 WO 2018/118574(이의 내용이 본 명세서에 완전히 통합됨)는 학습 알고리즘을 사용하여 온도 함수로서 센서의 ZRO를 계산하는 방법 및 장치를 개시한다.PCT published patent application WO 2018/118574, the content of which is fully incorporated herein, discloses a method and apparatus for calculating the ZRO of a sensor as a function of temperature using a learning algorithm.

예를 들어, 해당 특허 출원에 개시된 일 실시 예에 따르면, 시스템은 (a) 자이로스코프에 의해 생성된 측정 값, (b) 자이로스코프의 온도 및, (c) 장치의 적어도 하나의 다른 동작에 의해 생성된 측정 값을 반복적으로 수신하고, 자이로스코프와 다른 센서에 의해 생성된 측정 값을 기반으로, 자이로스코프가 정지되어 있고 특정 온도에 있을 때, 결정한다. 이러한 기간 동안, 시스템은 자이로스코프 측정 의 평균 및 평균 및 분산을 누적하여 샘플 데이터 세트를 생성하고, 다음 복수의 온도에서 자이로스코프 측정의 평균 및 평균의 분산을 기반으로 온도 함수로서 ZRO의 가중 RLS(Recursive Least Squares) 핏을 생성한다. 다음, 장치는 가중 RLS 핏과 자이로스코프의 현재 온도를 이용하여 ZRO 추산치를 계산할 수 있다. For example, according to an embodiment disclosed in that patent application, the system can be configured by (a) a measurement value generated by the gyroscope, (b) the temperature of the gyroscope, and (c) at least one other operation of the device. It repeatedly receives generated measurements and, based on measurements generated by the gyroscope and other sensors, determines when the gyroscope is stationary and at a certain temperature. During this period, the system accumulates the mean and mean and variance of the gyroscope measurements to generate a sample data set, then based on the mean and variance of the mean and mean of the gyroscope measurements at multiple temperatures, the weighted RLS of ZRO as a function of temperature ( Recursive Least Squares) to create a fit. The device can then calculate a ZRO estimate using the weighted RLS fit and the current temperature of the gyroscope.

특정 실시 예에 따르면, 시간적 망각 인자가 이미 피팅 내에 있는 모든 샘플들에 적용되고, 그래서 더 오래된 샘플이 더 새로운 샘플보다 피팅을 구축하는데 더 적은 가중치를 부여한다(ZRO와 관련된 인자가 시간에 따라 변할 수 있기 때문에). 그러나 특정 응용 분야, 예를 들어, 실내 온도가 매우 작은 온도 범위 내에서 변동하는 동안, 밤새 도킹 스테이션에서 충전하는데 많은 시간을 소비하는 로봇식 진공 청소기에서, 이것은 데이터 포인트가 너무 빨리 잊혀져 피팅의 정확성의 손상을 야기한다. 예를 들어, 좁은 온도 범위를 벗어난 데이터 포인트가 잊혀지는 동안, 매우 좁은 온도 범위를 위한 매우 정확한 ZRO 피팅, 그래서 그 좁은 온도 범위의 외부의 ZRO 추산치를 덜 정확하게 만듬.According to a particular embodiment, a temporal forgetting factor is applied to all samples already in the fit, so that older samples give less weight to building a fit than newer samples (the factors related to ZRO will change over time). because it can). However, in certain applications, for example, in robotic vacuums that spend a lot of time charging at docking stations overnight, while the room temperature fluctuates within very small temperature ranges, this is because the data points are forgotten so quickly that the accuracy of the fitting is lost. cause damage For example, a very accurate ZRO fit for a very narrow temperature range, while data points outside that narrow temperature range are forgotten, making the ZRO estimate outside of that narrow temperature range less accurate.

망각 인자를 가지는 그러한 작동이 피팅에 해로운 영향을 미치는 것을 방지하기 위해, 연속적인 샘플이 취해지는 온도 범위의 추적을 유지하고, 그 온도 범위 내에서 추가된 샘플에 가해지는 비중를 제한하는 것이 좋을 수 있다. 예를 들어, 알고리즘은 특정 수의 샘플이 피팅에 적용된 후, 샘플 데이터(좁은 온도 범위 내)의 수집을 단순하게 중단할 수 있다. 이러한 경우, 온도가 주어진 범위를 넘어서 변경 될 때만, 새 샘플이 추가되는 것이 허여된다(그리고 그에 따라, 새 온도 범위가 추적되기 시작할 수 있음). To prevent such operation with oblivion factors from detrimentally affecting the fit, it may be advisable to keep track of the temperature range over which successive samples are taken, and to limit the gravity applied to added samples within that temperature range. . For example, the algorithm may simply stop collecting sample data (within a narrow temperature range) after a certain number of samples have been applied to the fit. In this case, new samples are only allowed to be added when the temperature changes beyond the given range (and, accordingly, the new temperature range can start to be tracked).

하나의 그러한 실시 예에서, ZRO 온도 피팅 프로세스는 현재 온도 통계, 이전 온도 통계 및 선형 ZRO-온도 피팅(앞서 언급한 PCT 출원과 같이) 뿐만 아니라, 여기에 설명된 상호작용형 ZRO 보정 기술로부터의 최근 ZRO 추산치의 추적을 계속할 수 있다. 가장 최근의 상호작용형 ZRO 보정으로부터의 ZRO 추산치는 가장 최근의 데이터이므로, 피팅에서 사용하기 위해 ZRO가 선택될 때 높은 우선 순위가 부여되는 것이 바람직할 수 있다.In one such embodiment, the ZRO temperature fitting process includes current temperature statistics, previous temperature statistics and linear ZRO-temperature fitting (such as the aforementioned PCT application), as well as recent results from the interactive ZRO calibration techniques described herein. The tracking of the ZRO estimate can continue. Since the ZRO estimate from the most recent interactive ZRO calibration is the most recent data, it may be desirable to give a high priority to the ZRO when it is selected for use in fitting.

따라서, 앞서 언급한 PCT 특허 출원의 기술뿐만 아니라 본 발명의 상호작용형 ZRO 보정 기술이 장치에 사용될 때, 본 발명의 상호작용형 ZRO 보정 기술을 통해 보정된 가장 최근의 ZRO는, 보상에 사용하기 위해 어떤 ZRO 추산치를 선택할 때, 더 높은 우선 순위가 부여된다. 따라서, 일 실시 예에서, 본 발명에 따른 상호작용형 ZRO 보정 기술을 사용하여 결정된 가장 최근의 ZRO가 유효한 것으로 간주된다고 가정하고(예를 들어, 상기 섹션 II.B, III.B 및 IV.A에서 기술된 바와 같이, 가장 최근의 ZRO 누적의 표준 편차는 전술한 바와 같이 미리 결정된 문턱 내에 있다), 전체 ZRO 보상 프로세스는 해당 ZRO 및 앞선 PCT 특허출원의 피팅 알고리즘에 의해 지시된 ZRO에서 더 나은 사용을 선택한다. 예를 들어, 최소 평균 제곱 오차를 기반으로 두 가지 중 어느 것이 더 나은 것으로 간주되는지 결정할 수 있다. 반면에 상호작용 ZRO 보정 기술을 사용하여 결정된 ZRO가 합리적이지 않은 경우, 전체 ZRO 보상 프로세스는 앞서 언급된 PCT 특허출원에 개시된 대로 현재 온도, 이전 온도 및 선형 피팅 중 가장 좋은 것을 선택하는 것으로 디폴트 설정된다. Therefore, when the interactive ZRO correction technology of the present invention as well as the technology of the aforementioned PCT patent application is used in a device, the most recent ZRO corrected through the interactive ZRO correction technology of the present invention is used for compensation. When choosing which ZRO estimate to be used, a higher priority is given. Thus, in one embodiment, it is assumed that the most recent ZRO determined using the interactive ZRO calibration technique according to the present invention is considered valid (e.g., sections II.B, III.B and IV.A above As described in , the standard deviation of the most recent ZRO accumulation is within a predetermined threshold as described above), and the overall ZRO compensation process is better used at that ZRO and the ZRO dictated by the fitting algorithm of the preceding PCT patent application. select For example, you can decide which of the two is considered better based on the least mean squared error. On the other hand, if the ZRO determined using the interactive ZRO correction technique is not reasonable, the entire ZRO compensation process defaults to choosing the best of the current temperature, the previous temperature and the linear fit as disclosed in the aforementioned PCT patent application. .

C. 빈번한 짧은 정지의 경향이 있는 애플리케이션을 위한 특수 프로세스C. Special process for applications prone to frequent short shutdowns

일부 애플리케이션에서, 충분하게 정확한 ZRO 보정이 발생하기에 충분히 긴 정지들이 거의 없거나 없는 작동상의 이유(즉, 본 발명의 상호작용형 ZRO 기술 및 ZRO 보정과 관련되지 않은 이유)로 인해 짧은 정지를 자주 경험할 수 있다. 자주 및/또는 긴 ZRO 보정 중지(정상 작동에 역효과를 줄 수 있음)로 인해 로봇이 중지되는 것을 방지하기 위해, 적절한 ZRO 보정이, 긴 정지를 효과적으로 형성하기 위한 복수의 연속적인 짧은 정지들로부터 보정 데이터를 함께 '스티칭'하는 것에 의해, ZRO 보정 목적을 위해 단독으로 만들어진 더 적은 정지들과 함께 얻어질 수 있다. 예를 들어, 2 개의 정지 윈도우 사이의 간격이 미리 결정된 문턱(예를 들어, 10 초)보다 작으면, 이러한 복수의 정지부터의 ZRO 보정 데이터가 결합될 수 있다. 이는 로봇의 여러 정지들로부터 얻은 보정 데이터의 내부 누적기를 유지하는 것과 모션이 시작될 때마다 타이머를 시작하는 것에 의해 구현할 수 있다. 타이머가 만료되기 전에 다음 정지가 발생하면 적산기는 ZRO 보정을 위한 데이터를 계속 누적하고 타이머가 다시 재설정된다. 특정 실시 예에서, 제2 타이머 및/또는 시간 제한이 임의의 세트의 다중 연속 짧은 정지가 결합될 수 있는 최대 시간을 설정하기 위해 사용될 수 있다. 대안적으로, 단일 타이머는 다중 정지 세션으로부터의 데이터가 결합될 수 있는 전체 기간만을 모니터링하기 위해 사용될 수 있다(예를 들어, 각 쌍의 연속적인 정지 세션의 갭의 지속 기간에 관계없이).In some applications, short outages may be frequently experienced for operational reasons (i.e. reasons unrelated to the interactive ZRO technology and ZRO calibration of the present invention) with few or no stops long enough for sufficiently accurate ZRO calibration to occur. can In order to avoid stopping the robot due to frequent and/or long ZRO calibration stops (which may adversely affect normal operation), appropriate ZRO calibration should be calibrated from a plurality of successive short stops to effectively form a long stop. By 'stitching' the data together, it can be obtained with fewer stops made solely for ZRO calibration purposes. For example, if the interval between two stop windows is less than a predetermined threshold (eg, 10 seconds), then ZRO correction data from these multiple stops may be combined. This can be implemented by maintaining an internal accumulator of correction data from several stops of the robot and starting a timer each time motion is initiated. If the next stop occurs before the timer expires, the totalizer continues to accumulate data for ZRO correction and the timer is reset again. In certain embodiments, a second timer and/or time limit may be used to set the maximum time any set of multiple consecutive short stops may be combined. Alternatively, a single timer may be used to monitor only the total period during which data from multiple pause sessions may be combined (eg, regardless of the duration of the gap of successive pause sessions of each pair).

당업자는 여기서 설명된 실시 예들이 또한 방법으로 표현될 수 있음을 인식할 것이며, 그 예는 도 5-7의 흐름도에 예시되어 있다. 도 5에서, 장치에 위치한 제1 관성 센서의 ZRO(zero rate offset)를 보정하는 방법이 설명되어 있으며, 장치에 배치되고 적어도 하나의 비관성 센서와 관련된 정보를 기반으로 장치의 안정성 레벨을 결정하는 단계(500)와, 안정성 수준이 상기 문턱을 초과할 때 제1 초기 센서의 ZRO 보정을 수행하는 단계(502)를 포함한다. 도 6에서, 로봇 장치를 작동하기 위한 방법이 예시되고, 복수의 모션 제어 요청 중 하나를 로봇 장치에 위치한 하나 이상의 관성 센서와 관련된 현재 ZRO(Zero Rate Offset) 오류 레벨에 기초한 제어기에 전송하는 단계 600 및 동작 제어 요청에 기초하여 로봇 장치의 움직임을 제어하는 단계(602)를 포함한다. 도 7에는, 장치에 위치한 제1 관성 센서의 제로율 오프셋(ZRO)을 보정하는 방법이 설명되어 있으며, ZRO 보정과 관련이 없는 이유로 제1 기간 동안 장치를 정지시키는 단계(700)과, 상지 제1 기간동안 ZRO 보정 데이터를 누적시키는 단계(702)와, 제1 기간 후 장치를 이동시키는 단계(704), 제2 기간동안 ZRO과 무관한 이유로 장치를 정지시키는 단계(706), 제2 기간동안 ZRO 보정 데이터를 축적하는 단계(708), 제1 및 제2 기간으로부터 축적된 ZRO 보정데이터를 이용하여 ZRO 보정을 수행하는 단계(710)을 포함한다. One of ordinary skill in the art will recognize that the embodiments described herein may also be represented as a method, examples of which are illustrated in the flow charts of FIGS. 5-7 . In FIG. 5 , a method of calibrating a zero rate offset (ZRO) of a first inertial sensor located in a device is described, which is disposed in the device and determines a stability level of the device based on information related to at least one non-inertial sensor. and performing ( 502 ) a ZRO calibration of the first initial sensor when the stability level exceeds the threshold. In FIG. 6 , a method for operating a robotic device is illustrated, sending one of a plurality of motion control requests to a controller based on a current Zero Rate Offset (ZRO) error level associated with one or more inertial sensors located on the robotic device 600 . and controlling the movement of the robotic device based on the motion control request (602). 7, a method of correcting the zero rate offset (ZRO) of a first inertial sensor located in the apparatus is described, comprising the steps 700 of stopping the apparatus for a first period of time for reasons unrelated to the ZRO correction; Accumulating ZRO correction data for a period of time (702), moving the device after a first period of time (704), stopping the device for reasons unrelated to the ZRO for a second period of time (706), during a second period of time accumulating ZRO correction data (708), and performing ZRO correction using the accumulated ZRO correction data from the first and second periods (710).

V. 요약V. Summary

로봇 제어기로부터 IMU로 전송된 Motionlntent 플래그의 구현은 ZRO 정확도의 개선을 돕는다. IMU로부터 로봇 제어기로 전송되는 MotionRequest 플래그는 최악의 ZRO가 항상 헤딩 성능 요구사항을 충족하도록 보장한다. 전반적으로 상호작용형 ZRO 알고리즘은 ZRO 정확도를 개선하고, 로봇 정지에 대한 최소 요청으로 요구 사항을 충족한다.Implementation of the Motionlntent flag sent from the robot controller to the IMU helps improve ZRO accuracy. A MotionRequest flag sent from the IMU to the robot controller ensures that the worst-case ZRO always meets the heading performance requirements. Overall, the interactive ZRO algorithm improves ZRO accuracy and meets the requirement with a minimum request to stop the robot.

VI. 결론VI. conclusion

본 발명의 예시적인 실시 예에 따른 데이터 처리 시스템 및 방법은 메모리 장치에 포함된 명령어 시퀀스를 실행하는 하나 이상의 프로세서에 의해 수행될 수 있다. 이러한 명령은 2 차 데이터 저장 장치(들)와 같은 다른 컴퓨터 판독 가능 매체로부터 메모리 장치로 판독될 수 있다. 메모리 장치에 포함된 명령 시퀀스의 실행은 프로세서가 예를 들어 위에서 설명한대로 작동하게한다. 대안적인 실시 예에서, 하드-와이어 회로는 본 발명을 구현하기 위해 소프트웨어 명령 대신에 또는 소프트웨어 명령과 조합하여 사용될 수 있다. 이러한 소프트웨어는 센서를 포함하는 로봇 또는 기타 장치와 같은 장치 내에 수용된 프로세서에서 실행될 수 있으며, 소프트웨어는 다른 장치 내에 수용된 프로세서 또는 컴퓨터에서 실행될 수 있다. 센서를 포함하는 장치와 통신하는 시스템 제어기, 게임 콘솔, 개인용 컴퓨터 등. 이러한 경우, 데이터는 센서를 포함하는 장치와 전술한 바와 같이 바이어스 추산 및 보상을 수행하는 소프트웨어를 실행하는 프로세서를 포함하는 장치간에 유선 또는 무선으로 전송될 수 있다. 다른 예시적인 실시 예에 따르면, 바이어스 추산과 관련하여 위에서 설명한 처리 중 일부는 센서를 포함하는 장치에서 수행될 수 있으며, 나머지 처리는 다음을 포함하는 장치로부터 부분적으로 처리된 데이터를 수신한 후 제2 장치에서 수행된다. 센서. 데이터는 센서를 포함하는 장치와 전술한 바와 같이 바이어스 추산 및 보상을 수행하는 소프트웨어를 실행하는 프로세서를 포함하는 장치 사이에서 유선 또는 무선으로 전송될 수 있다. 다른 예시적인 실시 예에 따르면, 바이어스 추산과 관련하여 위에서 설명한 처리 중 일부는 센서를 포함하는 장치에서 수행될 수 있으며, 나머지 처리는 다음을 포함하는 장치로부터 부분적으로 처리된 데이터를 수신한 후 제2 장치에서 수행된다. 센서. 데이터는 센서를 포함하는 장치와 전술한 바와 같이 바이어스 추산 및 보상을 수행하는 소프트웨어를 실행하는 프로세서를 포함하는 장치 사이에서 유선 또는 무선으로 전송될 수 있다. 다른 예시적인 실시 예에 따르면, 바이어스 추산과 관련하여 전술한 처리 중 일부는 센서를 포함하는 장치에서 수행될 수 있는 반면, 나머지 처리는 센서에 포함된 장치로부터 부분적으로 처리된 데이터의 인수 후 제2 장치에서 수행될 수 있다. A data processing system and method according to an exemplary embodiment of the present invention may be performed by one or more processors executing a sequence of instructions included in a memory device. Such instructions may be read into the memory device from another computer readable medium, such as secondary data storage device(s). Execution of the sequence of instructions contained in the memory device causes the processor to operate, for example as described above. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the present invention. Such software may be executed on a processor housed within a device, such as a robot or other device that includes a sensor, and the software may be executed on a computer or processor housed within another device. System controllers, game consoles, personal computers, etc. that communicate with devices that contain sensors. In this case, data may be transmitted by wire or wirelessly between the device including the sensor and the device including a processor executing software for performing bias estimation and compensation as described above. According to another exemplary embodiment, some of the processing described above with respect to bias estimation may be performed in a device including a sensor, and the remaining processing may be performed by a second processing device after receiving partially processed data from a device including performed on the device. sensor. Data may be transmitted by wire or wirelessly between a device comprising a sensor and a device comprising a processor executing software to perform bias estimation and compensation as described above. According to another exemplary embodiment, some of the processing described above with respect to bias estimation may be performed in a device including a sensor, and the remaining processing may be performed by a second processing device after receiving partially processed data from a device including performed on the device. sensor. Data may be transmitted by wire or wirelessly between a device comprising a sensor and a device comprising a processor executing software to perform bias estimation and compensation as described above. According to another exemplary embodiment, some of the processing described above with respect to bias estimation may be performed in a device including a sensor, while the remaining processing may be performed in a second process after acquisition of partially processed data from a device included in the sensor. can be performed on the device.

전술한 예시적인 실시 예가 하나 이상의 회전 센서 및 가속도계를 포함하는 센싱 패키지에 관한 것이지만, 이러한 예시적인 실시 예에 따른 바이어스 추산 기술은 이러한 유형의 센서에만 제한되지 않는다. 대신, 여기에 설명된 바이어스 추산 기술은 예를 들어 가속도계(들) 단독, 광학 및 관성 센서들(예 : 회전 센서, 자이로스코프 또는 가속도계), 자력계 및 관성 센서(예: 회전 센서, 자이로스코프 또는 가속도계), 자력계 및 광학 센서(예를 들어, 카메라, 하나 이상의 포토 다이오드, 하나 이상의 포토 트랜지스터), 또는 기타 센서 조합을 포함하는 장치들에 적용될 수 있다. 또한, 추가적으로 여기서 기술된 예시적인 구체예들이 로봇, 로봇 진공 청소기 및 응용의 문맥에서 바이어스 추산에 관련된다고 하더라도, 그러한 기술은 제한되지 않으며, 다른 응용 분야과 관련된 방법 및 장치들에 적용될 수 있으며, 예를 들어, 모바일 폰, 의료 분야, 게임, 카메라, 군사 분야, 로봇 장치 등이다. Although the above-described exemplary embodiment relates to a sensing package including one or more rotation sensors and an accelerometer, the bias estimation technique according to this exemplary embodiment is not limited to this type of sensor only. Instead, the bias estimation technique described herein may be used, for example, by accelerometer(s) alone, optical and inertial sensors (eg, rotational sensor, gyroscope or accelerometer), magnetometer and inertial sensor (eg, rotational sensor, gyroscope or accelerometer). ), magnetometers and optical sensors (eg, cameras, one or more photodiodes, one or more phototransistors), or other sensor combinations. Also, additionally, although the exemplary embodiments described herein relate to bias estimation in the context of robots, robotic vacuum cleaners and applications, such techniques are not limited and may be applied to methods and apparatuses related to other fields of application, e.g. For example, mobile phones, medical fields, games, cameras, military fields, robotic devices, and the like.

전술한 예시적인 실시 예는 본 발명의 모든 측면에서 제한적이기보다는 예시적인 것으로 의도된다. 따라서, 본 발명은 당업자에 의해 여기에 포함된 설명으로부터 도출될 수 있는 상세한 구현에서 많은 변형이 가능하다. 예를 들어, 전술한 예시적인 실시 예가 무엇보다도 장치의 움직임을 검출하기 위한 관성 센서의 사용을 설명했지만, 다른 유형의 센서(예를 들어, 초음파, 자기 또는 광학)가 전술한 신호 처리를 가지는 관성 센서 대신에 또는 추가적으로 사용될 수 있다. 이러한 모든 변형 및 수정은 다음의 청구 범위에 의해 정의되는 본 발명의 범위 및 사상 내에있는 것으로 간주된다. 본 발명의 기술에 사용된 요소, 행동, 또는 지시도 명시적으로 기술된 것이 아니면, 발명에 중요하고 필수적인 것으로 해석되어서는 않된다. 또한, 여기서 사용될 때, "a" 는 하나 또는 하나 이상의 항목을 포함하는 것으로 의도된다.The above-described exemplary embodiments are intended to be illustrative rather than limiting in all aspects of the invention. Accordingly, the present invention is susceptible to many variations in the detailed implementation that can be derived from the description contained herein by those skilled in the art. For example, although the exemplary embodiments described above have described the use of inertial sensors to detect motion of devices, among other things, other types of sensors (eg, ultrasonic, magnetic or optical) may have inertial signal processing as described above. It may be used instead of or in addition to the sensor. All such variations and modifications are considered to be within the scope and spirit of the invention as defined by the following claims. No element, act, or instruction used in the description of the present invention should be construed as critical or essential to the invention unless explicitly described. Also, as used herein, “a” is intended to include one or more than one item.

특징 및 요소들이 특정 조합으로 위에서 설명되었지만, 당업자는 각각의 특징 또는 요소가 단독으로 또는 다른 특징 및 요소와 임의의 조합으로 사용될 수 있다는 것을 이해할 것이다. 또한, 여기에 기술된 방법은 컴퓨터 프로그램, 소프트웨어 또는 프로세서에 의한 실행을 위해 컴퓨터 판독 가능 매체에 통합된 펌웨어로 구현될 수 있다. 비-일시적 컴퓨터 판독 가능 저장 매체의 예는 ROM(읽기 전용 메모리), RAM(랜덤 접근 메모리(Random Access Memory)), 레지스터, 캐시 메모리, 반도체 메모리 장치, 내부 하드 디스크, 이동식 디스크와 같은 자기 매체, 광-자기 매체 및 CD-ROM 디스크, DVD(Digital Versatile Disk)와 같은 광 매체를 포함하지만 이에 제한되지는 않는다. 소프트웨어와 관련된 프로세서는 WTRU 102, UE, 터미널, 베이스스테이션, RNC, 또는 어떤 호스트 컴퓨터에서 사용하기 위해서 라디오 주파수 변조수신기를 구현하기 위해 사용될 수 있다.Although features and elements have been described above in specific combinations, those skilled in the art will understand that each feature or element may be used alone or in any combination with other features and elements. In addition, the methods described herein may be implemented in a computer program, software, or firmware incorporated in a computer readable medium for execution by a processor. Examples of non-transitory computer-readable storage media include read-only memory (ROM), random access memory (RAM), registers, cache memory, semiconductor memory devices, internal hard disks, magnetic media such as removable disks; magneto-optical media and optical media such as CD-ROM disks and DVDs (Digital Versatile Disks). A processor associated with software may be used to implement a radio frequency modulation receiver for use in a WTRU 102, UE, terminal, base station, RNC, or any host computer.

더욱이, 전술한 실시 예에서, 프로세싱 플랫폼, 컴퓨팅 시스템, 컨트롤러 및 프로세서를 포함하는 다른 장치가 주목된다. 이러한 장치는 하나 이상의 중앙 처리 장치( "CPU")와 메모리를 포함할 수 있다. 컴퓨터 프로그래밍 분야의 당업자의 관행에 따라, 동작 또는 명령의 작동 및 상징적 표현에 대한 참조가 다양한 CPU 및 메모리에 의해 수행될 수 있다. 이러한 행위 및 작동 또는 명령은 "실행", "컴퓨터 실행"또는 "CPU 실행"으로 언급될 수 있다.Moreover, in the embodiments described above, other devices including a processing platform, a computing system, a controller and a processor are noted. Such devices may include one or more central processing units (“CPUs”) and memory. References to acts and symbolic representations of acts or instructions may be performed by various CPUs and memories, consistent with the practice of those skilled in the art of computer programming. Such acts and acts or instructions may be referred to as “execution”, “computer execution” or “CPU execution”.

당업자는 행위 및 상징적으로 표현된 동작 또는 명령이 CPU에 의한 전기 신호의 조작을 포함한다는 것을 이해할 것이다. 전기 시스템은 전기 신호의 결과적인 변환 또는 감소와 메모리 시스템의 메모리 위치에서 데이터 비트의 유지를 야기하고, 그에 의해 CPU의 작동 및 기타 신호 처리를 재구성하거나 변경할 수 있는 데이터 비트를 나타낸다. 데이터 비트가 유지되는 메모리 위치는 데이터 비트에 대응하거나 또는 나타내는 특정 전기적, 자기적, 광학적 또는 유기적 특성을 갖는 물리적 위치이다. 예시적인 구체예가 상기 언급된 플랫폼 또는 CPU에 한정되지 않는다는 것과, CPU가 제공된 방법을 지지할 수 있다는 것을 이해해야 한다.Those of ordinary skill in the art will understand that acts and symbolically expressed actions or instructions include manipulation of electrical signals by a CPU. The electrical system represents the data bits that cause the resulting conversion or reduction of electrical signals and the retention of data bits in memory locations in the memory system, thereby reconfiguring or altering the operation of the CPU and other signal processing. A memory location where data bits are held is a physical location that has certain electrical, magnetic, optical, or organic properties that correspond to or represent data bits. It should be understood that the exemplary embodiments are not limited to the above-mentioned platforms or CPUs, and that the CPUs may support the methods provided.

또한 데이터 비트는 자기 디스크, 광 디스크 및 CPU에 의해서 판독될 수 있는 임의의 다른 휘발성(예 : 랜덤 액세스 메모리( "RAM")) 또는 비 휘발성(예 : Read me-Only Memory( "ROM")) 대량 저장 시스템을 포함하는 컴퓨터 판독 가능 매체에 유지될 수 있다. 컴퓨터 판독 가능 매체는, 프로세스 시스템에 배타적으로 존재하거나 프로세스 시스템에 대해 로컬 또는 원격일 수있는 다수의 상호 접속된 프로세스 시스템 사이에 분산되는 협력 또는 상호 연결된 컴퓨터 판독 가능 매체를 포함할 수 있다. 대표적인 실시 예는 전술한 메모리에 제한되지 않고 다른 플랫폼 및 메모리가 설명된 방법을 지원할 수 있다는 것이 이해된다.Data bits may also include magnetic disks, optical disks, and any other volatile (eg, random access memory (“RAM”)) or non-volatile (eg, Read me-Only Memory (“ROM”)) that can be read by the CPU. may be maintained on computer-readable media including mass storage systems. Computer readable media may include cooperative or interconnected computer readable media residing exclusively on a process system or distributed among a plurality of interconnected process systems that may be local or remote to the process system. It is understood that the representative embodiments are not limited to the memories described above and that other platforms and memories may support the described methods.

예시적인 실시 예에서, 여기에 설명된 임의의 동작, 프로세스 등은 컴퓨터 판독 가능 매체에 저장된 컴퓨터 판독 가능 명령으로 구현될 수 있다. 컴퓨터 판독 가능 명령은 모바일 유닛의 프로세서, 네트워크 요소 및/또는 임의의 다른 컴퓨팅 장치에 의해 실행될 수 있다.In an exemplary embodiment, any operation, process, etc. described herein may be implemented as computer readable instructions stored on a computer readable medium. The computer readable instructions may be executed by a processor of the mobile unit, a network element, and/or any other computing device.

시스템 측면에서 하드웨어와 소프트웨어 구현 사이에는 거의 차이가 없다. 하드웨어 또는 소프트웨어의 사용은 일반적으로(항상 그런 것은 아니지만 특정 상황에서 하드웨어와 소프트웨어 사이의 선택이 중요해질 수 있음) 비용 대 효율성의 트레이드오프를 나타내는 설계적 선택이다. 여기에 설명된 프로세스 및/또는 시스템 및/또는 다른 기술이 영향을 받을 수있는 다양한 비클(예 : 하드웨어, 소프트웨어 및/또는 펌웨어)이 있을 수 있으며, 선호되는 비클은 프로세스 및/또는또는 시스템 및/또는 다른 기술이 배포되는 컨텍스와 함께 변할 수 있다. 예를 들어, 개발자가 속도와 정확성이 가장 중요하다고 판단하면 실행자는 주로 하드웨어 및/또는 펌웨어 비클을 선택할 수 있다. 유연성이 가장 중요하다면 개발자는 주로 소프트웨어 구현을 선택할 수 있다. 대안적으로, 개발자는 하드웨어, 소프트웨어 및/또는 펌웨어의 일부 조합을 선택할 수 있다.On the system side, there is little difference between hardware and software implementations. The use of hardware or software is usually (but not always, the choice between hardware and software can become important in certain situations) is a design choice that represents a cost-effectiveness trade-off. There may be various vehicles (eg, hardware, software, and/or firmware) on which the processes and/or systems and/or other technologies described herein may be affected, with preferred vehicles being the processes and/or systems and/or other technologies. Or it may change with the context in which other technologies are deployed. For example, if the developer determines that speed and accuracy are paramount, the executor may choose primarily a hardware and/or firmware vehicle. When flexibility is paramount, the developer has primarily a software implementation choice. Alternatively, the developer may choose some combination of hardware, software and/or firmware.

전술한 상세한 설명은 블록도, 흐름도 및/또는 실시예의 사용을 통해 장치 및/또는 프로세스의 다양한 실시 예를 설명한다. 그러한 블록도, 흐름도 및/또는 실시 예가 하나 이상의 기능 및/또는 동작을 포함하는 한, 당업자는 이러한 블록도, 흐름도 또는 실시 예 내의 각 기능 및/또는 동작들이 광범위한 하드웨어, 소프트웨어, 펌웨어 또는 사실상 이들의 조합에 의해 개별적으로 및/또는 집합 적으로 구현될 수 있음을 이해할 것이다. 적합한 프로세서는 예로서 범용 프로세서, 특수 목적 프로세서, 종래 프로세서, 디지털 신호 프로세서(DSP), 복수의 마이크로 프로세서, DSP 코어와 관련된 하나 이상의 마이크로 프로세서, 컨트롤러, 마이크로 컨트롤러, ASIC(Application Specific Integrated Circuit), ASSP(Application Specific Standard Products), FPGA(Field Programmable Gate Array) 회로, 기타 모든 유형의 IC(집적 회로) 및/또는 state machine 을 포함할 수 있다.The foregoing detailed description describes various embodiments of apparatus and/or processes through the use of block diagrams, flow diagrams, and/or embodiments. To the extent such block diagrams, flowcharts, and/or embodiments include one or more functions and/or operations, those skilled in the art will recognize that each function and/or operations in such block diagrams, flowcharts, or embodiments may be implemented in a wide variety of hardware, software, firmware, or de facto thereof. It will be understood that combinations may be implemented individually and/or collectively. Suitable processors include, for example, general purpose processors, special purpose processors, conventional processors, digital signal processors (DSPs), multiple microprocessors, one or more microprocessors in conjunction with DSP cores, controllers, microcontrollers, application specific integrated circuits (ASICs), ASSPs. (Application Specific Standard Products), Field Programmable Gate Array (FPGA) circuits, and any other type of IC (Integrated Circuit) and/or state machine.

본 개시는 다양한 양상의 예시로서 의도된 본 출원에서 설명된 특정 실시 예들의 관점에서 제한되지 않는다. 당업자에게 명백한 바와 같이, 그 사상 및 범위를 벗어나지 않고 많은 수정 및 변경이 이루어질 수 있다. 본 출원의 설명에 사용된 어떠한 요소, 행위 또는 지시도 명시적으로 제공되지 않는 한 본 발명에 중요하거나 필수적인 것으로 해석되어서는 안된다. 본 명세서에 열거된 것들에 더하여, 본 개시의 범위 내에서 기능적으로 동등한 방법 및 장치, 전술한 설명으로부터 당업자에게 명백할 것이다. 이러한 수정 및 변경은 첨부된 청구 범위 내에 속하도록 의도된다. 본 개시 내용은 첨부된 청구 범위의 조건에 의해서만 제한되며, 그러한 청구 범위가 부여되는 등가물의 전체 범위와 함께 제한된다. 본 개시는 특정 방법 또는 시스템에 제한되지 않는다는 것을 이해해야한다.This disclosure is not limited in terms of the specific embodiments described herein, which are intended to be illustrative of various aspects. As will be apparent to those skilled in the art, many modifications and changes can be made without departing from the spirit and scope thereof. No element, act, or instruction used in the description of this application should be construed as critical or essential to the invention unless explicitly provided. Functionally equivalent methods and apparatuses within the scope of the present disclosure, in addition to those enumerated herein, will be apparent to those skilled in the art from the foregoing description. Such modifications and variations are intended to fall within the scope of the appended claims. This disclosure is limited only by the terms of the appended claims, along with the full scope of equivalents to which such claims are entitled. It should be understood that this disclosure is not limited to any particular method or system.

특정 대표적인 실시 예에서, 여기서 설명된 주제의 여러 부분은 주문형 집적 회로((Application Specific Integrated Circuits:ASIC), 필드 프로그램 가능 게이트 어레이(Field Programable Gate Array(FPGA)), 디지털 신호 프로세서(DSP) 및/또는 다른 통합 형식을 통해 구현될 수 있다. 그러나, 당업자는 여기에 개시된 실시 예의 일부 측면이, 전체적으로 또는 부분적으로 하나 이상의 컴퓨터에서 실행되는 하나 이상의 컴퓨터 프로그램으로서(예를 들어, 하나 또는 하나의 시스템에서 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서에서 실행되는 하나 이상의 프로그램(예 : 하나 이상의 마이크로 프로세서에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 사실상 이들의 조합으로, 집적회로에서 동등하게 구현되며, 그리고 회로의 설계 및/또는 소프트웨어 또는 펌웨어에 대한 코드를 작성하는 것은 당업자에게 기술 범위 내에 있을 것이다. 또한, 당업자는 여기에 설명된 주제의 메커니즘이 다양한 형태의 프로그램 제품으로 배포될 수 있으며, 여기서 설명된 주제의 예시적인 실시 예가 실제로 분배를 수행하는 데 사용되는 신호 보유 매체의 특정 유형에 관계없이 적용된다는 것을 인식할 것이다. 신호 보유 매체의 제한적이지는 않지만, 플로피 디스크, 하드 디스크 드라이브, CD, DVD, 디지털 테이프, 컴퓨터 메모리 등과 같은 기록 가능한 유형의 매체와; 디지털 및/또는아날로그 통신 매체(일예로 , 파이버 광 케이블, 도파관, 와이어 커뮤니케이션 링크, 무선 통신 링크, 등)와 같은 통신형 매체를 포함한다.In certain representative embodiments, various parts of the subject matter described herein may include Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), digital signal processors (DSPs) and/or or other integrated forms.However, those skilled in the art will appreciate that some aspects of the embodiments disclosed herein may be implemented in whole or in part as one or more computer programs running on one or more computers (eg, on one or one system). one or more programs running on one or more processors), one or more programs running on one or more processors (such as one or more programs running on one or more microprocessors), firmware, or virtually any combination thereof, equivalently embodied in an integrated circuit, and It will be within the skill of those skilled in the art to design and/or write code for software or firmware.In addition, those skilled in the art will find that the mechanism of the subject matter described herein can be distributed as a program product in various forms, It will be appreciated that the exemplary embodiments apply regardless of the particular type of signal bearing medium used to actually perform the distribution, including but not limited to floppy disks, hard disk drives, CDs, DVDs, digital tapes. tangible media, such as recordable media, computer memory, and the like;

여기에 설명된 주제는 때때로 다른 다른 구성 요소 내에 포함되거나 또는 연결된 다른 구성 요소를 예시한다. 그러한 묘사된 아키텍처는 단지 실시 예일 뿐이며 실제로 동일한 기능을 달성하는 많은 다른 아키텍처가 구현될 수 있다는 것을 이해해야한다. 개념적 의미에서, 동일한 기능을 달성하기 위한 구성 요소의 임의의 배열은 원하는 기능이 달성될 수 있도록 효과적으로 "연관"된다. 따라서, 특정 기능을 달성하기 위해 여기에서 결합된 임의의 2개의 구성 요소는, 아키텍처 또는 중간 구성 요소에 관계없이, 원하는 기능이 달성되도록 서로 "연관된"것으로 보일 수 있다. 마찬가지로 이와 같이 연관된 두 구성 요소는, 소정의 기능을 성취하기 위해서, 서로 "작동 가능하게 연결" 또는 "작동가능하게 결합"된 것으로 보일수 있고, 관련될 수 있는 어떤 두 구성요소는 소정의 기능을 성취하기 위해서 서로 "작동가능하게 결합될 수 있는"것으로 보여질 수 있다. 작동가능하게 결합될 수 있는 특정 실시예는 제한적이지는 않지만 물리적으로 어울리는 및/또는 물리적으로 상호작용하는 구성들 및/또는 무선으로 상호작용할 수 있는 및/또는 무선으로 상호 작용하는 구성 성분 및/또는 논리적으로 상호작용하는 및/또는 논리적으로 상호작용할 수 있는 구성성분을 포함한다.The subject matter described herein sometimes exemplifies other components incorporated into or connected to other other components. It should be understood that such a depicted architecture is merely an example, and in practice many other architectures may be implemented that achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same function is effectively "associated" such that a desired function can be achieved. Accordingly, any two components herein combined to achieve a particular function, regardless of architecture or intermediate component, may be viewed as "associated with" each other such that the desired function is achieved. Likewise, two components so associated can be viewed as being "operably connected" or "operably coupled" to each other to achieve a predetermined function, and any two components that may be related perform a predetermined function. can be seen as “operably coupled” to each other to achieve. Specific embodiments that may be operatively coupled include, but are not limited to, physically compatible and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or Logically interacting and/or logically capable of interacting with components.

여기서, 실질적으로 임의의 복수 및/또는 단수 용어의 사용과 관련하여, 당업자는 문맥 및/또는 문맥에 적절한대로 복수에서 단수로 및/또는 단수에서 복수로 번역할 수 있다. 또는 명확성을 위해 다양한 단수/복수 순열이 본 명세서에서 명시적으로 설명될 수 있다.Herein, with respect to the use of substantially any plural and/or singular term, one of ordinary skill in the art may translate from plural to singular and/or from singular to plural as appropriate to the context and/or context. Alternatively, various singular/plural permutations may be explicitly set forth herein for the sake of clarity.

일반적으로 여기서, 특히 첨부된 청구 범위(예를 들어, 첨부된 청구 범위의 본체)에서 사용된 용어는 일반적으로 "개방형"용어로 의도된다(예를 들어, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는 "으로 해석되어야하고, 용어 "가지는"은 "적어도 갖는"으로 해석되어야 하며, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는 "등으로 해석되어야 한다.) 또한, 청구항에 특정 수의 설명이 의도된 경우, 그러한 의도는 청구에서 명시적으로 될 것이며, 그러한 설명이 없는 경우 그러한 의도가 없다는 것이 당업자에 의해 또한 이해될 것이다. 예를 들어 단지 하나의 항목만 사용하려는 경우 "단일" 이라는 용어 또는 유사한 언어를 사용할 수 있다. 이해를 돕기 위해, 다음의 첨부된 청구 범위 및/또는 본 명세서의 설명은 청구 인용을 도입하기 위해 도입 문구 "적어도 하나" 및 "하나 이상"의 사용을 포함할 수 있다. 그러나, 그러한 문구의 사용은, 동일한 청구항이 도입문구 "하나 이상" 또는 "적어도 하나"와 부정 관사 "a" 또는 "an"를 포함하는 경우에도, 청구 설명의 도입이 그러한 도입된 청구항 설명을 포함하는 특정 청구를 그러한 인용을 하나만 포함하는 구체 예로 제한한다는 것을 의미하는 것으로 해석되어서는 안된다(예를 들어, "a" 및/또는 "an"은 "적어도 하나" 또는 "하나 이상"을 의미하게 해석되어야 한다). 동일한 주장에는 주장 인용을 도입하는 데 사용되는 정관사의 사용도 마찬가지이다. 또한, 도입된 주장 인용의 특정 횟수가 명시적으로 인용 되더라도, 당업자는 그러한 인용이 적어도 인용된 횟수를 의미하는 것으로 해석되어야 함을 인식할 것입니다(예를 들어, "2 회 인용", 다른 수식어는 두 개 이상의 설명 또는 두 개 이상의 설명을 의미한다.)Generally, terms used herein, particularly in the appended claims (eg, the body of the appended claims), are generally intended to be "open-ended" terms (eg, the term "comprising" means "including but not limited to"). It should be construed as "without limitation", the term "having" should be construed as "at least having", the term "comprising" should be construed as "including but not limited to", etc.) It will also be understood by those skilled in the art that where a description is intended, such intent will be made explicit in the claims, and in the absence of such description, no such intent. For example, if you want to use only one item, you can use the term "single" or similar language. To aid understanding, the following appended claims and/or the description of this specification may include the use of the introductory phrases "at least one" and "one or more" to introduce claim recitation. However, the use of such phrases means that the introduction of a claim description includes such introduced claim description, even if the same claim contains the introductory phrase "one or more" or "at least one" and the indefinite article "a" or "an" should not be construed to mean limiting a particular claim to an embodiment containing only one such recitation (e.g., “a” and/or “an” should be construed to mean “at least one” or “one or more”). should be). The same is true of the use of definite articles used to introduce assertive citations in the same argument. Further, even if a particular number of citations for an introduced claim are explicitly recited, those of ordinary skill in the art will recognize that such citation should be construed to mean at least the number of times recited (e.g., "twice citation", other modifiers means two or more descriptions or two or more descriptions.)

또한, "A, B, 및 C 등의 적어도 하나"와 유사한 관례가 있는 경우, 일반적으로 그러한 구성은 당업자가 관례를 이해할 것이라는 의미에서 의도된다(예를 들어, "A, B 및 C 의 적어도 하나를 갖는 시스템"은 A 단독, B 단독, C 단독, A와 B 함께, A와 C 함께, B와 C 함께, 및/또는 A, B 및 C 함께 가지는 시스템들에 제한도지 않는다). "A, B 또는 C 등 중 적어도 하나"과 유사한 관례가 있는 경우 일반적으로 그러한 구성은 당업자가 관례를 이해할 것이라는 의미에서 의도된다(예를 들어, "A, B 또는 C 중 적어도 하나를 갖는 시스템"은 A는 단독, B는 단독, C는 단독, A와 B 함께, A와 C 함께, B와 C 함께, 및/또는 A, B, C를 함께 가지는 시스템에 제한되지 않는다). 상세한 설명, 청구 범위 또는 도면에 있든간에, 둘 이상의 대체 용어를 제시하는 사실상 임의의 분리 단어 및/또는 문구는 용어 중 하나, 용어 둘 중 하나, 또는 둘다를 포함할 수 있는 가능성을 고려하기 위해 이해되어야 한다는 것이 당업자에 의해 추가로 이해될 것이다. 예를 들어, "A 또는 B"라는 문구는 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다. 또한, 여기서 사용된 바와 같이, 용어 복수의 항목의 리스트 및/또는 복수의 범주의 항목이 이어지는 "~의 하나"는 "~중의 하나", "~의 임의의 조합", "~의 임의의 배수" 및/또는 "배수의 조합" 항목 및/또는 항목의 카테고리, 개별적으로 또는 다른 항목 및/또는 다른 항목의 카테고리와 함께를 포함하는 것으로 의도된다. 더욱이, 여기서 사용되는 용어 "세트" 또는 "그룹"은 0을 포함하는 임의의 수의 항목을 포함하도록 의도된다. 추가적으로, 여기서 사용되는 바와 같이, 용어 "숫자"는 0을 포함한 임의의 수를 포함하는 것으로 의도된다.Also, where there is a convention similar to "at least one of A, B, and C," such construction is generally intended in the sense that one of ordinary skill in the art would understand the convention (eg, "at least one of A, B, and C"). "system with" is not limited to systems having A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B and C together). Where there is a convention similar to "at least one of A, B or C, etc.", such configuration is generally intended in the sense that one of ordinary skill in the art would understand the convention (eg, "a system having at least one of A, B or C"). is not limited to systems having A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, C together). Whether in the description, claims, or drawings, virtually any separating words and/or phrases that present two or more alternative terms are understood to be contemplated for the possibility that they may include one of the terms, either of the terms, or both. It will be further understood by those skilled in the art that For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B”. Also, as used herein, the term "one of" followed by a list of a plurality of items and/or items of a plurality of categories means "one of", "any combination of", "any multiple of" "and/or "combinations of multiples" are intended to include items and/or categories of items, individually or in conjunction with other items and/or categories of other items. Moreover, as used herein, the term “set” or “group” is intended to include any number of items, including zero. Additionally, as used herein, the term “number” is intended to include any number, including zero.

또한, 본 개시의 특징 또는 측면이 Markush 그룹의 관점에서 설명되는 경우, 당업자는 본 개시가 또한 Markush 그룹 구성의 임의의 개별 구성 또는 하위 그룹의 관점에서 설명된다는 것을 인식 할 것이다.Further, where features or aspects of the present disclosure are described in terms of a Markush group, those skilled in the art will recognize that the present disclosure is also described in terms of any individual member or subgroup of Markush group members.

당업자에 의해 이해되는 바와 같이, 임의의 및 모든 목적을 위해, 그러한 상세한 설명을 제공함에 있어서, 여기서 개시된 모든 범위는 또한 임의 및 모든 가능한 하위 범위 및 그 하위 범위의 조합을 포함한다. 어떤 목록의 범위는, 동일한 범위를 적어도 동일한 절반, 3 등분, 4 등분, 5 등분, 10 등분 등으로 쪼갤수 있도록 충분히 설명하고 가능하게 하는 것으로 쉽게 인식될 수 있다. 비 제한적인 예로서, 여기에서 논의된 각 범위는 하부 1/3, 중간 1/3, 및 상부 1/3로 쉼게 쪼개질 수 있다. 또한, 당업자에 의해 이해되는 바와 같이 "까지", "적어도", "더 큰", "보다 작은", 등의 모든 언어는 인용된 숫자를 포함하며, 위에서 논의된 바와 같이 후속적으로 하위 범위로 연속적으로 나눌 수 있는 범위들을 의미한다. 마지막으로, 당업자에 의해 이해되는 바와 같이, 범위는 각각의 개별 숫자를 포함한다. 따라서, 예를 들어 1-3 개의 세포를 갖는 그룹은 1, 2 또는 3 개의 세포를 갖는 그룹을 의미한다. 유사하게, 1-5 개의 세포를 갖는 그룹은 1, 2, 3, 4 또는 5 개의 세포 등을 갖는 그룹을 의미한다.As will be understood by one of ordinary skill in the art, in providing such detailed descriptions, for any and all purposes, all ranges disclosed herein also include any and all possible subranges and combinations of subranges thereof. Ranges in any list can be readily recognized as sufficiently descriptive and enabling such ranges to be divided into at least equal halves, thirds, quarters, fifths, tenths, and the like. As a non-limiting example, each of the ranges discussed herein may be arbitrarily split into a lower third, a middle third, and an upper third. Also, as will be understood by one of ordinary skill in the art, all language such as "up to", "at least", "greater than", "less than", etc., includes the recited numbers and subsequently subranged as discussed above. It means a range that can be continuously divisible. Finally, as will be understood by one of ordinary skill in the art, ranges include each individual number. Thus, for example, a group having 1-3 cells means a group having 1, 2 or 3 cells. Similarly, a group having 1-5 cells means a group having 1, 2, 3, 4 or 5 cells, etc.

더욱이, 청구 범위는, 그 효과가 언급되지 않는 한, 제공된 순서 또는 요소로 제한되는 것으로 해석되어서는 안된다. 또한 모든 청구에서 "~을 위한 수단"라는 용어의 사용은 35 USC §112.(6) 또는 수단-플러스-기능 청구 형식을 호출하기 위한 것이며 "~을 위한 수단"이라는 용어가 없는 청구항은 그렇게 의도되지 않는다.Moreover, the claims should not be construed as limited to the order or elements presented, unless the effect is recited. Also, use of the term "means for" in all claims is intended to call 35 USC §112.(6) or the means-plus-function claim form, and claims without the term "means for" are intended to do so. doesn't happen

Claims (84)

장치에 위치한 제1 관성 센서의 제로율 오프셋(ZRO)을 보정하는 방법에 있어서,
장치에 위치한 적어도 하나의 비관성 센서에 관련된 정보에 기초하여 장치의 안정성 수준을 결정하는 것(500); 및
안정성 레벨이 문턱보다 높을 때, 제1 관성 센서의 ZRO의 보정을 수행하는 것(502)을 포함하는 방법.
A method of correcting a zero rate offset (ZRO) of a first inertial sensor located in a device, the method comprising:
determining ( 500 ) a level of stability of the device based on information related to at least one non-inertial sensor located on the device; and
when the stability level is higher than the threshold, performing (502) calibration of the ZRO of the first inertial sensor.
제1항에 있어서,
장치의 안정성을 나타내는 적어도 하나의 비관성 센서로부터 데이터를 수신하는 것;
적어도 하나의 비관성 센서로부터의 데이터에 기초하여, 장치의 제1 안정성 상태를 평가하는 것;
장치의 안정성을 나타내는 적어도 하나의 관성 센서로부터 데이터를 수신하는 것, 여기서, 적어도 하나의 관성 센서는 제1 관성 센서를 포함할 수 있으며;
적어도 하나의 관성 센서로부터의 데이터에 기초하여, 장치의 제2 안정성 상태를 평가하는 것;
제1 안정성 상태 및 제2 안정성 상태의 조합에 기초하여 장치의 전체 안정성 상태를 결정하는 것; 및
전체 안정성 상태가 장치가 ZRO 보정에 대해서 충분히 안정하는 것을 나타낸다면, 제1 관성 센서의 ZRO의 보정을 수행하는 것
을 더 포함하는 방법.
According to claim 1,
receiving data from at least one non-inertial sensor indicative of stability of the device;
assessing a first stability state of the device based on data from the at least one non-inertial sensor;
receiving data from at least one inertial sensor indicative of stability of the device, wherein the at least one inertial sensor may comprise a first inertial sensor;
evaluating a second stability state of the device based on data from the at least one inertial sensor;
determining an overall stability state of the device based on the combination of the first stability state and the second stability state; and
If the overall stability state indicates that the device is sufficiently stable with respect to the ZRO calibration, perform calibration of the ZRO of the first inertial sensor.
How to include more.
제1항 또는 제2항에 있어서,
제1 관성 센서에 대한 현재 ZRO 값의 품질을 평가하는 것;
제1 관성 센서에 대한 현재 ZRO 값의 품질의 평가에 기초하여 ZRO 보정을 수행하는 것의 필요성 수준을 결정하는 것; 및
ZRO 보정을 수행하는 필요성의 수준의 함수로서 장치의 동작을 제어하는 것
을 더 포함하는 방법.
3. The method of claim 1 or 2,
assessing the quality of the current ZRO value for the first inertial sensor;
determining a level of need to perform ZRO calibration based on an assessment of the quality of the current ZRO value for the first inertial sensor; and
Controlling the behavior of the device as a function of the level of need to perform ZRO calibration
How to include more.
제 3 항에 있어서,
ZRO 보정을 수행할 필요성의 수준을 결정하는 것이 수준을 가리키는 제1 플래그를 생성하는 것을 포함하고, 여기서, 플래그는 다음 상태들 중 하나에 있는 방법:
ZRO를 보정할 현재 필요가 없음을 나타내는 노-컨스트레인트(no-constraint) 상태;
장치의 전체 안정성 상태가 장치가 정지되어 있어야 함을 나타내는 것을 나타내는 스테이-스테이션어리(stay-stationary) 상태
편리하면, 장치가 정지 상태가 되어야 한다는 것을 나타내는 논-어전트-리퀘스트-포-더-데비스-투-비컴-스테이션어리(non-urgent-request-for-the-device-to-become-stationary) 상태; 및
가능하면, 장치가 정지되어야 함을 나타내는 어전트-리퀘스트-포-더-데비스-투-비컴-스테이션어리(urgent-request-for-the-device-to-become-stationary) 상태.
4. The method of claim 3,
A method wherein determining the level of need to perform ZRO correction comprises generating a first flag indicative of the level, wherein the flag is in one of the following states:
a no-constraint state indicating that there is currently no need to correct the ZRO;
A stay-stationary state where the overall stability state of the device indicates that the device should be stationary.
Conveniently, a non-urgent-request-for-the-device-to-become-stationary indicating that the device should be in a stationary state. ) state; and
If possible, an agent-request-for-the-device-to-become-stationary state indicating that the device should be stopped.
제 4 항에 있어서,
(1) ZRO 보정이 수행되고 있을 때, 스테이-스테이션어리 상태에서 제1 플래그가 생성되고,
(2) 현재 ZRO 값이 제1 정확도 범위 내에 있다고 결정될 때, 논-어전트-리퀘스트-투-비컴-스테이션어리(non-urgent-request-to-become-stationary) 제1 플래그가 상태에서 생성되고;
(3) 현재 ZRO 값이 제2 정확도 범위 내에 있다고 결정된 어전트-리퀘스트-투-비컴-스테이션어리(urgent-request-to-become-stationary) 상태에서 제1 플래그가생성되고; 그리고
(4) 현재 ZRO 값이 제3 정확도 범위 내에 있다고 결정될 때, 노-컨스트레인트 상태에서 제1 플래그가 생성되는 방법.
5. The method of claim 4,
(1) When ZRO correction is being performed, the first flag is generated in the stay-stationary state,
(2) when it is determined that the current ZRO value is within the first accuracy range, a non-urgent-request-to-become-stationary first flag is generated in the state and ;
(3) a first flag is generated in an agent-request-to-become-stationary state where it is determined that the current ZRO value is within the second accuracy range; And
(4) A method in which the first flag is generated in the no-constrained state when it is determined that the current ZRO value is within the third accuracy range.
제2항에 있어서,
제1 안정성 상태가 다음 값 중 하나를 가질 수 있는 방법;
장치가 제1 타입의 ZRO 보정을 수행하기에 충분히 정지되어 있음을 나타내는 스테이블-위아웃-바이브레이션(stable-without-vibration) 상태;
장치가 제2 타입의 ZRO 보정을 수행하기에 충분히 안정되어 있음을 나타내는 스테이브-위드-바이브레이션(stable-with-vibration) 상태;
장치의 안정성 레벨이 알려지지 않음을 나타내는 언노운(unknown) 상태;
장치가 ZRO 보정을 수행하기에 불충분하게 안정되어 있음을 나타내는 인-모션(IN-MOTION) 상태.
3. The method of claim 2,
how the first stable state can have one of the following values;
a stable-without-vibration state indicating that the device is stationary enough to perform a first type of ZRO correction;
a stable-with-vibration condition indicating that the device is stable enough to perform a second type of ZRO calibration;
Unknown status indicating that the stability level of the device is unknown;
An IN-MOTION state indicating that the device is insufficiently stable to perform ZRO calibration.
제 2 항에 있어서,
제1 안정성 상태 플래그가 ZRO 보정이 수행될 수 있음을 나타내는 복수의 안정성 상태들을 포함하는 방법.
3. The method of claim 2,
A method wherein the first stability state flag comprises a plurality of stability states indicating that a ZRO correction may be performed.
제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
제1 관성 센서의 ZRO의 보정을 수행하는 것이 장치의 안정성 레벨의 함수로서 복수의 ZRO 보정 프로세스의 하나를 수행하는 것을 포함하는 방법.
8. The method according to any one of claims 1 to 7,
wherein performing calibration of the ZRO of the first inertial sensor comprises performing one of a plurality of ZRO calibration processes as a function of a stability level of the device.
제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
제1 센서를 포함하는 적어도 하나의 관성 센서 및 비관성 센서들이 장치에 장착되는 방법.
9. The method according to any one of claims 1 to 8,
At least one inertial sensor comprising a first sensor and a method in which non-inertial sensors are mounted to a device.
제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
장치가 로봇인 방법.
10. The method according to any one of claims 1 to 9,
How the device is a robot.
제 10 항에 있어서,
장치가 로봇 진공 청소기인 방법.
11. The method of claim 10,
How the device is a robotic vacuum cleaner.
제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
적어도 하나의 비관성 센서가 적어도 하나의 휠엔코더와 카메라를 포함하는 방법.
12. The method according to any one of claims 1 to 11,
A method wherein the at least one non-inertial sensor comprises at least one wheel encoder and a camera.
제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
제1 관성 센서는 자이로스코프인 방법.
12. The method according to any one of claims 1 to 11,
wherein the first inertial sensor is a gyroscope.
제3항에 있어서,
현재 ZRO 값의 품질이 다음의 적어도 하나에 기초하는 방법;
ZRO 보정이 수행된 후 경과 시간;
ZRO 보정이 수행된 후 온도 변화; 및
마지막 ZRO 보정의 품질의 보정.
4. The method of claim 3,
a method in which the quality of the current ZRO value is based on at least one of the following;
time elapsed since ZRO calibration was performed;
temperature change after ZRO calibration is performed; and
Calibration of the quality of the last ZRO calibration.
제3항에 있어서,
제1 관성 센서에 대해 현재 ZRO 값의 품질을 평가하는 것이 ZRO 값과 관련하여 표준 편차를 결정하는 것을 포함하는 방법.
4. The method of claim 3,
A method, wherein assessing the quality of the current ZRO value for the first inertial sensor includes determining a standard deviation with respect to the ZRO value.
제15항에 있어서,
ZRO 값과 관련된 표준 편차를 결정하는 것은
ZRO 값을 생성하는데 사용된 제1 관성 센서의 출력 샘플들의 표준 편차를 결정하는 것;
ZRO 값을 생성하는데 사용된 제1 관성 센서의 출력 샘플들의 수의 제곱근으로 ZRO 값을 생성하는데 사용된 제1 관성 센서의 출력 샘플의 표준 편차를 나누는 것; 및
제1 관성 센서로의 관찰 경험에 기초하여 결정된 한계 인자에 의해서 결과를 곱하는 것
을 포함하는 방법.
16. The method of claim 15,
Determining the standard deviation associated with the ZRO value is
determining a standard deviation of output samples of the first inertial sensor used to generate the ZRO value;
dividing the standard deviation of the output samples of the first inertial sensor used to generate the ZRO value by the square root of the number of output samples of the first inertial sensor used to generate the ZRO value; and
multiplying the result by a limiting factor determined based on observation experience with the first inertial sensor.
How to include.
제15항에 있어서,
ZRO 값에 관한 표준 편차를 결정하는 것은
ZRO 값을 생성하는데 사용된 제1 관성 센서의 출력 샘플들을 무한 임펄스 응답(IIR) 필터로 필터링하는 것; 및
필터링된 샘플들의 표준 편차를 결정하는 것
을 포함하는 방법.
16. The method of claim 15,
Determining the standard deviation with respect to the ZRO value is
filtering the output samples of the first inertial sensor used to generate the ZRO value with an infinite impulse response (IIR) filter; and
Determining the standard deviation of filtered samples
How to include.
제3항에 있어서,
ZRO 값의 피팅을 온도의 함수로 유지하는 것;
피팅의 품질을 평가하는 것;
피팅 품질의 평가에 기초한 ZRO 보정을 수행할 필요성의 수준을 결정하는 것; 및
피팅의 평가된 품질에 기초한 ZRO 보정을 수행할 필요성의 수준의 함수로서 장치의 동작을 제어하는 것
을 포함하는 방법.
4. The method of claim 3,
maintaining the fitting of ZRO values as a function of temperature;
to evaluate the quality of fittings;
determining a level of need to perform a ZRO calibration based on an assessment of fit quality; and
Controlling the behavior of the device as a function of the level of need to perform ZRO corrections based on the assessed quality of the fit.
How to include.
제1항 내지 제18항 중 어느 한 항에 있어서,
제1 관성 센서의 ZRO의 보정을 수행하는 것은
제1 관성 센서의 온도를 결정하는 것;
전체 안정성 상태가 장치가 ZRO 보정에 대해 충분히 안정적이며, 제1 관성 센서의 온도가 안정적임을 나타내는 기간들 중에 제1 관성 센서의 출력의 복수의 샘플을 수집하는 것; 및
샘플들의 함수로서 모집 중 제1 관성 센서의 온도에서 제1 관성 센서의 ZRO를 추산하는 것
을 포함하는 방법.
19. The method according to any one of claims 1 to 18,
Performing the calibration of the ZRO of the first inertial sensor is
determining a temperature of the first inertial sensor;
collecting a plurality of samples of the output of the first inertial sensor during periods in which the overall stability state indicates that the device is sufficiently stable for ZRO calibration and the temperature of the first inertial sensor is stable; and
estimating the ZRO of the first inertial sensor at the temperature of the first inertial sensor during recruitment as a function of samples
How to include.
제19항에 있어서,
장치가 안정하고 및 제1 관성 센서의 온도가 안정한 적어도 두개의 연속적인 별개의 기간과, 실질적으로 상기 적어도 두개의 연속적인 별개의 기간에 걸쳐서 실질적으로 동일하게 안정한지를 결정하는 것; 및
적어도 두개의 연속적인 별개의 기간 사이의 갭 타임을 결정하는 것;
여기서, 제1 관성 센서의 ZRO 보정을 수행하는 것은, 갭 타임이 문턱보다 낮은 경우, 적어도 두개의 연속적인 별개의 기간을 결합하여 ZRO 추산치를 생성하는 것을 포함하는 방법.
20. The method of claim 19,
determining whether the device is stable and substantially equally stable over at least two consecutive distinct periods during which the temperature of the first inertial sensor is stable and substantially the same over the at least two consecutive distinct periods; and
determining a gap time between at least two consecutive distinct periods;
wherein performing a ZRO calibration of the first inertial sensor comprises combining at least two consecutive distinct periods to generate a ZRO estimate when a gap time is below a threshold.
로봇 장치를 작동하는 방법에 있어서,
로봇 장치에 위치한 하나 이상의 관성 센서와 관련된 제로율 오프셋(ZRO) 에러에 기초하여 제어기에 복수의 동작 제어 요청 중 하나를 전송하는 것(600); 및
동작 제어 요청에 기초하여 로봇 장치의 움직임을 제어하는 것(602)
을 포함하는 방법.
A method of operating a robotic device, comprising:
sending ( 600 ) one of a plurality of motion control requests to the controller based on a zero rate offset (ZRO) error associated with one or more inertial sensors located in the robotic device; and
Controlling movement of the robotic device based on the motion control request (602)
How to include.
제21항에 있어서,
로봇 장치가 정지되고, 현재 ZRO 에러 수준이 고성능 문턱보다 낮거나 동일한 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치의 움직임에 제한 없음을 통지하는 방법.
22. The method of claim 21,
When the robotic device is stopped, and when the current ZRO error level is less than or equal to the high performance threshold, one of the plurality of motion control requests notifies the controller that the motion of the robotic device is unrestricted.
제21항 또는 제22항에 있어서,
로봇 장치가 정지되고, 현재 ZRO 에러 수준이 고성능 문턱 및 저성능 문턱 사이에 있을 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치가 임의적으로 정지될 수 있음을 통지하는 방법.
23. The method of claim 21 or 22,
When the robotic device is stopped and the current ZRO error level is between the high performance threshold and the low performance threshold, one of the plurality of motion control requests notifies the controller that the robotic device can be arbitrarily stopped.
제21항 내지 제23항 중 어느 한 항에 있어서,
로봇 장치가 정지되고, 현재 ZRO 에러 수준이 저성능 문턱보다 낮거다 동일한 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치가 정지가 요구됨을 통지하는 방법.
24. The method according to any one of claims 21 to 23,
When the robotic device is stopped and the current ZRO error level is less than or equal to the low performance threshold, one of the plurality of motion control requests notifies the controller that the robotic device is required to stop.
제21항 내지 제24항 중 어느 한 항에 있어서,
로봇 장치가 비정지이고, 현재 ZRO 에러 수준이 비긴급 문턱보다 낮거다 동일한 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치의 움직임에 제한이 없음을 통지하는 방법.
25. The method according to any one of claims 21 to 24,
When the robotic device is non-stationary, and the current ZRO error level is lower than or equal to the non-emergency threshold, one of the plurality of motion control requests notifies the controller that the motion of the robotic device is unrestricted.
제21항 내지 제25항 중 어느 한 항에 있어서,
로봇 장치가 비정지이고, 현재 ZRO 에러 수준이 비긴급 문턱과 긴급 문턱 사이에 있을 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치가 정지될 비긴급한 필요가 있음을 통지하는 방법.
26. The method according to any one of claims 21 to 25,
When the robotic device is non-stop and the current ZRO error level is between the non-emergency threshold and the emergency threshold, one of the plurality of motion control requests notifies the controller of a non-urgent need for the robotic device to stop.
제21항 내지 제26항 중 어느 한 항에 있어서,
로봇 장치가 비정지이고, 현재 ZRO 에러 수준이 긴급 문턱보다 크거나 동일한 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치가 정지될 긴급한 필요가 있음을 통지하는 방법.
27. The method according to any one of claims 21 to 26,
When the robotic device is non-stationary and the current ZRO error level is greater than or equal to the emergency threshold, one of the plurality of motion control requests notifies the controller that there is an urgent need for the robotic device to stop.
제21항 내지 제27항 중 어느 한 항에 있어서,
ZRO 에러 레벨이 시간에 걸친 ZRO 추산치의 표준 편차에 기초하여 결정되는 방법.
28. The method according to any one of claims 21 to 27,
A method in which the ZRO error level is determined based on the standard deviation of the ZRO estimate over time.
제21항 내지 제28항 중 어느 한 항에 있어서,
제어기는 복수의 동작 제어 요구 중 하나를 선택적으로 무시할 수 있는 방법.
29. The method according to any one of claims 21 to 28,
How the controller can selectively ignore one of the plurality of motion control requests.
제29항에 있어서,
제어기가 하나 이상의 센서 특성, 요구 성능 및 이용 케이스들에 기초하여 복수의 동작 제어 요청 중 하나를 무시할 수 있는 방법.
30. The method of claim 29,
A method in which a controller may ignore one of a plurality of motion control requests based on one or more sensor characteristics, desired performance, and use cases.
제21항 내지 제30항 중 어느 한 항에 있어서,
적어도 하나의 비관성 센서로부터 제어기에 의해서 수신되는 데이터에 기초하여 로봇 장치가 비정지 또는 정지인지를 결정하는 방법.
31. The method according to any one of claims 21 to 30,
A method for determining whether a robotic device is non-stationary or stationary based on data received by a controller from at least one non-inertial sensor.
제31항에 있어서,
제어기는 적어도 하나의 비관성 동작 센서로부터 수신된 데이터에 기초하여 동작 의지 신호를 생성하고, 그 동작 의지 신호를 복수의 동작 제어 요구 중 하나를 생성하는 관성 동작 유닛에 전송하는 방법.
32. The method of claim 31,
A method wherein the controller generates a motion intent signal based on data received from the at least one non-inertial motion sensor and transmits the motion intent signal to an inertial motion unit that generates one of a plurality of motion control requests.
제32항에 있어서,
관성 동작 유닛은 제어기로서 동일한 칩에서 실행되는 소프트웨어 본체인 방법.
33. The method of claim 32,
The method wherein the inertial operation unit is a software body running on the same chip as the controller.
제32항에 있어서, 상기 관성 동작 유닛은 제어기로 기능하고 있는 칩과 별개의 칩에서 작동하는 방법.33. The method of claim 32, wherein the inertial operation unit operates on a chip separate from the chip serving as the controller. 장치에 위치한 제1 관성 센서의 제로율 오프셋(ZRO)을 보정하는 방법에 있어서,
ZRO 보정에 무관한 이유로 제1 기간동안 장치를 정지시키는 것(700);
제1 기간동안 ZRO 보정 데이터를 축적하는 것(702);
제1 기간 후에 장치를 이동시키는 것(704);
ZRO 보정에 무관한 이유로 제2 기간동안 장치를 정지시키는 것(706);
제2 기간동안 ZRO 보정 데이터를 축정하는 것(708); 및
제1 기간 및 제2 기간으로부터 축적된 ZRO 보정 데이터를 이용하여 ZRO보정을 수행하는 것(710)을 포함하는 방법.
A method of correcting a zero rate offset (ZRO) of a first inertial sensor located in a device, the method comprising:
suspending the device 700 for a first period of time for reasons unrelated to the ZRO calibration;
accumulating (702) ZRO correction data during the first period;
moving (704) the device after the first period of time;
suspending (706) the device for a second period of time for reasons unrelated to the ZRO calibration;
accumulating 708 ZRO correction data for a second time period; and
performing (710) ZRO correction using the accumulated ZRO correction data from the first period and the second period.
제35항에 있어서,
제1 기간 후, 장치가 움직인 후에 타이머를 시작시키는 것; 및
장지가 중지된 때 타이머가 종료되지 않는 경우에만, 제2 기간동안 ZRO 보정 데이터를 축적하는 것을 더 포함하는 방법.
36. The method of claim 35,
after the first period, starting a timer after the device moves; and
and accumulating ZRO correction data for a second period only if the timer does not expire when holding is stopped.
제36항에 있어서,
제1 기간동안 ZRO 보정 데이터를 축적할 때, 제2 타이머를 시작시키는 것; 및
제2 타이머가 종료될때까지만 ZRO 보정 데이터를 축적하는 것을 지속한는 것을 더 포함하는 방법.
37. The method of claim 36,
when accumulating ZRO correction data during the first period, starting a second timer; and
and continuing to accumulate the ZRO correction data only until the second timer expires.
제35항 내지 제37항 중 어느 한 항에 있어서,
ZRO 보정을 수행하기 위해서 특별히 제3 기간동안 장치를 정지시키는 것을 더 포함하는 방법.
38. The method according to any one of claims 35 to 37,
The method further comprising stopping the device specifically for a third period to perform the ZRO calibration.
제35항 내지 제38항 중 어느 한 항에 있어서,
제1 기간 및 제2 기간은 제3 기간 보다 적은 방법.
39. The method according to any one of claims 35 to 38,
wherein the first period and the second period are less than the third period.
제36항에 있어서,
타이머는 10초 후에 종류되는 방법.
37. The method of claim 36,
How the timer is kind of after 10 seconds.
제35항 내지 제40항 중 어느 한 항에 있어서,
ZRO의 ZRO 보정을 수행하는 것은
제1 관성 센서의 온도를 결정하는 것;
전체 안정성 상태가 장치가 ZRO 보정에 대해 충분히 안정하고 그리고 제1 관성 센서의 온도가 안정하다는 것을 가리키는 기간 중 제1 관성 센서 출력의 복수 샘플들을 수집하는 것; 및
샘플들의 함수로서 수집 중 제1 관성 센서의 온도에서 제1 관성 센서의 ZRO를 추산하는 것을 포함하는 방법.
41. The method of any one of claims 35-40,
Performing ZRO Calibration in ZRO
determining a temperature of the first inertial sensor;
collecting multiple samples of the first inertial sensor output during a period in which the overall stability state indicates that the device is sufficiently stable for ZRO calibration and the temperature of the first inertial sensor is stable; and
A method comprising estimating the ZRO of the first inertial sensor at the temperature of the first inertial sensor during collection as a function of samples.
제1항 내지 제20항 중 어느 한 항에 있어서,
장치에 위치한 적어도 하나의 비관성 센서와 관련된 정보에 기초하여 장치의 안정성 수준을 결정하는 단계는;
장치에 위치한 적어도 하나의 관성 센서들에 관련된 정보에 기초하여 장치의 안정성 수준을 결정하는 것을 더 포함하는 방법.
21. The method according to any one of claims 1 to 20,
determining a level of stability of the device based on information associated with at least one non-inertial sensor located on the device;
The method further comprising determining a level of stability of the device based on information related to at least one inertial sensors located on the device.
적어도 하나의 비관성 센서(104);
적어도 하나의 관성 센서(102);
적어도 하나의 모터(106);
적어도 하나의 비관성 센서(104)와 관련된 정보에 기초하여 장치의 안정성 수준을 결정하는 것에 의해; 및 안정성 레벨이 문턱을 넘어선 때 적어도 하나의 관성 센서(102) 중의 하나의 ZRO 보정을 수행하는 것에 의해, 장치에 위치한 관성 센서(102)의 제로율 오프셋(ZRO)의 보정을 위한 제어기(100);
을 포함하는 장치.
at least one non-inertial sensor 104;
at least one inertial sensor 102;
at least one motor (106);
by determining a level of stability of the device based on information associated with the at least one non-inertial sensor (104); and a controller 100 for correction of a zero rate offset (ZRO) of an inertial sensor 102 located in the device by performing a ZRO correction of one of the at least one inertial sensor 102 when the stability level crosses a threshold. ;
device comprising a.
제43항에 있어서,
상기 제어기는 장치의 안정성을 가리키는 적어도 하나의 비관성 센서로부터 데이터를 수신하고; 적어도 하나의 비관성 센서로부터의 데이터에 기초하여 장치의 제1 안정성 상태를 추산하고; 장치의 안정성을 가리키는 적어도 하나의 관성 센서로부터 데이터를 수신하고, 적어도 하나의 관성 센서로부터의 데이터에 기초하여, 장치의 제2 안정성 상태를 추산하고; 제1 안정성 상태 및 제2 안정성 상태의 조합에 기초하여 장치의 전체 안정성 상태를 결정하며, 전체 안정성 상태는 장치가 ZRO 보정을 수행하기에 충분히 안정하다는 것을 가리키는 적어도 하나의 제1 안정성 상태 및 장치가 ZRO 보정을 수행하기에 충분히 안정하지 않다는 것을 가리키는 제2 안정성 상태를 포함하며; 그리고 전체 안정성 상태가 장치가 ZRO 보정을 위해 충분히 안정하다는 것을 가리킬 때, 적어도 하나의 관성 센서의 ZRO 보정을 수행하도록 더 구성된 장치.
44. The method of claim 43,
the controller receives data from at least one non-inertial sensor indicative of stability of the device; estimate a first stability state of the device based on data from the at least one non-inertial sensor; receive data from the at least one inertial sensor indicative of stability of the device, and estimate a second stability state of the device based on the data from the at least one inertial sensor; determine an overall stability state of the device based on the combination of the first stability state and the second stability state, wherein the overall stability state indicates that the device is stable enough to perform a ZRO calibration and at least one of the first stability state and the device a second stability state indicating that it is not stable enough to perform a ZRO correction; and perform ZRO calibration of the at least one inertial sensor when the overall stability state indicates that the device is sufficiently stable for ZRO calibration.
제43항 또는 제44항에 있어서,
제어기가
적어도 하나의 관성 센서에 대한 현재 ZRO 값의 품질을 추산하고;
적어도 하나의 관성 센서에 대한 현재 ZRO 값의 품질의 추산에 기초하여 ZRO 보정 수행의 필요성 수준을 결정하고; 및
ZRO 보정 수행에 대한 필요성 수준의 함수로서 장치의 동작을 제어하도록 더 구성된 장치.
45. The method of claim 43 or 44,
the controller
estimate a quality of a current ZRO value for the at least one inertial sensor;
determine a level of need to perform a ZRO calibration based on an estimate of a quality of a current ZRO value for the at least one inertial sensor; and
A device further configured to control the operation of the device as a function of a level of need for performing ZRO calibration.
제45항에 있어서,
ZRO 보정을 수행할 필요성에 대한 레벨의 결정이 레벨을 가리키는 제1 플래그를 생성하는 것을 포함하고, 여기서, 상기 플래그는 다음 중 하나인 장치;
현재 ZRO 보정에 대한 필요가 없음을 가리키는 노-컨스트레이트 상태;
장치의 전체 안정성 상태가 장치가 정지되어 있어야 한다는 것을 가리키는 스테이-스테이셔너리 상태;
편리하면, 장치가 정치되어 있어야 한다는 것을 가리키는 논-어전트-리퀘스트-포-더-데비스-투-비컴-스테이셔너리 상태; 및
가능하면, 장치가 정지되어 있어야 한다는 것을 가리키는 어전트-리퀘스트-포-더-데비스-투-비컴-스테이셔너리 상태.
46. The method of claim 45,
an apparatus wherein determining a level for a need to perform ZRO correction comprises generating a first flag indicating the level, wherein the flag is one of the following;
no-contract state indicating no need for current ZRO correction;
a stationary state where the overall stability state of the device indicates that the device must be stationary;
If convenient, a non-agent-request-for-the-devis-to-become-stationary state indicating that the device should be stationary; and
If possible, an agent-request-for-the-devis-to-become-stationary state indicating that the device should be stationary.
제46항에 있어서,
(1) ZRO 보정이 수행되고 있을 때, 스테이-스테이셔너리 상태에서 제1 플래그가 생성되고, (2) 현재 ZRO 값이 제1 정확도 범위내에 있는 것으로 결정될 때, 논-어전트-리퀘스트-포-더-데비스-투-비컴-스테이셔너리 상태에서 제1 플래그가 생성되고, (3) 현재 ZRO 값이 제2 정확도 범위내에 있는 것으로 결정될 때, 어전트-리퀘스트-포-더-데비스-투-비컴-스테이셔너리 상태에서 제1 플래그가 생성되고, (4) 현재 ZRO 값이 제3 정확도 범위내에 있는 것으로 결정될 때, 노-컨스트레이트상태에서 제1 플래그가 생성되는 장치.
47. The method of claim 46,
(1) when ZRO correction is being performed, a first flag is generated in the stay-stationary state, and (2) when the current ZRO value is determined to be within the first accuracy range, non-agent-request-four When the first flag is generated in the -the-devis-to-become-stationary state, and (3) the current ZRO value is determined to be within the second accuracy range, agent-request-for-the-devis A device in which a first flag is generated in a to-become-stationary state, and (4) a first flag is generated in a no-contract state when the current ZRO value is determined to be within a third accuracy range.
제44항에 있어서,
제1 안정성 상태는 다음의 값 중 어느 하나를 가질 수 있는 장치;
장치가 제1 타입의 ZRO 보정을 수행하기에 충분한 정지되어 있음을 가리키는 스테이블-위아웃-바이브레이션;
장치가 제2 타입의 ZRO 보정을 수행하기에 충분히 안정되어 있음을 가리키는 스테이블-위드-바이브레이션;
장치의 안정성의 레벨이 알려지지 않음을 가리키는 언노운 상태; 및
장치가 ZRO 보정을 수행하기에 불충분하게 안정적임을 가리키는 인-모션 상태.
45. The method of claim 44,
The first stable state is a device that may have any one of the following values;
a stable-we-out-vibration indicating that the device is stationary enough to perform a first type of ZRO correction;
stable-with-vibration indicating that the device is stable enough to perform a second type of ZRO correction;
Unknown state indicating that the level of stability of the device is unknown; and
In-motion state indicating that the device is insufficiently stable to perform ZRO calibration.
제44항에 있어서,
안정성 상태 플래그가 ZRO 보정이 수행될 수 있음을 가리키는 복수의 안정성 상태들을 포함하는 장치.
45. The method of claim 44,
A device comprising a plurality of stability states, wherein the stability state flag indicates that a ZRO correction may be performed.
제43항 내지 제49항 중 어느 한 항에 있어서,
제1 관성 센서의 ZRO의 보정을 수행하는 것이 장치의 안정성 레벨의 함수로서 복수의 ZRO 보정 프로세스의 하나를 수행하는 것을 포함하는 장치.
50. The method according to any one of claims 43 to 49,
and performing calibration of the ZRO of the first inertial sensor comprises performing one of a plurality of ZRO calibration processes as a function of a stability level of the device.
제43항 내지 제50항 중 어느 한 항에 있어서,
적어도 하나의 관성 센서가, 제1 센서를 포함하고, 그리고 비관성 센서들이 장치에 장착된 장치.
51. The method according to any one of claims 43 to 50,
A device in which the at least one inertial sensor comprises a first sensor, and wherein non-inertial sensors are mounted to the device.
제43항 내지 제51항 중 어느 한 항에 있어서,
장치는 로봇인 장치.
52. The method according to any one of claims 43 to 51,
The device is a robot device.
제52항에 있어서,
장치는 로봇 진공 청소기인 장치.
53. The method of claim 52,
The device is a robot vacuum cleaner.
제43항 내지 제53항 중 어느 한 항에 있어서,
적어도 하나의 비관성 센서가 적어도 하나의 휠엔코더 및 카메라를 포함하는 장치.
54. The method according to any one of claims 43 to 53,
wherein the at least one non-inertial sensor comprises at least one wheel encoder and a camera.
제43항 내지 제54항 중 어느 한 항에 있어서,
제1 관성 센서는 자이로스코프인 장치.
55. The method according to any one of claims 43 to 54,
wherein the first inertial sensor is a gyroscope.
제45항에 있어서,
현재 ZRO 값의 품질이 다음 중 적어도 하나에 기초하는 장치;
ZRO 보정이 수행된 이래 시간 흐름,
ZRO 보정이 수행된 이래 온도 변화; 및
최근 ZRO 보정의 보정 품질.
46. The method of claim 45,
a device wherein the quality of the current ZRO value is based on at least one of the following;
Time flow since ZRO calibration was performed,
temperature change since ZRO calibration was performed; and
Calibration quality of recent ZRO calibrations.
제45항에 있어서,
제1 관성 센서에 대한 현재 ZRO 값의 추산이 ZRO 값과 관련된 표준 편차를 결정하는 것을 포함하는 장치.
46. The method of claim 45,
wherein estimating a current ZRO value for the first inertial sensor includes determining a standard deviation associated with the ZRO value.
제57항에 있어서,
ZRO 값과 관련된 표준 편차를 결정하는 것은
ZRO 값을 생성하는데 사용된 제1 관성 센서의 출력 샘플들의 표준 편차를 결정하는 것;
ZRO 값을 생성하는데 사용된 제1 관성 센서의 출력 샘플들의 수의 제곱근으로 ZRO 값을 생성하는데 사용된 제1 관성 센서의 출력 샘플들의 표준 편차를 나누는 것; 및
제1 관성 센서의 관측 경험에 기초하여 결정된 한계 인자로 결과를 곱하는 것을 포함하는 장치.
58. The method of claim 57,
Determining the standard deviation associated with the ZRO value is
determining a standard deviation of output samples of the first inertial sensor used to generate the ZRO value;
dividing the standard deviation of the output samples of the first inertial sensor used to generate the ZRO value by the square root of the number of output samples of the first inertial sensor used to generate the ZRO value; and
and multiplying the result by a limiting factor determined based on observational experience of the first inertial sensor.
제57항에 있어서,
ZRO 값과 관련된 표준 편차를 결정하는 것은
무한 임펄스 응답(IIR) 필터로 ZRO 값을 생성하는데 사용된 제1 관성 센서의 샘프의 출력을 필터링하는 것; 및
필터링된 샘플들의 표준 편차를 결정하는 것
을 포함하는 장치.
58. The method of claim 57,
Determining the standard deviation associated with the ZRO value is
filtering the output of the sample of the first inertial sensor used to generate the ZRO value with an infinite impulse response (IIR) filter; and
Determining the standard deviation of filtered samples
device comprising a.
제45항에 있어서,
온도의 함수로 ZRO 값을 유지하는 것;
피팅의 질을 추산하는 것;
피팅의 질의 추산에 기초하여 ZRO 보정을 수행할 필요성의 레벨을 결정하는 것; 및
피팅의 추산된 질에 기초하여 ZRO 보정을 수행할 필요성의 수준의 함수로서 장치의 움직임을 제어하는 것
을 포함하는 장치.
46. The method of claim 45,
maintaining the ZRO value as a function of temperature;
Estimating the quality of fittings;
determining a level of need to perform a ZRO correction based on the estimate of the quality of the fit; and
Controlling the motion of the device as a function of the level of need to perform ZRO corrections based on the estimated quality of the fit.
device comprising a.
제43항 내지 제60항 중 어느 한 항에 있어서,
제1 관성 센서의 ZRO의 보정을 수행하는 것은
제1 관성 센서의 온도를 결정하는 것;
전체 안정성 상태가 장치가 ZRO 보정에 대해 충분히 안정적이며, 제1 관성 센서의 온도가 안정적임을 가리키는 기간들 중 제1 관성 센서의 출력의 복수의 샘플들을 수집하는 것; 및
샘플들의 함수로서 수집하는 중 제1 센서의 온도에서 제1 관성 센서의 ZRO를 추산하는 것을 더 포함하는 장치.
61. The method of any one of claims 43 to 60,
Performing the calibration of the ZRO of the first inertial sensor is
determining a temperature of the first inertial sensor;
collecting a plurality of samples of the output of the first inertial sensor during periods in which the overall stability state indicates that the device is sufficiently stable for ZRO calibration and that the temperature of the first inertial sensor is stable; and
The apparatus further comprising estimating the ZRO of the first inertial sensor at the temperature of the first sensor during collection as a function of samples.
제61항에 있어서,
장치가 안정하고 및 제1 관성 센서의 온도가 안정한 적어도 두개의 연속적인 별개의 기간과, 상기 적어도 두개의 연속적인 별개의 기간에 걸쳐서 실질적으로 동일하게 안정한지를 결정하는 것; 및
적어도 두개의 연속적인 별개의 기간 사이의 갭 타임을 결정하는 것;
여기서, 제1 관성 센서의 ZRO 보정을 수행하는 것은, 갭 타임이 문턱보다 낮은 경우, 적어도 두개의 연속적인 별개의 기간을 결합하여 ZRO 추산치를 생성하는 것을 포함하는 방법.
62. The method of claim 61,
determining whether the device is stable and substantially equally stable over at least two consecutive distinct periods during which the temperature of the first inertial sensor is stable and the at least two consecutive distinct periods; and
determining a gap time between at least two consecutive distinct periods;
wherein performing a ZRO calibration of the first inertial sensor comprises combining at least two consecutive distinct periods to generate a ZRO estimate when a gap time is below a threshold.
방법이 적어도 하나의 모터(106); 및
로봇 장치에 위치한 하나 이상의 관성 센서들(102)에 관련된 현재 제로율 오프셋(ZRO) 에러 수준에 기초한 복수의 동작 제어 요구 중 하나를 수신하고, 그리고 적어도 하나의 모터(106)를 이용하여 동작 제어 요구에 기초하여 로봇 장치의 움직임을 제어하도록 구성된 제어기(100)
를 포함하는 로봇 장치.
The method comprises at least one motor (106); and
Receive one of a plurality of motion control requests based on a current zero rate offset (ZRO) error level associated with one or more inertial sensors 102 located in the robotic device, and a motion control request using at least one motor 106 . A controller 100 configured to control the movement of the robot device based on
A robot device comprising a.
제63항에 있어서,
로봇 장치가 정지되어 있고 현재 ZRO 에러 수준이 고성능 문턱보다 낮거나 동등할 때, 복수의 동작 제어 요구들 중 하나는 로봇 장치의 움직임에 제한이 없음을 통지하는 로봇 장치.
64. The method of claim 63,
When the robotic device is stationary and the current ZRO error level is less than or equal to the high performance threshold, one of the plurality of motion control requests notifies that the robot device's movement is unrestricted.
제63항 또는 제64항에 있어서,
로봇 장치가 정지되고, 현재 ZRO 에러 수준이 고성능 문턱 및 저성능 문턱 사이에 있을 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치가 임의적으로 정지될 수 있음을 통지하는 로봇 장치.
65. The method of claim 63 or 64,
When the robotic device is stopped and the current ZRO error level is between the high performance threshold and the low performance threshold, one of the plurality of motion control requests notifies the controller that the robotic device can be arbitrarily stopped.
제63항 내지 제65항 중 어느 한 항에 있어서,
로봇 장치가 정지되고, 현재 ZRO 에러 수준이 저성능 문턱보다 낮거다 동일한 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치가 정지되어 있도록 요구됨을 통지하는 로봇 장치.
66. The method of any one of claims 63 to 65,
When the robotic device is stopped and the current ZRO error level is less than or equal to the low performance threshold, one of the plurality of motion control requests notifies the controller that the robotic device is required to be stopped.
제63항 내지 제66항 중 어느 한 항에 있어서,
로봇 장치가 비정지이고, 현재 ZRO 에러 수준이 비긴급 문턱보다 낮거다 동일한 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치의 움직임에 제한이 없음을 통지하는 로봇 장치.
67. The method according to any one of claims 63 to 66,
When the robot device is non-stationary, and the current ZRO error level is lower than or equal to the non-emergency threshold, one of the plurality of motion control requests notifies the controller that there is no restriction on the movement of the robot device.
제63항 내지 제67항 중 어느 한 항에 있어서,
로봇 장치가 비정지이고, 현재 ZRO 에러 수준이 비긴급 문턱과 긴급 문턱 사이에 있을 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치가 정지될 비긴급한 필요가 있음을 통지하는 로봇 장치.
68. The method according to any one of claims 63 to 67,
When the robotic device is non-stop, and the current ZRO error level is between the non-emergency threshold and the emergency threshold, one of the plurality of motion control requests notifies the controller of a non-urgent need for the robotic device to stop.
제63항 내지 제68항 중 어느 한 항에 있어서,
로봇 장치가 비정지이고, 현재 ZRO 에러 수준이 긴급 문턱보다 크거나 동일한 때, 복수의 동작 제어 요청들 중의 하나는 제어기에 로봇 장치가 정지될 긴급한 필요가 있음을 통지하는 로봇 장치.
69. The method according to any one of claims 63 to 68,
When the robotic device is non-stationary and the current ZRO error level is greater than or equal to the emergency threshold, one of the plurality of motion control requests notifies the controller of an urgent need for the robotic device to stop.
제63항 내지 제69항 중 어느 한 항에 있어서,
ZRO 에러 수준이 시간에 걸친 ZRO 추산치의 표준 편차에 기초하여 결정되는 로봇 장치.
70. The method according to any one of claims 63 to 69,
A robotic device in which the ZRO error level is determined based on the standard deviation of the ZRO estimate over time.
제63항 내지 제70항 중 어느 한 항에 있어서,
제어기는 복수의 동작 제어 요구 중 하나를 선택적으로 무시할 수 있는 로봇 장치.
71. The method according to any one of claims 63 to 70,
The controller is a robotic device capable of selectively ignoring one of a plurality of motion control requests.
제71항에 있어서,
제어기가 하나 이상의 센서 특성, 요구 성능 및 이용 케이스들에 기초하여 복수의 동작 제어 요청 중 하나를 무시할 수 있는 로봇 장치.
72. The method of claim 71,
A robotic device wherein the controller is capable of disregarding one of a plurality of motion control requests based on one or more sensor characteristics, desired performance, and use cases.
제63항 내지 제72항 중 어느 한 항에 있어서,
제어기가 적어도 하나의 비관성 동작 센서로부터 제어기에 의해서 수신되는 데이터에 기초하여 로봇 장치가 비정지 또는 정지인지를 결정하는 로봇 장치.
73. The method according to any one of claims 63 to 72,
A robotic device wherein the controller determines whether the robotic device is stationary or stationary based on data received by the controller from at least one non-inertial motion sensor.
제73항에 있어서,
제어기는 적어도 하나의 비관성 동작 센서로부터 수신된 데이터에 기초하여 동작 의지 신호를 생성하고, 그리고 동작 의지 신호를 복수의 동작 제어 요구 중 하나를 생성하는 관성 동작 유닛에 전송하는 로봇 장치.
74. The method of claim 73,
The controller generates a motion intent signal based on data received from the at least one non-inertial motion sensor, and sends the motion intent signal to an inertial motion unit that generates one of a plurality of motion control requests.
제74항에 있어서,
관성 동작 유닛은 제어기와 동일한 칩에서 운용되는 소프트웨어 본체인 로봇 장치.
75. The method of claim 74,
The inertial operation unit is a robot device that is a software body operated on the same chip as the controller.
제74항에 있어서, 상기 관성 동작 유닛은 제어기로 기능하고 있는 칩과 별개의 칩에서 작동하는 로봇 장치.75. The robotic device of claim 74, wherein the inertial operation unit operates on a chip separate from the chip serving as the controller. 적어도 하나의 모터(106); 및
ZRO 보정에 무관한 이유로 제1 기간동안 장치를 정지시키고(700);
제1 기간동안 ZRO 보정 데이터를 축적하고(702);
제1 기간 후에 장치를 이동시키고(704);
ZRO 보정에 무관한 이유로 제2 기간동안 장치를 정지시키고(706);
제2 기간동안 ZRO 보정 데이터를 축정하고(708); 및
제1 기간 및 제2 기간으로부터 축적된 ZRO 보정 데이터를 이용하여 ZRO보정을 수행하도록(710) 구성된 제어기(100)
를 포함하는 장치.
at least one motor (106); and
stop the device 700 for a first period of time for reasons unrelated to the ZRO calibration;
accumulate (702) ZRO correction data for a first period;
move (704) the device after the first period of time;
halt 706 the device for a second period of time for reasons unrelated to the ZRO calibration;
accumulate ZRO correction data for a second period of time (708); and
The controller 100 configured to perform (710) ZRO correction using the accumulated ZRO correction data from the first period and the second period.
A device comprising a.
제77항에 있어서,
제1 기간 후, 장치가 움직인 후에 시작하도록 구성된 타이머; 그리고 여기서, 장치가 정지된 때, 타이머가 종료되지 않는 경우에만, 제2 기간동안 ZRO 보정 데이터를 축적하도록 더 구성된 것을 더 포함하는 장치.
78. The method of claim 77,
a timer configured to start after the first period of time, after the device moves; and wherein the apparatus is further configured to accumulate ZRO correction data for a second period only when the timer does not expire when the apparatus is stopped.
제78항에 있어서,
제1 기간동안 ZRO 보정 데이터를 축적할 때, 시작하도록 구성된 제2 타이머; 그리고 여기서, 제어기는 제2 타이머가 종료될때까지만 ZRO 보정 데이터 축적하는 것을 지속하도록 더 구성된 것을 더 포함하는 장치.
79. The method of claim 78,
a second timer configured to start when accumulating ZRO correction data during the first period; and wherein the controller is further configured to continue accumulating the ZRO correction data only until the second timer expires.
제77항 내지 제79항 중 어느 한 항에 있어서,
제어기가 ZRO 보정을 수행하기 위해서 특별히 제3 기간동안 장치를 정지하도록 더 구성된 장치.
80. The method according to any one of claims 77 to 79,
The apparatus further configured to cause the controller to pause the apparatus specifically for a third period to perform the ZRO correction.
제77항 내지 제80항 중 어느 한 항에 있어서,
제1 기간 및 제2 기간은 제3 시간 보다 적은 장치.
81. The method of any one of claims 77-80,
wherein the first period and the second period are less than the third time period.
제78항에 있어서,
타이머는 10초후에 종료되는 장치.
79. The method of claim 78,
The timer expires after 10 seconds.
제77항 내지 제82항 중 어느 한 항에 있어서,
ZRO의 ZRO 보정을 수행하는 것은
제1 관성 센서의 온도를 결정하는 것;
전체 안정성 상태가 장치가 ZRO 보정에 대해 충분히 안정하고 그리고 제1 관성 센서의 온도가 안정하다는 것을 가리키는 기간 중 제1 관성 센서 출력의 복수 샘플들을 수집하는 것; 및
샘플들의 함수로서 수집 중 제1 관성 센서의 온도에서 제1 관성 센서의 ZRO를 추산하는 것을 포함하는 장치.
83. The method of any one of claims 77-82, wherein
Performing ZRO Calibration in ZRO
determining a temperature of the first inertial sensor;
collecting a plurality of samples of the first inertial sensor output during a period in which the overall stability state indicates that the device is sufficiently stable for ZRO calibration and that the temperature of the first inertial sensor is stable; and
and estimating the ZRO of the first inertial sensor at the temperature of the first inertial sensor during collection as a function of samples.
제43항 내지 제62항 중 어느 한 항에 있어서,
장치에 위치한 관성 센서의 제로율 오프셋(ZRO)을 보정하기 위한 제어기는 적어도 하나의 관성과 관련된 정보에 기초하여 장치의 안정성 레벨을 추가로 결정하는 장치.
63. The method according to any one of claims 43 to 62,
and the controller for correcting a zero rate offset (ZRO) of an inertial sensor located in the device further determines a stability level of the device based on the at least one inertia-related information.
KR1020217012311A 2018-12-13 2019-11-22 Method and Apparatus for Calibrating Zero Rate Output of Sensors KR20210095624A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862779336P 2018-12-13 2018-12-13
US62/779,336 2018-12-13
US201962856953P 2019-06-04 2019-06-04
US62/856,953 2019-06-04
PCT/US2019/062769 WO2020087088A2 (en) 2018-09-25 2019-11-22 Methods and apparatus for calibrating the zero rate output of a sensor

Publications (1)

Publication Number Publication Date
KR20210095624A true KR20210095624A (en) 2021-08-02

Family

ID=77315774

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217012311A KR20210095624A (en) 2018-12-13 2019-11-22 Method and Apparatus for Calibrating Zero Rate Output of Sensors

Country Status (2)

Country Link
JP (1) JP7383702B2 (en)
KR (1) KR20210095624A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116907542B (en) * 2023-07-14 2024-08-16 中国科学院长春光学精密机械与物理研究所 Calibration system and calibration method for orthogonal position of triaxial inertial stabilized platform

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4365402B2 (en) * 2006-12-20 2009-11-18 本田技研工業株式会社 Moving angle detector for moving body
JP2014153215A (en) * 2013-02-08 2014-08-25 Denso Corp Navigation device for vehicle
JP2017049115A (en) * 2015-09-02 2017-03-09 カシオ計算機株式会社 Electronic equipment, sensor calibration method for electronic equipment, and sensor calibration program for electronic equipment
WO2018118574A1 (en) * 2016-12-19 2018-06-28 Idhl Holdings, Inc. Methods and apparatus for determining the zero rate output of a sensor using a learning algorithm

Also Published As

Publication number Publication date
JP7383702B2 (en) 2023-11-20
JP2022511354A (en) 2022-01-31

Similar Documents

Publication Publication Date Title
US10415975B2 (en) Motion tracking with reduced on-body sensors set
US9316513B2 (en) System and method for calibrating sensors for different operating environments
US11441906B2 (en) Iterative estimation of non-holonomic constraints in an inertial navigation system
US8786549B2 (en) Gyro mouse de-drift and hand jitter reduction
US9127947B2 (en) State estimator for rejecting noise and tracking and updating bias in inertial sensors and associated methods
US20130197845A1 (en) N-use automatic calibration methodology for sensors in mobile devices
JP4295953B2 (en) Distance coefficient learning device, method, program, recording medium for recording the program, movement status calculation device, and current position calculation device
US11898874B2 (en) Gyroscope bias estimation
WO2022205623A1 (en) Zero-bias compensation method for inertial measurement sensor
US20150241244A1 (en) Low-power orientation estimation
KR20210095624A (en) Method and Apparatus for Calibrating Zero Rate Output of Sensors
EP3991137A1 (en) Methods and apparatus for dynamic optical flow sensor calibration by imu in planar robot systems
CN117589163A (en) Multi-sensor combination navigation method and device
US9778040B1 (en) Systems and methods to reduce sensor bias
US12072190B2 (en) Methods and apparatus for calibrating the zero rate output of a sensor
US7970572B2 (en) Method of detecting free fall and apparatus to detect free fall using the method
JP6384194B2 (en) Information processing apparatus, information processing method, and information processing program
CN114295147B (en) Dynamic calibration method, device and equipment for cradle head
US20220011137A1 (en) Information processing apparatus, information processing method, and program
TWI680382B (en) Electronic device and pose calibration method thereof
JP6344165B2 (en) Electronic equipment and angular velocity information output program
JP2016057196A (en) Electronic device and correction program of angular velocity detection value
KR20150105685A (en) Method for measuring gyroscope sensor rotation angle