KR20230014611A - Manipulator and method for controlling thereof - Google Patents

Manipulator and method for controlling thereof Download PDF

Info

Publication number
KR20230014611A
KR20230014611A KR1020220002833A KR20220002833A KR20230014611A KR 20230014611 A KR20230014611 A KR 20230014611A KR 1020220002833 A KR1020220002833 A KR 1020220002833A KR 20220002833 A KR20220002833 A KR 20220002833A KR 20230014611 A KR20230014611 A KR 20230014611A
Authority
KR
South Korea
Prior art keywords
manipulator
coordinate system
axis
posture
user
Prior art date
Application number
KR1020220002833A
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 to EP22846089.5A priority Critical patent/EP4309859A1/en
Priority to CN202280042963.0A priority patent/CN117500644A/en
Priority to PCT/KR2022/009633 priority patent/WO2023003217A1/en
Publication of KR20230014611A publication Critical patent/KR20230014611A/en
Priority to US18/305,671 priority patent/US20230256587A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control

Abstract

A manipulator and a control method of the manipulator are disclosed. The manipulator according to the present disclosure comprises: a plurality of links corresponding to each of the upper arm, lower arm, and hand of a user; a plurality of motors rotating the plurality of links; a communication interface; a memory for storing at least one instruction; and a processor for executing at least one instruction. The processor obtains information about a body coordinate system of the link corresponding to the lower arm based on first rotation angle information for the motors corresponding to the upper arm and lower arm among the plurality of motors, obtains equilibrium angle information that ensures that the body coordinate system is in balance with a predefined reference coordinate system, obtains second rotation angle information for the motors corresponding to the hand among the plurality of motors based on a sensing value and balance angle information when the sensing value indicating a hand posture is received from an external sensor through the communication interface, and controls the motors corresponding to the hand based on the second rotation angle information. Various other embodiments are possible. Accordingly, the manufacturing cost of the manipulator can be reduced.

Description

매니퓰레이터 및 그 제어 방법{MANIPULATOR AND METHOD FOR CONTROLLING THEREOF}Manipulator and its control method {MANIPULATOR AND METHOD FOR CONTROLLING THEREOF}

본 개시는 매니퓰레이터 및 그 제어 방법으로, 보다 상세하게는, 사용자 팔의 움직임을 따라 움직이는 매니퓰레이터 및 그 제어 방법에 관한 것이다.The present disclosure relates to a manipulator and a control method thereof, and more particularly, to a manipulator that moves along a motion of a user's arm and a control method thereof.

근래에는, 로봇 기술의 발달에 힘입어 청소 로봇, 서비스 로봇, 산업용 로봇 등 다양한 유형의 로봇이 이용되고 있다. 최근에는, 사용자(즉, 사람)의 팔의 움직임을 따라 움직이는 로봇 암(robot arm) 즉, 매니퓰레이터(manipulator)에 대한 연구가 활발히 진행되고 있다.Recently, thanks to the development of robot technology, various types of robots such as cleaning robots, service robots, and industrial robots are being used. Recently, research on a robot arm, that is, a manipulator, which moves according to the motion of a user's (ie, human) arm has been actively conducted.

특히, 매니퓰레이터가 사용자의 팔을 빠르고 직관적으로 따라 움직일 수 있다면, 사용자를 대신해서 장을 보거나 쇼핑몰에서 사용자 대신 물건을 정리하거나 가정에서 요리를 하거나 마사지를 하는 등 다양한 응용분야에 매니퓰레이터를 활용할 수 있다. 이밖에도 매니퓰레이터는 물류, 의료, 교육 등의 분야와 전염병에 따라 비대면/비접촉이 요구되는 분야 등에서 널리 이용될 수 있다.In particular, if the manipulator can move the user's arm quickly and intuitively, the manipulator can be used in various application fields, such as shopping for the user, organizing things in a shopping mall, cooking at home, or giving a massage. In addition, the manipulator can be widely used in fields such as logistics, medical care, education, and other fields requiring non-face-to-face/non-contact depending on epidemics.

한편, 종래의 매니퓰레이터는 시각 센서나 무선 신호를 이용하여 사용자의 팔의 위치와 자세를 판단하였다. 이를 위해, 종래의 매니퓰레이터에는 카메라 또는 무선 신호 송신기/수신기의 기능이 있는 추가적인 장비가 설치되어야만 했으며, 이는 곧 매니퓰레이터의 제조 단가의 상승으로 이어졌다. 또한, 종래의 매니퓰레이터는 링크가 사용자의 팔의 링크와 일대일로 매핑되지 않아 사용자의 동작을 정확히 따라할 수 없었다.Meanwhile, a conventional manipulator determines the position and posture of a user's arm using a visual sensor or a wireless signal. To this end, additional equipment having a function of a camera or a radio signal transmitter/receiver had to be installed in the conventional manipulator, which led to an increase in manufacturing cost of the manipulator. In addition, the conventional manipulator cannot accurately follow the user's motion because the link is not mapped one-to-one with the link of the user's arm.

따라서, 시각 센서 없이도 사용자의 팔의 움직임을 정확히 따라할 수 있는 매니퓰레이터에 대한 필요성이 대두된다.Therefore, there is a need for a manipulator capable of accurately following the movement of a user's arm without a visual sensor.

한편, 종래 기술에 따르면, 사용자에게 매니퓰레이터의 관절 구조와 유사한 기기를 착용하도록 하여, 장시간 사용 시 사용자에게 피로감을 주거나 동작 범위의 제한으로 인해 불편함을 느끼게 하며, 사용자의 손의 위치만을 이용하여 매니퓰레이터의 손의 위치를 제어하기 때문에 원격에서 화면 상으로 매니퓰레이터의 실제 움직임을 파악하고 제어하는데 직관적이지 못하다는 한계가 지적되고 있다.On the other hand, according to the prior art, the user wears a device similar to the joint structure of the manipulator, which causes fatigue or discomfort due to the limitation of the range of motion to the user when used for a long time. Since the position of the hand is controlled, it is pointed out that it is not intuitive to grasp and control the actual movement of the manipulator on the screen from a remote location.

따라서, 사용자의 편의성을 제고하고 보다 직관적이고 정교하게 매니퓰레이터를 제어할 수 있는 기술에 대한 필요성이 있다.Accordingly, there is a need for a technology capable of improving user convenience and more intuitively and sophisticatedly controlling the manipulator.

한편, 종래 기술에 따르면, 사용자의 손에 장착된 센서로부터 얻은 쿼터니언 정보를 이용하여 매니퓰레이터의 손의 자세를 추정하는데, 이에 따르면 사용자의 팔의 움직임에 따라 발생되는 자세 오차가 발생될 수 있다. 이는 매니퓰레이터의 자유도(Degree of freedom; DOF)가 사용자의 팔의 움직임에 대한 자유도 보다 작기 때문이며, 연속적으로 해석하는 지점이 많아질수록, 그리고 어깨(시작점)에서 손(끝점)으로 갈수록 자세 오차는 누적적으로 증가하게 된다.Meanwhile, according to the prior art, the posture of the manipulator's hand is estimated using quaternion information obtained from a sensor mounted on the user's hand. According to this, a posture error may occur according to the movement of the user's arm. This is because the degree of freedom (DOF) of the manipulator is smaller than the degree of freedom for the movement of the user's arm. will increase cumulatively.

따라서, 사용자의 팔의 움직임에 따라 발생되는 자세 오차를 최소화하여 보다 정확하게 실제 사용자의 손의 움직임을 표현하는 기술이 필요한 실정이다.Therefore, there is a need for a technology that more accurately expresses the movement of the user's hand by minimizing the posture error generated according to the movement of the user's arm.

본 개시는 상술한 바와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 본 개시의 목적은 사용자의 팔의 움직임을 정교하게 따라할 수 있는 매니퓰레이터 및 매니퓰레이터의 제어 방법을 제공함에 있다. The present disclosure is to solve the problems of the prior art as described above, and an object of the present disclosure is to provide a manipulator and a control method of the manipulator capable of precisely following the movement of a user's arm.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.

상술한 기술적 과제를 해결하기 위한 본 개시의 예시적인 일 실시 예에 따르면, 매니퓰레이터는 사용자의 상박, 하박 및 손 각각에 대응되는 복수의 링크, 상기 복수의 링크를 회전시키는 복수의 모터, 통신 인터페이스, 적어도 하나의 인스트럭션을 저장하는 메모리 및 상기 적어도 하나의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 복수의 모터 중 상기 상박 및 상기 하박에 대응되는 모터들에 대한 제1 회전각 정보에 기초하여, 상기 하박에 대응되는 링크의 동체 좌표계에 대한 정보를 획득하고, 상기 동체 좌표계가 기 정의된 기준 좌표계와 평형을 이루도록 하는 평형각 정보를 획득하며, 상기 통신 인터페이스를 통해 외부 센서로부터 상기 손의 자세를 나타내는 센싱값이 수신되면, 상기 센싱값 및 상기 평형각 정보에 기초하여 상기 복수의 모터 중 상기 손에 대응되는 모터들에 대한 제2 회전각 정보를 획득하며, 상기 제2 회전각 정보에 기초하여 상기 손에 대응되는 모터들을 제어한다. According to an exemplary embodiment of the present disclosure for solving the above-described technical problem, the manipulator includes a plurality of links corresponding to each of the user's upper arm, lower arm, and hand, a plurality of motors rotating the plurality of links, a communication interface, A memory for storing at least one instruction and a processor for executing the at least one instruction, wherein the processor is configured to perform rotation angle information of motors corresponding to the upper arm and the lower arm among the plurality of motors based on first rotation angle information. , Obtains information on the body coordinate system of the link corresponding to the lower arm, obtains equilibrium angle information for equilibrating the body coordinate system with a predefined reference coordinate system, and acquires the posture of the hand from an external sensor through the communication interface. When a sensing value representing is received, second rotation angle information for motors corresponding to the hand among the plurality of motors is obtained based on the sensing value and the balance angle information, and based on the second rotation angle information to control the motors corresponding to the hand.

여기서, 상기 프로세서는 상기 제1 회전각 정보를 상기 상박의 자세 및 상기 하박의 자세를 나타내는 센싱값으로 변환하기 위한 좌표변환행렬을 산출하고, 상기 좌표변환행렬에 기초하여 상기 하박에 대응되는 동체 좌표계에 대한 정보를 획득할 수 있다. Here, the processor calculates a coordinate transformation matrix for converting the first rotation angle information into sensing values representing the posture of the upper arm and the posture of the lower arm, and based on the coordinate transformation matrix, a body coordinate system corresponding to the lower arm. information can be obtained.

한편, 상기 평형각 정보는 롤(roll) 평형각 정보 및 피치(pitch) 평형각 정보를 포함하고, 상기 롤 평형각 정보는 상기 동체 좌표계의 제1 축을 기준으로 상기 동체 좌표계를 회전하는 경우 상기 동체 좌표계의 제2 축이 상기 기준 좌표계의 xy 평면과 평행이 되도록 하는 각도를 나타낼 수 있다. Meanwhile, the balance angle information includes roll balance angle information and pitch balance angle information, and the roll balance angle information is the body when the body coordinate system is rotated with respect to the first axis of the body coordinate system. An angle at which the second axis of the coordinate system is parallel to the xy plane of the reference coordinate system may be indicated.

여기서, 상기 피치 평형각 정보는 상기 롤 평형각 정보에 따라 회전된 상기 동체 좌표계의 제2 축을 기준으로 상기 동체 좌표계를 회전하는 경우 상기 동체 좌표계의 제3 축이 상기 기준 좌표계의 z축과 일치되도록 하는 각도를 나타낼 수 있다. Here, the pitch equilibrium angle information is such that when the body coordinate system is rotated based on the second axis of the body coordinate system rotated according to the roll equilibrium angle information, the third axis of the body coordinate system coincides with the z-axis of the reference coordinate system. angle can be indicated.

여기서, 상기 프로세서는 손의 자세를 나타내는 센싱값에 기초하여 손에 대응되는 모터들에 대한 제3 회전각 정보를 획득하며, 상기 평형각 정보에 기초하여 제3 회전각 정보를 보정함으로써 제2 회전각 정보를 획득할 수 있다. Here, the processor acquires third rotation angle information about motors corresponding to the hand based on a sensing value indicating the posture of the hand, and corrects the third rotation angle information based on the balance angle information to obtain the second rotation angle information. Each piece of information can be obtained.

여기서, 상기 복수의 링크는 상기 상박에 대응되는 제1 링크, 상기 하박에 대응되는 제2 링크, 상기 손에 대응되는 제3 링크를 포함하고, 상기 복수의 모터는 상기 제1 링크를 제1 축을 기준으로 회전시키는 제1 모터, 상기 제1 링크를 제2 축을 기준으로 회전시키는 제2 모터, 상기 제2 링크를 상기 제1 축을 기준으로 회전시키는 제3 모터, 상기 제2 링크를 제3 축을 기준으로 회전시키는 제4 모터, 상기 제3 링크를 상기 제1 축을 기준으로 회전시키는 제5 모터 및 상기 제3 링크를 상기 제2 축을 기준으로 회전시키는 제6 모터를 포함할 수 있다. Here, the plurality of links include a first link corresponding to the upper arm, a second link corresponding to the lower arm, and a third link corresponding to the hand, and the plurality of motors drive the first link to a first axis. A first motor rotating the first link based on a second axis, a second motor rotating the second link based on the first axis, a third motor rotating the second link based on the first axis, and the second link based on a third axis It may include a fourth motor for rotating, a fifth motor for rotating the third link based on the first axis, and a sixth motor for rotating the third link based on the second axis.

한편, 상기 프로세서는 상기 매니퓰레이터가 동작하는 동안 제1 사용자의 동작 중지 명령이 수신되면, 상기 제1 사용자의 팔의 자세를 인식하기 위한 외부 센서를 비활성화하고 상기 매니퓰레이터의 동작을 중지하며, 상기 매니퓰레이터를 제어하기 위한 제2 사용자의 동작 개시 명령이 수신되면, 상기 매니퓰레이터의 자세와 상기 제2 사용자의 팔의 자세 사이의 차이를 보상하기 위한 가이드 화면에 대한 정보를 상기 제2 사용자의 사용자 단말로 전송하도록 상기 통신 인터페이스를 제어하고, 상기 매니퓰레이터의 자세와 상기 제2 사용자의 팔의 자세의 차이가 기 설정된 임계 범위 내인 것으로 식별되면, 상기 제2 사용자의 팔의 자세에 기초하여 상기 복수의 모터를 제어할 수 있다. Meanwhile, when the first user's command to stop the operation is received while the manipulator is operating, the processor deactivates an external sensor for recognizing the posture of the arm of the first user, stops the operation of the manipulator, and operates the manipulator. to transmit information on a guide screen for compensating for a difference between a posture of the manipulator and a posture of an arm of the second user to a user terminal of the second user when a second user's command to start an operation for control is received The communication interface is controlled, and when it is identified that the difference between the posture of the manipulator and the posture of the arms of the second user is within a preset threshold range, the plurality of motors are controlled based on the posture of the arms of the second user. can

한편, 상기 프로세서는 상기 사용자의 반복 동작 개시 명령이 수신되면, 상기 사용자의 팔의 자세에 기초하여 상기 복수의 모터를 제어하고, 상기 사용자의 반복 동작 중지 명령이 수신되면, 상기 반복 동작 개시 명령이 수신된 시점부터 상기 반복 동작 중지 명령이 수신된 시점까지의 상기 매니퓰레이터의 동작에 대응되는 제어 신호를 상기 메모리에 저장하며, 상기 제어 신호가 저장되면, 상기 제어 신호에 대응되는 상기 복수의 모터 별 최대 작업 속도에 대한 정보를 상기 사용자의 사용자 단말로 전송하도록 상기 통신 인터페이스를 제어하고, 상기 최대 작업 속도에 대한 정보에 기초하여 상기 매니퓰레이터의 작업 속도를 설정하기 위한 사용자 입력이 수신되면, 상기 설정된 작업 속도에 기초하여 상기 복수의 모터를 제어할 수 있다. Meanwhile, the processor controls the plurality of motors based on the posture of the user's arm when the user's command to start the repeated motion is received, and when the command to stop the repeated motion is received, the command to start the repeated motion is received. A control signal corresponding to the operation of the manipulator from the time of reception to the time of receiving the command to stop the repeated operation is stored in the memory, and when the control signal is stored, the maximum number of motors corresponding to the control signal When a user input for controlling the communication interface to transmit information on the working speed to the user terminal of the user and setting the working speed of the manipulator based on the information on the maximum working speed is received, the set working speed It is possible to control the plurality of motors based on.

상술한 기술적 과제를 해결하기 위한 본 개시의 예시적인 일 실시 예에 따르면, 사용자의 상박, 하박 및 손 각각에 대응되는 복수의 링크와 상기 복수의 링크를 회전시키는 복수의 모터를 포함하는 매니퓰레이터의 제어 방법은 상기 복수의 모터 중 상기 상박 및 상기 하박에 대응되는 모터들에 대한 제1 회전각 정보에 기초하여, 상기 하박에 대응되는 링크의 동체 좌표계에 대한 정보를 획득하는 단계, 상기 동체 좌표계가 기 정의된 기준 좌표계와 평형을 이루도록 하는 평형각 정보를 획득하는 단계, 외부 센서로부터 상기 손의 자세를 나타내는 센싱값이 수신되면, 상기 센싱값 및 상기 평형각 정보에 기초하여 상기 복수의 모터 중 상기 손에 대응되는 모터들에 대한 제2 회전각 정보를 획득하는 단계 및 상기 제2 회전각 정보에 기초하여 상기 손에 대응되는 모터들을 제어하는 단계를 포함한다. According to an exemplary embodiment of the present disclosure for solving the above-described technical problem, control of a manipulator including a plurality of links corresponding to each of a user's upper arm, lower arm, and hand, and a plurality of motors rotating the plurality of links. The method includes obtaining information on a body coordinate system of a link corresponding to the lower arm based on first rotation angle information of motors corresponding to the upper arm and the lower arm among the plurality of motors, Obtaining equilibrium angle information to achieve equilibrium with a defined reference coordinate system, when a sensing value representing the posture of the hand is received from an external sensor, the hand among the plurality of motors based on the sensed value and the equilibrium angle information Obtaining second rotation angle information for motors corresponding to and controlling the motors corresponding to the hand based on the second rotation angle information.

여기서, 상기 동체 좌표계에 대한 정보를 획득하는 단계는 상기 제1 회전각 정보를 상기 상박의 자세 및 상기 하박의 자세를 나타내는 센싱값으로 변환하기 위한 좌표변환행렬을 산출하는 단계 및 상기 좌표변환행렬에 기초하여 상기 하박에 대응되는 동체 좌표계에 대한 정보를 획득하는 단계를 포함할 수 있다. Here, the acquiring of the information on the body coordinate system includes calculating a coordinate transformation matrix for converting the first rotation angle information into sensed values representing the posture of the upper arm and the posture of the lower arm, and and obtaining information on a moving body coordinate system corresponding to the lower arm based on the lower arm.

한편, 상기 평형각 정보는 롤(roll) 평형각 정보 및 피치(pitch) 평형각 정보를 포함하고, 상기 롤 평형각 정보는 상기 동체 좌표계의 제1 축을 기준으로 상기 동체 좌표계를 회전하는 경우 상기 동체 좌표계의 제2 축이 상기 기준 좌표계의 xy 평면과 평행이 되도록 하는 각도를 나타낼 수 있다. Meanwhile, the balance angle information includes roll balance angle information and pitch balance angle information, and the roll balance angle information is the body when the body coordinate system is rotated with respect to the first axis of the body coordinate system. An angle at which the second axis of the coordinate system is parallel to the xy plane of the reference coordinate system may be indicated.

