KR20230014611A - Manipulator and method for controlling thereof - Google Patents
Manipulator and method for controlling thereof Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004891 communication Methods 0.000 claims abstract description 31
- 239000013598 vector Substances 0.000 claims description 145
- 239000011159 matrix material Substances 0.000 claims description 49
- 230000033001 locomotion Effects 0.000 claims description 36
- 230000009466 transformation Effects 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000003252 repetitive effect Effects 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 3
- 230000036544 posture Effects 0.000 description 128
- 230000008569 process Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 20
- 210000003811 finger Anatomy 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000003205 muscle Anatomy 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 210000000707 wrist Anatomy 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 210000000245 forearm Anatomy 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/088—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/006—Controls for manipulators by means of a wireless system for controlling one or several manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1612—Programme controls characterised by the hand, wrist, grip control
Abstract
Description
본 개시는 매니퓰레이터 및 그 제어 방법으로, 보다 상세하게는, 사용자 팔의 움직임을 따라 움직이는 매니퓰레이터 및 그 제어 방법에 관한 것이다.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
매니퓰레이터(100)는 사용자 팔(1)의 상박(A)에 대응되는 제1 링크(111) 및 하박(B)에 대응되는 제2 링크(112)를 포함할 수 있다. 또한, 매니퓰레이터(100)는 복수의 핑거(121)를 포함하는 핸드(120)를 포함할 수 있다. 매니퓰레이터(100)는 사용자 팔(1)의 자세 정보에 기초하여 동작할 수 있다. 예를 들어, 매니퓰레이터(100)는 핸드(120)를 이용하여 오브젝트를 파지할 수 있다.The
도 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
제1 모터(131) 및 제2 모터(132)는 제1 링크(111)와 연결되어 제1 링크(111)를 회전시킬 수 있다. 구체적으로, 제1 모터(131)는 제1 축을 기준으로 제1 링크(111)를 회전시킬 수 있다. 여기서, 제1 축은 후술하는 동체 좌표계의 x축을 의미한다. 제2 모터(132)는 제2 축을 기준으로 제1 링크(111)를 회전시킬 수 있다. 여기서, 제2 축은, 동체 좌표계의 y축을 의미한다.The
제3 모터(133) 및 제4 모터(134)는 제1 링크(111) 및 제2 링크(112)와 연결되어 제2 링크(112)를 회전시킬 수 있다. 구체적으로, 제3 모터(133)는 제1 축을 기준으로 제2 링크(112)를 회전시킬 수 있다. 제4 모터(134)는 제3 축을 기준으로 제2 링크(112)를 회전시킬 수 있다. 여기서, 제3 축은 동체 좌표계의 z축을 의미한다.The
제5 모터(135) 및 제6 모터(136)는 제2 링크(112) 및 핸드(120)와 연결되어 핸드(120)를 회전시킬 수 있다. 구체적으로, 제5 모터(135)는 제1 축을 기준으로 핸드(120)를 회전시킬 수 있다. 제6 모터(136)는 제2 축을 기준으로 핸드(120)를 회전시킬 수 있다.The
한편, 도 1b에 따른 링크(110) 및 모터(130)의 개수는 일 실시 예에 불과하며, 링크(110) 및 모터(130)의 개수가 이에 한정되는 것은 아님을 밝혀둔다.Meanwhile, the number of
도 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
링크(110)는 사용자(즉, 사람) 팔의 상박에 대응되는 제1 링크(111) 및 하박에 대응되는 제2 링크(112)를 포함할 수 있다. 제1 링크(111) 및 제2 링크(112)는 모터(120)를 통해 연결되며, 모터(120)에 구동에 따라 3축을 따라 회전할 수 있다.The
핸드(120)는 복수의 핑거를 포함할 수 있다. 핸드(120)는 프로세서(160)의 제어에 의해 각 핑거를 움직여 오브젝트를 파지하거나 파지를 해제할 수 있다.
모터(130)는 복수의 모터(131, 132, 133, 134, 135, 136)를 포함할 수 있다. 모터(130)는 프로세서(160)의 제어에 의해 구동되어 링크(110) 및 핸드(120)를 이동시킬 수 있다.The
통신 인터페이스(140)는 적어도 하나의 회로를 포함하며 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 기기와 통신을 수행할 수 있다. 예를 들어, 통신 인터페이스(140)는 외부 센서(10)로부터 외부 센서(10)의 센싱 값을 수신할 수 있다. The
여기서, 외부 센서(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
한편, 통신 인터페이스(140)는 무선 통신 모듈 및 유선 통신 모듈을 포함할 수 있다. 무선 통신 모듈은 BLE(Bluetooth Low Energy) 모듈, 와이파이 통신 모듈, 셀룰러 통신모듈, 3G(3세대) 이동통신 모듈, 4G(4세대) 이동통신 모듈, 4세대 LTE(Long Term Evolution) 통신 모듈, 5G(5세대) 이동통신 모듈 중 적어도 하나를 포함할 수 있다. 유선 통신 모듈은 이더넷 모듈을 포함할 수 있다. 또한, 통신 인터페이스(140)는 적어도 하나의 통신 단자를 포함할 수 있다.Meanwhile, the
메모리(150)는 매니퓰레이터(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 매니퓰레이터(100)의 구성요소와 관련된 명령 또는 데이터를 저장할 수 있다. 예로, 메모리(150)는 외부 센서(10)의 센싱 값에 기초하여 쿼터니언(quaternion) 정보를 획득하기 위한 AHRS(Altitude and Heading Reference System) 알고리즘에 관한 데이터를 저장할 수 있다. 한편, 메모리(150)는 비휘발성 메모리(ex: 하드 디스크, SSD(Solid state drive), 플래시 메모리), 휘발성 메모리 등으로 구현될 수 있다.The
프로세서(160)는 메모리(150)와 전기적으로 연결되어 매니퓰레이터(100)의 전반적인 기능 및 동작을 제어할 수 있다. 특히, 프로세서(160)는 링크(110) 및 핸드(120)를 회전시키는 모터(130)의 구동을 제어할 수 있다. The
이하에서는, 사용자 팔(1)의 상박에 대응되는 제1 링크(111)를 회전시키는 제1 모터(131) 및 제2 모터(132)의 구동을 제어하기 위한 프로세서(160)의 동작에 대하여 설명하도록 한다. 동작 설명을 위해 매니퓰레이터(100)의 제1 링크(111), 제2 링크(112), 핸드(120)에서 정의된 동체 좌표계(Body Frame)와 항법 좌표계(Navigation Frame)를 먼저 정의한다. Hereinafter, an operation of the
동체 좌표계란, 매니퓰레이터(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
항법 좌표계란, 매니퓰레이터(100)의 움직임과 관계없이 고정된 좌표계이다. 항법 좌표계 및 동체 좌표계 사이의 좌표변환 행렬은 쿼터니언 정보나 오일러각에 기초하여 획득될 수 있다.The navigation coordinate system is a fixed coordinate system regardless of the movement of the
프로세서(160)는 외부 센서의 센싱 값에 기초하여 쿼터니언 정보를 획득할 수 있다. 쿼터니언 정보는, 사용자 팔의 회전에 대한 정보를 나타내며, 회전 벡터 및 회전각을 포함할 수 있다. 프로세서(160)는 외부 센서의 센싱 값을 메모리(150)에 저장된 AHRS 알고리즘에 적용하여 쿼터니언 정보를 획득할 수 있다. 예로, 쿼터니언 정보는, [수학식 1]과 같은 벡터(q)일 수 있다. The
[수학식 1][Equation 1]
한편, 물리적으로 회전 축이 고정되어 있는 로봇 암 제어에서는, 쿼터니언 정보가 오일러 각으로 변환될 필요가 있다. 이에, 기존의 로봇 암 제어 기술은, [수학식 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]
그러나, [수학식 2]에 따르면, 피치 각()이 +90도나 -90도로 접근할수록 롤 각() 및 요 각()의 분자 및 분모가 0으로 수렴하게 되어, 롤 각() 및 요 각()의 추정이 어려워지는 문제가 발생한다. 이를, 소위 짐벌 락 문제(Gimbal lock problem)라 한다.However, according to [Equation 2], the pitch angle ( ) approaches +90 degrees or -90 degrees, the roll angle ( ) and yaw angle ( ), the numerator and denominator converge to 0, so that the roll angle ( ) and yaw angle ( ) becomes difficult to estimate. This is called the so-called gimbal lock problem.
한편, 본 개시에 따른 프로세서(160)는 이 같은 짐벌 락 문제를 해결하기 위하여, 쿼터니언 정보에 기초하여 획득된 행렬을 이용하여 항법 좌표계에서 해석된 동체 좌표계의 축 별 벡터를 획득한다. 예로, 프로세서(160)는 아래의 [수학식 3]에 기초하여 쿼터니언 정보로부터 동체 좌표계에서의 항법 좌표계로의 좌표변환행렬()을 획득할 수 있다. 여기서, 좌표변환행렬은 매니퓰레이터(100)를 기준으로 한 제1 벡터를 기준 좌표계의 제2 벡터로 변환하기 위한 행렬을 의미한다.Meanwhile, in order to solve the gimbal lock problem, the
[수학식 3][Equation 3]
도 3은 벡터의 좌표 변환을 설명하기 위한 도면이다. 3 is a diagram for explaining coordinate conversion of vectors.
도 3을 참조하면, 매니퓰레이터(100)를 기준으로 한 제1 벡터()는 각각 동체 좌표계에서 표현된 x축 방향의 단위 벡터() 및 z축 방향의 단위 벡터()일 수 있다. 제1 벡터()는 미리 정해진 값으로 메모리(150)에 저장되어 있을 수 있다.Referring to FIG. 3 , a first vector based on the manipulator 100 ( ) is a unit vector in the x-axis direction, each expressed in the body coordinate system ( ) and the unit vector in the z-axis direction ( ) can be. The first vector ( ) may be stored in the
프로세서(160)는 동체 좌표계에서 항법 좌표계로의 좌표변환행렬() 및 제1 벡터()에 기초하여 제2 벡터()를 획득할 수 있다. 구체적으로, 프로세서(160)는 [수학식 4]에 기초하여 항법 좌표계에서 표현된 제2 벡터()를 획득할 수 있다. 제2 벡터()는 제2-1 벡터() 및 제2-2 벡터()를 포함할 수 있다. 한편, 본 개시의 벡터의 윗 첨자 b, n은 각각 동체 좌표계 및 항법 좌표계에서 해석된 위치 벡터를 의미한다.The
[수학식 4][Equation 4]
프로세서(160)는 제2 벡터()에 기초하여 사용자 팔의 자세 정보를 획득할 수 있다. 사용자 팔의 자세 정보는, x축에 대응되는 롤(roll) 각도, y축에 대응되는 피치(pitch) 각도 및 z축에 대응되는 요(yaw) 각도를 포함할 수 있다. 본 발명에서는 제1 링크(111)의 롤(roll) 각은 무시하였다. 제1 링크(111)의 롤(roll) 회전각에 의한 제2 링크(112) 및 핸드(120)의 자세 변화는 제3 모터(133)로 표현될 수 있다. 항법 좌표계를 기준으로 제 1링크(111)의 모든 위치 벡터는 제1 모터 (131) 및 제2 모터(132)에 의해 각각 요각 및 피치각으로 표현될 수 있다.The
프로세서(160)는 [수학식 5]에 기초하여 피치 각도(pitch), 제1 요 각도(yaw1) 및 제2 요 각도(yaw2)를 획득할 수 있다.The
[수학식 5][Equation 5]
프로세서(160)는 제2-1 벡터() 또는 제2-1 벡터()가 xy 평면상에 정사영된 벡터()에 기초하여 피치 각도(pitch) 및 제1 요 각도(yaw1)를 획득할 수 있다. 또한, 프로세서(160)는 제2-2 벡터() 또는 제2-2 벡터()가 xy 평면상에 정사영된 벡터()에 기초하여 제2 요 각도(yaw2)를 획득할 수 있다. The
그리고, 프로세서(160)는 제1 요 각도(yaw1), 제2 요 각도(yaw2) 및 기 정의된 가중치 함수(W) 에 기초하여 최종 요 각도()를 획득할 수 있다. 구체적으로, 프로세서(160)는 [수학식 6]에 기초하여 최종 요 각도()를 획득할 수 있다.Then, the
[수학식 6][Equation 6]
프로세서(160)는 제1 요 각도(yaw1) 및 제2 요 각도(yaw2)에 가중치 함수(W)에 기초한 가중치를 적용하여 최종 요 각도()를 획득할 수 있다. 예로, 가중치 함수(W)는 도 4에 도시된 바와 같이 그려질 수 있다.The
프로세서(160)는 최종 요 각도()에 기초하여 제1 모터(131)를 제어할 수 있다. 또한, 프로세서(160)는 획득된 피치 각도(pitch)에 기초하여 제2 모터(132)의 구동을 제어할 수 있다. 이에 따라, 매니퓰레이터(100)는 사용자 팔(1)의 상박의 움직임을 따라할 수 있다.The
이상에선, 사용자 팔(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
도 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 벡터()와 제2 링크(112)의 방향에 대응되는 제 2-2-2 벡터()가 정의될 수 있다. 제1 각도()는 제1 링크(111) 및 제2 링크(112)의 방향을 나타내는 제3 벡터()와 제4 벡터()의 사잇각을 의미한다. Referring to FIG. 5, the 2-1-1 vector corresponding to the direction of the first link 111 ( ) and the 2-2-2 vector corresponding to the direction of the second link 112 ( ) can be defined. The first angle ( ) Is a third vector representing the direction of the
제2 각도()를 산출하기 위해 다음의 두 벡터를 정의한다. 먼저 제4 벡터()를 제3 벡터()방향으로 정사영한 제5 벡터()가 정의된다. 제 5 벡터()를 중심으로 하고 반지름이 제4 벡터() 및 제5 벡터() 사이의 거리인 원이 제5 벡터 ()와 수직인 평면 상에 존재할 수 있다. 이 때, 원을 이루는 평면과 항법 좌표계에서 Z축 벡터와 제5 벡터()를 포함하는 평면의 교선 벡터로부터 제6 벡터()가 정의된다. 제2 각도()는 제5 벡터()와 제6 벡터()의 사잇각을 의미한다. The second angle ( ), the following two vectors are defined. First, the fourth vector ( ) to the third vector ( ), the fifth vector projected in the direction ( ) is defined. The fifth vector ( ) as the center and the radius is the fourth vector ( ) and the fifth vector ( ) is the fifth vector ( ) and may exist on a plane perpendicular to At this time, the Z-axis vector and the fifth vector ( ) From the intersection vector of the plane containing the sixth vector ( ) is defined. The second angle ( ) is the fifth vector ( ) and the sixth vector ( ) means the angle between
프로세서(160)는 제1 각도()에 기초하여 제4 모터(134)의 구동을 제어하며, 제2 각도()에 기초하여 제3 모터(133)의 구동을 제어할 수 있다. 이하에서는, 제1 각도() 및 제2 각도()를 산출하기 위한 프로세서(160)의 동작에 대하여 살펴본다.The
프로세서(160)는 제3 벡터() 및 제4 벡터()를 획득할 수 있다. 제3 벡터()는 도 3의 제2-1 벡터()와 동일한 바, 그 상세한 설명은 생략한다. 또한, 제4 벡터()는 제2-1 벡터()와 동일한 방법으로 획득될 수 있다. 구체적으로, 프로세서(160)는 사용자 팔(1)의 하박에 부착된 제2 외부 센서(12)의 센싱 값을 획득할 수 있다. 프로세서(160)는 AHRS 알고리즘을 이용하여 제2 외부 센서(12)의 센싱 값에 대응되는 쿼터니언 정보를 획득할 수 있다. 프로세서(160)는 [수학식 3]에 기초하여 제2 외부 센서(12)의 센싱 값에 대응되는 좌표변환행렬을 획득할 수 있다. 프로세서(160)는 [수학식 4]에 기초하여 제4 벡터()를 획득할 수 있다. The
프로세서(160)는 제3 벡터() 및 제4 벡터()의 내적에 기초하여 제2 링크(112)의 제1 각도()를 획득할 수 있다. 구체적으로, 프로세서(160)는 [수학식 7]에 기초하여 제1 각도()를 획득할 수 있다.The
[수학식 7][Equation 7]
도 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 각도()를 획득할 수 있다. The
[수학식 8][Equation 8]
[수학식 9][Equation 9]
여기서, [수학식 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)의 상박 및 하박의 자세로부터 독립적인 손등의 자세()는 사용자 팔(1)의 상박의 자세가 반영된 하박의 자세()를 [수학식 9-2]와 같이 보정함으로써 획득될 수 있다.The posture of the back of the hand of the user's
[수학식 9-2][Equation 9-2]
도 1b에서 손등의 롤과 피치를 표현하기 위한 제5 모터(135) 및 제6 모터 (136)의 회전각을 및 라고 할 때 두 회전각은 [수학식 9-3]으로 표현된다.In FIG. 1B, the rotation angles of the
[수학식 9-3][Equation 9-3]
한편, 사용자 팔(1)에 부착되는 외부 센서(10)의 센싱 값은 사용자마다 신체적 특징(예로, 근육량, 피부 굴곡 등)이 다름에 따라 오차를 포함할 수 있다. 프로세서(160)는 사용자의 초기 설정 자세(예로, 팔을 지면과 수평으로 뻗는 동작)에 대응되는 초기 좌표변환행렬()을 이용하여 오차를 보정할 수 있다. 구체적으로, 프로세서(160)는 [수학식 10]에 기초하여 오차가 보정된 좌표변환행렬()을 획득할 수 있다. 그리고, 프로세서(160)는 전술한 제2 벡터(), 제3 벡터() 및 제4 벡터()를 획득할 때, 오차가 보정된 좌표변환행렬()을 이용할 수 있다.Meanwhile, the sensing value of the
[수학식 10] [Equation 10]
여기서, 는 외부 센서(10)의 현재 센싱 값에 기초하여 획득되는 좌표변환행렬을 의미한다. 또한, 프로세서(160)는 사용자가 초기 설정 자세를 취할 때 획득되는 외부 센서(10)의 센싱 값과 [수학식 3]에 기초하여 초기 좌표변환행렬()을 획득하여 메모리(150)에 저장할 수 있다. here, denotes a coordinate conversion matrix obtained based on the current sensing value of the
한편, 프로세서(160)는 매니퓰레이터(100)의 모션 스무딩을 위해 모터 제어 정보에 IIR 필터를 적용할 수 있다. 프로세서(160)는 [수학식 11]에 기초하여 모터(130)에 인가되는 제어 입력의 크기를 조절할 수 있다.Meanwhile, the
[수학식 11][Equation 11]
여기서, 는 모터(130)의 입력으로 사용되는 필터의 출력 값을, 는 현재 시점 바로 이전의 모터 제어 입력, M은 IIR 필터에 의해 필터링 되기 전 현재 시점에서 추정된 모터 제어 입력을 의미한다. TH는 모터(130)의 입력을 제한하기 위한 기설정된 값(예로, 10 degrees)이며, k는 미리 정해진 값(예로, 0.7)을 의미한다.here, is the output value of the filter used as the input of the
한편, 프로세서(160)는 핸드(120)의 움직임을 제어하기 위하여 제5 모터(135) 및 제6 모터(136)의 구동을 제어할 수 있다. 예를 들어, 프로세서(160)는 사용자 팔(1)의 손목에 부착된 제3 외부 센서(13)의 센싱 값에 기초하여 사용자 손의 자세 정보를 획득할 수 있다. 그리고, 프로세서(160)는 획득된 자세 정보에 기초하여 제5 모터(135) 및 제6 모터(136)의 구동을 제어할 수 있다.Meanwhile, the
또한, 프로세서(160)는 핸드(120)에 포함된 핑거의 동작을 제어할 수 있다. 프로세서(160)는 통신 인터페이스(140)를 통해 수신되는 플렉스 센서(14)의 센싱값에 기초하여 사용자 손가락의 자세 정보를 획득할 수 있다. 그리고, 프로세서(160)는 획득된 자세 정보에 기초하여 핑거의 동작을 제어할 수 있다. 한편, 플렉스 센서(14)의 센싱값은 사용자의 손 모양이나 크기의 차이로 인한 오차를 포함할 수 있다. 프로세서(160)는 [수학식 12]에 기초하여 오차가 보정된 센싱값()을 획득하고, 보정된 센싱값()에 기초하여 핑거의 동작을 제어할 수 있다.Also, the
[수학식 12][Equation 12]
여기서, 는 현재 시점에서 획득된 플렉스 센서(14)의 센싱값, 는 메모리(150)에 저장된 플렉스 센서(14)의 센싱값 중 최소값, 는 메모리(150)에 저장된 플렉스 센서(14)의 센싱값 중 최대값을 의미한다.here, Is the sensing value of the
프로세서(160)는 플렉스 센서(14)의 센싱값을 메모리(150)에 누적하여 저장할 수 있다. 특히, 사용자의 초기 설정 자세(예로, 주먹을 쥐는 자세나 손바닥을 펴는 자세)에 대응되는 플렉스 센서(14)의 센싱값을 메모리(150)에 누적하여 저장할 수 있다. 그리고, 프로세서(160)는 저장된 플렉스 센서(14)의 센싱값 중 최소값 및 최대값을 식별할 수 있다.The
도 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
매니퓰레이터(100)는 외부 센서의 센싱값에 기초하여 획득된 행렬 및 메모리에 기저장된 제1 벡터에 기초하여 사용자 팔의 자세에 대응되는 제2 벡터를 획득할 수 있다(S720). 구체적으로, 매니퓰레이터(100)는 센싱값을 매니퓰레이터(100)에 저장된 AHRS(Altitude and Heading Reference System) 알고리즘에 적용하여 사용자 팔의 자세에 대응되는 쿼터니언(quaternion) 벡터를 획득할 수 있다. 그리고, 매니퓰레이터(100)는 쿼터니언 벡터(쿼터니언 정보)에 기초하여 행렬을 획득할 수 있다. 예로, 매니퓰레이터(100)는 [수학식 3]에 기초하여 행렬을 획득할 수 있다.The
한편, 획득된 행렬은 사용자 별 신체적 특징의 차이에 따른 오차가 보정된 값일 수 있다. 예로, 매니퓰레이터(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
한편, 제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
한편, 매니퓰레이터(100)는 사용자 팔의 하박의 자세 정보를 획득하고, 사용자 팔의 하박의 자세 정보에 기초하여 제2 링크(112)의 움직임을 제어할 수 있다. 매니퓰레이터(100)는 사용자 팔의 상박에 부착된 제1 외부 센서의 센싱값에 기초하여 제1 링크(111)에 대응되는 제3 벡터를 획득할 수 있다. 또한, 매니퓰레이터(100)는 사용자 팔의 하박에 부착된 제2 외부 센서의 센싱값에 기초하여 제2 링크(112)에 대응되는 제4 벡터를 획득할 수 있다. Meanwhile, the
그리고, 매니퓰레이터(100)는 제3 벡터 및 제4 벡터에 기초하여 제2 링크(112)에 대응되는 자세 정보를 획득할 수 있다. 예를 들어, 매니퓰레이터(100)는 전술한 [수학식 7], [수학식 8], [수학식 9]에 기초하여 제2 링크(112)에 대응되는 자세 정보를 획득할 수 있다. 매니퓰레이터(100)는 제2 링크(112)에 대응되는 자세 정보에 기초하여 제2 링크(112)에 대응되는 복수의 모터의 구동을 제어할 수 있다.Also, the
이상에서는 사용자의 상박 및 하박에 대응되는 쿼터니언 정보로부터 매니퓰레이터의 상박 및 하박에 대응되는 모터의 입력 값을 획득하는 방법에 대해 설명하였다. 이하에서는 본 개시의 또 다른 실시 예에 따라 매니퓰레이터의 상박 및 하박의 자세와 독립적인 손의 자세를 추정하기 위한 방법에 대해 설명한다.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
[수학식 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
[수학식 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
결론적으로, 벡터 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 회전각 정보를 상기 상박의 자세 및 상기 하박의 자세를 나타내는 센싱값으로 변환하기 위한 좌표변환행렬을 산출하고,
상기 좌표변환행렬에 기초하여 상기 하박에 대응되는 동체 좌표계에 대한 정보를 획득하는
매니퓰레이터.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.
상기 평형각 정보는 롤(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.
상기 피치 평형각 정보는 상기 롤 평형각 정보에 따라 회전된 상기 동체 좌표계의 제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.
상기 프로세서는,
손의 자세를 나타내는 센싱값에 기초하여 손에 대응되는 모터들에 대한 제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.
상기 복수의 링크는 상기 상박에 대응되는 제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 사용자의 팔의 자세를 인식하기 위한 외부 센서를 비활성화하고 상기 매니퓰레이터의 동작을 중지하며,
상기 매니퓰레이터를 제어하기 위한 제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.
상기 프로세서는,
상기 사용자의 반복 동작 개시 명령이 수신되면, 상기 사용자의 팔의 자세에 기초하여 상기 복수의 모터를 제어하고,
상기 사용자의 반복 동작 중지 명령이 수신되면, 상기 반복 동작 개시 명령이 수신된 시점부터 상기 반복 동작 중지 명령이 수신된 시점까지의 상기 매니퓰레이터의 동작에 대응되는 제어 신호를 상기 메모리에 저장하며,
상기 제어 신호가 저장되면, 상기 제어 신호에 대응되는 상기 복수의 모터 별 최대 작업 속도에 대한 정보를 상기 사용자의 사용자 단말로 전송하도록 상기 통신 인터페이스를 제어하고,
상기 최대 작업 속도에 대한 정보에 기초하여 상기 매니퓰레이터의 작업 속도를 설정하기 위한 사용자 입력이 수신되면, 상기 설정된 작업 속도에 기초하여 상기 복수의 모터를 제어하는
매니퓰레이터.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.
상기 동체 좌표계에 대한 정보를 획득하는 단계는,
상기 제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.
상기 평형각 정보는 롤(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.
상기 피치 평형각 정보는 상기 롤 평형각 정보에 따라 회전된 상기 동체 좌표계의 제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.
상기 제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.
상기 복수의 링크는 상기 상박에 대응되는 제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.
상기 프로세서는,
상기 센싱값을 상기 메모리에 저장된 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.
상기 제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.
상기 프로세서는,
기정의된 가중치 함수에 기초하여 상기 제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.
상기 프로세서는,
상기 사용자 팔의 초기 설정 자세에 대응되는 제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.
상기 프로세서는,
상기 제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.
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) |
-
2022
- 2022-01-07 KR KR1020220002833A patent/KR20230014611A/en unknown
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 |