KR20230053430A - Method of pose estimation and robot system using the same method - Google Patents
Method of pose estimation and robot system using the same method Download PDFInfo
- Publication number
- KR20230053430A KR20230053430A KR1020210136924A KR20210136924A KR20230053430A KR 20230053430 A KR20230053430 A KR 20230053430A KR 1020210136924 A KR1020210136924 A KR 1020210136924A KR 20210136924 A KR20210136924 A KR 20210136924A KR 20230053430 A KR20230053430 A KR 20230053430A
- Authority
- KR
- South Korea
- Prior art keywords
- robot
- visual marker
- posture
- display
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000003550 marker Substances 0.000 claims abstract description 169
- 230000000007 visual effect Effects 0.000 claims abstract description 132
- 230000003993 interaction Effects 0.000 claims description 17
- 239000012636 effector Substances 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000000691 measurement method Methods 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 241000282412 Homo Species 0.000 description 6
- 230000009471 action Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000004140 cleaning Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000032258 transport Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003749 cleanliness Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004659 sterilization and disinfection Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000009466 transformation Effects 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
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1692—Calibration of manipulator
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled 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/0084—Programme-controlled manipulators comprising a plurality of 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
-
- 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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- 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/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of 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/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
Abstract
Description
본 발명은 로봇의 자세 측정 방법 및 이를 이용한 로봇 시스템에 대한 것으로서, 로봇들 간의 인터랙션(interaction)을 위하여 상대 로봇의 자세를 측정하는 방법과, 인터랙션을 수행하는 로봇 시스템에 관한 것이다.The present invention relates to a method for measuring a posture of a robot and a robot system using the same, and relates to a method for measuring a posture of an opponent robot for interaction between robots, and a robot system for performing the interaction.
기술이 발전함에 따라, 다양한 서비스 디바이스들이 나타나고 있으며, 특히 최근에는 다양한 작업 또는 서비스를 수행하는 로봇에 대한 기술 개발이 활발하게 이루어지고 있다.As technology develops, various service devices are appearing, and in particular, technology development for robots performing various tasks or services has been actively conducted recently.
나아가 최근에는, 인공 지능 기술, 클라우드 기술 등이 발전함에 따라, 로봇을 보다 정밀하고, 안전하게 제어하는 것이 가능해지고 있으며, 이에 따라 로봇의 활용도가 점차적으로 높아지고 있다. 특히, 기술의 발전으로 인하여, 로봇은 실내 공간에서 인간과 안전하게 공존할 수 있을 정도의 수준에 이르렀다.Furthermore, recently, with the development of artificial intelligence technology, cloud technology, etc., it has become possible to control robots more precisely and safely, and accordingly, the utilization of robots is gradually increasing. In particular, due to the development of technology, robots have reached a level where they can safely coexist with humans in an indoor space.
이에, 최근에는 로봇이 인간의 업무 또는 작업을 대체하고 있으며, 특히 실내 공간에서 사람을 대상으로 로봇이 직접 서비스를 제공하는 다양한 방법들이 활발하게 연구되고 있다. Accordingly, recently, robots have been replacing human tasks or tasks, and in particular, various methods for robots to directly provide services to people in indoor spaces are being actively researched.
예를 들어, 공항, 역사, 백화점 등 공공 장소에서는 로봇들이 길안내 서비스를 제공하고 있으며, 음식점에서는 로봇들이 서빙 서비스를 제공하고 있다. 나아가, 오피스 공간, 공동 주거 공간 등에서는 로봇들이 우편물, 택배 등을 배송하는 배송 서비스를 제공하고 있다. 이 밖에도 로봇들은 청소 서비스, 방범 서비스, 물류 처리 서비스 등 다양한 서비스들을 제공하고 있으며, 로봇이 제공하는 서비스의 종류 및 범위는 앞으로도 기하급수적으로 늘어날 것이며, 서비스 제공 수준 또한 계속적으로 발전할 것으로 기대된다.For example, robots provide route guidance services in public places such as airports, stations, and department stores, and robots provide serving services in restaurants. Furthermore, robots are providing a delivery service in which mails and couriers are delivered in office spaces, co-living spaces, and the like. In addition, robots provide various services such as cleaning services, crime prevention services, and logistics handling services. The type and range of services provided by robots will increase exponentially in the future, and the level of service provision is expected to continue to evolve.
이러한, 로봇들은 실외 공간 뿐만 아니라, 사무실, 아파트, 백화점, 학교, 병원, 놀이시설 등과 같은 건물(또는 빌딩(building))의 실내 공간 내에서 다양한 서비스를 제공하고 있으며, 이 경우, 로봇들은 건물의 실내 공간을 이동하며 다양한 서비스들을 제공하도록 제어되고 있다.These robots provide various services not only in outdoor spaces but also in indoor spaces of buildings (or buildings) such as offices, apartments, department stores, schools, hospitals, amusement facilities, etc. In this case, robots provide It is controlled to provide various services while moving through the indoor space.
한편, 로봇들이 실내 공간에서 다양한 서비스를 제공하거나, 생활하기 위해서는 로봇들은, 서로 협업하여 임무를 수행해야할 니즈가 존재한다. 예를 들어, 대한민국 공개특허 제10-2010-0086093호(자율주행 군집로봇 위치 제어 시스템)에서는, 마스터 로봇이 다수의 종속 로봇들과 함께 군집을 이루어 자율 주행하는 시스템에 대하여 개시하고 있다. 이와 같이, 주행 기술에서 점차적으로 발달하여, 최근에는 로봇들 간에 인터랙션을 제어하여 다양한 서비스를 구현하려는 노력들이 활발하게 진행되고 있다.On the other hand, in order for robots to provide various services or live in an indoor space, there is a need for robots to perform tasks in collaboration with each other. For example, Republic of Korea Patent Publication No. 10-2010-0086093 (Self-driving Swarm Robot Position Control System) discloses a system in which a master robot autonomously navigates in a cluster together with a plurality of subordinate robots. As described above, with the gradual development of driving technology, recently, efforts to implement various services by controlling interaction between robots have been actively progressed.
이에, 로봇을 이용한 보다 수준 높은 서비스를 제공하기 로봇 인터랙션을 위하여, 로봇들 사이에서 위치나 자세를 정확하고 신속하게 측정할 수 있는 본질적인 연구가 필요하다.Therefore, for robot interaction to provide a higher level of service using robots, essential research that can accurately and quickly measure the position or posture between robots is required.
본 발명은, 로봇의 자세를 빠르고 정확하게 측정하는 방법 및 시스템을 제공하는 것이다.The present invention provides a method and system for quickly and accurately measuring the posture of a robot.
보다 구체적으로, 본 발명은, 로봇에 장착된 디스플레이와 비주얼 마커를 사용하여 로봇의 자세를 측정하는 방법을 제공한다.More specifically, the present invention provides a method for measuring a posture of a robot using a display mounted on the robot and a visual marker.
위에서 살펴본 과제를 해결하기 위하여, 본 발명에 따른 로봇의 자세 측정 방법 및 이를 이용한 로봇 시스템은, 상대 로봇의 디스플레이에 비주얼 마커를 출력하고, 로봇이 이를 촬영하여 상대 로봇의 자세를 인식하는 프로세스를 이용한다.In order to solve the problems described above, the method for measuring the posture of a robot and the robot system using the same according to the present invention use a process in which a visual marker is output to a display of an opponent robot and the robot photographs it to recognize the posture of the opponent robot. .
구체적으로, 본 발명의 로봇의 자세 측정 방법은, 제1로봇과 제2로봇이 서로 인접하도록 상기 제1로봇과 제2로봇 중 적어도 하나가 이동하는 단계와, 상기 제2로봇의 디스플레이에 비주얼 마커를 출력하는 단계와, 상기 제1로봇이 상기 제2로봇를 촬영하는 단계와, 상기 제1로봇에서 촬영된 이미지에 포함된 비주얼 마커를 검출하여, 상기 이미지에 포함된 비주얼 마커의 자세(pose)를 산출하는 단계, 및 상기 제2로봇의 좌표 데이터와 상기 이미지에 포함된 비주얼 마커의 자세를 이용하여, 상기 제2로봇의 자세를 산출하는 단계를 포함한다.Specifically, the method for measuring the posture of a robot of the present invention includes the steps of moving at least one of the first robot and the second robot so that the first robot and the second robot are adjacent to each other, and a visual marker on the display of the second robot. outputting, photographing the second robot by the first robot, detecting a visual marker included in an image captured by the first robot, and determining a pose of the visual marker included in the image. and calculating the posture of the second robot using the coordinate data of the second robot and the posture of the visual marker included in the image.
본 발명의 일 실시예에 있어서, 상기 로봇의 자세 측정 방법은 상기 제2로봇이 상기 비주얼 마커의 출력을 요청하는 요청 신호를 모니터링하는 단계를 더 포함할 수 있다.In one embodiment of the present invention, the method of measuring the posture of the robot may further include monitoring a request signal requesting an output of the visual marker by the second robot.
상기 요청 신호는 상기 제1로봇과 통신하는 서버 또는 상기 제1로봇에서 상기 제2로봇으로 전송될 수 있다. The request signal may be transmitted from a server communicating with the first robot or from the first robot to the second robot.
상기 비주얼 마커를 출력하는 단계는, 상기 디스플레이에 이미지 정보를 출력한 상태에서 상기 요청신호를 수신하면, 상기 이미지 정보의 출력을 오프하고 상기 비주얼 마커를 출력하거나, 상기 이미지 정보와 함께 상기 비주얼 마커를 출력할 수 있다.The outputting of the visual marker may include turning off the output of the image information and outputting the visual marker or displaying the visual marker together with the image information when the request signal is received in a state in which image information is output to the display. can be printed out.
상기 비주얼 마커를 출력하는 단계는, 상기 디스플레이가 비활성화된 상태에서 상기 요청신호를 수신하면, 상기 디스플레이를 활성화하고 상기 비주얼 마커를 출력할 수 있다.In the outputting of the visual marker, when the request signal is received in a state in which the display is deactivated, the display may be activated and the visual marker may be output.
한편, 본 발명은, 디스플레이가 배치된 특정 공간에서 로봇이 이동하는 단계와, 상기 디스플레이에 이미지 정보가 표시되는 단계와, 상기 로봇이 상기 디스플레이를 제어하는 제어 시스템에 비주얼 마커의 출력을 요청하는 요청신호를 전송 단계와, 상기 요청신호에 응답하여 상기 제어 시스템이 상기 비주얼 마커를 출력하도록 상기 디스플레이를 제어하는 단계, 및 상기 로봇이 상기 디스플레이에 출력된 비주얼 마커를 이용하여, 상기 로봇의 현재 위치를 추정하는 단계를 포함하는 로봇의 위치 측정 방법을 개시한다.On the other hand, the present invention is a step of moving a robot in a specific space where a display is arranged, a step of displaying image information on the display, and a request for the robot to request the output of a visual marker to a control system that controls the display. Transmitting a signal, controlling the display so that the control system outputs the visual marker in response to the request signal, and determining the current location of the robot by using the visual marker output on the display. Disclosed is a method for measuring a position of a robot including the step of estimating.
또한, 본 발명은, 카메라를 구비하는 제1로봇과, 상기 제1로봇과 인터랙션을 수행하며, 디스플레이를 구비하는 제2로봇을 포함하며, 상기 제2로봇의 디스플레이에 비주얼 마커를 출력하고, 상기 제1로봇이 상기 제2로봇를 촬영하며, 상기 제1로봇에서 촬영된 이미지에 포함된 비주얼 마커를 검출하여, 상기 이미지에 포함된 비주얼 마커의 자세(pose)를 산출하고, 상기 제2로봇의 좌표 데이터와 상기 이미지에 포함된 비주얼 마커의 자세를 이용하여, 상기 제2로봇의 자세를 추정하며, 상기 추정된 제2로봇의 자세를 이용하여 상기 제1로봇의 동작을 제어하는 것을 특징으로 하는 복수의 로봇이 인터랙션을 수행하는 로봇 시스템을 개시한다.In addition, the present invention includes a first robot having a camera, interacting with the first robot, and including a second robot having a display, outputting a visual marker to the display of the second robot, A first robot photographs the second robot, detects a visual marker included in an image captured by the first robot, calculates a pose of the visual marker included in the image, and calculates the coordinates of the second robot. A plurality of pluralities characterized in that the posture of the second robot is estimated using data and the posture of the visual marker included in the image, and the operation of the first robot is controlled using the estimated posture of the second robot. Discloses a robot system in which a robot performs an interaction.
본 발명에 따른 로봇의 자세 측정 방법 및 이를 이용한 로봇 시스템은, 디스플레이에 출력된 마커를 검출하고, 마커 자세를 측정하여 로봇의 형상데이터와 비교하여 로봇의 자세로 변환하여 상대 로봇의 자세를 인식하며, 이를 통하여 간단한 방법으로 상대 로봇의 자세를 빠르고 정확하게 측정할 수 있다.A method for measuring a posture of a robot and a robot system using the same according to the present invention detects a marker output on a display, measures the posture of the marker, compares the posture of the robot with the shape data of the robot, converts the posture into the posture of the robot, recognizes the posture of the other robot, , it is possible to quickly and accurately measure the posture of the opponent robot in a simple way.
이와 같이, 새로운 프로세스를 통하여 정확한 로봇 자세를 신속하게 측정하기에, 다양한 로봇 서비스, 예를 들어 배송, 서빙, 접객 등에서 인간 수준의 서비스가 가능하게 된다. In this way, since the accurate posture of the robot is quickly measured through the new process, human-level services are possible in various robot services, such as delivery, serving, and customer service.
또한, 본 발명은 비주얼 마커를 이용하여 로봇의 자세를 바르고 정확하게 측정하므로, 인간과의 인터랙션을 위한 디스플레이를 활용하여 상대 로봇의 자세를 측정할 수 있게 된다. 이 경우에, 사이니지 등, 특정 공간에 고정된 디스플레이에서 비주얼 마커를 출력하여, 비주얼 마커를 촬영한 로봇의 위치를 정확하고 신속하게 측정할 수 있는 효과까지 발휘할 수 있다.In addition, since the present invention accurately and accurately measures the posture of the robot using the visual marker, it is possible to measure the posture of the other robot using a display for interaction with a human. In this case, by outputting a visual marker from a display fixed to a specific space, such as a signage, an effect of accurately and quickly measuring the position of a robot that has photographed the visual marker can be exerted.
도 1은 본 발명에 따른 로봇들의 인터랙션을 설명하기 위한 개념도이다.
도 2a 및 도 2b는 각각 도 1의 개념에서 제시하는 로봇들의 일 예를 도시한 것이다.
도 3은 본 발명의 로봇의 자세 측정 방법을 설명하기 위한 흐름도이다.
도 4는 도 2a의 로봇이 도 2b의 로봇의 자세를 측정하기 위하여 비주얼 마커를 촬영하는 개념을 나타내는 개념도이다.
도 5는 비주얼 마커의 포즈를 검출하는 개념도이고, 도 6은 로봇의 자세로 변환하는 예를 나타내는 개념도이다.
도 7a 및 도 7b는 본 발명의 다른 일 실시예를 나타내는 개념도들이다.
도 8은 본 발명의 프로세를 이용하여 구현한 실제 데이터를 나타내는 이미지 데이터이다.
도 9는 본 발명의 다른 일 실시예로 로봇의 위치를 측정하는 개념도이다.1 is a conceptual diagram for explaining the interaction of robots according to the present invention.
2a and 2b each show an example of robots presented in the concept of FIG. 1 .
3 is a flowchart for explaining a method for measuring a posture of a robot according to the present invention.
FIG. 4 is a conceptual diagram illustrating the concept of the robot of FIG. 2a photographing a visual marker to measure the posture of the robot of FIG. 2b.
5 is a conceptual diagram for detecting a pose of a visual marker, and FIG. 6 is a conceptual diagram illustrating an example of transforming a posture of a robot.
7A and 7B are conceptual diagrams illustrating another embodiment of the present invention.
8 is image data representing actual data implemented using the process of the present invention.
9 is a conceptual diagram for measuring the position of a robot according to another embodiment of the present invention.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소에는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. Hereinafter, the embodiments disclosed in this specification will be described in detail with reference to the accompanying drawings, but the same reference numerals will be assigned to the same or similar components regardless of reference numerals, and overlapping descriptions thereof will be omitted. The suffixes "module" and "unit" for components used in the following description are given or used together in consideration of ease of writing the specification, and do not have meanings or roles that are distinct from each other by themselves. In addition, in describing the embodiments disclosed in this specification, if it is determined that a detailed description of a related known technology may obscure the gist of the embodiment disclosed in this specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are only for easy understanding of the embodiments disclosed in this specification, the technical idea disclosed in this specification is not limited by the accompanying drawings, and all changes included in the spirit and technical scope of the present invention , it should be understood to include equivalents or substitutes.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms including ordinal numbers, such as first and second, may be used to describe various components, but the components are not limited by the terms. These terms are only used for the purpose of distinguishing one component from another.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle. It should be. On the other hand, when an element is referred to as “directly connected” or “directly connected” to another element, it should be understood that no other element exists in the middle.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. Singular expressions include plural expressions unless the context clearly dictates otherwise.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In this application, terms such as "comprise" or "have" 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 features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.
본 발명은 로봇의 자세 측정 방법 및 이를 이용한 로봇 시스템에 대한 것으로서, 구체적으로 로봇들 간의 인터랙션(interaction)을 위하여 로봇의 자세를 측정하는 방법과, 인터랙션을 수행하는 로봇 시스템에 관한 것이다.The present invention relates to a method for measuring a posture of a robot and a robot system using the same, and more specifically, to a method for measuring a posture of a robot for interaction between robots and a robot system for performing the interaction.
여기에서, 인터랙션은 인간과 인간, 인간과 물질, 인간과 시스템, 시스템과 시스템을 위한 커뮤니케이션에서 일어나는 일종의 양식으로 정의될 수 있다. 구체적으로, Inter(상호)와 action(동작, 작동)의 합성어로, 둘 이상의 대상이 서로 영향을 주고받는 행동을 의미하며, 영향의 쌍방향성과 실시간성을 주된 특징으로 삼는 모든 행위를 의미할 수 있다.Here, interaction can be defined as a form of communication between humans and humans, humans and materials, humans and systems, and systems and systems. Specifically, it is a compound word of Inter (mutual) and action (action), which means an action in which two or more objects affect each other, and can mean all actions that have interactive and real-time characteristics of influence. .
또한, 본 명세서에서 로봇은 i) 사람과 유사한 기능을 가진 기계, 또는 ii) 하나 또는 복수의 컴퓨터 프로그램으로 작동할 수 있고(programmable), 자동적으로 복잡한 일련의 작업(comlex series of actions)을 수행하는 기계적 장치를 말한다. 또 다른 예로, 로봇은 형태가 있으며, 자신이 생각할 수 있는 능력을 가진 기계를 의미할 수 있다. 나아가, 본 명세서에서 설명되는 로봇은, 모습과 행동이 인간을 닮은 안드로이드(android) 로봇, 인간과 유사한 신체 구조를 지닌 휴머노이드(humanoid) 로봇, 신체 일부가 기계로 개조된 사이보그(cyborg) 등의 형태로 구현될 수 있다.In addition, in the present specification, a robot is i) a machine with functions similar to those of a person, or ii) programmable with one or a plurality of computer programs and automatically performing a complex series of actions. refers to mechanical devices. As another example, a robot may mean a machine that has a form and has the ability to think on its own. Furthermore, the robot described in this specification may be in the form of an android robot resembling a human in appearance and behavior, a humanoid robot having a body structure similar to a human, and a cyborg having a body part modified into a machine. can be implemented as
기술이 발전함에 따라 로봇의 활용도는 점차적으로 높아지고 있다. 종래 로봇은 특수한 산업분야(예를 들어, 산업 자동화 관련 분야)에서 활용되었으나, 점차적으로 인간이나 설비를 위해 유용한 작업을 수행할 수 있는 서비스 로봇으로 변모하고 있다.As technology advances, the use of robots is gradually increasing. Conventional robots have been utilized in special industrial fields (eg, industrial automation related fields), but are gradually transforming into service robots capable of performing useful tasks for humans or facilities.
이 경우에, 상기 로봇이 제공하는 서비스는 건물 내에서 구현될 수 있다. 이러한 예로서, 본 발명에 따른 로봇들은 클라우드 서버 및 로봇 자체에 구비된 제어부 중 적어도 하나에 근거하여 제어되어, 건물 내를 주행하거나, 부여된 임무에 해당하는 서비스를 제공하도록 이루어질 수 있다.In this case, the service provided by the robot may be implemented within a building. As such an example, the robots according to the present invention may be controlled based on at least one of a cloud server and a control unit provided in the robot itself, so as to travel in a building or provide a service corresponding to an assigned task.
본 발명에 따른 건물은 로봇과 사람들이 공존하는 건물로서, 로봇들은 사람, 사람이 사용하는 물건(예를 들어 유모차, 카트 등), 동물과 같은 장애물을 피하여 주행하도록 이루어지며, 경우에 따라 로봇의 주행과 관련된 알림 정보를 출력하도록 이루어질 수 있다. 이러한 로봇의 주행은 클라우드 서버 및 로봇에 구비된 제어부 중 적어도 하나의 근거 하에 장애물을 피하도록 이루어질 수 있다. 클라우드 서버는 로봇에 구비된 다양한 센서(예를 들어, 카메라(이미지 센서), 근접 센서, 적외선 센서 등)를 통해 수신되는 정보에 근거하여, 로봇이 장애물을 피하여 건물 내를 이동하도록 로봇에 대한 제어를 수행할 수 있다. 다만, 본 발명은 반드시 이에 한정되는 것은 아니며, 본 발명에서 설명되는 서비스나 프로세스는 실외에서도 적용될 수 있다.The building according to the present invention is a building in which robots and people coexist, and the robots are made to avoid obstacles such as people, objects used by people (eg, strollers, carts, etc.), and animals. It may be configured to output notification information related to driving. The driving of the robot may be made to avoid an obstacle based on at least one of a cloud server and a control unit provided in the robot. The cloud server controls the robot so that the robot avoids obstacles and moves within the building based on information received through various sensors (eg, camera (image sensor), proximity sensor, infrared sensor, etc.) provided in the robot. can be performed. However, the present invention is not necessarily limited thereto, and the service or process described in the present invention may be applied outdoors.
한편, 본 발명의 로봇들은 건물 내에 존재하는 사람 또는 타겟 객체에게 서비스를 제공하도록 이루어질 수 있다. Meanwhile, the robots of the present invention may be configured to provide services to people or target objects present in a building.
로봇이 제공하는 서비스의 종류는, 로봇 마다 상이할 수 있다. 즉, 로봇은 용도에 따라 다양한 종류가 존재할 수 있으며, 로봇은 용도 마다 상이한 구조를 가지고, 로봇에는 용도에 적합한 프로그램이 탑재될 수 있다.The type of service provided by the robot may be different for each robot. That is, various types of robots may exist depending on the purpose, the robot may have a different structure for each purpose, and a program suitable for the purpose may be installed in the robot.
예를 들어, 건물에 배송, 물류 작업, 안내, 통역, 주차지원, 보안, 방범, 경비, 치안, 청소, 방역, 소독, 세탁, 음료 제조, 음식 제조, 서빙, 화재 진압, 의료 지원 및 엔터테인먼트 서비스 중 적어도 하나의 서비스를 제공하는 로봇들이 배치될 수 있다. 로봇들이 제공하는 서비스는 위에서 열거된 예들 외에도 다양할 수 있다.For example, delivery to buildings, logistics, guidance, interpretation, parking assistance, security, crime prevention, security, security, cleaning, quarantine, disinfection, laundry, beverage preparation, food preparation, serving, fire suppression, medical assistance and entertainment services. Robots providing at least one of the services may be deployed. Services provided by robots may be various other than the examples listed above.
한편, 클라우드 서버는 로봇들 각각의 용도를 고려하여, 로봇들에게 적절한 임무를 할당하고, 할당된 임무가 수행되도록 로봇들에 대한 제어를 수행할 수 있다.Meanwhile, the cloud server may assign an appropriate task to the robots in consideration of the use of each robot, and control the robots to perform the assigned task.
본 발명에서 설명되는 로봇들 중 적어도 일부는 클라우드 서버(20)의 제어 하에 주행하거나, 임무를 수행할 수 있으며, 이 경우, 로봇 자체에서 주행 또는 임무를 수행하기 위하여 처리되는 데이터의 양은 최소화될 수 있다. 본 발명에서는 이러한 로봇을 브레인리스(brainless) 로봇이라고 명명할 수 있다. 이러한 브레인리스 로봇은, 건물 내에서 주행, 임무 수행, 충전 수행, 대기, 세척 등의 행위를 하는데 있어서, 적어도 일부의 제어를 클라우드 서버의 제어에 의존할 수 있다.At least some of the robots described in the present invention may drive or perform missions under the control of the
다만, 본 명세서에서는 브레인 리스 로봇을 구분하여 명명하지 않고, 모두 “로봇”으로 통일하여 명명하도록 한다.However, in this specification, the brainless robots are not classified and named, but all are unified and named as “robots”.
또한, 본 발명에서 건물에는 로봇들이 제공하는 서비스를 구현하기 위하여, 다양한 인프라(또는 설비 인프라)가 제공될 수 있다. In addition, in the present invention, various infrastructures (or facility infrastructures) may be provided in buildings in order to implement services provided by robots.
인프라 또는 설비 인프라는, 서비스 제공, 로봇의 이동, 기능 유지, 청결 유지 등을 위하여 건물에 구비되는 시설로서, 그 종류 및 형태는 매우 다양할 수 있다. 예를 들어, 건물에 구비되는 인프라는 이동 설비(예를 들어, 로봇 이동 통로, 엘리베이터, 에스컬레이터 등), 충전 설비, 통신 설비, 세척 설비, 구조물(예를 들어, 계단 등) 등과 같이 다양할 수 있다. 이와 같이, 상기 인프라 또는 설비 인프라는 로봇들이 부여된 임무를 수행하기 위하여 사용하는 인프라로 정의된다.Infrastructure or facilities Infrastructure is a facility provided in a building for service provision, robot movement, function maintenance, cleanliness maintenance, and the like, and its types and forms can be very diverse. For example, infrastructure provided in a building may be diverse, such as mobile facilities (eg, robot moving passages, elevators, escalators, etc.), charging facilities, communication facilities, cleaning facilities, structures (eg, stairs, etc.), and the like. there is. In this way, the infrastructure or facility infrastructure is defined as an infrastructure used by robots to perform assigned tasks.
본 발명에서 로봇들은 부여된 임무를 수행하기 위하여 서로 협업을 하도록 이루어진다. 상기 협업은 로봇들 간의 인터랙션(interaction)을 통하여 구현되며, 본 발명에서는 이를 위하여 로봇의 자세를 측정하는 방법에 대하여 제시한다.In the present invention, the robots are made to cooperate with each other in order to perform assigned tasks. The collaboration is implemented through interaction between robots, and the present invention proposes a method for measuring the posture of a robot for this purpose.
이러한 예로서, 도 1에 도시된 바와 같이, 로봇들이, 사용자에게 물품(예를 들어, 우편물, 택배 등)을 배송하거나, 음식을 서빙하는 것과 같은 서비스를 구현하기 위하여 서로 협업할 수 있다.As such an example, as shown in FIG. 1 , robots may cooperate with each other to implement a service such as delivering an item (eg, mail, courier, etc.) to a user or serving food.
이러한 서비스를 제공하는 로봇은 서비스의 구현하기 위하여 제1로봇(100)이 제2로봇(200)에게 물건을 전달하도록 이루어질 수 있다, 예를 들어, 배송을 위하여 물품을 상대 로봇에게 전달하거나, 또는 상대 로봇으로부터 픽업하거나, 다른 예로서, 음식을 서빙하고 난 후에 쟁반을 다른 로봇에게 전달하는 동작 등이 가능하다.A robot providing such a service may be configured such that the
보다 구체적으로, 제1로봇(100)은 고정된 위치에서, 배송물품, 쟁반 등의 물건(10)을 픽업하도록 형성되고, 제2로봇(200)은 주로 주행하여 상기 물건(10)을 이송하도록 이루어진다. 이와 같이, 상기 제1로봇(100)에는 제1임무가 부여되고, 상기 제2로봇(200)에는 제2임무가 부여될 수 있다. 예를 들어, 상기 제2로봇(200)에게 할당된 임무는 해당하는 서비스를 제공(물건 배송)을 위하여, 물품을 사용자로부터 받아서 제1로봇(100)까지 이송하는 임무가 될 수 있다. 상기 제1로봇(100)에게 할당된 임무는 상기 제1로봇(100)이 이송한 물건(10)을 픽업하여 적재함에 적재하는 임무가 될 수 있다.More specifically, the
이 경우에, 상기 제2로봇(200)은 건물 내를 주행하여, 사용자가 전달한 물건(10)을 수용한 채로, 상기 제1로봇(100)과 인접한 특정위치(11)로 이동하게 된다. 상기 제1로봇(100)은 상기 제2로봇(200)이 상기 특정위치(11)에 다가오면 이를 인지하고, 상기 제1로봇(100)이 이송한 물건(10)을 픽업하여 적재함(미도시)에 적재한다. 이와 같이, 제1로봇(100)과 제2로봇(200)은 서로 협업하여 물건(10)의 배송을 위한 특정 구간에서 임무를 완수하며, 하나의 로봇 시스템으로 지칭될 수 있다.In this case, the
한편, 상기 제2로봇(200)이 이송한 물건(10)을 상기 제1로봇(100)이 정확하게 픽업하기 위하여, 상기 제1로봇(100)은 상기 제2로봇(200)의 자세를 정확하게 검출하여야 한다. 특히, 도 1과 함께 도 2a 및 도 2b를 참조하면, 제1로봇(100)과 제2로봇(200)은 서로 다른 형상으로 이루어질 수 있다. 즉, 각각의 임무에 적합하도록 제1로봇(100)과 제2로봇(200)의 형상은 서로 다르게 이루어지며, 이러한 경우에 임무를 수행하기 위하여 상대 로봇의 자세를 보다 용이하면서도 정확하게 측정할 니즈가 발생하게 된다.Meanwhile, in order for the
이하에서는, 도 1의 개념에서 제시하는 로봇들에 대하여 도 2a 및 도 2b를 참조하여, 보다 상세하게 설명한다.Hereinafter, the robots presented in the concept of FIG. 1 will be described in more detail with reference to FIGS. 2A and 2B.
도 2a 및 도 2b는 각각 도 1의 개념에서 제시하는 로봇들의 일 예를 도시한 것이다.2a and 2b each show an example of robots presented in the concept of FIG. 1 .
도 2a를 참조하면, 예를 들어, 제1로봇(100)은 바디부(110), 센싱부, 통신부 중 적어도 하나를 구비할 수 있다.Referring to FIG. 2A , for example, the
상기 바디부에는 물건(10)을 픽업하기 위하여 엔드 이펙터(111, end effector), 매니퓰레이터(112, Manipulator), 액추에이터(actuator, 미도시) 등이 구비될 수 있다.In order to pick up the
상기 엔드 이펙터(111)는 환경과 상호 작용하도록 설계된 로봇 암의 끝단 장치로서, 그리퍼, 핀셀 및 메스 등이 될 수 있다. 이러한, 엔드 이펙터(111)는 로봇과 별도로 구비되어 로봇 주변기기나 액세서리 등이 되는 것도 가능하다.The
상기 매니퓰레이터(112)는 로봇 장치의 본체와 팔에 링크, 조인트 및 기타 구조 요소와 메커니즘을 통합하는 장치가 될 수 있다. 다관절 로봇의 경우, 모터의 회전운동을 하는 여러 개의 관절을 가지는 매니퓰레이터(112)를 구비할 수 있다.The
이 경우에, 상기 매니퓰레이터(112)와 엔드 이펙터(111)는 6자유도 이상의 팔과 1자유도 이상의 손을 형성할 수 있다. 또한, 본 발명의 로봇이 양팔 로봇이나 여러 개의 팔을 가지는 로봇으로 구현되기 위하여, 상기 팔과 손은 여러 개의 쌍으로 존재할 수 있다.In this case, the
또한, 상기 액추에이터는 전기, 화학 또는 열에너지를 회전 또는 직선 운동으로 변환하는 장치로서, 모터, 공압 실린더, 인공 근육 등이 될 수 있다.In addition, the actuator is a device that converts electrical, chemical, or thermal energy into rotational or linear motion, and may be a motor, a pneumatic cylinder, or an artificial muscle.
이와 같이, 상기 제1로봇(100)은 엔드 이펙터(111), 매니퓰레이터(112), 액추에이터를 제어하여 물건(10)을 픽업 및 이동한다.In this way, the
센싱부는 로봇 내 정보(특히, 로봇의 구동상태), 로봇을 둘러싼 주변 환경 정보, 로봇의 위치 정보 및 사용자 정보 중 적어도 하나를 센싱하기 위한 하나 이상의 센서를 포함할 수 있다.The sensing unit may include one or more sensors for sensing at least one of information within the robot (particularly, a driving state of the robot), environment information surrounding the robot, location information of the robot, and user information.
예를 들어, 센싱부는 카메라(이미지 센서, 121), 근접 센서, 바이오 센서, 적외선 센서, 레이저 스캐너(라이다 센서), RGBD 센서, 지자기 센서, 초음파 센서, 관성 센서, UWB 센서, 마이크 등을 구비할 수 있다.For example, the sensing unit includes a camera (image sensor, 121), a proximity sensor, a bio sensor, an infrared sensor, a laser scanner (lidar sensor), an RGBD sensor, a geomagnetic sensor, an ultrasonic sensor, an inertial sensor, a UWB sensor, a microphone, and the like. can do.
상기 카메라(121)는 상기 로봇의 바디부의 상단에 배치되어, 주로 하향으로 주변 환경을 촬영하도록 형성될 수 있다. 이 경우에, 상기 카메라(121)는 틸팅 등이 가능하도록 형성되어 촬영 각도가 조절될 수 있다.The
로봇의 통신부는 로봇과 건물의 통신 설비 사이, 로봇과 다른 로봇의 사이, 또는 로봇과 클라우드 서버의 사이에서 무선 통신을 수행하기 위하여, 로봇에서 무선 신호를 송수신하도록 이루어진다. 이러한 예로서, 통신부는 무선 인터넷 모듈, 근거리 통신 모듈, 위치정보 모듈 등을 구비할 수 있다.The communication unit of the robot is configured to transmit and receive wireless signals to and from the robot in order to perform wireless communication between a robot and a communication facility in a building, between a robot and another robot, or between a robot and a cloud server. As such an example, the communication unit may include a wireless Internet module, a short-distance communication module, a location information module, and the like.
도 2b를 참조하면, 예를 들어, 제2로봇(200)은 바디부(210), 구동부(220), 센싱부(230), 통신부 및 디스플레이(240) 중 적어도 하나를 구비할 수 있다.Referring to FIG. 2B , for example, the
바디부(210)는 외관을 이루는 케이스(케이싱, 하우징, 커버 등)를 포함한다. 본 실시예에서, 케이스는 복수의 파트로 구분될 수 있으며, 케이스에 의하여 형성된 공간에는 각종 전자부품들이 내장된다. 이 경우에, 바디부(210)는 본 발명에서 예시하는 다양한 서비스에 따라 서로 다른 형태로 이루어질 수 있다. 예를 들어, 배송 서비스를 제공하는 로봇의 경우에, 바디부(210)의 상부에 물건(10)을 보관하는 수용함이 구비될 수 있다. The
구동부(220)는 클라우드 서버 또는 제2로봇(200)의 제어부에서 전송하는 제어 명령에 따른 특정 동작을 수행하도록 이루어진다. The driving
구동부(220)는 주행과 관련하여 로봇의 바디부가 특정 공간 내를 이동할 수 있는 수단을 제공한다. 보다 구체적으로, 구동부(220)는 모터 및 복수의 바퀴를 포함하며, 이들이 조합되어, 로봇(R)을 주행, 방향 전환, 회전시키는 기능을 수행한다. 다만, 본 발명은 반드시 이에 한정되는 것은 아니며, 구동부(220)는 주행 외의 다른 동작, 예를 들어 픽업 등의 수행을 위하여 엔드 이펙터, 매니퓰레이터, 액추에이터 중 적어도 하나를 구비할 수 있다. The driving
상기 센싱부(230)는 상기 제1로봇(100)과 유사하게, 로봇 내 정보(특히, 로봇의 구동상태), 로봇을 둘러싼 주변 환경 정보, 로봇의 위치 정보 및 사용자 정보 중 적어도 하나를 센싱하기 위한 하나 이상의 센서를 포함할 수 있다.Similar to the
상기 제2로봇(200)은 자율 주행을 위하여, 특정 공간을 이동하면서 상기 카메라를 통하여 촬영 이미지를 획득한 후, 3차원 맵 데이터와 비교하는 프로세스를 통하여 이미지 기반 측위(Visual Localization)를 수행할 수 있다.For self-driving, the
또한, 상기 통신부는 상기 제1로봇(100)과 유사하게, 로봇과 건물의 통신 설비 사이, 로봇과 다른 로봇의 사이, 또는 로봇과 클라우드 서버의 사이에서 무선 통신을 수행하기 위하여, 로봇에서 무선 신호를 송수신하도록 이루어진다. 이러한 예로서, 통신부는 무선 인터넷 모듈, 근거리 통신 모듈, 위치정보 모듈 등을 구비할 수 있다.In addition, the communication unit, similar to the
상기 디스플레이(240)는 상기 제2로봇(200)의 전면 또는 상면에서 상향으로 배치될 수 있으며, 영상 및 그래픽 객체가 출력될 수 있다. 본 발명에서는 디스플레이(240)의 종류에 대해서는 제한을 두지 않는다. 상기 디스플레이(240)는 모니터로서 동작하며, 터치 스크린으로 이루어질 수 있다. 이 경우, 디스플레이(240)는 정보를 출력하는 역할과, 정보를 입력받는 역할을 모두 수행할 수 있다.The
한편, 도 1을 참조하여 설명한 것과 같이, 상기 제1로봇(100)과 제2로봇(200)은 각각 제어부를 구비하거나, 클라우드 서버에 의하여 제어될 수 있다. 예를 들어, 클라우드 서버나, 제2로봇(200)의 제어부가, 이미지 정보를 출력하도록 상기 디스플레이(240)를 제어할 수 있다. 상기 이미지 정보에는 사용자에게 제공되는 정보 뿐만 아니라, 상대 로봇, 예를 들어 제1로봇(100)에게 제공되는 정보가 포함될 수 있다.Meanwhile, as described with reference to FIG. 1 , the
본 발명에서는, 상기 제2로봇(200)의 디스플레이(240)에 비주얼 마커를 출력하고, 상기 제1로봇(100)이 이를 촬영하여 상대 로봇의 자세를 측정하는 프로세스를 이용하여, 상기 제1로봇(100)과 제2로봇(200)의 인터랙션을 구현한다. 이하에서는, 도 3 내지 도 9를 참조하여 이러한 인터랙션을 구현하기 위하여 로봇의 자세를 측정하는 프로세스에 대하여 보다 상세하게 설명한다.In the present invention, a visual marker is output to the
도 3은 본 발명의 로봇의 자세 측정 방법을 설명하기 위한 흐름도이다.3 is a flowchart for explaining a method for measuring a posture of a robot according to the present invention.
본 발명의 로봇의 자세 측정 방법에서는, 제2로봇(200)에서 출력되는 비주얼 마커를 제1로봇(100)이 촬영하여, 제1로봇(100)이 제2로봇(200)의 자세를 인식하는 새로운 자세 측정 방법을 제시한다. 이 때에, 상기 로봇의 자세는 위치(position)를 나타내는 좌표와 오리엔테이션(orientation)을 나타내는 방향을 포함할 수 있다In the method for measuring the posture of a robot of the present invention, the
본 발명에서는, 한 쌍의 로봇(제1로봇(100) 및 제2로봇(200))을 예시하여 상대 로봇의 자세를 측정하는 방법에 대하여 설명하나, 이에 한정되는 것은 아니다. 예를 들어, 하나의 로봇이 복수의 로봇의 비주얼 마커를 촬영할 수 있고, 복수의 로봇이 하나의 로봇의 비주얼 마커를 촬영하는 것도 가능하다.In the present invention, a method of measuring the posture of a partner robot by exemplifying a pair of robots (the
도 3을 참조하면, 본 발명의 로봇의 자세 측정 방법에서는, 제1로봇(100)과 제2로봇(200)이 서로 인접하도록 상기 제1로봇(100)과 제2로봇(200) 중 적어도 하나가 이동하는 단계(S111)가 먼저 진행될 수 있다. Referring to FIG. 3 , in the posture measurement method of a robot of the present invention, at least one of the
예를 들어, 제1로봇(100)은 특정 위치에 고정되고, 제2로봇(200)이 물건 등을 이송하여 제1로봇(100)의 근처로 이동하거나, 제1로봇(100) 및 제2로봇(200)이 특정 지점으로 이동하여 상기 특정 지점에서 서로 인접하게 위치될 수 있다.For example, the
이 때에, 상기 제1로봇(100)은 카메라(121)를 구비하고, 상기 제2로봇(200)은 디스플레이(240)를 구비할 수 있다. 다만, 본 발명에서 예시하는 제1로봇(100)과 제2로봇(200)은 설명의 편의를 위하여 명명한 것이므로, 상기 제1로봇(100)이 디스플레이를 구비하고, 상기 제2로봇(200)이 카메라를 구비하는 것도 가능하다. 나아가, 상기 제1로봇(100) 및 제2로봇(200)이 모두 카메라와 디스플레이를 구비하는 것도 가능하다.At this time, the
예를 들어, 상기 제2로봇(200)은 상기 디스플레이(240)를 이용하여 주변의 사람들에게 여러가지 이미지 정보를 출력할 수 있다. 상기 이미지 정보는, 사람과의 인터랙션(Interaction)을 위한 그래픽 객체나, 광고 등을 위한 영상 정보가 될 수 있다.For example, the
다음으로, 상기 제2로봇(200)에게 비주얼 마커의 출력을 요청하는 단계(S112)가 진행될 수 있다.Next, a step of requesting the output of the visual marker from the second robot 200 (S112) may proceed.
상기 제2로봇(200)에게 비주얼 마커의 출력을 요청하는 것은, 상기 제1로봇(100) 또는 상기 제1로봇(100)과 통신하는 서버, 예를 들어 클라우드 서버가 수행할 수 있다. 구체적으로, 상기 제1로봇(100)이 임무를 수행하기 하기 위하여, 상기 제2로봇(200)에게 비주얼 마커의 요청 신호를 전송하거나, 상기 서버에서 상기 요청 신호를 상기 제2로봇(200)으로 전송할 수 있다.Requesting the output of the visual marker from the
다른 예로서, 상기 제1로봇(100)과 제2로봇(200)의 협업을 위하여, 상기 클라우드 서버가 상기 제2로봇(200)의 자세 데이터가 필요하다고 판단되면, 상기 제2로봇(200)에게 비주얼 마커의 출력을 요청하는 요청 신호를 전송할 수 있다.As another example, if the cloud server determines that the posture data of the
이 경우에, 본 발명의 로봇의 자세 측정 방법에서는, 상기 제2로봇(200)이 상기 비주얼 마커의 출력을 요청하는 요청 신호를 모니터링하는 단계가 더 포함될 수 있다.In this case, the method for measuring the posture of a robot according to the present invention may further include monitoring a request signal for requesting an output of the visual marker by the
상기 요청하는 단계(S112)에서 요청 신호가 전송되면, 상기 전송된 요청 신호를 수신하여 상기 비주얼 마커의 출력 요청을 인식하기 위하여, 상기 제2로봇(200)이 상기 요청 신호를 주기적으로 모니터링할 수 있다.When a request signal is transmitted in the requesting step (S112), the
상기 요청 신호의 모니터링은 상기 제2로봇(200)이 특정 위치로 이동한 경우에 수행될 수 있다. 예를 들어, 상기 제2로봇(200)은 상기 제1로봇(100)으로 물건을 전달하기 위하여 이동하여 상기 특정 위치에 도달하면, 상기 제2로봇(200)의 제어부가 이를 판단하여 상기 요청 신호의 모니터링을 시작할 수 있다.Monitoring of the request signal may be performed when the
다음으로, 상기 제2로봇(200)의 디스플레이(240)에 비주얼 마커를 출력하는 단계(S113)가 진행될 수 있다.Next, a step of outputting a visual marker to the
상기 제2로봇(200)은 상기 요청 신호를 수신하면, 디스플레이(240)를 이용하여 상기 비주얼 마커를 표시한다.Upon receiving the request signal, the
상기 비주얼 마커는, 예를 들어 비주얼 기준 마커(Visual Fiducial Marker) 가 될 수 있다. 상기 비주얼 기준 마커는 이미지에 기준 또는 측정 포인트로 사용하기 위해 표시가 생성된 것으로, Apriltag, Aruco 등 공개되어 누구나 자유로이 사용할 수 있는 마커가 될 수 있다. 다른 예로서, 상기 비주얼 마커는 Artificial marker 로서, 사용자가 직접 설계한 다양한 형태의 마커가 될 수 있다.The visual marker may be, for example, a visual fiducial marker. The visual fiducial marker is a mark created in an image to be used as a reference or measurement point, and may be a publicly available marker such as Apriltag or Aruco that anyone can freely use. As another example, the visual marker is an artificial marker, and may be a marker of various types directly designed by a user.
이 때에, 상기 비주얼 마커를 출력하는 단계(S113)는, 상기 디스플레이(240)가 비활성화된 상태에서 상기 요청신호를 수신하면, 상기 디스플레이(240)를 활성화하고 상기 비주얼 마커를 출력할 수 있다. 구체적인 예로서, 상기 디스플레이(240)는 비활성화된 상태에서 상기 요청 신호에 응답하여 활성화되면서 상기 비주얼 마커를 출력할 수 있다. At this time, in the step of outputting the visual marker (S113), when the request signal is received while the
다른 예로서, 상기 비주얼 마커를 출력하는 단계(S113)는, 상기 디스플레이(240)에 이미지 정보를 출력한 상태에서 상기 요청신호를 수신하면, 상기 이미지 정보의 출력을 오프하고 상기 비주얼 마커를 출력하거나, 상기 이미지 정보와 함께 상기 비주얼 마커를 출력할 수 있다. 즉, 상기 디스플레이(240)가 활성화된 상태에서 이미지 등을 출력하다가, 상기 요청 신호에 의하여 상기 이미지의 출력을 중지하고, 상기 비주얼 마커를 출력하는 것도 가능하다.As another example, in the step of outputting the visual marker (S113), if the request signal is received while the image information is output to the
한편, 상기 제2로봇(200)의 디스플레이(240)에 비주얼 마커를 출력한 후에 특정 시간이 경과하면, 상기 비주얼 마커의 출력을 종료하는 것도 가능하다. 이 경우에, 상기 특정 시간은 상기 제1로봇(100)이 상기 제2로봇(200)을 촬영하는 제어의 수행 시간보다 길도록 설정될 수 있다.Meanwhile, when a specific time elapses after the visual marker is output to the
다음으로, 상기 제1로봇(100)이 상기 제2로봇(200)를 촬영하는 단계(S114)가 진행된다.Next, the
상기 제1로봇(100)은 카메라(121)를 이용하여, 상기 제2로봇(200)을 촬영한다. The
예를 들어, 상기 제2로봇(200)은 상기 비주얼 마커를 출력하였음을 알리는 피드백 신호를 상기 제1로봇(100)으로 전송하고, 상기 제1로봇(100)은 상기 피드백 신호에 응답하여 상기 제2로봇(200)을 촬영할 수 있다. 다른 예로서, 상기 피드백 신호는 상기 제2로봇(200)으로부터 클라우드 서버로 전송되고, 상기 클라우드 서버에서 상기 제2로봇(200)을 촬영하는 제어 명령을 생성하여 제1로봇(100)으로 전송할 수 있다.For example, the
이 경우에, 상기 카메라(121)는 상기 제1로봇(100)에 장착된 센서가 될 수 있으나, 본 발명은 반드시 이에 한정되는 것은 아니다. 이러한 예로서, 로봇이 위치한 공간에는 카메라가 배치될 수 있다. 공간에 배치된 카메라의 수는 그 제한이 없으며 공간에는 복수개의 카메라들이 배치될 수 있다. 공간에 배치된 카메라의 종류는 다양할 수 있으며, 예를 들어 공간에 배치된 카메라는 CCTV(closed circuit television)일 수 있다. In this case, the
나아가, 건물의 통신 설비는 상기 공간에 배치된 카메라와의 직접적인 통신을 수행할 수 있다. 또한, 건물의 통신 설비는 상기 카메라를 제어하는 영상 관제 시스템과 통신하도록 이루어질 수 있다. 이 때에, 상기 카메라는 제2로봇(200)이 상기 특정 위치에 도착한 상황을 검출하여, 상기 제1로봇(100)을 촬영하도록 상기 영상 관제 시스템에 의하여 제어될 수 있다. 이 경우에, 상기 영상 관제 시스템은 별도의 관제 시스템으로 구비되거나, 전술한 클라우드 서버의 일부로서 구성될 수 있다.Furthermore, the communication facility of the building can perform direct communication with the camera disposed in the space. In addition, communication facilities of the building may be configured to communicate with a video control system that controls the camera. At this time, the camera may be controlled by the video control system to detect a situation in which the
도 3을 참조하면, 상기 제1로봇(100)에서 촬영된 이미지에 포함된 비주얼 마커를 검출하여, 상기 이미지에 포함된 비주얼 마커의 자세(pose)를 산출하는 단계(S115)가 진행된다.Referring to FIG. 3 , a step of detecting a visual marker included in an image captured by the
여기에서, 상기 비주얼 마커는 도시된 것과 같이, 적어도 하나의 에이프릴 태그(Apriltag)를 포함하도록 이루어질 수 있다. 에이프릴 태그는, 시각적 기준이 되는 표식으로서, 2차원 정보로 이루어질 수 있다. 복수의 에이프릴 태그가 조합되어 상기 비주얼 마커를 구성할 수 있다.Here, as shown, the visual marker may include at least one April tag. The April tag is a mark serving as a visual reference and may be composed of two-dimensional information. A plurality of April tags may be combined to form the visual marker.
이러한 마커를 상기 제1로봇(100)에서 촬영된 이미지로부터 검출하고, 검출된 비주얼 마커를 이용하여 비주얼 마커의 자세를 산출한다. 상기 비주얼 마커의 자세 검출은 PnP (Perspective-n-Point) 방법을 이용하여 수행할 수 있다.These markers are detected from the image captured by the
상기 PnP 방법은 perspective-n-point 알고리즘을 이용하여 카메라 포즈(예를 들어, 카메라의 위치, 각도, 방향)를 추정하는 기법이 될 수 있다. 이를 이용하여, 입력 이미지인 비주얼 마커의 자세를 카메라 좌표계에 대하여 산출한다.The PnP method may be a technique for estimating a camera pose (eg, a camera position, angle, and direction) using a perspective-n-point algorithm. Using this, the posture of the visual marker, which is the input image, is calculated with respect to the camera coordinate system.
다음으로, 상기 제2로봇(200)의 좌표 데이터와 상기 이미지에 포함된 비주얼 마커의 자세를 이용하여, 상기 제2로봇(200)의 자세를 산출하는 단계(S115)가 진행될 수 있다.Next, a step of calculating the posture of the
예를 들어, 상기 제2로봇(200)의 형상 데이터, 예를 들어 CAD 모델 데이터를 이용하여 카메라 좌표계에 대한 비주얼 마커의 자세가 상기 제2로봇(200)의 자세로 변환될 수 있다.For example, the posture of the visual marker with respect to the camera coordinate system may be converted into the posture of the
다른 예로서, 캘리브레이션 방법을 사용하여 카메라 좌표계에 대한 마커 자세를 로봇 자세로 변환하는 것도 가능하다. 이 경우에, 상기 캘리브레이션 방법은 카메라와 wheel odometry 간의 캘리브레이션 방법이 사용될 수 있다.As another example, it is also possible to convert a marker pose with respect to the camera coordinate system to a robot pose using a calibration method. In this case, the calibration method between the camera and wheel odometry may be used.
상기에서 설명한 바와 같이, 본 발명에서는 상대 로봇에서 비주얼 마커를 출력하면, 이를 촬영하여 상대 로봇의 자세를 측정하고, 상기 자세를 이용하여 상대 로봇과의 인터랙션이 수행될 수 있다.As described above, in the present invention, when the partner robot outputs a visual marker, it is photographed to measure the pose of the partner robot, and interaction with the partner robot can be performed using the pose.
이하에서는, 본 발명의 로봇의 자세 측정 방법의 각 단계에 대하여 예시와 함께 보다 상세히 설명한다.Hereinafter, each step of the method for measuring the posture of a robot according to the present invention will be described in detail with examples.
도 4는 도 2a의 로봇이 도 2b의 로봇의 자세를 측정하기 위하여 비주얼 마커를 촬영하는 개념을 나타내는 개념도이고, 도 5는 비주얼 마커의 포즈를 검출하는 개념도이고, 도 6은 로봇의 자세로 변환하는 예를 나타내는 개념도이며, 도 7a 및 도 7b는 본 발명의 다른 일 실시예를 나타내는 개념도들이고, 도 8은 본 발명의 프로세를 이용하여 구현한 실제 데이터를 나타내는 이미지 데이터이다.4 is a conceptual diagram showing the concept of the robot of FIG. 2a photographing a visual marker to measure the pose of the robot of FIG. 2b, FIG. 5 is a conceptual diagram of detecting the pose of the visual marker, and FIG. 6 is a conversion into the pose of the robot. 7a and 7b are conceptual diagrams illustrating another embodiment of the present invention, and FIG. 8 is image data representing actual data implemented using the process of the present invention.
먼저, 도 4를 참조하면, 상기 제2로봇(200)은 비주얼 마커(250)를 출력하고, 상기 제1로봇(100)을 상기 출력된 비주얼 마커(250)를 촬영한다. First, referring to FIG. 4 , the
상기 비주얼 마커(250)의 촬영이 보다 용이하고 정확하게 이루어지도록, 상기 비주얼 마커(250)를 출력하는 상기 제2로봇(200)의 디스플레이(240)는 상기 제2로봇(200)의 전면 또는 상면에서 상향으로 배치되고, 상기 제1로봇(100)은 상기 제2로봇(200)을 하향으로 촬영하는 카메라(121)를 구비할 수 있다. To make photographing of the
이러한 상대 위치를 구현하기 위하여, 상기 제2로봇(200)의 디스플레이(240)는 수직 방향을 기준으로 경사진 면 형태의 뷰 영역(241)을 구비할 수 있다. 한편, 제1로봇(100)의 카메라(121)는 상기 제1로봇(100)의 바디부 상단에 배치되어, 상기 뷰 영역(241)을 향하는 시야각을 가지도록 하향 배치될 수 있다. 이 경우에, 상기 시야각은 카메라(121)의 화각(FoV, Field of VIEW)이 될 수 있다.In order to implement this relative position, the
또한, 상기 제1로봇(100)이 상기 제2로봇(200)을 보다 정확하게 촬영하기 위하여, 상기 제1로봇(100)과 제2로봇(200)은 서로 마주보도록 위치와 방향이 제어될 수 있다.In addition, in order for the
이 때에, 상기 디스플레이(240)에 출력되는 비주얼 마커(250)는 디스플레이(240)의 중앙에 실제 사이즈로 출력될 수 있다. 이 경우에, 디스플레이(240)의 픽셀 피치(Pixel Pitch, mm)와 마커 이미지 사이즈(pixel)를 이용하여 비주얼 마커(250)는 실제 사이즈로 출력될 수 있으며, 이러한 예로서, 비주얼 마커(250)의 폭(w)은 175mm이고 높이(h)는 91mm 가 될 수 있다.At this time, the
제1로봇(100)은 먼저, 촬영된 이미지에 포함된 비주얼 마커(250)를 검출할 수 있다. 이 경우, 제1로봇(100)의 제어부는 기 설정된 마커 검출 알고리즘(또는 프로그램)에 근거하여, 비주얼 마커(250)에 포함된 적어도 하나의 마커 기준점을 특정할 수 있다. 마커 기준점은, 비주얼 마커(250)에 포함된 코너들에 각각 대응되는 적어도 하나의 코너 포인트(corner point)를 의미할 수 있다.First, the
구체적으로, 제1로봇(100)의 제어부는 촬영된 이미지로부터 비주얼 마커(250)를 인식하고, 인식된 마커의 코너에 각각 대응되는 적어도 하나의 마커 기준점(P, 또는 코너 포인트, a, b, c, d, e, f, g, h)을 특정(추출)할 수 있다.Specifically, the control unit of the
그리고 제1로봇(100)의 제어부는 상기 특정된 마커 기준점(P)에 근거하여, 제1로봇(100)의 제어부는 상기 비주얼 마커(250)의 마커 좌표계{W}를 특정할 수 있다. 즉, 카메라 좌표계{C}에 대한 마커 좌표계{W} 자유도 정보(또는 6자유도 자세(POSE))가 측정될 수 있다.Further, the control unit of the
마커 좌표계{W}는 특정된 마커 기준점(예를 들어, a, b, c, d, e, f, g, h) 중 어느 하나를 원점으로 3차원의 축을 포함할 수 있으며, “”에 해당하는 마커 기준점을 원점으로 할 수 있다.The marker coordinate system {W} may include a 3-dimensional axis with one of the specified marker reference points (eg, a, b, c, d, e, f, g, h) as the origin, corresponding to “” You can set the reference point of the marker to be used as the origin.
다음으로, 제1로봇(100)의 제어부는 상기 비주얼 마커(250)의 자세를 추정할 수 있다. 이를 위하여, 상기 이미지에 포함된 비주얼 마커의 자세(pose)를 산출하는 단계(S115)에서는, 상기 검출된 비주얼 마커(250)를 이용하여, 상기 제2로봇(200)을 촬영한 카메라(121)의 좌표계에 대한 상기 비주얼 마커(250)의 6자유도 자세가 추정될 수 있다.Next, the control unit of the
이러한 카메라(121)는 도시된 것과 같이, 카메라 좌표계{C}를 갖도록 이루어질 수 있다. 카메라 좌표계{C}는 카메라(121)의 특정 지점을 원점으로 하는 3차원 좌표계일 수 있다. 또한, 도시된 것과 같이, 카메라(121)를 통해 촬영된 이미지에 포함된 마커를 기준으로 설정되는 마커 좌표계{W}가 다른 기준 좌표계로 설정될 수 있다. 이 경우에, 마커 좌표계{W}는 이미지에 포함된 마커의 특정 지점을 원점으로 하는 3차원 좌표계일 수 있다.As shown, the
이 경우, 상기 비주얼 마커(250)는 마커의 포인트에 기준 좌표계를 가질 수 있으며, 마커의 자유도 정보가, 카메라(121)의 기준 좌표계와 마커의 기준 좌표계 간의 상대적인 위치 관계를 반영하여, 얻어질 수 있다. In this case, the
이와 같이, 상기 카메라(121)의 카메라 좌표계{C}를 기준으로, 마커 좌표계{W}의 자유도 정보(6자유도 자세)를 추출할 수 있다. 이를 통해, 상기 제어부는 카메라 좌표계{C}에 대하여, 촬영된 이미지에 포함된 비주얼 마커(250) 또는 마커 좌표계{W}가 회전(rotation) 및 변환(translation, 병진 이동)된 정도를 추출할 수 있다.In this way, based on the camera coordinate system {C} of the
예를 들어, 마커 기준점에 대응되는 픽셀(pixel) 좌표를 특정하고, 상기 마커 기준점에 대응되는 픽셀(pixel) 좌표 및 카메라(121)의 카메라 좌표계{C}를 이용하여, 카메라 좌표계{C}에 대한 상기 마커 좌표계{W}의 자유도 자세를 특정할 수 있다.For example, by specifying the pixel coordinates corresponding to the marker reference point and using the pixel coordinates corresponding to the marker reference point and the camera coordinate system {C} of the
보다 구체적으로, 제어부(130)는 카메라 좌표계{W}에 대한 마커 좌표계{W}의 자유도 정보(또는 상대적인 위치 관계)를 추출하기 위하여, PnP가 계산될 수 있다.More specifically, the controller 130 may calculate PnP in order to extract degree of freedom information (or relative positional relationship) of the marker coordinate system {W} with respect to the camera coordinate system {W}.
한편, 카메라 좌표계{W}에 대한 마커 좌표계{W}의 상대적인 위치 관계는, 마커 좌표계{W}가 카메라 좌표계{W}에 대하여, 회전(rotation) 및 변환(translation)된 정도를 의미할 수 있다. 이러한 회전 및 변환된 정도에 따른 정보는 카메라 좌표계{C}에 대한 마커 좌표계{W}의 자유도 정보(자유도 자세)에 해당할 수 있다.Meanwhile, the relative positional relationship of the marker coordinate system {W} with respect to the camera coordinate system {W} may mean the degree to which the marker coordinate system {W} is rotated and translated with respect to the camera coordinate system {W}. . Information according to the degree of rotation and transformation may correspond to degree of freedom information (DOF posture) of the marker coordinate system {W} with respect to the camera coordinate system {C}.
카메라 좌표계{C}에 대한 마커 좌표계{W}의 자유도 정보(자유도 자세)를 추출하기 위하여, 상기 비주얼 마커(250)의 적어도 하나의 마커 기준점들에 해당하는 픽셀 좌표(u, v) 카메라의 3차원 좌표(x, y, z)를 PnP방정식에 대입하여, 카메라 좌표계{C}에 대한 마커 좌표계{W}의 자유도 정보(자유도 자세)를 추출할 수 있다.Pixel coordinates (u, v) corresponding to at least one marker reference point of the
구체적으로, 카메라 좌표계에 대한 마커 좌표계의 6자유도 자세가 산출되며, 이는 PnP 방정식을 이용하여 에이프릴 태그의 코너 포인트의 픽셀(Pixel) 좌표를 다음의 식 (1)로 정의함에 따라 산출될 수 있다.Specifically, the 6 degree of freedom posture of the marker coordinate system with respect to the camera coordinate system is calculated, which can be calculated by defining the pixel coordinates of the corner point of the April tag as the following equation (1) using the PnP equation. .
이 경우에, 좌변은 에이프릴 태그의 코너 포인트의 픽셀(Pixel) 좌표이고, 우변의 첫번째 행렬은 카메라 파라미터에 대한 것이고, 두번째 행렬은 카메라 좌표계에 대한 마커 좌표계의 6자유도 자세이며, 세번째 행렬은 실세계의 좌표값에 대한 것이다. 또한, 에이프릴 태그는 오픈 소스를 이용해서 영상에서 코너 포인트를 제공하므로, 상기 코너 포인트의 픽셀좌표가 산출될 수 있다.In this case, the left side is the pixel coordinates of the corner point of the April tag, the first matrix on the right side is for the camera parameters, the second matrix is the 6 degree of freedom pose of the marker coordinate system with respect to the camera coordinate system, and the third matrix is the real world It is about the coordinate value of . Also, since the April tag provides a corner point in an image using an open source, pixel coordinates of the corner point can be calculated.
상기 비주얼 마커(250)의 자세가 측정되고 나면, 상기 자세를 상기 제2로봇(200)의 자세로 변환한다.After the posture of the
먼저, 도 6에 도시된 바와 같이, 제2로봇(200)의 형상 데이터인, CAD 모델을 사용하여 상기 비주얼 마커(250)의 자세를 로봇의 자세로 변환할 수 있다. 예를 들어, CAD 모델의 기준 좌표계에 대한 비주얼 마커(250)의 코너 포인트의 3차원 좌표(x,y,z)가 추출될 수 있다. 이러한 좌표 변환을 위하여, 상기 제1로봇(100) 또는 전술한 클라우드 서버에는 제2로봇(200)의 형상 데이터가 저장될 수 있다.First, as shown in FIG. 6 , the posture of the
나아가, 도시된 것과 같이, 로봇을 기준으로 설정되는 로봇 좌표계{O}가 기준 좌표계의 하나로 설정될 수 있다. 로봇 좌표계{O}는 제2로봇(200)의 특정 지점을 원점으로 하는 3차원 좌표계일 수 있다.Furthermore, as shown, the robot coordinate system {O} set based on the robot may be set as one of the reference coordinate systems. The robot coordinate system {O} may be a three-dimensional coordinate system having a specific point of the
나아가, 제2로봇(200)의 자유도 정보는, 마커의 기준 좌표계와 제2로봇(200)의 기준 좌표계 간의 상대적인 위치 관계를 반영하여 얻어질 수 있음은 물론이다. 즉, 본 발명에서는, 카메라(121)의 기준 좌표계, 마커의 기준 좌표계, 로봇의 기준 좌표계 간의 상호 상대적인 위치 관계에 근거하여, 카메라(121), 마커 및 로봇 중 적어도 하나에 대한 자유도 정보를 수집하는 것이 가능하다.Furthermore, the degree of freedom information of the
상기 좌표 변환은 PnP 방정식을 이용하여 에이프릴 태그의 코너 포인트의 픽셀(Pixel) 좌표를 다음의 식 (2)로 정의함에 따라 산출될 수 있다.The coordinate conversion can be calculated by defining the pixel coordinates of the corner point of the April tag as the following Equation (2) using the PnP equation.
이 경우에, 좌변은 에이프릴 태그의 코너 포인트의 픽셀(Pixel) 좌표이고, 우변의 첫번째 행렬은 카메라 파라미터에 대한 것이고, 두번째 행렬은 카메라 좌표계에 대한 로봇 좌표계(즉, 제2로봇(200)의 좌표계)의 6자유도 자세이며, 세번째 행렬은 실세계의 좌표값에 대한 것이다. In this case, the left side is the pixel coordinates of the corner point of the April tag, the first matrix on the right side is for camera parameters, and the second matrix is the robot coordinate system for the camera coordinate system (ie, the coordinate system of the second robot 200). ), and the third matrix is for the coordinate values of the real world.
도 6에 도시된 바와 같이. 비주얼 마커(250)의 우측 하단의 코너 포인트(Pf)에 대한 x,y,z의 좌표값을 로봇기준의 좌표계를 기준으로 산출하게 되며, 이로부터 제2로봇(200)의 자세가 정의될 수 있다. 이와 같은 방법으로, 상기 제2로봇(200)의 CAD 모델의 기준 좌표계에 대한 상기 이미지에 포함된 비주얼 마커(250)의 포인트의 3D 좌표가 추출된다.As shown in Figure 6. The coordinate values of x, y, and z for the corner point Pf at the lower right of the
상기 비주얼 마커(250)의 자세를 로봇의 자세로 변환하는 것은 다른 방법으로도 가능하다. 도 7, 도 8a 및 도 8b를 참조하면, 캘리브레이션 방법을 사용하여 카메라 좌표계에 대한 마커 자세를 로봇 자세로 변환할 수 있다.Converting the posture of the
이러한 예로서, 상기 제1로봇(100)의 카메라(121)와 상기 제2로봇(200)의 휠(220)에 대한 오도메트리(odometry) 정보를 이용하여 상기 이미지에 포함된 비주얼 마커(250)의 자세가 상기 제2로봇(200)의 자세로 변환될 수 있다.As such an example, the
이 경우에, 모바일 로봇에 장착된 카메라를 이용하여 주변을 탐색하는 시스템에서, 적절한 작동 기능을 보장하기 위하여, 카메라의 내부 및 외부 매개변수, 카메라와 모바일 로봇의 프레임 사이의 상대 포즈, 모바일 로봇의 주행 매개변수를 추정하기 위한 보정을 수행하게 된다. 이 때에, 오도메트리(Odometry, 주행거리측정) 방법이 적용되며, 오도메트리는 휠(220)에서 인코더의 측정에 의존하여 모바일 로봇 구성(즉, 위치 및 방향)을 재구성하는 것으로, 알려진 구성에서 시작하여 로봇의 현재 위치와 방향은 측정된 휠(220)의 속도에 해당하는 차량 속도의 시간 적분에 의해 산출한다. 이러한 방법은 본 발명에서, 제2로봇(200)의 기준좌표계, 비주얼 마커(250)의 코너 포인트, 휠 오도메트리 간의 관계에 적용하여 로봇 자세를 산출할 수 있다.In this case, in a system that uses a camera mounted on a mobile robot to explore the surroundings, in order to ensure an appropriate operating function, the internal and external parameters of the camera, the relative pose between the camera and the frame of the mobile robot, the Calibration is performed to estimate driving parameters. At this time, the odometry (mileage measurement) method is applied, and the odometry is to reconstruct the mobile robot configuration (ie, position and direction) depending on the measurement of the encoder on the
예를 들어, 휠 오도메트리를 OiTOj 로 정의하면, 하기의 식 (3)의 관계가 성립하게 되며, 비주얼 마커(250)의 자세는 하기의 식 (4)로 정의될 수 있다.For example, if the wheel odometry is defined as Oi T Oj , the relationship of Equation (3) below is established, and the posture of the
식 (3)과 식 (4)를 이용하여 비주얼 마커(250)의 자세가 로봇의 자세로 변환될 수 있다.The posture of the
상기에서 설명한 방법에 의하면, 제1로봇(100)이 제2로봇(200)의 자세를 비주얼 마커(250)를 이용하여 측정할 수 있게 된다. 이러한 예로서, 도 8의 (a), (b), (c)는 각각 측정된 자세를 바탕으로 로봇의 CAD 모델(Mesh)을 영상에 투영한 예시를 보여준다.According to the method described above, the
이와 같이, 제2로봇(200)의 자세를 측정하고 나면, 제1로봇(100)은 제2로봇(200)의 이송한 물건의 위치를 산출하며, 상기 물건을 픽업하여 주어진 임무를 수행하게 된다.In this way, after measuring the posture of the
상기에서 설명한 프로세스에 의하여, 본 발명에 따른 로봇의 자세 측정 방법 및 이를 이용한 로봇 시스템은, 상대 로봇의 자세를 인식하며, 이를 통하여 간단한 방법으로 상대 로봇의 자세를 빠르고 정확하게 측정할 수 있다.According to the process described above, the method for measuring the posture of a robot according to the present invention and the robot system using the same recognize the posture of the opponent robot, and through this, can quickly and accurately measure the posture of the opponent robot in a simple way.
한편, 상기에서 설명한 프로세스는 상대 로봇이 아니라, 자신의 위치를 측위하는 방법으로 변형될 수 있다. 이하에서는 이러한 변형예에 대하여 도 9를 참조하여 설명한다.On the other hand, the process described above can be modified as a method of locating one's own position, not the other robot's. Hereinafter, this modified example will be described with reference to FIG. 9 .
도 9는 본 발명의 다른 일 실시예로 로봇의 위치를 측정하는 개념도이다 9 is a conceptual diagram for measuring the position of a robot according to another embodiment of the present invention.
실내 공간의 실제 환경에서는 시간 경과에 따라 큰 변화가 존재하므로, 로봇의 카메라의 정확한 포즈 정보를 추정하는 것은 매우 어려운 문제이다. 예를 들어, 텍스처(질감)이 없는 공간(textureless areas), 사이니지 등에서 콘텐츠의 변화 등에 의하여 발생하는 외관 변화(changing appearance), 시간에 따른 혼잡도(crowdedness)나 가리는 정도(occlusions)의 변화, 동적 환경 변화(dynamic environment) 등에 의하여, 이미지에 대한 카메라 포즈 추정이 어렵게 된다.It is very difficult to estimate the exact pose information of the camera of the robot because there is a large change over time in the real environment of the indoor space. For example, textureless areas, changing appearance caused by changes in content in signage, etc., changes in crowdedness or occlusions over time, dynamic Due to a dynamic environment or the like, estimation of a camera pose for an image becomes difficult.
도 1 내지 도 8을 참조하여 전술한 비주얼 마커를 이용한 자세 측정은 실내 공간을 주행하는 로봇의 카메라 포즈 추정에도 적용될 수 있다.The posture measurement using the visual marker described above with reference to FIGS. 1 to 8 may also be applied to camera pose estimation of a robot traveling in an indoor space.
도 9의 (a)를 참조하면, 먼저, 디스플레이(410)가 배치된 실내 공간(20)에서 로봇(300)이 이동할 수 있다. 이 경우에, 상기 로봇(300)은 전술한 예시의 제2로봇(200)이 될 수 있다.Referring to (a) of FIG. 9 , first, the
상기 디스플레이(410)는 사이니지를 예시하나, 다른 형태의 디스플레이도 가능하다. 이 때에, 상기 디스플레이(410)에 이미지 정보가 표시될 수 있으며, 상기 이미지 정보는 광고 정보, 안내 정보, 영상 콘텐츠 등이 될 수 있다.The
상기 로봇(300)이 실내 공간(20)을 주행하다가, 상기 로봇(300)에 장착된 카메라(321)를 이용하여 상기 디스플레이(410)를 검출할 수 있다. 상기 디스플레이(410)가 검출되면, 상기 로봇(300)은 상기 디스플레이(410)를 제어하는 제어 시스템에 비주얼 마커(420)의 출력을 요청하는 요청신호를 전송한다. 이 때에, 상기 제어 시스템이 상기 요청신호의 수신을 모니터링을 할 수 있다.While the
상기 제어 시스템은 상기 실내 공간을 가지는 건물의 제어 시스템이 될 수 있으며, 클라우드 서버 등 외부 서버가 되는 것도 가능하다. The control system may be a control system of a building having the indoor space, or may be an external server such as a cloud server.
도 9의 (b)를 참조하면, 상기 요청신호에 응답하여 상기 제어 시스템이 상기 비주얼 마커(420)를 출력하도록 상기 디스플레이(410)를 제어한다. Referring to (b) of FIG. 9 , the control system controls the
상기 비주얼 마커(420)는 도 1 내지 도 8을 참조하여 설명한 예시의 비주얼 마커가 될 수 있으며, 상기 디스플레이(410)에서 출력하는 이미지 정보와 함께 상기 디스플레이(410)에 출력될 수 있다. 이러한 예로서, 상기 비주얼 마커(420)는 상기 디스플레이(410)의 일측 하단에 상기 이미지 정보에 오버랩되어 출력될 수 있다.The
다음으로, 상기 로봇(300)이 상기 디스플레이(410)에 출력된 비주얼 마커(420)를 이용하여, 상기 로봇(300)의 현재 위치를 추정한다. 또한, 이 경우에 상기 로봇(300)의 포즈도 추정될 수 있다. 상기 로봇(300)의 현재 위치 및 포즈의 추정은 상기 실내 공간의 특징맵을 이용한 이미지 기반 측위를 통하여 수행될 수 있다.Next, the
이러한 위치 및 추정된 포즈를 이용하여 상기 로봇(300)의 정확한 위치가 추정될 수 있다. 이 경우에, 상기 로봇(300)에서는 상기 위치를 기반으로 한 여러가지 서비스가 실행될 수 있다.An accurate position of the
본 예시에서 설명한 바와 같이, 본 발명은 사이니지 등, 특정 공간에 고정된 디스플레이에서 비주얼 마커를 출력하여, 비주얼 마커를 촬영한 로봇의 위치를 정확하고 신속하게 측정할 수 있는 효과를 발휘할 수 있다.As described in this example, the present invention outputs a visual marker on a display fixed to a specific space, such as a signage, so that the position of the robot that has photographed the visual marker can be accurately and quickly measured.
상기와 같이 설명된 로봇의 자세 측정 방법 및 이를 이용한 로봇 시스템은 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.The method for measuring the posture of a robot described above and the robot system using the same are not limited to the configuration and method of the above-described embodiments, but the above embodiments are all or all of the embodiments so that various modifications can be made. Some of them may be selectively combined and configured.
Claims (14)
상기 제2로봇의 디스플레이에 비주얼 마커를 출력하는 단계;
상기 제1로봇이 상기 제2로봇를 촬영하는 단계;
상기 제1로봇에서 촬영된 이미지에 포함된 비주얼 마커를 검출하여, 상기 이미지에 포함된 비주얼 마커의 자세(pose)를 산출하는 단계; 및
상기 제2로봇의 좌표 데이터와 상기 이미지에 포함된 비주얼 마커의 자세를 이용하여, 상기 제2로봇의 자세를 산출하는 단계를 포함하는 로봇의 자세 측정 방법.moving at least one of the first robot and the second robot so that the first robot and the second robot are adjacent to each other;
outputting a visual marker to a display of the second robot;
photographing the second robot by the first robot;
detecting a visual marker included in an image captured by the first robot and calculating a pose of the visual marker included in the image; and
and calculating a posture of the second robot using coordinate data of the second robot and a posture of a visual marker included in the image.
상기 제2로봇이 상기 비주얼 마커의 출력을 요청하는 요청 신호를 모니터링하는 단계를 더 포함하는 로봇의 자세 측정 방법.According to claim 1,
The method of measuring the posture of a robot further comprising monitoring a request signal requesting an output of the visual marker by the second robot.
상기 요청 신호는 상기 제1로봇과 통신하는 서버 또는 상기 제1로봇에서 상기 제2로봇으로 전송하는 것을 특징으로 하는 로봇의 자세 측정 방법.According to claim 2,
The request signal is transmitted from a server communicating with the first robot or from the first robot to the second robot.
상기 비주얼 마커를 출력하는 단계는,
상기 디스플레이에 이미지 정보를 출력한 상태에서 상기 요청신호를 수신하면, 상기 이미지 정보의 출력을 오프하고 상기 비주얼 마커를 출력하거나, 상기 이미지 정보와 함께 상기 비주얼 마커를 출력하는 것을 특징으로 하는 로봇의 자세 측정 방법.According to claim 2,
The step of outputting the visual marker,
When the request signal is received while image information is output to the display, the output of the image information is turned off and the visual marker is output, or the visual marker is output together with the image information. measurement method.
상기 비주얼 마커를 출력하는 단계는,
상기 디스플레이가 비활성화된 상태에서 상기 요청신호를 수신하면, 상기 디스플레이를 활성화하고 상기 비주얼 마커를 출력하는 것을 특징으로 하는 로봇의 자세 측정 방법.According to claim 2,
The step of outputting the visual marker,
and activating the display and outputting the visual marker when the request signal is received while the display is inactive.
상기 제2로봇의 디스플레이에 비주얼 마커를 출력한 후에 특정 시간이 경과하면, 상기 비주얼 마커의 출력을 종료하는 것을 특징으로 하는 로봇의 자세 측정 방법.According to claim 1,
and ending the output of the visual marker when a specific time elapses after outputting the visual marker to the display of the second robot.
상기 디스플레이는 상기 제2로봇의 전면 또는 상면에서 상향으로 배치되고, 상기 제1로봇은 상기 제2로봇을 하향으로 촬영하는 카메라를 구비하는 것을 특징으로 로봇의 자세 측정 방법.According to claim 1,
The display is disposed upward from the front or upper surface of the second robot, and the first robot includes a camera that photographs the second robot downward.
상기 이미지에 포함된 비주얼 마커의 자세(pose)를 산출하는 단계에서는,
상기 검출된 비주얼 마커를 이용하여, 상기 제2로봇을 촬영한 카메라의 좌표계에 대한 상기 비주얼 마커의 6자유도 자세가 추정되는 것을 특징으로 하는 로봇의 자세 측정 방법.According to claim 1,
In the step of calculating the pose of the visual marker included in the image,
The method of measuring the posture of the robot, characterized in that the 6 degree of freedom posture of the visual marker with respect to the coordinate system of the camera photographing the second robot is estimated using the detected visual marker.
상기 제2로봇의 자세를 산출하는 단계에서는,
상기 제2로봇의 CAD 모델의 기준 좌표계에 대한 상기 이미지에 포함된 비주얼 마커의 포인트의 3D 좌표가 추출되는 것을 특징으로 하는 로봇의 자세 측정 방법.According to claim 1,
In the step of calculating the posture of the second robot,
3D coordinates of a point of a visual marker included in the image with respect to a reference coordinate system of the CAD model of the second robot are extracted.
상기 제2로봇의 자세를 산출하는 단계에서는,
상기 제1로봇의 카메라와 상기 제2로봇의 휠에 대한 오도메트리(odometry) 정보를 이용하여 상기 이미지에 포함된 비주얼 마커의 자세를 상기 제2로봇의 자세로 변환하는 것을 특징으로 하는 로봇의 자세 측정 방법.According to claim 1,
In the step of calculating the posture of the second robot,
Converting the posture of the visual marker included in the image to the posture of the second robot using odometry information about the camera of the first robot and the wheel of the second robot How to measure posture.
상기 디스플레이에 이미지 정보가 표시되는 단계;
상기 로봇이 상기 디스플레이를 제어하는 제어 시스템에 비주얼 마커의 출력을 요청하는 요청신호를 전송 단계;
상기 요청신호에 응답하여 상기 제어 시스템이 상기 비주얼 마커를 출력하도록 상기 디스플레이를 제어하는 단계; 및
상기 로봇이 상기 디스플레이에 출력된 비주얼 마커를 이용하여, 상기 로봇의 현재 위치를 추정하는 단계를 포함하는 로봇의 위치 측정 방법.Moving the robot in a specific space where the display is arranged;
displaying image information on the display;
transmitting, by the robot, a request signal requesting output of a visual marker to a control system that controls the display;
controlling the display so that the control system outputs the visual marker in response to the request signal; and
and estimating, by the robot, a current position of the robot using a visual marker output on the display.
상기 제어 시스템이 상기 요청신호의 수신을 모니터링하는 단계를 더 포함하는 로봇의 위치 측정 방법.According to claim 11,
The method of measuring the position of the robot further comprising the step of the control system monitoring the reception of the request signal.
상기 제1로봇과 인터랙션을 수행하며, 디스플레이를 구비하는 제2로봇을 포함하며,
상기 제2로봇의 디스플레이에 비주얼 마커를 출력하고, 상기 제1로봇이 상기 제2로봇를 촬영하며,
상기 제1로봇에서 촬영된 이미지에 포함된 비주얼 마커를 검출하여, 상기 이미지에 포함된 비주얼 마커의 자세(pose)를 산출하고, 상기 제2로봇의 좌표 데이터와 상기 이미지에 포함된 비주얼 마커의 자세를 이용하여, 상기 제2로봇의 자세를 추정하며,
상기 추정된 제2로봇의 자세를 이용하여 상기 제1로봇의 동작을 제어하는 것을 특징으로 하는 복수의 로봇이 인터랙션을 수행하는 로봇 시스템.A first robot equipped with a camera;
A second robot that interacts with the first robot and has a display;
A visual marker is output to the display of the second robot, and the first robot photographs the second robot;
A visual marker included in an image captured by the first robot is detected, a pose of the visual marker included in the image is calculated, and the coordinate data of the second robot and the pose of the visual marker included in the image are calculated. Estimating the posture of the second robot using
A robot system in which a plurality of robots perform interactions, characterized in that for controlling the operation of the first robot using the estimated posture of the second robot.
상기 제2로봇은 상기 제1로봇으로 물건을 전달하도록 제어되며,
상기 제1로봇은 상기 추정된 제2로봇의 자세를 이용하여 상기 제2로봇의 설정된 위치로 엔드 이펙터를 이동시키는 것을 특징으로 하는 복수의 로봇이 인터랙션을 수행하는 로봇 시스템.According to claim 13,
The second robot is controlled to deliver an object to the first robot,
The robot system in which a plurality of robots perform interaction, characterized in that the first robot moves an end effector to a set position of the second robot using the estimated posture of the second robot.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210136924A KR20230053430A (en) | 2021-10-14 | 2021-10-14 | Method of pose estimation and robot system using the same method |
PCT/KR2022/014983 WO2023063645A1 (en) | 2021-10-14 | 2022-10-05 | Method for measuring pose of robot and robot system using same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210136924A KR20230053430A (en) | 2021-10-14 | 2021-10-14 | Method of pose estimation and robot system using the same method |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230053430A true KR20230053430A (en) | 2023-04-21 |
Family
ID=85988424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210136924A KR20230053430A (en) | 2021-10-14 | 2021-10-14 | Method of pose estimation and robot system using the same method |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20230053430A (en) |
WO (1) | WO2023063645A1 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4300199B2 (en) * | 2005-06-13 | 2009-07-22 | 株式会社東芝 | Mobile robot, mobile robot position and orientation calculation method, mobile robot autonomous traveling system |
KR101262181B1 (en) * | 2010-05-03 | 2013-05-14 | 한국과학기술원 | Method and apparatus for locating robot fishes in aquarium |
KR101850118B1 (en) * | 2016-08-09 | 2018-04-19 | 한국생산기술연구원 | Method and System for Calibration of Mobile Robot and Camera |
JPWO2020100522A1 (en) * | 2018-11-15 | 2021-10-21 | 日本電産株式会社 | Mark detection systems, signal processing circuits, computer programs and methods |
US11410250B2 (en) * | 2018-11-19 | 2022-08-09 | Zhengxu He | Automated restaurant |
-
2021
- 2021-10-14 KR KR1020210136924A patent/KR20230053430A/en active IP Right Grant
-
2022
- 2022-10-05 WO PCT/KR2022/014983 patent/WO2023063645A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023063645A1 (en) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11691273B2 (en) | Generating a model for an object encountered by a robot | |
US20210187735A1 (en) | Positioning a Robot Sensor for Object Classification | |
CA3073920C (en) | Collision detection, estimation, and avoidance | |
CN114728417A (en) | Robot autonomous object learning triggered by a remote operator | |
US11642780B2 (en) | Monitoring of surface touch points for precision cleaning | |
JPWO2019146201A1 (en) | Information processing equipment, information processing methods and information processing systems | |
US11587302B2 (en) | Shared dense network with robot task-specific heads | |
US20220366590A1 (en) | Fusing Multiple Depth Sensing Modalities | |
EP4095486A1 (en) | Systems and methods for navigating a robot using semantic mapping | |
US20240153314A1 (en) | Engagement Detection and Attention Estimation for Human-Robot Interaction | |
KR20230053430A (en) | Method of pose estimation and robot system using the same method | |
US20220168909A1 (en) | Fusing a Static Large Field of View and High Fidelity Moveable Sensors for a Robot Platform | |
US11407117B1 (en) | Robot centered augmented reality system | |
Fiala | A robot control and augmented reality interface for multiple robots | |
US11818328B2 (en) | Systems and methods for automatically calibrating multiscopic image capture systems | |
US20220281113A1 (en) | Joint Training of a Narrow Field of View Sensor with a Global Map for Broader Context | |
Cervera et al. | Localization and navigation of an assistive humanoid robot in a smart environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) |