여기서, 상기 피치 평형각 정보는 상기 롤 평형각 정보에 따라 회전된 상기 동체 좌표계의 제2 축을 기준으로 상기 동체 좌표계를 회전하는 경우 상기 동체 좌표계의 제3 축이 상기 기준 좌표계의 z축과 일치되도록 하는 각도를 나타낼 수 있다. Here, the pitch equilibrium angle information is such that when the body coordinate system is rotated based on the second axis of the body coordinate system rotated according to the roll equilibrium angle information, the third axis of the body coordinate system coincides with the z-axis of the reference coordinate system. angle can be indicated.

여기서, 상기 제2 회전각 정보를 획득하는 단계는 손의 자세를 나타내는 센싱값에 기초하여 손에 대응되는 모터들에 대한 제3 회전각 정보를 획득하는 단계 및 상기 평형각 정보에 기초하여 제3 회전각 정보를 보정함으로써 제2 회전각 정보를 획득하는 단계를 포함할 수 있다. Here, the obtaining of the second rotation angle information may include obtaining third rotation angle information of motors corresponding to the hand based on a sensing value representing a posture of the hand and third rotation angle information based on the balance angle information. It may include obtaining second rotation angle information by correcting rotation angle information.

여기서, 상기 복수의 링크는 상기 상박에 대응되는 제1 링크, 상기 하박에 대응되는 제2 링크, 상기 손에 대응되는 제3 링크를 포함하고, 상기 복수의 모터는 상기 제1 링크를 제1 축을 기준으로 회전시키는 제1 모터, 상기 제1 링크를 제2 축을 기준으로 회전시키는 제2 모터, 상기 제2 링크를 상기 제1 축을 기준으로 회전시키는 제3 모터, 상기 제2 링크를 제3 축을 기준으로 회전시키는 제4 모터, 상기 제3 링크를 상기 제1 축을 기준으로 회전시키는 제5 모터 및 상기 제3 링크를 상기 제2 축을 기준으로 회전시키는 제6 모터를 포함할 수 있다. Here, the plurality of links include a first link corresponding to the upper arm, a second link corresponding to the lower arm, and a third link corresponding to the hand, and the plurality of motors drive the first link to a first axis. A first motor rotating the first link based on a second axis, a second motor rotating the second link based on the first axis, a third motor rotating the second link based on the first axis, and the second link based on a third axis It may include a fourth motor for rotating, a fifth motor for rotating the third link based on the first axis, and a sixth motor for rotating the third link based on the second axis.

상술한 기술적 과제를 해결하기 위한 본 개시의 예시적인 일 실시 예에 따르면, 매니퓰레이터는 제1 링크 및 제2 링크를 포함하는 복수의 링크, 상기 복수의 링크를 회전시키는 복수의 모터, 회로를 포함하는 통신 인터페이스, 적어도 하나의 인스트럭션을 저장하는 메모리 및 프로세서를 포함하고, 상기 프로세서는 상기 통신 인터페이스를 통해 사용자 팔의 자세를 감지하기 위한 외부 센서의 센싱값을 수신하고, 상기 센싱값에 기초하여 획득된 행렬 및 상기 메모리에 기저장된 제1 벡터에 기초하여 상기 사용자 팔의 자세에 대응되는 제2 벡터를 획득하고, 상기 제2 벡터에 기초하여 상기 사용자 팔의 자세 정보를 획득하고, 상기 사용자 팔의 자세 정보에 기초하여 상기 복수의 모터의 구동을 제어하고, 상기 프로세서는 제1 외부 센서의 센싱값에 기초하여 상기 제1 링크에 대응되는 제3 벡터를 획득하고, 제2 외부 센서의 센싱값에 기초하여 상기 제2 링크에 대응되는 제4 벡터를 획득하고, 상기 제3 벡터 및 상기 제4 벡터에 기초하여 상기 제2 링크에 대응되는 자세 정보를 획득하고, 상기 제2 링크에 대응되는 자세 정보에 기초하여 상기 제2 링크에 대응되는 상기 복수의 모터의 구동을 제어한다. According to an exemplary embodiment of the present disclosure for solving the above technical problem, a manipulator includes a plurality of links including a first link and a second link, a plurality of motors rotating the plurality of links, and a circuit. It includes a communication interface, a memory for storing at least one instruction, and a processor, wherein the processor receives a sensed value of an external sensor for detecting a posture of a user's arm through the communication interface, and obtains a value obtained based on the sensed value. A second vector corresponding to the posture of the user's arm is obtained based on a matrix and a first vector previously stored in the memory, posture information of the user's arm is obtained based on the second vector, and posture of the user's arm Controls driving of the plurality of motors based on information, and the processor acquires a third vector corresponding to the first link based on a sensing value of a first external sensor, and based on a sensing value of a second external sensor. to obtain a fourth vector corresponding to the second link, obtain attitude information corresponding to the second link based on the third vector and the fourth vector, and obtain attitude information corresponding to the second link Based on the control to drive the plurality of motors corresponding to the second link.

여기서, 상기 프로세서는 상기 센싱값을 상기 메모리에 저장된 AHRS(Altitude and Heading Reference System) 알고리즘에 적용하여 상기 사용자의 팔의 자세에 대응되는 쿼터니언(quaternion) 벡터를 획득하고, 상기 쿼터니언 벡터에 기초하여 상기 행렬을 획득할 수 있다. Here, the processor obtains a quaternion vector corresponding to the posture of the user's arm by applying the sensed value to an Altitude and Heading Reference System (AHRS) algorithm stored in the memory, and based on the quaternion vector, the processor matrix can be obtained.

한편, 상기 제2 벡터는 x축에 대응되는 제2-1 벡터 및 z축에 대응되는 제2-2 벡터를 포함하고, 상기 사용자 팔의 자세 정보는 x축에 대응되는 롤(roll) 각도, y축에 대응되는 피치(pitch) 각도 및 z축에 대응되는 요(yaw) 각도를 포함하고, 상기 프로세서는 상기 제2-1 벡터에 기초하여 제1 요 각도를 획득하고, 상기 제2-2 벡터에 기초하여 제2 요 각도를 획득하고, 상기 제1 요 각도 및 상기 제2 요 각도에 기초하여 상기 요 각도를 획득할 수 있다. Meanwhile, the second vector includes a 2-1 vector corresponding to the x-axis and a 2-2 vector corresponding to the z-axis, and the posture information of the user's arm includes a roll angle corresponding to the x-axis, A pitch angle corresponding to the y-axis and a yaw angle corresponding to the z-axis, wherein the processor obtains a first yaw angle based on the 2-1 vector, and the 2-2 A second yaw angle may be obtained based on the vector, and the yaw angle may be obtained based on the first yaw angle and the second yaw angle.

한편, 상기 프로세서는, 기정의된 가중치 함수에 기초하여 상기 제1 요 각도 및 상기 제2 요 각도에 가중치를 적용하여 상기 요 각도를 획득할 수 있다. Meanwhile, the processor may obtain the yaw angle by applying weights to the first yaw angle and the second yaw angle based on a predefined weight function.

한편, 상기 프로세서는 상기 사용자 팔의 초기 설정 자세에 대응되는 제1 센싱값에 기초하여 제1 행렬을 획득하여 상기 메모리에 저장하고, 상기 사용자 팔의 현재 자세에 대응되는 제2 센싱값에 기초하여 획득된 제2 행렬 및 상기 제1 행렬에 기초하여 상기 행렬을 획득할 수 있다. Meanwhile, the processor acquires a first matrix based on a first sensed value corresponding to an initially set posture of the user's arm, stores it in the memory, and based on a second sensed value corresponding to a current posture of the user's arm The matrix may be obtained based on the obtained second matrix and the first matrix.

한편, 상기 프로세서는 상기 제3 벡터 및 상기 제4 벡터의 내적에 기초하여 x축에 대응되는 각도를 획득하고, 상기 제3 벡터 및 상기 제4 벡터의 외적에 기초하여 z축에 대응되는 각도를 획득할 수 있다. Meanwhile, the processor obtains an angle corresponding to the x-axis based on a dot product of the third vector and the fourth vector, and obtains an angle corresponding to the z-axis based on a cross product of the third vector and the fourth vector. can be obtained

이상과 같은 본 개시의 다양한 실시 예에 따르면, 매니퓰레이터는 사용자의 팔의 움직임을 정확히 따라할 수 있다. 이에 따라, 사용자 편의성 및 만족감이 향상된다. 또한, 매니퓰레이터는 시각 센서 없이도 동작할 수 있어, 매니퓰레이터의 제조 단가가 절감될 수 있다.According to various embodiments of the present disclosure as described above, the manipulator can accurately follow the movement of the user's arm. Accordingly, user convenience and satisfaction are improved. Also, since the manipulator can operate without a visual sensor, manufacturing cost of the manipulator can be reduced.

그 외에 본 개시의 실시 예로 인하여 얻을 수 있거나 예측되는 효과에 대해서는 본 개시의 실시 예에 대한 상세한 설명에서 직접적 또는 암시적으로 개시하도록 한다. 예컨대, 본 개시의 실시 예에 따라 예측되는 다양한 효과에 대해서는 후술될 상세한 설명 내에서 개시될 것이다.In addition, effects that can be obtained or predicted due to the embodiments of the present disclosure will be directly or implicitly disclosed in the detailed description of the embodiments of the present disclosure. For example, various effects predicted according to an embodiment of the present disclosure will be disclosed within the detailed description to be described later.

도 1a는 본 개시의 일 실시 예에 따른 매니퓰레이터의 컨셉을 설명하기 위한 도면이다.
도 1b는 본 개시의 일 실시 예에 따른 매니퓰레이터의 구조를 나타내는 도면이다.
도 2는 본 개시의 일 실시 예에 따른 매니퓰레이터의 구성을 도시한 블록도이다.
도 3은 벡터의 좌표 변환을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 가중치 함수의 그래프이다.
도 5는 본 개시의 일 실시 예에 따른 모터의 구동을 제어하는 방법을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 제2 각도를 획득하는 방법을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 매니퓰레이터의 제어 방법을 설명하기 위한 순서도이다.
도 8은 본 개시의 일 실시 예에 따른 매니퓰레이터의 제어 방법을 나타내는 흐름도이다.도 9는 본 개시의 일 실시 예에 따른 좌표계에 대한 설명과 하박에 대응되는 링크의 동체 좌표계에 대한 정보를 획득하는 과정에 대한 설명을 위한 도면이다.
도 10은 본 개시의 일 실시 예에 따른 롤 평형각의 획득 과정에 대해 상세하게 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시 예에 따른 피치 평형각의 획득 과정에 대해 상세하게 설명하기 위한 도면이다.
도 12는 본 개시의 일 실시 예에 있어서 복수의 사용자가 매니퓰레이터를 제어하는 과정에 관련된 실시 예를 설명하기 위한 도면이다. 그리고,
도 13은 본 개시의 일 실시 예에 있어서 매니퓰레이터의 반복 동작을 제어하는 것에 관련된 실시 예를 설명하기 위한 도면이다.
1A is a diagram for explaining a concept of a manipulator according to an embodiment of the present disclosure.
1B is a diagram showing the structure of a manipulator according to an embodiment of the present disclosure.
2 is a block diagram showing the configuration of a manipulator according to an embodiment of the present disclosure.
3 is a diagram for explaining coordinate conversion of vectors.
4 is a graph of a weight function according to an embodiment of the present disclosure.
5 is a diagram for explaining a method of controlling driving of a motor according to an embodiment of the present disclosure.
6 is a diagram for explaining a method of obtaining a second angle according to an embodiment of the present disclosure.
7 is a flowchart illustrating a method of controlling a manipulator according to an embodiment of the present disclosure.
8 is a flowchart illustrating a control method of a manipulator according to an embodiment of the present disclosure. FIG. 9 is a description of a coordinate system according to an embodiment of the present disclosure and a process for obtaining information about a body coordinate system of a link corresponding to a lower arm. It is a drawing for explanation of the process.
10 is a diagram for explaining in detail a process of obtaining a roll equilibrium angle according to an embodiment of the present disclosure.
11 is a diagram for explaining in detail a process of obtaining a pitch equilibrium angle according to an embodiment of the present disclosure.
12 is a diagram for explaining an embodiment related to a process of controlling a manipulator by a plurality of users according to an embodiment of the present disclosure. And,
13 is a diagram for explaining an embodiment related to controlling a repetitive motion of a manipulator according to an embodiment of the present disclosure.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. Terms used in this specification will be briefly described, and the present disclosure will be described in detail.

본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.The terms used in the embodiments of the present disclosure have been selected from general terms that are currently widely used as much as possible while considering the functions in the present disclosure, but they may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technologies, and the like. . In addition, in a specific case, there is also a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the disclosure. Therefore, terms used in the present disclosure should be defined based on the meaning of the term and the general content of the present disclosure, not simply the name of the term.

본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Embodiments of the present disclosure may apply various transformations and may have various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope to specific embodiments, and should be understood to include all transformations, equivalents, and substitutes included in the spirit and scope of technology disclosed. In describing the embodiments, if it is determined that a detailed description of a related known technology may obscure the subject matter, the detailed description will be omitted.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. Terms are only used to distinguish one component from another.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, the terms "comprise" or "consist of" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other It should be understood that the presence or addition of features, numbers, steps, operations, components, parts, or combinations thereof is not excluded in advance. Below, with reference to the accompanying drawings, the present disclosure pertains to embodiments of the present disclosure. It will be described in detail so that those skilled in the art can easily implement it. However, the present disclosure may be implemented in many different forms and is not limited to the embodiments described herein. And in order to clearly describe the present disclosure in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

도 1a는 본 개시의 일 실시 예에 따른 매니퓰레이터의 컨셉을 설명하기 위한 도면이다. 1A is a diagram for explaining a concept of a manipulator according to an embodiment of the present disclosure.

매니퓰레이터(100)는 사용자 팔(1)의 자세를 감지하기 위한 외부 센서(10)의 센싱 값에 기초하여 사용자 팔(1)의 움직임을 따라할 수 있다. 매니퓰레이터(100)는 외부 센서(10)(예로, IMU 센서, 지자기 센서)의 센싱 값에 기초하여 사용자 팔(1)의 자세 정보를 획득할 수 있다. 여기서, 외부 센서(10)는 사용자 팔(1)의 상박(A)에 부착되는 제1 외부 센서(11), 하박(B)에 부착되는 제2 외부 센서(12), 손등(C)에 부착되는 제3 외부 센서(13) 및 손가락(D)에 부착되는 플렉스 센서(14)를 포함할 수 있다. The manipulator 100 may follow the movement of the user's arm 1 based on the sensing value of the external sensor 10 for detecting the posture of the user's arm 1 . The manipulator 100 may obtain posture information of the user's arm 1 based on a sensing value of the external sensor 10 (eg, an IMU sensor or a geomagnetic sensor). Here, the external sensor 10 is a first external sensor 11 attached to the upper arm (A) of the user's arm 1, a second external sensor 12 attached to the lower arm (B), and attached to the back of the hand (C). It may include a third external sensor 13 and a flex sensor 14 attached to the finger D.

매니퓰레이터(100)는 사용자 팔(1)의 상박(A)에 대응되는 제1 링크(111) 및 하박(B)에 대응되는 제2 링크(112)를 포함할 수 있다. 또한, 매니퓰레이터(100)는 복수의 핑거(121)를 포함하는 핸드(120)를 포함할 수 있다. 매니퓰레이터(100)는 사용자 팔(1)의 자세 정보에 기초하여 동작할 수 있다. 예를 들어, 매니퓰레이터(100)는 핸드(120)를 이용하여 오브젝트를 파지할 수 있다.The manipulator 100 may include a first link 111 corresponding to the upper arm A of the user's arm 1 and a second link 112 corresponding to the lower arm B. Also, the manipulator 100 may include a hand 120 including a plurality of fingers 121 . The manipulator 100 may operate based on posture information of the user's arm 1 . For example, the manipulator 100 may grip an object using the hand 120 .

도 1b는 본 개시의 일 실시 예에 따른 매니퓰레이터의 구조를 나타내는 도면이다. 1B is a diagram showing the structure of a manipulator according to an embodiment of the present disclosure.

매니퓰레이터(100)는 링크(110), 핸드(120) 및 모터(130)를 포함할 수 있다. 링크(110)는 제1 링크(111) 및 제2 링크(112)를 포함할 수 있다. 모터(130)는 제1 모터 내지 제6 모터(131, 132, 133, 134, 135, 136)를 포함할 수 있다. The manipulator 100 may include a link 110 , a hand 120 and a motor 130 . The link 110 may include a first link 111 and a second link 112 . The motor 130 may include first to sixth motors 131 , 132 , 133 , 134 , 135 , and 136 .

제1 모터(131) 및 제2 모터(132)는 제1 링크(111)와 연결되어 제1 링크(111)를 회전시킬 수 있다. 구체적으로, 제1 모터(131)는 제1 축을 기준으로 제1 링크(111)를 회전시킬 수 있다. 여기서, 제1 축은 후술하는 동체 좌표계의 x축을 의미한다. 제2 모터(132)는 제2 축을 기준으로 제1 링크(111)를 회전시킬 수 있다. 여기서, 제2 축은, 동체 좌표계의 y축을 의미한다.The first motor 131 and the second motor 132 may be connected to the first link 111 to rotate the first link 111 . Specifically, the first motor 131 may rotate the first link 111 based on the first axis. Here, the first axis means the x-axis of the moving body coordinate system to be described later. The second motor 132 may rotate the first link 111 based on the second axis. Here, the second axis means the y-axis of the moving body coordinate system.

제3 모터(133) 및 제4 모터(134)는 제1 링크(111) 및 제2 링크(112)와 연결되어 제2 링크(112)를 회전시킬 수 있다. 구체적으로, 제3 모터(133)는 제1 축을 기준으로 제2 링크(112)를 회전시킬 수 있다. 제4 모터(134)는 제3 축을 기준으로 제2 링크(112)를 회전시킬 수 있다. 여기서, 제3 축은 동체 좌표계의 z축을 의미한다.The third motor 133 and the fourth motor 134 may be connected to the first link 111 and the second link 112 to rotate the second link 112 . Specifically, the third motor 133 may rotate the second link 112 based on the first axis. The fourth motor 134 may rotate the second link 112 based on the third axis. Here, the third axis means the z-axis of the moving body coordinate system.

제5 모터(135) 및 제6 모터(136)는 제2 링크(112) 및 핸드(120)와 연결되어 핸드(120)를 회전시킬 수 있다. 구체적으로, 제5 모터(135)는 제1 축을 기준으로 핸드(120)를 회전시킬 수 있다. 제6 모터(136)는 제2 축을 기준으로 핸드(120)를 회전시킬 수 있다.The fifth motor 135 and the sixth motor 136 may be connected to the second link 112 and the hand 120 to rotate the hand 120 . Specifically, the fifth motor 135 may rotate the hand 120 based on the first axis. The sixth motor 136 may rotate the hand 120 based on the second axis.

한편, 도 1b에 따른 링크(110) 및 모터(130)의 개수는 일 실시 예에 불과하며, 링크(110) 및 모터(130)의 개수가 이에 한정되는 것은 아님을 밝혀둔다.Meanwhile, the number of links 110 and motors 130 according to FIG. 1B is just an example, and the number of links 110 and motors 130 is not limited thereto.

도 2는 본 개시의 일 실시 예에 따른 매니퓰레이터의 구성을 도시한 블록도이다. 매니퓰레이터(100)는 링크(110), 핸드(120), 모터(130), 통신 인터페이스(140), 메모리(150) 및 프로세서(160)를 포함할 수 있다.2 is a block diagram showing the configuration of a manipulator according to an embodiment of the present disclosure. The manipulator 100 may include a link 110 , a hand 120 , a motor 130 , a communication interface 140 , a memory 150 and a processor 160 .

링크(110)는 사용자(즉, 사람) 팔의 상박에 대응되는 제1 링크(111) 및 하박에 대응되는 제2 링크(112)를 포함할 수 있다. 제1 링크(111) 및 제2 링크(112)는 모터(120)를 통해 연결되며, 모터(120)에 구동에 따라 3축을 따라 회전할 수 있다.The link 110 may include a first link 111 corresponding to the upper arm of the user's (ie, human) arm and a second link 112 corresponding to the lower arm. The first link 111 and the second link 112 are connected through a motor 120, and may rotate along three axes according to the drive of the motor 120.

핸드(120)는 복수의 핑거를 포함할 수 있다. 핸드(120)는 프로세서(160)의 제어에 의해 각 핑거를 움직여 오브젝트를 파지하거나 파지를 해제할 수 있다.Hand 120 may include a plurality of fingers. The hand 120 may move each finger under the control of the processor 160 to grip the object or release the grip.

모터(130)는 복수의 모터(131, 132, 133, 134, 135, 136)를 포함할 수 있다. 모터(130)는 프로세서(160)의 제어에 의해 구동되어 링크(110) 및 핸드(120)를 이동시킬 수 있다.The motor 130 may include a plurality of motors 131 , 132 , 133 , 134 , 135 , and 136 . The motor 130 may be driven under the control of the processor 160 to move the link 110 and the hand 120 .

통신 인터페이스(140)는 적어도 하나의 회로를 포함하며 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 기기와 통신을 수행할 수 있다. 예를 들어, 통신 인터페이스(140)는 외부 센서(10)로부터 외부 센서(10)의 센싱 값을 수신할 수 있다. The communication interface 140 includes at least one circuit and can perform communication with various types of external devices according to various types of communication methods. For example, the communication interface 140 may receive a sensing value of the external sensor 10 from the external sensor 10 .

여기서, 외부 센서(10)는 사용자 팔(1)의 움직임 또는 자세를 감지하기 위한 구성으로 복수의 IMU(Inertial Measurement Unit) 센서, 복수의 지자기 센서 및 플렉스 센서를 포함할 수 있다. 예로, 도 1a를 참조하면, 제1 IMU 센서 및 제1 지자기 센서를 포함한 제1 외부 센서(11)는 사용자 팔(1)의 상박에 부착될 수 있다. 제2 IMU 센서 및 제2 지자기 센서를 포함한 제2 외부 센서(12)는 사용자 팔(1)의 하박에 부착될 수 있다. 제3 IMU 센서 및 제3 지자기 센서를 포함한 제3 외부 센서(13)는 사용자 팔(1)의 손등에 부착될 수 있다. 또한, 플렉스 센서(14)는 사용자 손가락에 부착될 수 있다. 각 외부 센서는 사용자 팔(1)의 자세를 감지할 수 있다. 한편, 도 1a에서는, 제1 외부 센서(11), 제2 외부 센서(12), 제3 외부 센서(13) 및 플렉스 센서(14) 각각 사용자 팔(1)에 부착된 것으로 도시되었으나, 사용자가 제1 외부 센서(11), 제2 외부 센서(12), 제3 외부 센서(13) 및 플렉스 센서(14)를 포함한 하나의 웨어러블 장치를 착용하는 것도 가능하다.Here, the external sensor 10 may include a plurality of Inertial Measurement Unit (IMU) sensors, a plurality of geomagnetic sensors, and a flex sensor as a configuration for detecting the motion or posture of the user's arm 1 . For example, referring to FIG. 1A , a first external sensor 11 including a first IMU sensor and a first geomagnetic sensor may be attached to the upper arm of the user's arm 1 . The second external sensor 12 including the second IMU sensor and the second geomagnetic sensor may be attached to the lower arm of the user's arm 1 . A third external sensor 13 including a third IMU sensor and a third geomagnetic sensor may be attached to the back of the hand of the user's arm 1 . Also, the flex sensor 14 may be attached to a user's finger. Each external sensor may detect the posture of the user's arm (1). Meanwhile, in FIG. 1A, the first external sensor 11, the second external sensor 12, the third external sensor 13, and the flex sensor 14 are each shown attached to the user's arm 1, but the user It is also possible to wear one wearable device including the first external sensor 11 , the second external sensor 12 , the third external sensor 13 and the flex sensor 14 .

한편, 통신 인터페이스(140)는 무선 통신 모듈 및 유선 통신 모듈을 포함할 수 있다. 무선 통신 모듈은 BLE(Bluetooth Low Energy) 모듈, 와이파이 통신 모듈, 셀룰러 통신모듈, 3G(3세대) 이동통신 모듈, 4G(4세대) 이동통신 모듈, 4세대 LTE(Long Term Evolution) 통신 모듈, 5G(5세대) 이동통신 모듈 중 적어도 하나를 포함할 수 있다. 유선 통신 모듈은 이더넷 모듈을 포함할 수 있다. 또한, 통신 인터페이스(140)는 적어도 하나의 통신 단자를 포함할 수 있다.Meanwhile, the communication interface 140 may include a wireless communication module and a wired communication module. Wireless communication modules include BLE (Bluetooth Low Energy) module, Wi-Fi communication module, cellular communication module, 3G (3rd generation) mobile communication module, 4G (4th generation) mobile communication module, 4th generation LTE (Long Term Evolution) communication module, 5G (5th generation) may include at least one of mobile communication modules. The wired communication module may include an Ethernet module. Also, the communication interface 140 may include at least one communication terminal.

메모리(150)는 매니퓰레이터(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 매니퓰레이터(100)의 구성요소와 관련된 명령 또는 데이터를 저장할 수 있다. 예로, 메모리(150)는 외부 센서(10)의 센싱 값에 기초하여 쿼터니언(quaternion) 정보를 획득하기 위한 AHRS(Altitude and Heading Reference System) 알고리즘에 관한 데이터를 저장할 수 있다. 한편, 메모리(150)는 비휘발성 메모리(ex: 하드 디스크, SSD(Solid state drive), 플래시 메모리), 휘발성 메모리 등으로 구현될 수 있다.The memory 150 may store an Operating System (OS) for controlling overall operations of the components of the manipulator 100 and commands or data related to the components of the manipulator 100 . For example, the memory 150 may store data related to an Altitude and Heading Reference System (AHRS) algorithm for obtaining quaternion information based on a value sensed by the external sensor 10 . Meanwhile, the memory 150 may be implemented as a non-volatile memory (ex: hard disk, solid state drive (SSD), flash memory), volatile memory, or the like.

프로세서(160)는 메모리(150)와 전기적으로 연결되어 매니퓰레이터(100)의 전반적인 기능 및 동작을 제어할 수 있다. 특히, 프로세서(160)는 링크(110) 및 핸드(120)를 회전시키는 모터(130)의 구동을 제어할 수 있다. The processor 160 is electrically connected to the memory 150 to control overall functions and operations of the manipulator 100. In particular, the processor 160 may control driving of the motor 130 that rotates the link 110 and the hand 120 .

이하에서는, 사용자 팔(1)의 상박에 대응되는 제1 링크(111)를 회전시키는 제1 모터(131) 및 제2 모터(132)의 구동을 제어하기 위한 프로세서(160)의 동작에 대하여 설명하도록 한다. 동작 설명을 위해 매니퓰레이터(100)의 제1 링크(111), 제2 링크(112), 핸드(120)에서 정의된 동체 좌표계(Body Frame)와 항법 좌표계(Navigation Frame)를 먼저 정의한다. Hereinafter, an operation of the processor 160 for controlling driving of the first motor 131 and the second motor 132 for rotating the first link 111 corresponding to the upper arm of the user's arm 1 will be described. let it do For the description of the operation, a body frame and a navigation frame defined in the first link 111, the second link 112, and the hand 120 of the manipulator 100 are first defined.

동체 좌표계란, 매니퓰레이터(100)의 움직임에 따라 변경되는 좌표계이다. 도 1b를 참조하면, 매니퓰레이터(100)의 제1 링크(111), 제2 링크(112), 핸드(120)이 아래 방향, 즉 중력 방향으로 정렬되어 있다. 이 때, 동체 좌표계의 X축은 제1 링크(111)의 방향으로 정의되며, Z축은 제2 모터(132)에 의해 매니퓰레이터(100)가 중력 방향에 수직이 되도록 이동되었을 때 제1 링크(111)의 방향으로 정의된다. 동체 좌표계의 Y축은 Z축에서 X축 방향으로 오른손을 감아쥐었을 때 엄지손가락의 방향으로 결정된다(오른손 좌표계). 본 개시에서, 동체 좌표계의 X축은 제1 축, Y축은 제2 축, Z축은 제3 축이라 지칭되기도 한다.The body coordinate system is a coordinate system that changes according to the movement of the manipulator 100 . Referring to FIG. 1B , the first link 111, the second link 112, and the hand 120 of the manipulator 100 are aligned in a downward direction, that is, in the direction of gravity. At this time, the X axis of the body coordinate system is defined as the direction of the first link 111, and the Z axis is the first link 111 when the manipulator 100 is moved by the second motor 132 so as to be perpendicular to the direction of gravity. is defined in the direction of The Y-axis of the body coordinate system is determined by the direction of the thumb when the right hand is closed in the direction from the Z-axis to the X-axis (right-hand coordinate system). In the present disclosure, the X axis of the moving body coordinate system is also referred to as a first axis, the Y axis as a second axis, and the Z axis as a third axis.

항법 좌표계란, 매니퓰레이터(100)의 움직임과 관계없이 고정된 좌표계이다. 항법 좌표계 및 동체 좌표계 사이의 좌표변환 행렬은 쿼터니언 정보나 오일러각에 기초하여 획득될 수 있다.The navigation coordinate system is a fixed coordinate system regardless of the movement of the manipulator 100 . A coordinate conversion matrix between the navigation coordinate system and the moving body coordinate system may be obtained based on quaternion information or Euler angles.

프로세서(160)는 외부 센서의 센싱 값에 기초하여 쿼터니언 정보를 획득할 수 있다. 쿼터니언 정보는, 사용자 팔의 회전에 대한 정보를 나타내며, 회전 벡터 및 회전각을 포함할 수 있다. 프로세서(160)는 외부 센서의 센싱 값을 메모리(150)에 저장된 AHRS 알고리즘에 적용하여 쿼터니언 정보를 획득할 수 있다. 예로, 쿼터니언 정보는, [수학식 1]과 같은 벡터(q)일 수 있다. The processor 160 may obtain quaternion information based on a sensing value of an external sensor. The quaternion information represents information about the rotation of the user's arm, and may include a rotation vector and a rotation angle. The processor 160 may obtain quaternion information by applying the sensing value of the external sensor to the AHRS algorithm stored in the memory 150 . For example, quaternion information may be a vector (q) such as [Equation 1].

[수학식 1][Equation 1]

Figure pat00001
Figure pat00001

한편, 물리적으로 회전 축이 고정되어 있는 로봇 암 제어에서는, 쿼터니언 정보가 오일러 각으로 변환될 필요가 있다. 이에, 기존의 로봇 암 제어 기술은, [수학식 2]와 같이 쿼터니언 정보를 오일러각으로 변환하였다.Meanwhile, in controlling a robot arm in which a rotation axis is physically fixed, quaternion information needs to be converted into Euler angles. Accordingly, the existing robot arm control technology converts quaternion information into Euler angles as shown in [Equation 2].

[수학식 2][Equation 2]

Figure pat00002
Figure pat00002

그러나, [수학식 2]에 따르면, 피치 각(

Figure pat00003
)이 +90도나 -90도로 접근할수록 롤 각(
Figure pat00004
) 및 요 각(
Figure pat00005
)의 분자 및 분모가 0으로 수렴하게 되어, 롤 각(
Figure pat00006
) 및 요 각(
Figure pat00007
)의 추정이 어려워지는 문제가 발생한다. 이를, 소위 짐벌 락 문제(Gimbal lock problem)라 한다.However, according to [Equation 2], the pitch angle (
Figure pat00003
) approaches +90 degrees or -90 degrees, the roll angle (
Figure pat00004
) and yaw angle (
Figure pat00005
), the numerator and denominator converge to 0, so that the roll angle (
Figure pat00006
) and yaw angle (
Figure pat00007
) becomes difficult to estimate. This is called the so-called gimbal lock problem.

한편, 본 개시에 따른 프로세서(160)는 이 같은 짐벌 락 문제를 해결하기 위하여, 쿼터니언 정보에 기초하여 획득된 행렬을 이용하여 항법 좌표계에서 해석된 동체 좌표계의 축 별 벡터를 획득한다. 예로, 프로세서(160)는 아래의 [수학식 3]에 기초하여 쿼터니언 정보로부터 동체 좌표계에서의 항법 좌표계로의 좌표변환행렬(

Figure pat00008
)을 획득할 수 있다. 여기서, 좌표변환행렬은 매니퓰레이터(100)를 기준으로 한 제1 벡터를 기준 좌표계의 제2 벡터로 변환하기 위한 행렬을 의미한다.Meanwhile, in order to solve the gimbal lock problem, the processor 160 according to the present disclosure obtains a vector for each axis of the body coordinate system analyzed in the navigation coordinate system using a matrix obtained based on quaternion information. For example, the processor 160 converts the coordinates from the quaternion information to the navigation coordinate system from the moving body coordinate system based on [Equation 3] below (
Figure pat00008
) can be obtained. Here, the coordinate conversion matrix means a matrix for converting a first vector based on the manipulator 100 into a second vector of the reference coordinate system.

[수학식 3][Equation 3]

Figure pat00009
Figure pat00009

도 3은 벡터의 좌표 변환을 설명하기 위한 도면이다. 3 is a diagram for explaining coordinate conversion of vectors.

도 3을 참조하면, 매니퓰레이터(100)를 기준으로 한 제1 벡터(

Figure pat00010
)는 각각 동체 좌표계에서 표현된 x축 방향의 단위 벡터(
Figure pat00011
) 및 z축 방향의 단위 벡터(
Figure pat00012
)일 수 있다. 제1 벡터(
Figure pat00013
)는 미리 정해진 값으로 메모리(150)에 저장되어 있을 수 있다.Referring to FIG. 3 , a first vector based on the manipulator 100 (
Figure pat00010
) is a unit vector in the x-axis direction, each expressed in the body coordinate system (
Figure pat00011
) and the unit vector in the z-axis direction (
Figure pat00012
) can be. The first vector (
Figure pat00013
) may be stored in the memory 150 as a predetermined value.

프로세서(160)는 동체 좌표계에서 항법 좌표계로의 좌표변환행렬(

Figure pat00014
) 및 제1 벡터(
Figure pat00015
)에 기초하여 제2 벡터(
Figure pat00016
)를 획득할 수 있다. 구체적으로, 프로세서(160)는 [수학식 4]에 기초하여 항법 좌표계에서 표현된 제2 벡터(
Figure pat00017
)를 획득할 수 있다. 제2 벡터(
Figure pat00018
)는 제2-1 벡터(
Figure pat00019
) 및 제2-2 벡터(
Figure pat00020
)를 포함할 수 있다. 한편, 본 개시의 벡터의 윗 첨자 b, n은 각각 동체 좌표계 및 항법 좌표계에서 해석된 위치 벡터를 의미한다.The processor 160 is a coordinate transformation matrix from the body coordinate system to the navigation coordinate system (
Figure pat00014
) and the first vector (
Figure pat00015
) based on the second vector (
Figure pat00016
) can be obtained. Specifically, the processor 160 is a second vector expressed in the navigation coordinate system based on [Equation 4] (
Figure pat00017
) can be obtained. The second vector (
Figure pat00018
) is the 2-1 vector (
Figure pat00019
) and the 2-2 vector (
Figure pat00020
) may be included. Meanwhile, superscripts b and n of the vectors of the present disclosure mean position vectors analyzed in the body coordinate system and the navigation coordinate system, respectively.

[수학식 4][Equation 4]

Figure pat00021
Figure pat00021

Figure pat00022
Figure pat00022

프로세서(160)는 제2 벡터(

Figure pat00023
)에 기초하여 사용자 팔의 자세 정보를 획득할 수 있다. 사용자 팔의 자세 정보는, x축에 대응되는 롤(roll) 각도, y축에 대응되는 피치(pitch) 각도 및 z축에 대응되는 요(yaw) 각도를 포함할 수 있다. 본 발명에서는 제1 링크(111)의 롤(roll) 각은 무시하였다. 제1 링크(111)의 롤(roll) 회전각에 의한 제2 링크(112) 및 핸드(120)의 자세 변화는 제3 모터(133)로 표현될 수 있다. 항법 좌표계를 기준으로 제 1링크(111)의 모든 위치 벡터는 제1 모터 (131) 및 제2 모터(132)에 의해 각각 요각 및 피치각으로 표현될 수 있다.The processor 160 generates a second vector (
Figure pat00023
), posture information of the user's arm may be obtained. The posture information of the user's arm may include a roll angle corresponding to the x-axis, a pitch angle corresponding to the y-axis, and a yaw angle corresponding to the z-axis. In the present invention, the roll angle of the first link 111 is ignored. Changes in posture of the second link 112 and the hand 120 due to the roll rotation angle of the first link 111 may be expressed by the third motor 133 . Based on the navigation coordinate system, all position vectors of the first link 111 may be expressed as yaw angles and pitch angles by the first motor 131 and the second motor 132, respectively.

프로세서(160)는 [수학식 5]에 기초하여 피치 각도(pitch), 제1 요 각도(yaw1) 및 제2 요 각도(yaw2)를 획득할 수 있다.The processor 160 may obtain the pitch angle (pitch), the first yaw angle (yaw1), and the second yaw angle (yaw2) based on [Equation 5].

[수학식 5][Equation 5]

Figure pat00024
Figure pat00024

Figure pat00025
Figure pat00025

Figure pat00026
Figure pat00026

프로세서(160)는 제2-1 벡터(

Figure pat00027
) 또는 제2-1 벡터(
Figure pat00028
)가 xy 평면상에 정사영된 벡터(
Figure pat00029
)에 기초하여 피치 각도(pitch) 및 제1 요 각도(yaw1)를 획득할 수 있다. 또한, 프로세서(160)는 제2-2 벡터(
Figure pat00030
) 또는 제2-2 벡터(
Figure pat00031
)가 xy 평면상에 정사영된 벡터(
Figure pat00032
)에 기초하여 제2 요 각도(yaw2)를 획득할 수 있다. The processor 160 is the 2-1 vector (
Figure pat00027
) or the 2-1 vector (
Figure pat00028
) is a vector projected onto the xy plane (
Figure pat00029
), the pitch angle pitch and the first yaw angle yaw1 may be obtained. In addition, the processor 160 is a 2-2 vector (
Figure pat00030
) or the 2-2 vector (
Figure pat00031
) is a vector projected onto the xy plane (
Figure pat00032
), the second yaw angle yaw2 may be obtained.

그리고, 프로세서(160)는 제1 요 각도(yaw1), 제2 요 각도(yaw2) 및 기 정의된 가중치 함수(W) 에 기초하여 최종 요 각도(

Figure pat00033
)를 획득할 수 있다. 구체적으로, 프로세서(160)는 [수학식 6]에 기초하여 최종 요 각도(
Figure pat00034
)를 획득할 수 있다.Then, the processor 160 determines the final yaw angle (based on the first yaw angle yaw1 , the second yaw angle yaw2 , and a predefined weight function W).
Figure pat00033
) can be obtained. Specifically, the processor 160 based on [Equation 6] the final yaw angle (
Figure pat00034
) can be obtained.

[수학식 6][Equation 6]

Figure pat00035
Figure pat00035

Figure pat00036
Figure pat00036

프로세서(160)는 제1 요 각도(yaw1) 및 제2 요 각도(yaw2)에 가중치 함수(W)에 기초한 가중치를 적용하여 최종 요 각도(

Figure pat00037
)를 획득할 수 있다. 예로, 가중치 함수(W)는 도 4에 도시된 바와 같이 그려질 수 있다.The processor 160 applies weights based on the weight function W to the first yaw angle yaw1 and the second yaw angle yaw2 to obtain a final yaw angle (
Figure pat00037
) can be obtained. For example, the weight function W can be plotted as shown in FIG. 4 .

프로세서(160)는 최종 요 각도(

Figure pat00038
)에 기초하여 제1 모터(131)를 제어할 수 있다. 또한, 프로세서(160)는 획득된 피치 각도(pitch)에 기초하여 제2 모터(132)의 구동을 제어할 수 있다. 이에 따라, 매니퓰레이터(100)는 사용자 팔(1)의 상박의 움직임을 따라할 수 있다.The processor 160 determines the final yaw angle (
Figure pat00038
), it is possible to control the first motor 131 based on. Also, the processor 160 may control driving of the second motor 132 based on the obtained pitch angle. Accordingly, the manipulator 100 can follow the movement of the upper arm of the user's arm 1 .

이상에선, 사용자 팔(1)의 상박에 대응되는 제1 링크(111)를 회전시키는 제1 모터(131) 및 제2 모터(132)의 구동을 제어하는 방법에 대하여 설명하였다. 이하에서는, 사용자 팔(1)의 하박에 대응되는 제2 링크(112)를 회전시키는 제3 모터(133) 및 제4 모터(134)의 구동을 제어하기 위한 프로세서(160)의 동작에 대하여 설명하도록 한다.In the above, the method of controlling the driving of the first motor 131 and the second motor 132 for rotating the first link 111 corresponding to the upper arm of the user's arm 1 has been described. Hereinafter, an operation of the processor 160 for controlling driving of the third motor 133 and the fourth motor 134 for rotating the second link 112 corresponding to the lower arm of the user's arm 1 will be described. let it do

도 5는 본 개시의 일 실시 예에 따른 모터의 구동을 제어하는 방법을 설명하기 위한 도면이다. 5 is a diagram for explaining a method of controlling driving of a motor according to an embodiment of the present disclosure.

도 5를 참조하면, 제1 링크(111)의 방향에 대응되는 제 2-1-1 벡터(

Figure pat00039
)와 제2 링크(112)의 방향에 대응되는 제 2-2-2 벡터(
Figure pat00040
)가 정의될 수 있다. 제1 각도(
Figure pat00041
)는 제1 링크(111) 및 제2 링크(112)의 방향을 나타내는 제3 벡터(
Figure pat00042
)와 제4 벡터(
Figure pat00043
)의 사잇각을 의미한다. Referring to FIG. 5, the 2-1-1 vector corresponding to the direction of the first link 111 (
Figure pat00039
) and the 2-2-2 vector corresponding to the direction of the second link 112 (
Figure pat00040
) can be defined. The first angle (
Figure pat00041
) Is a third vector representing the direction of the first link 111 and the second link 112 (
Figure pat00042
) and the fourth vector (
Figure pat00043
) means the angle between

제2 각도(

Figure pat00044
)를 산출하기 위해 다음의 두 벡터를 정의한다. 먼저 제4 벡터(
Figure pat00045
)를 제3 벡터(
Figure pat00046
)방향으로 정사영한 제5 벡터(
Figure pat00047
)가 정의된다. 제 5 벡터(
Figure pat00048
)를 중심으로 하고 반지름이 제4 벡터(
Figure pat00049
) 및 제5 벡터(
Figure pat00050
) 사이의 거리인 원이 제5 벡터 (
Figure pat00051
)와 수직인 평면 상에 존재할 수 있다. 이 때, 원을 이루는 평면과 항법 좌표계에서 Z축 벡터와 제5 벡터(
Figure pat00052
)를 포함하는 평면의 교선 벡터로부터 제6 벡터(
Figure pat00053
)가 정의된다. 제2 각도(
Figure pat00054
)는 제5 벡터(
Figure pat00055
)와 제6 벡터(
Figure pat00056
)의 사잇각을 의미한다. The second angle (
Figure pat00044
), the following two vectors are defined. First, the fourth vector (
Figure pat00045
) to the third vector (
Figure pat00046
), the fifth vector projected in the direction (
Figure pat00047
) is defined. The fifth vector (
Figure pat00048
) as the center and the radius is the fourth vector (
Figure pat00049
) and the fifth vector (
Figure pat00050
) is the fifth vector (
Figure pat00051
) and may exist on a plane perpendicular to At this time, the Z-axis vector and the fifth vector (
Figure pat00052
) From the intersection vector of the plane containing the sixth vector (
Figure pat00053
) is defined. The second angle (
Figure pat00054
) is the fifth vector (
Figure pat00055
) and the sixth vector (
Figure pat00056
) means the angle between

프로세서(160)는 제1 각도(

Figure pat00057
)에 기초하여 제4 모터(134)의 구동을 제어하며, 제2 각도(
Figure pat00058
)에 기초하여 제3 모터(133)의 구동을 제어할 수 있다. 이하에서는, 제1 각도(
Figure pat00059
) 및 제2 각도(
Figure pat00060
)를 산출하기 위한 프로세서(160)의 동작에 대하여 살펴본다.The processor 160 has a first angle (
Figure pat00057
) and controls the driving of the fourth motor 134 based on the second angle (
Figure pat00058
), it is possible to control the driving of the third motor 133 based on. Below, the first angle (
Figure pat00059
) and the second angle (
Figure pat00060
Let's look at the operation of the processor 160 for calculating ).

프로세서(160)는 제3 벡터(

Figure pat00061
) 및 제4 벡터(
Figure pat00062
)를 획득할 수 있다. 제3 벡터(
Figure pat00063
)는 도 3의 제2-1 벡터(
Figure pat00064
)와 동일한 바, 그 상세한 설명은 생략한다. 또한, 제4 벡터(
Figure pat00065
)는 제2-1 벡터(
Figure pat00066
)와 동일한 방법으로 획득될 수 있다. 구체적으로, 프로세서(160)는 사용자 팔(1)의 하박에 부착된 제2 외부 센서(12)의 센싱 값을 획득할 수 있다. 프로세서(160)는 AHRS 알고리즘을 이용하여 제2 외부 센서(12)의 센싱 값에 대응되는 쿼터니언 정보를 획득할 수 있다. 프로세서(160)는 [수학식 3]에 기초하여 제2 외부 센서(12)의 센싱 값에 대응되는 좌표변환행렬을 획득할 수 있다. 프로세서(160)는 [수학식 4]에 기초하여 제4 벡터(
Figure pat00067
)를 획득할 수 있다. The processor 160 generates a third vector (
Figure pat00061
) and the fourth vector (
Figure pat00062
) can be obtained. The third vector (
Figure pat00063
) is the 2-1 vector of FIG. 3 (
Figure pat00064
), the detailed description thereof is omitted. In addition, the fourth vector (
Figure pat00065
) is the 2-1 vector (
Figure pat00066
) can be obtained in the same way as Specifically, the processor 160 may obtain a sensing value of the second external sensor 12 attached to the lower arm of the user's arm 1 . The processor 160 may obtain quaternion information corresponding to the sensed value of the second external sensor 12 by using the AHRS algorithm. The processor 160 may obtain a coordinate conversion matrix corresponding to the sensed value of the second external sensor 12 based on [Equation 3]. Based on [Equation 4], the processor 160 generates a fourth vector (
Figure pat00067
) can be obtained.

프로세서(160)는 제3 벡터(

Figure pat00068
) 및 제4 벡터(
Figure pat00069
)의 내적에 기초하여 제2 링크(112)의 제1 각도(
Figure pat00070
)를 획득할 수 있다. 구체적으로, 프로세서(160)는 [수학식 7]에 기초하여 제1 각도(
Figure pat00071
)를 획득할 수 있다.The processor 160 generates a third vector (
Figure pat00068
) and the fourth vector (
Figure pat00069
Based on the dot product of ), the first angle of the second link 112 (
Figure pat00070
) can be obtained. Specifically, the processor 160, based on [Equation 7], the first angle (
Figure pat00071
) can be obtained.

[수학식 7][Equation 7]

Figure pat00072
Figure pat00072

도 6은 본 개시의 일 실시 예에 따른 제2 각도를 획득하는 방법을 설명하기 위한 도면이다. 6 is a diagram for explaining a method of obtaining a second angle according to an embodiment of the present disclosure.

프로세서(160)는 [수학식 8] 및 [수학식 9]에 기초하여 제2 각도(

Figure pat00073
)를 획득할 수 있다. The processor 160 calculates a second angle based on [Equation 8] and [Equation 9].
Figure pat00073
) can be obtained.

[수학식 8][Equation 8]

Figure pat00074
Figure pat00074

Figure pat00075
Figure pat00075

[수학식 9][Equation 9]

Figure pat00076
Figure pat00076

Figure pat00077
Figure pat00077

Figure pat00078
Figure pat00078

Figure pat00079
Figure pat00079

여기서, [수학식 8] 및 [수학식 9]는 도 6에 도시된 기하학적 관계에 의하여 도출될 수 있다. Here, [Equation 8] and [Equation 9] may be derived by the geometric relationship shown in FIG. 6 .

사용자 팔(1)의 손등의 자세는 사용자 팔(1)의 상박 및 하박의 자세에 의해 영향을 받으며, 사용자 팔(1)의 하박의 자세는 사용자 팔(1)의 상박의 자세에 의해 영향을 받는다. 따라서 사용자 팔(1)의 상박 및 하박의 자세로부터 독립적인 손등의 자세(

Figure pat00080
)는 사용자 팔(1)의 상박의 자세가 반영된 하박의 자세(
Figure pat00081
)를 [수학식 9-2]와 같이 보정함으로써 획득될 수 있다.The posture of the back of the hand of the user's arm 1 is influenced by the posture of the upper arm and lower arm of the user's arm 1, and the posture of the lower arm of the user's arm 1 is influenced by the posture of the upper arm of the user's arm 1. receive Therefore, the posture of the back of the hand independent of the posture of the upper arm and lower arm of the user's arm 1 (
Figure pat00080
) is the posture of the lower arm in which the posture of the upper arm of the user's arm 1 is reflected (
Figure pat00081
) can be obtained by correcting [Equation 9-2].

[수학식 9-2][Equation 9-2]

Figure pat00082
Figure pat00082

도 1b에서 손등의 롤과 피치를 표현하기 위한 제5 모터(135) 및 제6 모터 (136)의 회전각을

Figure pat00083
Figure pat00084
라고 할 때 두 회전각은 [수학식 9-3]으로 표현된다.In FIG. 1B, the rotation angles of the fifth motor 135 and the sixth motor 136 for expressing the roll and pitch of the back of the hand
Figure pat00083
and
Figure pat00084
When it is said, the two rotation angles are expressed by [Equation 9-3].

[수학식 9-3][Equation 9-3]

Figure pat00085
Figure pat00085

Figure pat00086
Figure pat00086

한편, 사용자 팔(1)에 부착되는 외부 센서(10)의 센싱 값은 사용자마다 신체적 특징(예로, 근육량, 피부 굴곡 등)이 다름에 따라 오차를 포함할 수 있다. 프로세서(160)는 사용자의 초기 설정 자세(예로, 팔을 지면과 수평으로 뻗는 동작)에 대응되는 초기 좌표변환행렬(

Figure pat00087
)을 이용하여 오차를 보정할 수 있다. 구체적으로, 프로세서(160)는 [수학식 10]에 기초하여 오차가 보정된 좌표변환행렬(
Figure pat00088
)을 획득할 수 있다. 그리고, 프로세서(160)는 전술한 제2 벡터(
Figure pat00089
), 제3 벡터(
Figure pat00090
) 및 제4 벡터(
Figure pat00091
)를 획득할 때, 오차가 보정된 좌표변환행렬(
Figure pat00092
)을 이용할 수 있다.Meanwhile, the sensing value of the external sensor 10 attached to the user's arm 1 may include an error due to differences in physical characteristics (eg, muscle mass, skin curvature, etc.) for each user. The processor 160 generates an initial coordinate transformation matrix (for example, an operation of extending an arm horizontally to the ground) of a user's initial setting posture.
Figure pat00087
) can be used to correct the error. Specifically, the processor 160 is a coordinate transformation matrix in which the error is corrected based on [Equation 10] (
Figure pat00088
) can be obtained. And, the processor 160 uses the aforementioned second vector (
Figure pat00089
), the third vector (
Figure pat00090
) and the fourth vector (
Figure pat00091
), the error-corrected coordinate transformation matrix (
Figure pat00092
) can be used.

[수학식 10] [Equation 10]

Figure pat00093
Figure pat00093

여기서,

Figure pat00094
는 외부 센서(10)의 현재 센싱 값에 기초하여 획득되는 좌표변환행렬을 의미한다. 또한, 프로세서(160)는 사용자가 초기 설정 자세를 취할 때 획득되는 외부 센서(10)의 센싱 값과 [수학식 3]에 기초하여 초기 좌표변환행렬(
Figure pat00095
)을 획득하여 메모리(150)에 저장할 수 있다. here,
Figure pat00094
denotes a coordinate conversion matrix obtained based on the current sensing value of the external sensor 10 . In addition, the processor 160 performs an initial coordinate transformation matrix (based on the sensing value of the external sensor 10 obtained when the user assumes the initial setting posture and [Equation 3]).
Figure pat00095
) may be acquired and stored in the memory 150.

한편, 프로세서(160)는 매니퓰레이터(100)의 모션 스무딩을 위해 모터 제어 정보에 IIR 필터를 적용할 수 있다. 프로세서(160)는 [수학식 11]에 기초하여 모터(130)에 인가되는 제어 입력의 크기를 조절할 수 있다.Meanwhile, the processor 160 may apply an IIR filter to motor control information for motion smoothing of the manipulator 100 . The processor 160 may adjust the size of the control input applied to the motor 130 based on [Equation 11].

[수학식 11][Equation 11]

Figure pat00096
Figure pat00096

Figure pat00097
Figure pat00097

여기서,

Figure pat00098
는 모터(130)의 입력으로 사용되는 필터의 출력 값을,
Figure pat00099
는 현재 시점 바로 이전의 모터 제어 입력, M은 IIR 필터에 의해 필터링 되기 전 현재 시점에서 추정된 모터 제어 입력을 의미한다. TH는 모터(130)의 입력을 제한하기 위한 기설정된 값(예로, 10 degrees)이며, k는 미리 정해진 값(예로, 0.7)을 의미한다.here,
Figure pat00098
is the output value of the filter used as the input of the motor 130,
Figure pat00099
is the motor control input right before the current time, and M is the motor control input estimated at the current time before being filtered by the IIR filter. TH is a predetermined value (eg, 10 degrees) for limiting the input of the motor 130, and k means a predetermined value (eg, 0.7).

한편, 프로세서(160)는 핸드(120)의 움직임을 제어하기 위하여 제5 모터(135) 및 제6 모터(136)의 구동을 제어할 수 있다. 예를 들어, 프로세서(160)는 사용자 팔(1)의 손목에 부착된 제3 외부 센서(13)의 센싱 값에 기초하여 사용자 손의 자세 정보를 획득할 수 있다. 그리고, 프로세서(160)는 획득된 자세 정보에 기초하여 제5 모터(135) 및 제6 모터(136)의 구동을 제어할 수 있다.Meanwhile, the processor 160 may control driving of the fifth motor 135 and the sixth motor 136 to control the movement of the hand 120 . For example, the processor 160 may obtain posture information of the user's hand based on a sensing value of the third external sensor 13 attached to the wrist of the user's arm 1 . Also, the processor 160 may control driving of the fifth motor 135 and the sixth motor 136 based on the acquired attitude information.

또한, 프로세서(160)는 핸드(120)에 포함된 핑거의 동작을 제어할 수 있다. 프로세서(160)는 통신 인터페이스(140)를 통해 수신되는 플렉스 센서(14)의 센싱값에 기초하여 사용자 손가락의 자세 정보를 획득할 수 있다. 그리고, 프로세서(160)는 획득된 자세 정보에 기초하여 핑거의 동작을 제어할 수 있다. 한편, 플렉스 센서(14)의 센싱값은 사용자의 손 모양이나 크기의 차이로 인한 오차를 포함할 수 있다. 프로세서(160)는 [수학식 12]에 기초하여 오차가 보정된 센싱값(

Figure pat00100
)을 획득하고, 보정된 센싱값(
Figure pat00101
)에 기초하여 핑거의 동작을 제어할 수 있다.Also, the processor 160 may control operations of fingers included in the hand 120 . The processor 160 may obtain posture information of the user's finger based on the sensing value of the flex sensor 14 received through the communication interface 140 . Also, the processor 160 may control the operation of the finger based on the acquired posture information. Meanwhile, the sensing value of the flex sensor 14 may include an error due to a difference in the shape or size of the user's hand. The processor 160 detects the error corrected based on [Equation 12] (
Figure pat00100
) is obtained, and the corrected sensing value (
Figure pat00101
), it is possible to control the operation of the finger.

[수학식 12][Equation 12]

Figure pat00102
Figure pat00102

여기서,

Figure pat00103
는 현재 시점에서 획득된 플렉스 센서(14)의 센싱값,
Figure pat00104
는 메모리(150)에 저장된 플렉스 센서(14)의 센싱값 중 최소값,
Figure pat00105
는 메모리(150)에 저장된 플렉스 센서(14)의 센싱값 중 최대값을 의미한다.here,
Figure pat00103
Is the sensing value of the flex sensor 14 obtained at the current time point,
Figure pat00104
Is the minimum value of the sensing values of the flex sensor 14 stored in the memory 150,
Figure pat00105
Means the maximum value of the sensed values of the flex sensor 14 stored in the memory 150.

프로세서(160)는 플렉스 센서(14)의 센싱값을 메모리(150)에 누적하여 저장할 수 있다. 특히, 사용자의 초기 설정 자세(예로, 주먹을 쥐는 자세나 손바닥을 펴는 자세)에 대응되는 플렉스 센서(14)의 센싱값을 메모리(150)에 누적하여 저장할 수 있다. 그리고, 프로세서(160)는 저장된 플렉스 센서(14)의 센싱값 중 최소값 및 최대값을 식별할 수 있다.The processor 160 may accumulate and store the sensed values of the flex sensor 14 in the memory 150 . In particular, the sensed values of the flex sensor 14 corresponding to the user's initially set posture (eg, fist clenched posture or open palm posture) may be accumulated and stored in the memory 150 . Also, the processor 160 may identify the minimum and maximum values among the stored sensing values of the flex sensor 14 .

도 7은 본 개시의 일 실시 예에 따른 매니퓰레이터의 제어 방법을 설명하기 위한 순서도이다. 7 is a flowchart illustrating a method of controlling a manipulator according to an embodiment of the present disclosure.

도 7을 참조하면, 매니퓰레이터(100)는 사용자 팔의 자세를 감지하기 위한 외부 센서의 센싱값을 수신할 수 있다(S710). 여기서, 외부 센서는 사용자 팔의 상박에 부착되는 제1 외부 센서, 하박에 부착되는 제2 외부 센서, 손목에 부착되는 제3 외부 센서 및 손가락에 부착되는 플렉스 센서를 포함할 수 있다.Referring to FIG. 7 , the manipulator 100 may receive a sensing value of an external sensor for detecting the posture of the user's arm (S710). Here, the external sensors may include a first external sensor attached to the upper arm of the user's arm, a second external sensor attached to the lower arm, a third external sensor attached to the wrist, and a flex sensor attached to the finger.

매니퓰레이터(100)는 외부 센서의 센싱값에 기초하여 획득된 행렬 및 메모리에 기저장된 제1 벡터에 기초하여 사용자 팔의 자세에 대응되는 제2 벡터를 획득할 수 있다(S720). 구체적으로, 매니퓰레이터(100)는 센싱값을 매니퓰레이터(100)에 저장된 AHRS(Altitude and Heading Reference System) 알고리즘에 적용하여 사용자 팔의 자세에 대응되는 쿼터니언(quaternion) 벡터를 획득할 수 있다. 그리고, 매니퓰레이터(100)는 쿼터니언 벡터(쿼터니언 정보)에 기초하여 행렬을 획득할 수 있다. 예로, 매니퓰레이터(100)는 [수학식 3]에 기초하여 행렬을 획득할 수 있다.The manipulator 100 may obtain a second vector corresponding to the posture of the user's arm based on the matrix obtained based on the sensed value of the external sensor and the first vector pre-stored in the memory (S720). Specifically, the manipulator 100 may obtain a quaternion vector corresponding to the posture of the user's arm by applying the sensed value to an Altitude and Heading Reference System (AHRS) algorithm stored in the manipulator 100. Also, the manipulator 100 may obtain a matrix based on the quaternion vector (quaternion information). For example, the manipulator 100 may obtain a matrix based on [Equation 3].

한편, 획득된 행렬은 사용자 별 신체적 특징의 차이에 따른 오차가 보정된 값일 수 있다. 예로, 매니퓰레이터(100)는 사용자 팔의 초기 설정 자세에 대응되는 제1 센싱값에 기초하여 제1 행렬을 획득하여 매니퓰레이터(100)에 저장할 수 있다. 그리고, 매니퓰레이터(100)는 사용자 팔의 현재 자세에 대응되는 제2 센싱값에 기초하여 획득된 제2 행렬 및 저장된 제1 행렬에 기초하여 보정된 행렬을 획득할 수 있다.Meanwhile, the obtained matrix may be a value obtained by correcting an error according to a difference in physical characteristics of each user. For example, the manipulator 100 may obtain a first matrix based on a first sensing value corresponding to an initially set posture of the user's arm and store the first matrix in the manipulator 100 . Also, the manipulator 100 may obtain a corrected matrix based on the second matrix obtained based on the second sensing value corresponding to the current posture of the user's arm and the stored first matrix.

한편, 제2 벡터는, x축에 대응되는 제2-1 벡터 및 z축에 대응되는 제2-2 벡터를 포함할 수 있다. 또한, 사용자 팔의 자세 정보는, x축에 대응되는 롤(roll) 각도, y축에 대응되는 피치(pitch) 각도 및 z축에 대응되는 요(yaw) 각도를 포함할 수 있다. 매니퓰레이터(100)는 제2-1 벡터에 기초하여 제1 요 각도를 획득할 수 있다. 매니퓰레이터(100)는 제2-2 벡터에 기초하여 제2 요 각도를 획득할 수 있다. 그리고, 매니퓰레이터(100)는 기정의된 가중치 함수에 기초하여 제1 요 각도 및 제2 요 각도에 가중치를 적용하여 요 각도를 획득할 수 있다. 매니퓰레이터(100)는 상술한 [수학식 5] 및 [수학식 6]에 기초하여 요 각도를 획득할 수 있다.Meanwhile, the second vector may include a 2-1 vector corresponding to the x-axis and a 2-2 vector corresponding to the z-axis. In addition, the posture information of the user's arm may include a roll angle corresponding to the x-axis, a pitch angle corresponding to the y-axis, and a yaw angle corresponding to the z-axis. The manipulator 100 may obtain the first yaw angle based on the 2-1 vector. The manipulator 100 may obtain the second yaw angle based on the 2-2 vector. Also, the manipulator 100 may obtain the yaw angle by applying weights to the first yaw angle and the second yaw angle based on a predefined weight function. The manipulator 100 may obtain the yaw angle based on [Equation 5] and [Equation 6] described above.

한편, 매니퓰레이터(100)는 사용자 팔의 하박의 자세 정보를 획득하고, 사용자 팔의 하박의 자세 정보에 기초하여 제2 링크(112)의 움직임을 제어할 수 있다. 매니퓰레이터(100)는 사용자 팔의 상박에 부착된 제1 외부 센서의 센싱값에 기초하여 제1 링크(111)에 대응되는 제3 벡터를 획득할 수 있다. 또한, 매니퓰레이터(100)는 사용자 팔의 하박에 부착된 제2 외부 센서의 센싱값에 기초하여 제2 링크(112)에 대응되는 제4 벡터를 획득할 수 있다. Meanwhile, the manipulator 100 may obtain posture information of the lower arm of the user's arm and control the movement of the second link 112 based on the posture information of the lower arm of the user's arm. The manipulator 100 may obtain a third vector corresponding to the first link 111 based on a sensing value of a first external sensor attached to the upper arm of the user's arm. Also, the manipulator 100 may obtain a fourth vector corresponding to the second link 112 based on a sensing value of a second external sensor attached to the lower arm of the user's arm.

그리고, 매니퓰레이터(100)는 제3 벡터 및 제4 벡터에 기초하여 제2 링크(112)에 대응되는 자세 정보를 획득할 수 있다. 예를 들어, 매니퓰레이터(100)는 전술한 [수학식 7], [수학식 8], [수학식 9]에 기초하여 제2 링크(112)에 대응되는 자세 정보를 획득할 수 있다. 매니퓰레이터(100)는 제2 링크(112)에 대응되는 자세 정보에 기초하여 제2 링크(112)에 대응되는 복수의 모터의 구동을 제어할 수 있다.Also, the manipulator 100 may obtain posture information corresponding to the second link 112 based on the third vector and the fourth vector. For example, the manipulator 100 may obtain posture information corresponding to the second link 112 based on [Equation 7], [Equation 8], and [Equation 9] described above. The manipulator 100 may control driving of a plurality of motors corresponding to the second link 112 based on posture information corresponding to the second link 112 .

이상에서는 사용자의 상박 및 하박에 대응되는 쿼터니언 정보로부터 매니퓰레이터의 상박 및 하박에 대응되는 모터의 입력 값을 획득하는 방법에 대해 설명하였다. 이하에서는 본 개시의 또 다른 실시 예에 따라 매니퓰레이터의 상박 및 하박의 자세와 독립적인 손의 자세를 추정하기 위한 방법에 대해 설명한다.In the above, a method for acquiring motor input values corresponding to the upper arm and lower arm of the manipulator from quaternion information corresponding to the upper arm and lower arm of the user has been described. Hereinafter, a method for estimating a hand posture independent of the postures of the upper arm and lower arm of the manipulator according to another embodiment of the present disclosure will be described.

도 8은 본 개시의 일 실시 예에 따른 매니퓰레이터의 제어 방법을 나타내는 흐름도이다.8 is a flowchart illustrating a control method of a manipulator according to an embodiment of the present disclosure.

사용자의 상박, 하박 또는 손에서 추정된 쿼터니언 정보는 모두 기준 좌표계를 중심으로 한 독립적인 동체 좌표계의 자세를 나타낸다. 이는 해당 부위 별로 추정된 쿼터니언 정보로부터 오일러 각을 산출하면 좌표변환을 통해 동체 좌표계의 자세를 기준 좌표계의 자세와 일치시킬 수 있음을 의미한다.All quaternion information estimated from the upper arm, lower arm, or hand of the user represents the posture of an independent body coordinate system centered on the reference coordinate system. This means that if the Euler angle is calculated from quaternion information estimated for each part, the posture of the moving body coordinate system can be matched to the posture of the reference coordinate system through coordinate transformation.

만약 매니퓰레이터의 손의 자세도 사용자의 실제 손의 자세의 경우와 같이, 매니퓰레이터의 상박 및 하박의 자세에 독립적(independent)이라면 매니퓰레이터의 손의 자세는 사용자의 손에서 추정된 쿼터니언 정보만으로 결정될 수 있으며 이는 매니퓰레이터의 손의 자세를 쉽게 구현할 수 있음을 의미한다.If the posture of the manipulator's hand is independent of the posture of the manipulator's upper arm and lower arm, as in the case of the actual hand posture of the user, the posture of the manipulator's hand can be determined only with quaternion information estimated from the user's hand, which is This means that the posture of the manipulator's hand can be easily implemented.

그러나, 매니퓰레이터의 손의 자세는 매니퓰레이터 하박의 자세에 따라 변하고 매니퓰레이터 하박의 자세는 매니퓰레이터 상박의 자세에 따라 변한다. 즉, 매니퓰레이터의 손의 자세는 매니퓰레이터 상박 및 하박의 자세에 종속적이라고 할 수 있다. 따라서 매니퓰레이터 손의 자세를 정확하게 제어하기 위해서는 매니퓰레이터 상박의 자세와 하박의 자세가 고려되어야 한다.However, the posture of the manipulator hand changes according to the posture of the manipulator lower arm, and the posture of the manipulator lower arm changes according to the posture of the manipulator upper arm. That is, it can be said that the posture of the manipulator's hand is dependent on the postures of the upper arm and lower arm of the manipulator. Therefore, in order to accurately control the posture of the manipulator hand, the posture of the upper arm and the lower arm of the manipulator should be considered.

따라서, 본 개시에 따른 매니퓰레이터는 매니퓰레이터의 상박 및 하박의 자세와 독립적인 손의 자세를 추정할 수 있는바, 이 과정은 핸드 밸런싱(hand balancing) 과정이라고 지칭될 수 있다. 이하에서는 본 개시에 따른 핸드 밸런싱 과정에 관련된 실시 예에 대해 설명한다. Therefore, the manipulator according to the present disclosure can estimate the posture of the manipulator's upper arm and lower arm and the posture of the hand independently, and this process may be referred to as a hand balancing process. Hereinafter, an embodiment related to a hand balancing process according to the present disclosure will be described.

이하에서 설명하는 실시 예에 있어서도 앞서 설명한 실시 예와 마찬가지로, 본 개시에 따른 매니퓰레이터는 도 1b에 도시된 바와 같은 구성을 포함하는 것을 전제로 한다. 구체적으로, 매니퓰레이터는 복수의 링크, 복수의 모터, 통신 인터페이스, 메모리 및 프로세서를 포함할 수 있다. In the embodiments described below, as in the previous embodiments, it is assumed that the manipulator according to the present disclosure includes the configuration shown in FIG. 1B. Specifically, the manipulator may include a plurality of links, a plurality of motors, a communication interface, a memory, and a processor.

그리고, 복수의 링크는 상박에 대응되는 제1 링크, 하박에 대응되는 제2 링크, 손에 대응되는 제3 링크를 포함하고, 복수의 모터는 제1 링크를 제1 축을 기준으로 회전시키는 제1 모터, 제1 링크를 제2 축을 기준으로 회전시키는 제2 모터, 제2 링크를 제1 축을 기준으로 회전시키는 제3 모터, 제2 링크를 제3 축을 기준으로 회전시키는 제4 모터, 제3 링크를 제1 축을 기준으로 회전시키는 제5 모터 및 제3 링크를 제2 축을 기준으로 회전시키는 제6 모터를 포함할 수 있다. The plurality of links include a first link corresponding to the upper arm, a second link corresponding to the lower arm, and a third link corresponding to the hand, and the plurality of motors rotate the first link about the first axis. A motor, a second motor for rotating the first link with respect to the second axis, a third motor for rotating the second link with respect to the first axis, a fourth motor for rotating the second link with respect to the third axis, and a third link It may include a sixth motor for rotating the fifth motor and the third link relative to the first axis for rotating the second axis.

그 밖의 매니퓰레이터의 구성에 대한 자세한 설명은 앞서 상술한 바 있으므로, 동일한 내용에 대한 중복 설명은 생략한다.Since a detailed description of the configuration of other manipulators has been previously described, duplicate descriptions of the same content will be omitted.

도 8을 참조하면, 매니퓰레이터는 복수의 모터 중 상박 및 하박에 대응되는 모터들에 대한 제1 회전각 정보에 기초하여, 하박에 대응되는 링크의 동체 좌표계에 대한 정보를 획득할 수 있다(S810).Referring to FIG. 8 , the manipulator may obtain information about the body coordinate system of the link corresponding to the lower arm based on first rotation angle information of motors corresponding to the upper arm and lower arm among a plurality of motors (S810). .

구체적으로, 매니퓰레이터는 제1 회전각 정보를 상박의 자세 및 하박의 자세를 나타내는 센싱값으로 변환하기 위한 좌표변환행렬을 산출하고, 좌표변환행렬에 기초하여 하박에 대응되는 동체 좌표계에 대한 정보를 획득할 수 있다. Specifically, the manipulator calculates a coordinate transformation matrix for converting the first rotation angle information into sensing values representing the posture of the upper arm and the posture of the lower arm, and obtains information on the body coordinate system corresponding to the lower arm based on the coordinate transformation matrix. can do.

다시 말해, 매니퓰레이터는 상박 및 하박에 대응되는 쿼터니언 정보를 이용하지 않고, 상박 및 하박에 대응되는 모터들에 대한 실제 모터 입력 값인 제1 회전각 정보에 기초하여 역으로 좌표변환행렬을 산출하고, 그에 기초하여 실제 하박에 대응되는 링크의 자세를 나타내는 동체 좌표계에 대한 정보를 획득할 수 있다. 이는 사용자의 팔에서 표현된 높은 차원의 자세 정보가 매니퓰레이터의 팔에 대응되는 링크에서 표현되는 낮은 차원의 자세로 차원이 축소되면서 발생하는 오차를 줄이기 위함이다.In other words, the manipulator does not use quaternion information corresponding to the upper arm and lower arm, and calculates a coordinate transformation matrix inversely based on the first rotation angle information, which is an actual motor input value for the motors corresponding to the upper arm and lower arm. Based on this, it is possible to obtain information on a body coordinate system representing a posture of a link corresponding to an actual lower arm. This is to reduce an error occurring when the high-dimensional posture information expressed in the user's arm is reduced in dimension to the low-dimensional posture expressed in the link corresponding to the manipulator's arm.

하박에 대응되는 링크의 동체 좌표계에 대한 정보가 획득되면, 매니퓰레이터는 동체 좌표계가 기 정의된 기준 좌표계와 평형을 이루도록 하는 평형각 정보를 획득할 수 있다(S820).When the information on the body coordinate system of the link corresponding to the lower arm is obtained, the manipulator may obtain balance angle information for equilibrating the body coordinate system with a predefined reference coordinate system (S820).

여기서, 평형각 정보는 롤(roll) 평형각 정보 및 피치(pitch) 평형각 정보를 포함할 수 있다. 그리고, 롤 평형각 정보는 동체 좌표계의 제1 축을 기준으로 동체 좌표계를 회전하는 경우 동체 좌표계의 제2 축이 기준 좌표계의 xy 평면과 평행이 되도록 하는 각도를 나타낼 수 있으며, 피치 평형각 정보는 롤 평형각 정보에 따라 회전된 동체 좌표계의 제2 축을 기준으로 동체 좌표계를 회전하는 경우 동체 좌표계의 제3 축이 기준 좌표계의 z축과 일치되도록 하는 각도를 나타낼 수 있다. 여기서, 동체 좌표계의 제1 축, 제2 축 및 제3 축은 동체 좌표계의 x축, y축 및 z축을 기준 좌표계의 x축, y축 및 z축과 구별하여 특정하기 위한 용어로 사용된다.Here, the balance angle information may include roll balance angle information and pitch balance angle information. In addition, the roll equilibrium angle information may indicate an angle at which a second axis of the body coordinate system is parallel to the xy plane of the reference coordinate system when the body coordinate system is rotated based on the first axis of the body coordinate system, and the pitch equilibrium angle information is the roll equilibrium angle information. When the body coordinate system is rotated based on the second axis of the body coordinate system rotated according to the equilibrium angle information, an angle at which the third axis of the body coordinate system coincides with the z-axis of the reference coordinate system may be indicated. Here, the first axis, the second axis, and the third axis of the moving body coordinate system are used as terms for specifying the x-axis, y-axis, and z-axis of the moving body coordinate system by distinguishing them from the x-axis, y-axis, and z-axis of the reference coordinate system.

구체적으로, 매니퓰레이터는 기준 좌표계를 중심으로 표현된 하박 동체 좌표계의 자세 정보에 기초하여, 동체 좌표계의 제1 축을 기준으로 하박 동체 좌표계를 회전하는 경우 제2 축이 기준 좌표계의 xy평면내에 포함되도록 하는 롤 평형각을 산출할 수 있다. Specifically, when the manipulator rotates the lower arm body coordinate system based on the first axis of the body coordinate system based on the posture information of the lower arm body coordinate system expressed around the reference coordinate system, the second axis is included in the xy plane of the reference coordinate system. The roll equilibrium angle can be calculated.

롤 평형각이 산출되면, 매니퓰레이터는 제1 축을 기준으로 하박 동체 좌표계를 롤 평형각만큼 회전시켰을 때 새로 만들어진 하박 동체 좌표계 의 자세 정보에 기초하여, 제2 축을 기준으로 하박 동체 좌표계를 회전하는 경우 제3 축이 기준 좌표계의 z축과 일치하도록 하는 피치 평형각을 산출할 수 있다.When the roll equilibrium angle is calculated, the manipulator rotates the lower arm body coordinate system based on the second axis based on the posture information of the newly created lower arm body coordinate system when the lower arm body coordinate system is rotated by the roll equilibrium angle with respect to the first axis. The pitch equilibrium angle can be calculated so that the three axes coincide with the z-axis of the reference coordinate system.

피치 평형각이 산출된 후, 매니퓰레이터 하박 동체 좌표계 의 제2 축을 중심으로 피치 평형각만큼 회전시키면, 하박 동체 좌표계의 제1 축 및 제2 축으로 이루어진 평면은 지구 중력가속도 벡터에 수직이 되며 이로써 핸드 밸런싱이 완료될 수 있다. 이는 매니퓰레이터의 상박 및 하박을 구동하는 모터의 회전각이 어떤 값을 가져도 독립적인 손의 자세를 얻을 수 있게 되었음을 의미한다.After the pitch equilibrium angle is calculated, when the manipulator is rotated by the pitch equilibrium angle around the second axis of the lower arm body coordinate system, the plane composed of the first axis and the second axis of the lower arm body coordinate system becomes perpendicular to the earth's gravitational acceleration vector, and thus the hand Balancing can be done. This means that independent hand postures can be obtained regardless of the rotation angles of the motors that drive the upper arm and lower arm of the manipulator.

롤 평형각과 피치 평형각을 산출하는 과정에 대해서는 도 8 내지 도 10을 참조하여 보다 구체적으로 설명한다.A process of calculating the roll equilibrium angle and the pitch equilibrium angle will be described in more detail with reference to FIGS. 8 to 10 .

평형각 정보가 획득된 후 외부 센서로부터 손의 자세를 나타내는 센싱값이 수신되면, 매니퓰레이터는 센싱값 및 평형각 정보에 기초하여 복수의 모터 중 손에 대응되는 모터들에 대한 제2 회전각 정보를 획득할 수 있다(S830). 제2 회전각 정보가 획득되면, 매니퓰레이터는 제2 회전각 정보에 기초하여 손에 대응되는 모터들을 제어할 수 있다(S840).When a sensing value representing the hand position is received from an external sensor after the equilibrium angle information is acquired, the manipulator generates second rotation angle information for motors corresponding to the hand among a plurality of motors based on the sensing value and the equilibrium angle information. It can be obtained (S830). When the second rotation angle information is acquired, the manipulator may control motors corresponding to the hand based on the second rotation angle information (S840).

구체적으로, 매니퓰레이터는 손의 자세를 나타내는 센싱값에 기초하여 손에 대응되는 모터들에 대한 제3 회전각 정보를 획득하고, 평형각 정보에 기초하여 제3 회전각 정보를 보정함으로써 제2 회전각 정보를 획득할 수 있다. 보다 구체적으로, 매니퓰레이터는 손에 대응되는 모터들에 대한 제3 회전각 정보에 평형각 정보를 더함으로써 제3 회전각 정보가 보정된 결과에 따른 제2 회전각 정보를 획득하고, 획득된 제2 회전각 정보에 기초하여 손에 대응되는 모터들을 제어할 수 있다.Specifically, the manipulator obtains third rotation angle information for motors corresponding to the hand based on a sensing value representing the posture of the hand, and corrects the third rotation angle information based on the equilibrium angle information to obtain the second rotation angle information. information can be obtained. More specifically, the manipulator obtains second rotation angle information according to a result of correcting the third rotation angle information by adding equilibrium angle information to third rotation angle information for motors corresponding to the hand, and obtains second rotation angle information according to a result of correcting the third rotation angle information. Motors corresponding to the hand may be controlled based on the rotation angle information.

이상에서 도 8을 참조하여 상술한 실시 예에 따르면, 매니퓰레이터 상박과 하박의 자세를 고려하여 사용자의 팔의 상박과 하박의 자세가 임의로 주어졌을 때 손의 자세가 기준 좌표계에 대해 틀어진 정도를 보상하는 핸드 밸런싱을 수행함으로써, 사용자의 팔에 부착된 외부 센서로부터 발생되는 자세 오차를 최소화하고 매니퓰레이터의 상박 및 하박의 자세와 독립적인 손의 자세를 추정할 수 있게 된다. 그리고, 이에 따라 사용자는 원하는 임무를 빠르고 정교하게 수행할 수 있게 된다.According to the embodiment described above with reference to FIG. 8 , when the postures of the upper arm and lower arm of the user's arm are arbitrarily given in consideration of the postures of the manipulator's upper arm and lower arm, the degree to which the hand posture is distorted with respect to the reference coordinate system is compensated. By performing hand balancing, it is possible to minimize a posture error generated from an external sensor attached to the user's arm and estimate a hand posture independent of the postures of the upper arm and lower arm of the manipulator. And, accordingly, the user can quickly and precisely perform the desired task.

도 9는 본 개시의 일 실시 예에 따른 좌표계에 대한 설명과 하박에 대응되는 링크의 동체 좌표계에 대한 정보를 획득하는 과정에 대한 설명을 위한 도면이다. 9 is a view for explaining a coordinate system according to an embodiment of the present disclosure and a process of obtaining information on a moving body coordinate system of a link corresponding to a lower arm.

도 9에 도시된 좌표계들은 본 개시에 따른 기준 좌표계(reference frame)와 매니퓰레이터에 포함된 복수의 링크 각각에 대응되는 동체 좌표계들, 즉 사용자의 상박(upper arm)에 대응되는 동체 좌표계, 하박(fore arm)에 대응되는 동체 좌표계 및 손(hand)에 대응되는 동체 좌표계를 각각 나타낸다. The coordinate systems shown in FIG. 9 are a reference frame according to the present disclosure and body coordinate systems corresponding to each of a plurality of links included in the manipulator, that is, a body coordinate system corresponding to the user's upper arm, lower arm (fore arm). The body coordinate system corresponding to the arm and the body coordinate system corresponding to the hand are respectively indicated.

여기서, 기준 좌표계의 요각은 상박의 요각에 따라 동일하게 움직이는 좌표계로 정의되며 모든 동체 좌표계는 기준 좌표계를 중심으로 해석된다. 그리고, 매니퓰레이터 상박의 동체 좌표계에서 제3 축과 제2 축 회전에 해당되는 요각 및 피치각, 그리고 매니퓰레이터 하박의 동체 좌표계에서 제1 축과 제3 축 회전에 해당되는 롤각 및 요각에 따라 매니퓰레이터의 상박 및 하박의 자세가 결정된다.Here, the yaw angle of the reference coordinate system is defined as a coordinate system that moves equally according to the yaw angle of the upper arm, and all body coordinate systems are interpreted centering on the reference coordinate system. And, according to the yaw and pitch angles corresponding to the rotation of the third axis and the second axis in the body coordinate system of the manipulator upper arm, and the roll angle and yaw angle corresponding to the rotation of the first and third axes in the body coordinate system of the manipulator lower arm, the upper arm of the manipulator and the posture of the lower arm is determined.

한편, 전술한 바와 같이, 매니퓰레이터 손의 자세를 정확하게 제어하기 위해서는 매니퓰레이터 상박의 자세와 하박의 자세가 고려되어야 하는바, 종래 기술에 따르면, 사용자의 손에 장착된 IMU 및 지자기센서로부터 얻은 쿼터니언 정보를 이용하여 손의 동체 좌표계와 기준 좌표계 사이의 좌표변환행렬을 구하고, 사용자 팔의 하박에 장착된 IMU 및 지자기 센서로부터 얻은 쿼터니언 정보를 이용하여 하박의 동체 좌표계 와 기준 좌표계 사이의 좌표변환행렬의 역행렬을 구하며, 그 후 손의 좌표변환행렬에 하박에서 얻은 좌표변환행렬의 역행렬을 곱함으로써 하박에 대한 손의 상대적인 자세를 구할 수 있다.On the other hand, as described above, in order to accurately control the posture of the manipulator hand, the posture of the upper arm and lower arm of the manipulator should be considered. According to the prior art, quaternion information obtained from the IMU and geomagnetic sensor mounted on the user's hand to obtain the coordinate transformation matrix between the body coordinate system of the hand and the reference coordinate system, and the inverse matrix of the coordinate transformation matrix between the body coordinate system and the reference coordinate system Then, by multiplying the coordinate transformation matrix of the hand by the inverse matrix of the coordinate transformation matrix obtained from the lower arm, the relative posture of the hand with respect to the lower arm can be obtained.

그러나 종래 기술에 따르면, 사용자가 팔을 굽히고 펴는 과정이나 팔을 들고 내리는 과정에서 사용자의 팔에 부착된 IMU 및 지자기 센서의 자세가 바뀔 때 오차가 발생할 수 있다. 예를 들어 사용자가 팔을 굽혔을 경우 상박의 근육이 뭉쳐지면 센서가 장착된 면의 기울기가 바뀌며, 이러한 현상은 쿼터니언 정보에 반영되어 상박의 자세 오차로 나타날 수 있다. 하박의 경우에도 상박의 경우와 유사한 이유로 인해 자세 오차가 발생할 수 있다. 그리고, 상박 및 하박의 자세 오차는 곧 손의 자세 오차를 유발하며, 그 결과 실제 손의 자세와 매니퓰레이터의 손의 자세 사이의 차이에 따라 사용자가 직관적이고 빠른 작업을 수행하기 어렵게 한다.However, according to the prior art, an error may occur when the posture of the IMU and the geomagnetic sensor attached to the user's arm is changed while the user bends and straightens the arm or raises and lowers the arm. For example, when the user bends the arm and muscles of the upper arm are united, the tilt of the surface on which the sensor is mounted changes, and this phenomenon is reflected in the quaternion information and may appear as an error in the posture of the upper arm. Even in the case of the lower arm, a posture error may occur due to a similar reason as the case of the upper arm. Further, the posture error of the upper arm and the lower arm causes the hand posture error, and as a result, it is difficult for the user to perform an intuitive and fast operation according to the difference between the actual hand posture and the manipulator's hand posture.

본 개시는 상술한 바와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 본 개시에 따르면, 하박의 자세를 구할 때 상박 및 하박에 장착된 IMU 및 지자기센서로부터 획득된 쿼터니언 정보를 이용하지 않고 실제 매니퓰레이터의 상박 및 하박에 장착된 모터의 회전각에 기초하여 획득된 쿼터니언 정보를 이용함으로써, 기준 좌표계에서 매니퓰레이터의 손이 평형을 유지할 수 있도록 한다. 이는 매뉴퓰레이터 손의 자세가 사용자 손에 부착된 IMU 및 지자기센서로부터 획득된 쿼터니언 정보에만 영향을 받게 된다는 것을 의미한다.The present disclosure is to solve the problems of the prior art as described above. According to the present disclosure, when obtaining the posture of the upper arm and the lower arm, quaternion information obtained from the IMU and the geomagnetic sensor mounted on the upper arm and the lower arm are not used, and the actual manipulator's By using the quaternion information obtained based on the rotation angles of the motors mounted on the upper and lower arms, the manipulator's hand can maintain equilibrium in the reference coordinate system. This means that the posture of the manipulator's hand is affected only by quaternion information obtained from the IMU and geomagnetic sensor attached to the user's hand.

이하에서는 먼저 [수학식 13], [수학식 14], [수학식 15]을 참조하여, 하박 동체 좌표계의 x, y, z축 단위벡터를 각각 X=[1,0,0] T , Y=[0,1,0] T , Z=[0,0,1] T 라고 하였을 때, 상박 및 하박의 자세 변화에 따른 단위 벡터의 변화를 기준 좌표계에서 나타내기 위한 방법에 대해 설명하고, 그 후 도 10 및 도 11을 참조하여 본 개시에 따른 롤 평형각의 획득 과정과 피치 평형 각의 획득 과정에 대해 설명한다.Hereinafter, referring to [Equation 13], [Equation 14], and [Equation 15], the x, y, and z-axis unit vectors of the lower body coordinate system are respectively X=[1,0,0] T , Y When =[0,1,0] T , Z=[0,0,1] T , a method for representing the change in unit vector according to the change in posture of the upper arm and lower arm in the reference coordinate system will be described. Later, with reference to FIGS. 10 and 11, a process of obtaining a roll equilibrium angle and a process of obtaining a pitch equilibrium angle according to the present disclosure will be described.

[수학식 13]는 단위벡터 X, Y, Z를 하박의 요각 회전을 통해 좌표변환을 수행한 경우, 변환된 벡터 X1, Y1, Z1을 구하는 과정을 나타낸다.[Equation 13] shows a process of obtaining transformed vectors X1, Y1, and Z1 when unit vectors X, Y, and Z are coordinately transformed through rotation of the yaw angle of the lower arm.

[수학식 13][Equation 13]

X1=C1*XX1=C1*X

Y1=C1*YY1=C1*Y

Z1=C1*ZZ1=C1*Z

Figure pat00106
Figure pat00106

[수학식 14]는 벡터 X1, Y1, Z1을 상박의 롤각 회전을 통해 좌표변환을 수행한 경우, 변환된 벡터 X2, Y2, Z2를 구하는 과정을 나타낸다.[Equation 14] shows a process of obtaining transformed vectors X2, Y2, Z2 when coordinate transformation is performed on vectors X1, Y1, and Z1 through rotation of the roll angle of the upper arm.

[수학식 14][Equation 14]

X2=C2*X1X2=C2*X1

Y2=C2*Y1Y2=C2*Y1

Z2=C2*Z1Z2=C2*Z1

Figure pat00107
Figure pat00107

[수학식 15]은 벡터 X2, Y2, Z2를 상박의 피치각 회전을 통해 좌표변환을 수행한 경우, 변환된 벡터 X3, Y3, Z3를 나타낸다.[Equation 15] represents transformed vectors X3, Y3, and Z3 when coordinate transformation is performed on vectors X2, Y2, and Z2 through rotation of the pitch angle of the upper arm.

[수학식 15][Equation 15]

X3=C3*X2X3=C3*X2

Y3=C3*Y2Y3=C3*Y2

Z3=C3*Z2Z3=C3*Z2

Figure pat00108
Figure pat00108

결론적으로, 벡터 X3, Y3, Z3는 좌표변환을 통해 매니퓰레이터 하박의 동체 좌표계 단위벡터인 X, Y, Z를 기준 좌표계에서 해석한 결과이며, 이를 도 10에 나타내었다. 매니퓰레이터의 손에 대응되는 두 모터의 회전량이 0일 때 하박의 동체 좌표계 는 항상 손등의 동체 좌표계와 동일하다. 따라서 손의 동체 좌표계가 기준 좌표계에서 평형 상태를 유지하도록 하기 위해서는 기준 좌표계에서 바라본 하박의 동체 좌표계 X3, Y3, Z3의 평형 조건을 찾으면 된다. 이에 대해서는 이하 도 10 및 도 11을 참조하여 설명한다.In conclusion, the vectors X3, Y3, and Z3 are the result of analyzing X, Y, and Z, which are unit vectors of the body coordinate system of the manipulator lower arm, in the reference coordinate system through coordinate transformation, and are shown in FIG. 10. When the rotation amount of the two motors corresponding to the manipulator's hand is 0, the body coordinate system of the lower arm is always the same as the body coordinate system of the back of the hand. Therefore, in order to keep the body coordinate system of the hand in an equilibrium state in the reference coordinate system, it is necessary to find the equilibrium conditions of X3, Y3, and Z3 of the body coordinate system of Habak viewed from the reference coordinate system. This will be described with reference to FIGS. 10 and 11 below.

도 10은 본 개시의 일 실시 예에 따른 롤 평형각의 획득 과정에 대해 상세하게 설명하기 위한 도면이다.10 is a diagram for explaining in detail a process of obtaining a roll equilibrium angle according to an embodiment of the present disclosure.

먼저 도 10에서 벡터 X3를 중심으로 좌표 회전을 하는 경우 벡터 Y3가 기준 좌표계의 XY평면위에 존재하도록 하는 롤 평형각(도 10의 roll_hand)를 정의할 수 있다. 즉, 롤 평형각은 Y3Z3 평면 및 XY평면의 교선 벡터 Vinter와 벡터 Y3가 이루는 각이다. 교선 벡터 Vinter는 하기의 [수학식 16]에 따라 산출될 수 있다. [수학식 16]은 복수의 수학식과 그에 대한 연산 과정을 포함한다.First, in the case of coordinate rotation around the vector X3 in FIG. 10, a roll equilibrium angle (roll_hand in FIG. 10) can be defined such that the vector Y3 exists on the XY plane of the reference coordinate system. That is, the roll equilibrium angle is the angle formed by the vector Y3 and the vector Vinter of the intersection of the Y3Z3 plane and the XY plane. The intersection vector Vinter can be calculated according to [Equation 16] below. [Equation 16] includes a plurality of equations and an operation process for them.

[수학식 16][Equation 16]

XY 평면의 수학식: z=0Equation in the XY plane: z=0

Y3Z3 평면의 수학식: X3[0]*x+X3[1]*y+X3[2]*z=0 (단, X3=[X3[0], X3[1], X3[2]])Equation of the Y3Z3 plane: X3[0]*x+X3[1]*y+X3[2]*z=0 (however, X3=[X3[0], X3[1], X3[2]])

위 두 식을 연립하면,Combining the above two equations,

X3[0]*x+X3[1]*y=0 & z=0,X3[0]*x+X3[1]*y=0 & z=0,

따라서 Vinter=[-X3[1], X3[0], 0].So Vinter=[-X3[1], X3[0], 0].

그리고, 롤 평형각은 하기의 [수학식 17]에 따라 산출될 수 있다. [수학식 17]은 복수의 수학식과 그에 대한 연산 과정을 포함한다.And, the roll equilibrium angle can be calculated according to [Equation 17] below. [Equation 17] includes a plurality of equations and an operation process for them.

[수학식 17][Equation 17]

벡터 Y3 및 벡터 Vinter의 외적을 Vcross라고 하면,Let Vcross be the cross product of vector Y3 and vector Vinter,

Vcross=cross_product(Y3, Vinter)이다. Vcross = cross_product (Y3, Vinter).

|V|를 벡터 V의 크기로 정의하면,Defining |V| as the magnitude of vector V,

if(Vcross[0]>=0)if(Vcross[0]>=0)

roll_hand= asin(|Vcross| / |Y3| / |Vinter|)roll_hand= asin(|Vcross| / |Y3| / |Vinter|)

elseelse

roll_hand= -1.0*asin(|Vcross| / |Y3| / |Vinter|)roll_hand= -1.0*asin(|Vcross| / |Y3| / |Vinter|)

if(X3[0]<0)if(X3[0]<0)

roll_hand=-1.0* roll_handroll_hand=-1.0* roll_hand

도 11은 본 개시의 일 실시 예에 따른 피치 평형각의 획득 과정에 대해 상세하게 설명하기 위한 도면이다.11 is a diagram for explaining in detail a process of obtaining a pitch equilibrium angle according to an embodiment of the present disclosure.

도 11에 도시된 바와 같이, 벡터 X3를 중심으로 회전각 -1.0*roll_hand만큼 벡터 Y3 및 벡터 Z3를 회전시키는 경우 각각 벡터 Y4, 벡터 Z4로 변환된다면, 벡터 Y4는 기준 좌표계의 XY 평면 위에 존재하게 된다.As shown in FIG. 11, when the vector Y3 and the vector Z3 are rotated by the rotation angle -1.0 * roll_hand around the vector X3, if they are converted into vectors Y4 and Z4, respectively, the vector Y4 exists on the XY plane of the reference coordinate system do.

여기서, 벡터 Z4와 기준 좌표계의 단위벡터 Z가 이루는 각도를 피치 평형각(도 11의 pitch_hand)으로 정의하면, 벡터 Y4를 기준으로 -1.0*pitch_hand 만큼 벡터 X3와 벡터 Z4를 회전시키는 경우, 벡터 Z4의 회전을 통해 변환된 벡터의 방향은 기준 좌표계의 Z축 방향과 일치하고 벡터 X3의 회전을 통해 변환된 벡터는 기준 좌표계의 XY평면 위에 존재하게 된다. 따라서 롤 평형각 및 피치 평형각에 기초하여 본 개시에 따른 핸드 밸런싱 과정을 수행할 수 있다.Here, if the angle formed by the vector Z4 and the unit vector Z of the reference coordinate system is defined as the pitch equilibrium angle (pitch_hand in FIG. 11), when the vector X3 and the vector Z4 are rotated by -1.0 * pitch_hand with respect to the vector Y4, the vector Z4 The direction of the vector transformed through the rotation of is coincident with the direction of the Z axis of the reference coordinate system, and the vector transformed through the rotation of the vector X3 exists on the XY plane of the reference coordinate system. Accordingly, the hand balancing process according to the present disclosure may be performed based on the roll equilibrium angle and the pitch equilibrium angle.

여기서, 벡터 X3를 중심으로 회전각 -1.0*roll_hand만큼 회전시켜 벡터 Z3가 벡터 Z4와 일치하는 경우를 쿼터니언 정보의 정의를 이용하여 나타내면 하기의 [수학식 18]과 같다. [수학식 18]은 복수의 수학식과 그에 대한 연산 과정을 포함한다.Here, the case where the vector Z3 coincides with the vector Z4 by rotating the vector X3 by the rotation angle -1.0 * roll_hand as the center is expressed using the definition of quaternion information as shown in [Equation 18] below. [Equation 18] includes a plurality of equations and an operation process for them.

[수학식 18][Equation 18]

쿼터니언 정보를 Q = [Q[0], Q[1], Q[2], Q[3]]라고 정의하면,If quaternion information is defined as Q = [Q[0], Q[1], Q[2], Q[3]],

쿼터니언 정보의 회전 벡터(rotation vector)는 Xu=X3/|X3|이고 회전각(rotation angle)은 롤 평형각이 된다.The rotation vector of the quaternion information is Xu=X3/|X3| and the rotation angle is the roll equilibrium angle.

Q=[cos(roll_hand/2), sin(roll_hand/2)*Xu[0], sin(roll_hand/2)*Xu[1], sin(roll_hand/2)*Xu[2] ]Q=[cos(roll_hand/2), sin(roll_hand/2)*Xu[0], sin(roll_hand/2)*Xu[1], sin(roll_hand/2)*Xu[2] ]

쿼터니언 정보가 주어졌을 때 이로부터 좌표변환 행렬 Cq가 계산되며, 벡터 Z3의 회전 변환 벡터 Z4를 구할 수 있다. 하기의 [수학식 19]은 이 과정을 나타낸다. [수학식 19]는 복수의 수학식과 그에 대한 연산 과정을 포함한다.When quaternion information is given, the coordinate transformation matrix Cq is calculated from it, and the rotation transformation vector Z4 of the vector Z3 can be obtained. [Equation 19] below shows this process. [Equation 19] includes a plurality of equations and an operation process for them.

[수학식 19][Equation 19]

Cq[0][0] = Q[0]*Q[0]+Q[1]*Q[1]-Q[2]*Q[2]-Q[3]*Q[3]Cq[0][0] = Q[0]*Q[0]+Q[1]*Q[1]-Q[2]*Q[2]-Q[3]*Q[3]

Cq[0][1] = 2.0*(Q[1]*Q[2]-Q[0]*Q[3])Cq[0][1] = 2.0*(Q[1]*Q[2]-Q[0]*Q[3])

Cq[0][2] = 2.0*(Q[1]*Q[3]+Q[0]*Q[2])Cq[0][2] = 2.0*(Q[1]*Q[3]+Q[0]*Q[2])

Cq[1][0] = 2.0*(Q[1]*Q[2]+Q[0]*Q[3])Cq[1][0] = 2.0*(Q[1]*Q[2]+Q[0]*Q[3])

Cq[1][1] = Q[0]*Q[0]-Q[1]*Q[1]+Q[2]*Q[2]-Q[3]*Q[3]Cq[1][1] = Q[0]*Q[0]-Q[1]*Q[1]+Q[2]*Q[2]-Q[3]*Q[3]

Cq[1][2] = 2.0*(Q[2]*Q[3]-Q[0]*Q[1])Cq[1][2] = 2.0*(Q[2]*Q[3]-Q[0]*Q[1])

Cq[2][0] = 2.0*(Q[1]*Q[3]-Q[0]*Q[2])Cq[2][0] = 2.0*(Q[1]*Q[3]-Q[0]*Q[2])

Cq[2][1] = 2.0*(Q[2]*Q[3]+Q[0]*Q[1])Cq[2][1] = 2.0*(Q[2]*Q[3]+Q[0]*Q[1])

Cq[2][2] = Q[0]*Q[0]-Q[1]*Q[1]-Q[2]*Q[2]+Q[3]*Q[3]Cq[2][2] = Q[0]*Q[0]-Q[1]*Q[1]-Q[2]*Q[2]+Q[3]*Q[3]

Z4=Cq*Z3Z4=Cq*Z3

마지막으로 피치 평형각은 하기의 [수학식 20]에 따라 산출될 수 있다. [수학식 20]는 복수의 수학식과 그에 대한 연산 과정을 포함한다.Finally, the pitch equilibrium angle may be calculated according to [Equation 20] below. [Equation 20] includes a plurality of equations and an operation process for them.

[수학식 20][Equation 20]

Vcross=cross_product(Z, Z4) Vcross=cross_product(Z, Z4)

여기서, Vcross=[Vcross[0], Vcross[1], Vcross[2]]는 Z와 Z4의 외적을 의미한다.Here, Vcross=[Vcross[0], Vcross[1], Vcross[2]] means the cross product of Z and Z4.

if(Vcross[0]>=0)if(Vcross[0]>=0)

pitch_hand = asin(|Vcross| / |Z4| )pitch_hand = asin(|Vcross| / |Z4| )

elseelse

pitch_hand = -1.0*asin(|Vcross| / |Z4|)pitch_hand = -1.0*asin(|Vcross| / |Z4|)

[수학식 17] 및 [수학식 20]에 따라 롤 평형각 및 피치 평형각이 산출되면, 매니퓰레이터는 손에 대응되는 두 모터를 롤 평형각 및 피치 평형각만큼 회전하여 핸드 밸런싱을 수행할 수 있다. When the roll balance angle and the pitch balance angle are calculated according to [Equation 17] and [Equation 20], the manipulator rotates the two motors corresponding to the hand by the roll balance angle and the pitch balance angle to perform hand balancing. .

도 12는 본 개시의 일 실시 예에 있어서 복수의 사용자가 매니퓰레이터를 제어하는 과정에 관련된 실시 예를 설명하기 위한 도면이다.12 is a diagram for explaining an embodiment related to a process of controlling a manipulator by a plurality of users according to an embodiment of the present disclosure.

도 1 내지 도 11을 참조하여 상술한 바와 같은 상박 및 하박에 대응되는 모터의 입력 값을 획득하는 과정과 핸드 밸린싱 과정에 대한 실시 예들은 복수의 사용자가 원격으로 하나의 매니퓰레이터를 제어하는 경우에도 적용될 수 있다.1 to 11, the process of acquiring the input values of the motors corresponding to the upper arm and lower arm and the hand balancing process described above can be performed even when a plurality of users remotely control one manipulator. can be applied

도 12를 참조하면, 매니퓰레이터는 매니퓰레이터가 동작하는 동안 제1 사용자의 동작 중지 명령을 수신할 수 있다(S1210). 그리고, 제1 사용자의 동작 중지 명령이 수신되면, 매니퓰레이터는 제1 사용자의 팔의 자세를 인식하기 위한 외부 센서를 비활성화하고(S1220), 매니퓰레이터의 동작을 중지할 수 있다(S1230). Referring to FIG. 12, the manipulator may receive an operation stop command from the first user while the manipulator is operating (S1210). Also, when the first user's operation stop command is received, the manipulator deactivates an external sensor for recognizing the first user's arm posture (S1220) and stops the manipulator operation (S1230).

구체적으로, 매니퓰레이터는 외부 센서를 비활성화하기 위한 제어 신호를 외부 센서로 전송함으로써 외부 센서를 비활성화할 수 있으며, 또한 동작 중지 명령 후 외부 센서로부터 센싱값이 수신되더라도 수신된 센싱 값에 기초하여 매니퓰레이터의 동작을 제어하지 않는 등의 방식으로 매니퓰레이터의 동작을 중지할 수 있다.Specifically, the manipulator may deactivate the external sensor by transmitting a control signal for deactivating the external sensor to the external sensor, and even if a sensing value is received from the external sensor after an operation stop command, the manipulator operates based on the received sensing value. It is possible to stop the operation of the manipulator in such a way as not to control it.

매니퓰레이터를 제어하기 위한 제2 사용자의 동작 개시 명령이 수신되면(S1240), 매니퓰레이터는 매니퓰레이터의 자세와 제2 사용자의 팔의 자세 사이의 차이를 보상하기 위한 가이드 화면에 대한 정보를 상기 제2 사용자의 사용자 단말로 전송할 수 있다(S1250). When the second user's command to start an operation for controlling the manipulator is received (S1240), the manipulator transmits information on a guide screen for compensating for a difference between the posture of the manipulator and the posture of the arm of the second user to the second user. It can be transmitted to the user terminal (S1250).

구체적으로, 매니퓰레이터는 가이드 화면에 대한 정보를 제2 사용자의 사용자 단말에 전송함으로써 제2 사용자의 사용자의 단말의 디스플레이에 표시되도록 할 수 있다. Specifically, the manipulator transmits information on the guide screen to the user terminal of the second user so that it is displayed on the display of the user terminal of the second user.

여기서, 가이드 화면은 제1 사용자의 팔의 마지막 자세에 따른 매니퓰레이터의 자세에 대한 정보 및 현재 제2 사용자의 팔의 자세에 대한 정보를 포함할 수 있으며, 이에 따라 제2 사용자는 제1 사용자의 팔의 마지막 자세에 따른 매니퓰레이터의 자세에 자신의 팔의 자세를 일치시키기 위해 자신의 팔의 동작을 변경할 수 있다.Here, the guide screen may include information about the posture of the manipulator according to the last posture of the arm of the first user and information about the current posture of the arm of the second user. You can change the motion of your arm to match the posture of your arm with the posture of the manipulator according to the last posture of .

매니퓰레이터의 자세와 제2 사용자의 팔의 자세의 차이가 임계 범위 내인 것으로 식별되면(S1260-Y), 매니퓰레이터는 제2 사용자의 팔의 자세에 기초하여 매니퓰레이터의 동작을 제어할 수 있다(S1270). 한편, 매니퓰레이터는 매니퓰레이터의 자세와 제2 사용자의 팔의 자세의 차이가 임계 범위 내인 것으로 식별될 때까지, 매니퓰레이터의 자세와 제2 사용자의 팔의 자세의 차이가 임계 범위 내인지 여부를 지속적으로 또는 주기적으로 식별할 수 있다(S1260-N).If the difference between the posture of the manipulator and the posture of the arm of the second user is identified as being within the threshold range (S1260-Y), the manipulator may control the operation of the manipulator based on the posture of the arm of the second user (S1270). Meanwhile, the manipulator continuously determines whether the difference between the posture of the manipulator and the posture of the arm of the second user is within the threshold range until it is identified that the difference between the posture of the manipulator and the posture of the arm of the second user is within the threshold range. It can be identified periodically (S1260-N).

이에 따라 본 개시에 따른 매니퓰레이터는 복수의 사용자가 원격으로 매니퓰레이터를 제어하는 경우에도, 복수의 사용자는 매니퓰레이터의 움직임에 대한 상황을 빠르게 이해하고 직관적으로 올바른 제어를 시도할 수 있으며, 그에 따라 복수의 사용자 간 동작 사이의 연속성을 보장하면서 안정적으로 매니퓰레이터를 운용할 수 있게 된다. 한편, 도 12의 실시 예는 한 명의 사용자가 여러 곳에 위치한 매니퓰레이터들을 제어하는 경우에도 마찬가지로 적용될 수 있다.Accordingly, in the manipulator according to the present disclosure, even when a plurality of users remotely control the manipulator, the plurality of users can quickly understand the movement situation of the manipulator and intuitively attempt correct control, and accordingly, the plurality of users It is possible to stably operate the manipulator while ensuring continuity between operations. Meanwhile, the embodiment of FIG. 12 may be similarly applied even when one user controls manipulators located in several places.

도 13은 본 개시의 일 실시 예에 있어서 매니퓰레이터의 반복 동작을 제어하는 것에 관련된 실시 예를 설명하기 위한 도면이다.13 is a diagram for explaining an embodiment related to controlling a repetitive motion of a manipulator according to an embodiment of the present disclosure.

도 1 내지 도 11을 참조하여 상술한 바와 같은 상박 및 하박에 대응되는 모터의 입력 값을 획득하는 과정과 핸드 밸린싱 과정에 대한 실시 예들은 매니퓰레이터가 일정한 동작을 반복적으로 수행하는 과정에도 적용될 수 있다.1 to 11 , the process of acquiring the input values of the motors corresponding to the upper arm and lower arm and the hand balancing process described above can be applied to a process in which the manipulator repeatedly performs a certain motion. .

매니퓰레이터는 사용자의 반복 동작 개시 명령을 수신할 수 있다(S1310). 그리고, 사용자의 반복 동작 개시 명령이 수신되면, 매니퓰레이터는 사용자의 팔의 자세에 기초하여 매니퓰레이터의 동작을 제어할 수 있다(S1320).The manipulator may receive a user's command to start repeating motion (S1310). Also, when the user's command to start a repeated motion is received, the manipulator may control the motion of the manipulator based on the posture of the user's arm (S1320).

매니퓰레이터의 동작이 개시된 후 사용자의 반복 동작 중지 명령이 수신되면(S1330), 매니퓰레이터는 반복 동작 개시 명령이 수신된 시점부터 반복 동작 중지 명령이 수신된 시점까지의 매니퓰레이터의 동작에 대응되는 제어 신호를 저장할 수 있다(S1340).When the user's command to stop the repeated motion is received after the manipulator starts operating (S1330), the manipulator stores control signals corresponding to the manipulator's motions from the time the command to start the repeated motion is received to the time the command to stop the repeated motion is received. It can (S1340).

매니퓰레이터의 동작에 대응되는 제어 신호가 저장되면, 매니퓰레이터는 제어 신호에 대응되는 매니퓰레이터의 모터 별 최대 작업 속도에 대한 정보를 사용자의 사용자 단말로 전송할 수 있다(S1350). 구체적으로, 매니퓰레이터는 제어 신호에 대응되는 매니퓰레이터의 모터 별 최대 작업 속도에 대한 정보를 사용자의 단말에 전송함으로써 사용자의 단말의 디스플레이에 표시되도록 할 수 있다. When the control signal corresponding to the operation of the manipulator is stored, the manipulator may transmit information on the maximum work speed of each motor of the manipulator corresponding to the control signal to the user terminal (S1350). Specifically, the manipulator transmits information on the maximum working speed of each motor of the manipulator corresponding to the control signal to the user's terminal, so that it is displayed on the display of the user's terminal.

최대 작업 속도에 대한 정보에 기초하여 매니퓰레이터의 작업 속도를 설정하기 위한 사용자 입력이 수신되면(S1360), 매니퓰레이터는 설정된 작업 속도에 기초하여 매니퓰레이터를 제어할 수 있다(S1370). When a user input for setting the working speed of the manipulator based on the information on the maximum working speed is received (S1360), the manipulator can control the manipulator based on the set working speed (S1370).

즉, 사용자는 필요에 따라 각 모터의 최대 허용 토크 범위 내에서 매니퓰레이터의 반복 속도를 지정할 수 있는바, 이에 따라 사용자의 작업 능률이 현저하게 향상될 수 있다.That is, the user can designate the repetition speed of the manipulator within the maximum permissible torque range of each motor as needed, and accordingly, the user's work efficiency can be remarkably improved.

한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.Meanwhile, various embodiments described above may be implemented in a recording medium readable by a computer or a similar device using software, hardware, or a combination thereof. In some cases, the embodiments described herein may be implemented in a processor itself. According to software implementation, embodiments such as procedures and functions described in this specification may be implemented as separate software modules. Each of the software modules may perform one or more functions and operations described herein.

한편, 상술한 본 개시의 다양한 실시 예들에 따른 처리 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 처리 동작을 특정 기기가 수행하도록 할 수 있다.Meanwhile, computer instructions for performing processing operations according to various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium. Computer instructions stored in such a non-transitory computer readable medium may cause a specific device to perform processing operations according to various embodiments described above when executed by a processor.

비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.A non-transitory computer readable medium is a medium that stores data semi-permanently and is readable by a device, not a medium that stores data for a short moment, such as a register, cache, or memory. Specific examples of the non-transitory computer readable media may include CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.Although the preferred embodiments of the present disclosure have been shown and described above, the present disclosure is not limited to the specific embodiments described above, and is commonly used in the technical field belonging to the present disclosure without departing from the gist of the present disclosure claimed in the claims. Of course, various modifications and implementations are possible by those with knowledge of, and these modifications should not be individually understood from the technical spirit or perspective of the present disclosure.

100: 매니퓰레이터 110: 링크
120: 핸드 130: 모터
140: 통신 인터페이스 150: 메모리
160: 프로세서
100: manipulator 110: link
120: hand 130: motor
140: communication interface 150: memory
160: processor

Claims (20)

매니퓰레이터에 있어서,
사용자의 상박, 하박 및 손 각각에 대응되는 복수의 링크;
상기 복수의 링크를 회전시키는 복수의 모터;
통신 인터페이스;
적어도 하나의 인스트럭션을 저장하는 메모리; 및
상기 적어도 하나의 인스트럭션을 실행하는 프로세서; 를 포함하고,
상기 프로세서는,
상기 복수의 모터 중 상기 상박 및 상기 하박에 대응되는 모터들에 대한 제1 회전각 정보에 기초하여, 상기 하박에 대응되는 링크의 동체 좌표계에 대한 정보를 획득하고,
상기 동체 좌표계가 기 정의된 기준 좌표계와 평형을 이루도록 하는 평형각 정보를 획득하며,
상기 통신 인터페이스를 통해 외부 센서로부터 상기 손의 자세를 나타내는 센싱값이 수신되면, 상기 센싱값 및 상기 평형각 정보에 기초하여 상기 복수의 모터 중 상기 손에 대응되는 모터들에 대한 제2 회전각 정보를 획득하며,
상기 제2 회전각 정보에 기초하여 상기 손에 대응되는 모터들을 제어하는
매니퓰레이터.
In the manipulator,
a plurality of links corresponding to each of the user's upper arm, lower arm, and hand;
A plurality of motors for rotating the plurality of links;
communication interface;
a memory storing at least one instruction; and
a processor to execute the at least one instruction; including,
the processor,
Obtaining information about a body coordinate system of a link corresponding to the lower arm based on first rotation angle information of motors corresponding to the upper arm and the lower arm among the plurality of motors;
Obtaining equilibrium angle information for equilibrating the body coordinate system with a predefined reference coordinate system;
When a sensing value representing the posture of the hand is received from an external sensor through the communication interface, second rotation angle information for motors corresponding to the hand among the plurality of motors based on the sensing value and the balance angle information to obtain,
Controlling motors corresponding to the hand based on the second rotation angle information
manipulator.
제1 항에 있어서,
상기 프로세서는,
상기 제1 회전각 정보를 상기 상박의 자세 및 상기 하박의 자세를 나타내는 센싱값으로 변환하기 위한 좌표변환행렬을 산출하고,
상기 좌표변환행렬에 기초하여 상기 하박에 대응되는 동체 좌표계에 대한 정보를 획득하는
매니퓰레이터.
According to claim 1,
the processor,
Calculating a coordinate transformation matrix for converting the first rotation angle information into sensed values representing the posture of the upper arm and the posture of the lower arm;
Obtaining information on the body coordinate system corresponding to the lower arm based on the coordinate transformation matrix
manipulator.
제1 항에 있어서,
상기 평형각 정보는 롤(roll) 평형각 정보 및 피치(pitch) 평형각 정보를 포함하고,
상기 롤 평형각 정보는 상기 동체 좌표계의 제1 축을 기준으로 상기 동체 좌표계를 회전하는 경우 상기 동체 좌표계의 제2 축이 상기 기준 좌표계의 xy 평면과 평행이 되도록 하는 각도를 나타내는
매니퓰레이터.
According to claim 1,
The equilibrium angle information includes roll equilibrium angle information and pitch equilibrium angle information,
The roll equilibrium angle information indicates an angle at which a second axis of the body coordinate system is parallel to the xy plane of the reference coordinate system when the body coordinate system is rotated based on the first axis of the body coordinate system.
manipulator.
제3 항에 있어서,
상기 피치 평형각 정보는 상기 롤 평형각 정보에 따라 회전된 상기 동체 좌표계의 제2 축을 기준으로 상기 동체 좌표계를 회전하는 경우 상기 동체 좌표계의 제3 축이 상기 기준 좌표계의 z축과 일치되도록 하는 각도를 나타내는
매니퓰레이터.
According to claim 3,
The pitch equilibrium angle information is an angle at which the third axis of the body coordinate system coincides with the z-axis of the reference coordinate system when the body coordinate system is rotated based on the second axis of the body coordinate system rotated according to the roll equilibrium angle information. representing
manipulator.
제4 항에 있어서,
상기 프로세서는,
손의 자세를 나타내는 센싱값에 기초하여 손에 대응되는 모터들에 대한 제3 회전각 정보를 획득하며,
상기 평형각 정보에 기초하여 제3 회전각 정보를 보정함으로써 제2 회전각 정보를 획득하는
매니퓰레이터.
According to claim 4,
the processor,
Obtaining third rotation angle information for motors corresponding to the hand based on a sensed value representing the posture of the hand;
Obtaining second rotation angle information by correcting third rotation angle information based on the equilibrium angle information
manipulator.
제5 항에 있어서,
상기 복수의 링크는 상기 상박에 대응되는 제1 링크, 상기 하박에 대응되는 제2 링크, 상기 손에 대응되는 제3 링크를 포함하고,
상기 복수의 모터는 상기 제1 링크를 제1 축을 기준으로 회전시키는 제1 모터, 상기 제1 링크를 제2 축을 기준으로 회전시키는 제2 모터, 상기 제2 링크를 상기 제1 축을 기준으로 회전시키는 제3 모터, 상기 제2 링크를 제3 축을 기준으로 회전시키는 제4 모터, 상기 제3 링크를 상기 제1 축을 기준으로 회전시키는 제5 모터 및 상기 제3 링크를 상기 제2 축을 기준으로 회전시키는 제6 모터를 포함하는
매니퓰레이터.
According to claim 5,
The plurality of links include a first link corresponding to the upper arm, a second link corresponding to the lower arm, and a third link corresponding to the hand;
The plurality of motors include a first motor for rotating the first link about a first axis, a second motor for rotating the first link about a second axis, and a rotation of the second link about the first axis. A third motor, a fourth motor for rotating the second link about a third axis, a fifth motor for rotating the third link about the first axis, and a rotation of the third link about the second axis Including a sixth motor
manipulator.
제1 항에 있어서,
상기 프로세서는,
상기 매니퓰레이터가 동작하는 동안 제1 사용자의 동작 중지 명령이 수신되면, 상기 제1 사용자의 팔의 자세를 인식하기 위한 외부 센서를 비활성화하고 상기 매니퓰레이터의 동작을 중지하며,
상기 매니퓰레이터를 제어하기 위한 제2 사용자의 동작 개시 명령이 수신되면, 상기 매니퓰레이터의 자세와 상기 제2 사용자의 팔의 자세 사이의 차이를 보상하기 위한 가이드 화면에 대한 정보를 상기 제2 사용자의 사용자 단말로 전송하도록 상기 통신 인터페이스를 제어하고,
상기 매니퓰레이터의 자세와 상기 제2 사용자의 팔의 자세의 차이가 기 설정된 임계 범위 내인 것으로 식별되면, 상기 제2 사용자의 팔의 자세에 기초하여 상기 복수의 모터를 제어하는
매니퓰레이터.
According to claim 1,
the processor,
If a first user's stop command is received while the manipulator is operating, an external sensor for recognizing the posture of the arm of the first user is deactivated and the manipulator stops operating;
When the second user's command to start an operation for controlling the manipulator is received, information on a guide screen for compensating for a difference between the posture of the manipulator and the posture of the arm of the second user is transmitted to the user terminal of the second user. Control the communication interface to transmit to,
Controlling the plurality of motors based on the posture of the arms of the second user when it is identified that the difference between the posture of the manipulator and the posture of the arms of the second user is within a preset threshold range.
manipulator.
제1 항에 있어서,
상기 프로세서는,
상기 사용자의 반복 동작 개시 명령이 수신되면, 상기 사용자의 팔의 자세에 기초하여 상기 복수의 모터를 제어하고,
상기 사용자의 반복 동작 중지 명령이 수신되면, 상기 반복 동작 개시 명령이 수신된 시점부터 상기 반복 동작 중지 명령이 수신된 시점까지의 상기 매니퓰레이터의 동작에 대응되는 제어 신호를 상기 메모리에 저장하며,
상기 제어 신호가 저장되면, 상기 제어 신호에 대응되는 상기 복수의 모터 별 최대 작업 속도에 대한 정보를 상기 사용자의 사용자 단말로 전송하도록 상기 통신 인터페이스를 제어하고,
상기 최대 작업 속도에 대한 정보에 기초하여 상기 매니퓰레이터의 작업 속도를 설정하기 위한 사용자 입력이 수신되면, 상기 설정된 작업 속도에 기초하여 상기 복수의 모터를 제어하는
매니퓰레이터.
According to claim 1,
the processor,
Controlling the plurality of motors based on the posture of the user's arm when the user's command to start the repetitive motion is received;
When the user's command to stop the repeated operation is received, a control signal corresponding to the manipulator operation from the time the command to start the repeated operation is received to the time the command to stop the repeated operation is received is stored in the memory;
When the control signal is stored, controlling the communication interface to transmit information on the maximum working speed for each of the plurality of motors corresponding to the control signal to the user terminal of the user,
Controlling the plurality of motors based on the set working speed when a user input for setting the working speed of the manipulator based on the information on the maximum working speed is received.
manipulator.
사용자의 상박, 하박 및 손 각각에 대응되는 복수의 링크와 상기 복수의 링크를 회전시키는 복수의 모터를 포함하는 매니퓰레이터의 제어 방법에 있어서,
상기 복수의 모터 중 상기 상박 및 상기 하박에 대응되는 모터들에 대한 제1 회전각 정보에 기초하여, 상기 하박에 대응되는 링크의 동체 좌표계에 대한 정보를 획득하는 단계;
상기 동체 좌표계가 기 정의된 기준 좌표계와 평형을 이루도록 하는 평형각 정보를 획득하는 단계;
외부 센서로부터 상기 손의 자세를 나타내는 센싱값이 수신되면, 상기 센싱값 및 상기 평형각 정보에 기초하여 상기 복수의 모터 중 상기 손에 대응되는 모터들에 대한 제2 회전각 정보를 획득하는 단계; 및
상기 제2 회전각 정보에 기초하여 상기 손에 대응되는 모터들을 제어하는 단계;를 포함하는
매니퓰레이터의 제어 방법.
A control method of a manipulator including a plurality of links corresponding to each of a user's upper arm, lower arm, and hand and a plurality of motors rotating the plurality of links,
obtaining information about a moving body coordinate system of a link corresponding to the lower arm based on first rotation angle information of motors corresponding to the upper arm and the lower arm among the plurality of motors;
obtaining equilibrium angle information for equilibrating the body coordinate system with a predefined reference coordinate system;
obtaining second rotation angle information for motors corresponding to the hand among the plurality of motors based on the sensed value and the balance angle information when a sensed value representing the posture of the hand is received from an external sensor; and
Controlling motors corresponding to the hand based on the second rotation angle information; comprising
Manipulator control method.
제9 항에 있어서,
상기 동체 좌표계에 대한 정보를 획득하는 단계는,
상기 제1 회전각 정보를 상기 상박의 자세 및 상기 하박의 자세를 나타내는 센싱값으로 변환하기 위한 좌표변환행렬을 산출하는 단계; 및
상기 좌표변환행렬에 기초하여 상기 하박에 대응되는 동체 좌표계에 대한 정보를 획득하는 단계; 를 포함하는
매니퓰레이터의 제어 방법.
According to claim 9,
The step of obtaining information on the moving body coordinate system,
calculating a coordinate conversion matrix for converting the first rotation angle information into sensed values representing the posture of the upper arm and the posture of the lower arm; and
obtaining information on a body coordinate system corresponding to the lower arm based on the coordinate transformation matrix; containing
Manipulator control method.
제9 항에 있어서,
상기 평형각 정보는 롤(roll) 평형각 정보 및 피치(pitch) 평형각 정보를 포함하고,
상기 롤 평형각 정보는 상기 동체 좌표계의 제1 축을 기준으로 상기 동체 좌표계를 회전하는 경우 상기 동체 좌표계의 제2 축이 상기 기준 좌표계의 xy 평면과 평행이 되도록 하는 각도를 나타내는
매니퓰레이터의 제어 방법.
According to claim 9,
The equilibrium angle information includes roll equilibrium angle information and pitch equilibrium angle information,
The roll equilibrium angle information indicates an angle at which a second axis of the body coordinate system is parallel to the xy plane of the reference coordinate system when the body coordinate system is rotated based on the first axis of the body coordinate system.
Manipulator control method.
제11 항에 있어서,
상기 피치 평형각 정보는 상기 롤 평형각 정보에 따라 회전된 상기 동체 좌표계의 제2 축을 기준으로 상기 동체 좌표계를 회전하는 경우 상기 동체 좌표계의 제3 축이 상기 기준 좌표계의 z축과 일치되도록 하는 각도를 나타내는
매니퓰레이터의 제어 방법.
According to claim 11,
The pitch equilibrium angle information is an angle at which the third axis of the body coordinate system coincides with the z-axis of the reference coordinate system when the body coordinate system is rotated based on the second axis of the body coordinate system rotated according to the roll equilibrium angle information. representing
Manipulator control method.
제12 항에 있어서,
상기 제2 회전각 정보를 획득하는 단계는,
손의 자세를 나타내는 센싱값에 기초하여 손에 대응되는 모터들에 대한 제3 회전각 정보를 획득하는 단계; 및
상기 평형각 정보에 기초하여 제3 회전각 정보를 보정함으로써 제2 회전각 정보를 획득하는 단계; 를 포함하는
매니퓰레이터의 제어 방법.
According to claim 12,
Obtaining the second rotation angle information,
obtaining third rotation angle information about motors corresponding to the hand based on a sensed value representing a posture of the hand; and
obtaining second rotation angle information by correcting third rotation angle information based on the equilibrium angle information; containing
Manipulator control method.
제13 항에 있어서,
상기 복수의 링크는 상기 상박에 대응되는 제1 링크, 상기 하박에 대응되는 제2 링크, 상기 손에 대응되는 제3 링크를 포함하고,
상기 복수의 모터는 상기 제1 링크를 제1 축을 기준으로 회전시키는 제1 모터, 상기 제1 링크를 제2 축을 기준으로 회전시키는 제2 모터, 상기 제2 링크를 상기 제1 축을 기준으로 회전시키는 제3 모터, 상기 제2 링크를 제3 축을 기준으로 회전시키는 제4 모터, 상기 제3 링크를 상기 제1 축을 기준으로 회전시키는 제5 모터 및 상기 제3 링크를 상기 제2 축을 기준으로 회전시키는 제6 모터를 포함하는
매니퓰레이터의 제어 방법.
According to claim 13,
The plurality of links include a first link corresponding to the upper arm, a second link corresponding to the lower arm, and a third link corresponding to the hand;
The plurality of motors include a first motor for rotating the first link about a first axis, a second motor for rotating the first link about a second axis, and a rotation of the second link about the first axis. A third motor, a fourth motor for rotating the second link about a third axis, a fifth motor for rotating the third link about the first axis, and a rotation of the third link about the second axis Including a sixth motor
Manipulator control method.
매니퓰레이터에 있어서,
제1 링크 및 제2 링크를 포함하는 복수의 링크;
상기 복수의 링크를 회전시키는 복수의 모터;
회로를 포함하는 통신 인터페이스;
적어도 하나의 인스트럭션을 저장하는 메모리; 및
프로세서;를 포함하고,
상기 프로세서는,
상기 통신 인터페이스를 통해 사용자 팔의 자세를 감지하기 위한 외부 센서의 센싱값을 수신하고,
상기 센싱값에 기초하여 획득된 행렬 및 상기 메모리에 기저장된 제1 벡터에 기초하여 상기 사용자 팔의 자세에 대응되는 제2 벡터를 획득하고,
상기 제2 벡터에 기초하여 상기 사용자 팔의 자세 정보를 획득하고,
상기 사용자 팔의 자세 정보에 기초하여 상기 복수의 모터의 구동을 제어하고,
상기 프로세서는,
제1 외부 센서의 센싱값에 기초하여 상기 제1 링크에 대응되는 제3 벡터를 획득하고,
제2 외부 센서의 센싱값에 기초하여 상기 제2 링크에 대응되는 제4 벡터를 획득하고,
상기 제3 벡터 및 상기 제4 벡터에 기초하여 상기 제2 링크에 대응되는 자세 정보를 획득하고,
상기 제2 링크에 대응되는 자세 정보에 기초하여 상기 제2 링크에 대응되는 상기 복수의 모터의 구동을 제어하는
매니퓰레이터.
In the manipulator,
a plurality of links including a first link and a second link;
A plurality of motors for rotating the plurality of links;
a communication interface comprising circuitry;
a memory storing at least one instruction; and
Including; processor;
the processor,
Receiving a sensing value of an external sensor for detecting a posture of a user's arm through the communication interface;
Obtaining a second vector corresponding to the posture of the user's arm based on a matrix obtained based on the sensed value and a first vector pre-stored in the memory;
Obtaining posture information of the user's arm based on the second vector;
Control driving of the plurality of motors based on the posture information of the user's arm;
the processor,
Obtaining a third vector corresponding to the first link based on a sensing value of a first external sensor;
Obtaining a fourth vector corresponding to the second link based on a sensing value of a second external sensor;
obtaining attitude information corresponding to the second link based on the third vector and the fourth vector;
Controlling driving of the plurality of motors corresponding to the second link based on attitude information corresponding to the second link
manipulator.
제15 항에 있어서,
상기 프로세서는,
상기 센싱값을 상기 메모리에 저장된 AHRS(Altitude and Heading Reference System) 알고리즘에 적용하여 상기 사용자의 팔의 자세에 대응되는 쿼터니언(quaternion) 벡터를 획득하고,
상기 쿼터니언 벡터에 기초하여 상기 행렬을 획득하는
매니퓰레이터.
According to claim 15,
the processor,
Acquiring a quaternion vector corresponding to the posture of the user's arm by applying the sensed value to an Altitude and Heading Reference System (AHRS) algorithm stored in the memory;
Obtaining the matrix based on the quaternion vector
manipulator.
제15 항에 있어서,
상기 제2 벡터는,
x축에 대응되는 제2-1 벡터 및 z축에 대응되는 제2-2 벡터를 포함하고,
상기 사용자 팔의 자세 정보는,
x축에 대응되는 롤(roll) 각도, y축에 대응되는 피치(pitch) 각도 및 z축에 대응되는 요(yaw) 각도를 포함하고,
상기 프로세서는,
상기 제2-1 벡터에 기초하여 제1 요 각도를 획득하고,
상기 제2-2 벡터에 기초하여 제2 요 각도를 획득하고,
상기 제1 요 각도 및 상기 제2 요 각도에 기초하여 상기 요 각도를 획득하는
매니퓰레이터.
According to claim 15,
The second vector is,
Including the 2-1 vector corresponding to the x-axis and the 2-2 vector corresponding to the z-axis,
The posture information of the user's arm,
Including a roll angle corresponding to the x-axis, a pitch angle corresponding to the y-axis, and a yaw angle corresponding to the z-axis,
the processor,
Obtaining a first yaw angle based on the 2-1 vector,
Obtaining a second yaw angle based on the 2-2 vector,
Obtaining the yaw angle based on the first yaw angle and the second yaw angle
manipulator.
제17 항에 있어서,
상기 프로세서는,
기정의된 가중치 함수에 기초하여 상기 제1 요 각도 및 상기 제2 요 각도에 가중치를 적용하여 상기 요 각도를 획득하는
매니퓰레이터.
According to claim 17,
the processor,
Obtaining the yaw angle by applying a weight to the first yaw angle and the second yaw angle based on a predefined weight function
manipulator.
제15 항에 있어서,
상기 프로세서는,
상기 사용자 팔의 초기 설정 자세에 대응되는 제1 센싱값에 기초하여 제1 행렬을 획득하여 상기 메모리에 저장하고, 상기 사용자 팔의 현재 자세에 대응되는 제2 센싱값에 기초하여 획득된 제2 행렬 및 상기 제1 행렬에 기초하여 상기 행렬을 획득하는
매니퓰레이터.
According to claim 15,
the processor,
A first matrix is obtained based on a first sensed value corresponding to the initially set posture of the user's arm, stored in the memory, and a second matrix obtained based on a second sensed value corresponding to the current posture of the user's arm. and obtaining the matrix based on the first matrix.
manipulator.
제15 항에 있어서,
상기 프로세서는,
상기 제3 벡터 및 상기 제4 벡터의 내적에 기초하여 x축에 대응되는 각도를 획득하고,
상기 제3 벡터 및 상기 제4 벡터의 외적에 기초하여 z축에 대응되는 각도를 획득하는
매니퓰레이터.
According to claim 15,
the processor,
Obtaining an angle corresponding to the x-axis based on a dot product of the third vector and the fourth vector;
Obtaining an angle corresponding to the z-axis based on the cross product of the third vector and the fourth vector
manipulator.
KR1020220002833A 2021-07-21 2022-01-07 Manipulator and method for controlling thereof KR20230014611A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP22846089.5A EP4309859A1 (en) 2021-07-21 2022-07-05 Manipulator and control method therefor
CN202280042963.0A CN117500644A (en) 2021-07-21 2022-07-05 Manipulator and control method thereof
PCT/KR2022/009633 WO2023003217A1 (en) 2021-07-21 2022-07-05 Manipulator and control method therefor
US18/305,671 US20230256587A1 (en) 2021-07-21 2023-04-24 Manipulator and method for controlling thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210095697 2021-07-21
KR1020210095697 2021-07-21

Publications (1)

Publication Number Publication Date
KR20230014611A true KR20230014611A (en) 2023-01-30

Family

ID=85106175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220002833A KR20230014611A (en) 2021-07-21 2022-01-07 Manipulator and method for controlling thereof

Country Status (1)

Country Link
KR (1) KR20230014611A (en)

Similar Documents

Publication Publication Date Title
US10828782B2 (en) Robot system, robot, and robot control apparatus
USRE47553E1 (en) Robot, robot system, control device, and control method
US11093036B2 (en) Tracking arm movements to generate inputs for computer systems
US11090814B2 (en) Robot control method
US20170259433A1 (en) Robot control device, information processing device, and robot system
US10540006B2 (en) Tracking torso orientation to generate inputs for computer systems
US20150202775A1 (en) Robot controller, robot system, robot control method
US11548168B2 (en) Control device, robot control method, and robot control system
US20170277167A1 (en) Robot system, robot control device, and robot
EP2865496A1 (en) Latency smoothing for teleoperations system
Bhuyan et al. Gyro-accelerometer based control of a robotic arm using AVR microcontroller
US20150258684A1 (en) Robot, robot system, and control device
US11009964B2 (en) Length calibration for computer models of users to generate inputs for computer systems
US20180085920A1 (en) Robot control device, robot, and robot system
TWI476733B (en) Three-dimensional space motion reconstruction method and apparatus constructed thereby
Parga et al. Tele-manipulation of robot arm with smartphone
JP6455869B2 (en) Robot, robot system, control device, and control method
CN105487671A (en) Prop applied to virtual reality system
KR20230014611A (en) Manipulator and method for controlling thereof
Parga et al. Smartphone-based human machine interface with application to remote control of robot arm
EP4309859A1 (en) Manipulator and control method therefor
JP2011067884A (en) Robot control system, robot control method, robot control device, and program, applied to high speed high precision contact work,
CN117500644A (en) Manipulator and control method thereof
CN110877335A (en) Self-adaptive unmarked mechanical arm track tracking method based on hybrid filter
WO2022102403A1 (en) Information processing device, information processing method, and program