KR20230137080A - A mobile robot - Google Patents
A mobile robot Download PDFInfo
- Publication number
- KR20230137080A KR20230137080A KR1020220034783A KR20220034783A KR20230137080A KR 20230137080 A KR20230137080 A KR 20230137080A KR 1020220034783 A KR1020220034783 A KR 1020220034783A KR 20220034783 A KR20220034783 A KR 20220034783A KR 20230137080 A KR20230137080 A KR 20230137080A
- Authority
- KR
- South Korea
- Prior art keywords
- mobile robot
- area
- open
- node
- driving
- Prior art date
Links
- 238000001514 detection method Methods 0.000 claims description 46
- 238000005266 casting Methods 0.000 claims description 15
- 238000013507 mapping Methods 0.000 description 28
- 238000000034 method Methods 0.000 description 23
- 238000004140 cleaning Methods 0.000 description 18
- 239000000428 dust Substances 0.000 description 16
- 230000033001 locomotion Effects 0.000 description 16
- 238000013528 artificial neural network Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 239000000126 substance Substances 0.000 description 5
- 239000000463 material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding collision or forbidden zones
-
- 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
- B25J13/089—Determining the position of the robot with reference to its environment
-
- 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/022—Optical sensing devices using lasers
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
- B25J5/007—Manipulators mounted on wheels or on carriages mounted on wheels
-
- 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/1628—Programme controls characterised by the control loop
- B25J9/1643—Programme controls characterised by the control loop redundant control
-
- 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/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0238—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
- G05D1/024—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0272—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Electromagnetism (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
Description
본 발명은, 이동 로봇에 관한 것으로, 보다 자세하게는 주행 맵 생성을 위한 이동 로봇의 감지 및 그에 따른 제어 기술에 관한 것이다.The present invention relates to mobile robots, and more specifically, to detection and control technology for mobile robots for generating driving maps.
로봇 응용 분야는 계속적으로 확대되어, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다. 이러한 로봇 중에서 자력으로 주행이 가능한 것을 이동 로봇이라고 한다. The field of robot applications continues to expand, with medical robots, aerospace robots, etc. being developed, and household robots that can be used in general homes are also being created. Among these robots, those that can travel on their own are called mobile robots.
가정에서 사용되는 이동 로봇의 대표적인 예는 이동 로봇이다.A representative example of a mobile robot used at home is a mobile robot.
이동 로봇에 구비된 여러 센서를 통하여 이동 로봇 주변의 환경 및 사용자를 감지하는 여러 기술들이 알려져 있다. 또한, 이동 로봇이 스스로 청소 구역을 학습하여 맵핑하고, 맵 상에서 현재 위치를 파악하는 기술들이 알려져 있다. 청소 구역을 기설정된 방식으로 주행하며 청소하는 이동 로봇이 알려져 있다.Various technologies are known for detecting the environment and users around a mobile robot through various sensors provided in the mobile robot. Additionally, technologies are known in which mobile robots learn and map cleaning areas on their own and determine their current location on the map. Mobile robots that travel and clean a cleaning area in a preset manner are known.
청소 등 설정된 작업을 수행하기 위해서는 주행 구역의 맵(map)을 정확하게 생성하고, 주행 구역 내의 어느 위치로 이동하기 위해서 맵 상에서 이동 로봇의 현재 위치를 정확하게 파악할 수 있어야 한다. In order to perform a set task such as cleaning, it is necessary to accurately create a map of the driving area and accurately determine the current location of the mobile robot on the map in order to move to a certain location within the driving area.
종래기술(한국 공개특허공보 제10-2010-0031878호의 경우, 이동 로봇이 미지의 환경을 탐색할 때 획득되는 영상으로부터 추출되는 특징점들의 위치의 불확실도에 기반하는 경로를 생성하고, 생성된 경로에 따라 주행하는 기술을 개시한다. 특징점들의 불확실도에 기반하는 경로는 이동 로봇의 특징점 지도의 정확성을 높이거나 자기 위치 인식의 정확도를 높이기 위해 생성된다.In the case of prior art (Korean Patent Publication No. 10-2010-0031878), a path is generated based on the uncertainty of the positions of feature points extracted from images obtained when a mobile robot explores an unknown environment, and according to the generated path, A driving technology is introduced. A path based on the uncertainty of feature points is created to increase the accuracy of the feature point map of a mobile robot or to increase the accuracy of self-location recognition.
또한, 다른 종래기술 한국 공개특허공보 2021-0009011호는 청소 시에 주행을 위한 맵 작성을 위해 탐색 주행을 실시하는 것이 개시되어 있다.In addition, another prior art, Korean Patent Publication No. 2021-0009011, discloses conducting a search drive to create a map for driving during cleaning.
이와 같은 다른 종래기술에는, 맵 작성을 위한 탬색 주행 시에 미지의 영역의 주행을 위해 실시간 센싱 범위 내에 있는 데이터를 획득하여 그에 따라 노드를 설정하고, 노드 정보에 의해 그리드 맵을 산출하게 된다. 이와 같은 그리드 맵에 대하여 영상데이터에 의한 경계를 탐색하여 업데이트되는 최종 그리드 맵을 제공함으로써 맵 정보를 생성한다.In this other prior art, when driving to create a map, data within a real-time sensing range is acquired for driving in an unknown area, nodes are set accordingly, and a grid map is calculated based on the node information. For such a grid map, map information is generated by searching for boundaries based on image data and providing an updated final grid map.
그러나, 이와 같은 다른 종래기술로는 로봇이 주행하면서 실시간으로 센싱 범위 내에 있는 데이터만을 획득하고, 그를 기초로 기초 맵을 생성하므로, 이미지에서 찾은 경계에 대해 현재 로봇 위치에서 그 경계 사이에 주행이 가능하지 않은 장애물들이 발생할 수 있는 위험이 있다.However, with other conventional technologies, only data within the sensing range is acquired in real time while the robot is driving, and a basic map is created based on that, so it is possible to drive between the current robot position and the boundary found in the image. There is a risk that obstacles may arise that are not set in stone.
또한, 다른 종래기술에서는 로봇이 주행을 하면서 추가 탐색이 필요한 위치에서 경로 상에 토폴로지 노드를 추가하여 추후 탐색 주행이 필요함을 표시하게 된다.Additionally, in other prior art, while the robot is driving, a topology node is added to the path at a location where additional search is required to indicate that future search driving is necessary.
그러나, 종래기술에서는 추가 탐색이 필요한 곳에 주행 경로 상에 노드를 생성 시 그 노드에 추가 주행이 필요한 방향을 구간을 나눠 표시하게 되는데, 초기 로봇의 방향이 건물 내부의 구조물과 추가 주행 방향의 각도가 맞지 않으면 방향 설정이 어긋나 주행이 어려운 문제가 발생한다.However, in the prior art, when a node is created on the driving path where additional exploration is required, the direction requiring additional driving at that node is divided into sections, and the initial direction of the robot is determined by the angle of the structure inside the building and the additional driving direction. If it is not correct, the direction setting may be misaligned, making driving difficult.
또한, 이동 로봇이 주행하면서 센싱 범위 내에 있는 데이터만을 획득한 상태이기 때문에 이미지에서 찾은 경계에 대해 현재 이동 로봇 위치에서 그 경계까지 주행이 가능하지 않는 경우들이 생길 수 있다.In addition, since only data within the sensing range is acquired while the mobile robot is traveling, there may be cases where it is not possible to drive from the current mobile robot position to the boundary found in the image.
한편, 로봇이 주행을 하면서 추가 탐색이 필요한 위치에서 경로 상에 토폴로지 노드를 추가하여 추후 탐색 주행이 필요함을 표시하면서 주행하는 방법도 제시되었다. 그러나, 이와 같이 토폴로지 맵을 활용하는 경우, 미탐색 영역이 모두 표현되지 않아 미탐색 영역이 발생할 수 있다. Meanwhile, a method of driving while the robot is driving by adding a topology node to the path at a location that requires additional exploration to indicate the need for further exploration was also proposed. However, when using a topology map in this way, unsearched areas may occur because not all unsearched areas are represented.
상기 문제점을 해결하기 위해 본 발명의 목적은, 주행이 필요한 공간에 대한 탐색 주행 시 불필요한 주행을 최소화할 수 있는 맵 생성 방법을 제공하는 것이다.In order to solve the above problems, the purpose of the present invention is to provide a map generation method that can minimize unnecessary driving when searching for a space where driving is required.
또한, 토폴로지 노드맵과 그리드맵을 교차 적용하여 토폴로지 노드맵을 업데이트함으로써, 미탐색 영역 없이 신뢰성 있는 맵을 생성하는 것이다. Additionally, by updating the topology node map by cross-applying the topology node map and grid map, a reliable map is created without unexplored areas.
또한, 본 발명은, 자동으로 맵핑을 수행하는 중 수동 맵핑으로 전환되는 경우, 그리드 맵이 확장될 때, 중복 탐색을 방지할 수 있는 방법을 제시하는 것이다. Additionally, the present invention proposes a method for preventing duplicate searches when switching to manual mapping while performing automatic mapping and when the grid map is expanded.
상기 목적을 달성하기 위한 본 발명의 실시예는 주행 구역 내에서 본체를 이동시키는 주행부; 상기 본체 외부의 물체와의 거리에 관한 거리 감지 정보를 획득하는 감지부; 및 상기 거리 감지 정보로부터 상기 주행 구역에 대한 그리드 맵을 생성하고, 상기 거리 감지 정보 중 라이다 정보로부터 주행 경로 상의 복수의 주행 노드에 대하여 오픈 노드를 탐색하고, 상기 그리드 맵으로부터 각각의 상기 오픈 노드에 대하여 오픈 여부를 재판단하여 토폴로지 맵을 생성하는 제어부를 포함하는 이동 로봇을 제시한다. An embodiment of the present invention for achieving the above object includes a traveling unit that moves the main body within the traveling area; a detection unit that acquires distance detection information regarding the distance to an object outside the main body; and generate a grid map for the driving area from the distance detection information, search for open nodes for a plurality of driving nodes on the driving path from the lidar information among the distance detection information, and select each of the open nodes from the grid map. We present a mobile robot that includes a control unit that re-determines whether or not it is open and generates a topology map.
상기 센서부는 상기 본체 외부의 물체에 레이저를 조사하고, 반사되는 광에 의해 상기 거리 감지 정보를 산출하는 라이다 센서를 포함할 수 있다. The sensor unit may include a LiDAR sensor that irradiates a laser to an object outside the main body and calculates the distance detection information by reflected light.
제어부는 복수의 주행 노드마다 상기 레이 캐스팅을 실행하여 오픈 공간을 탐색하고, 상기 오픈 공간이 존재하는 상기 주행 노드를 상기 오픈 노드로 설정할 수 있다.The control unit may perform the ray casting for each of a plurality of traveling nodes to search for open space, and may set the traveling node where the open space exists as the open node.
상기 제어부는 상기 그리드 맵을 기초로 상기 오픈 노드의 오픈 공간이 존재하는 방향에 마주하는 오픈 공간을 가지는 상기 오픈 노드가 존재하는 경우, 상기 오픈 노드를 닫을 수 있다. The control unit may close the open node when the open node has an open space facing the direction in which the open space of the open node exists based on the grid map.
상기 제어부는 각각의 상기 오픈 노드에 대하여, 상기 그리드 맵으로부터 상기 오픈 노드 주변을 구획하여 상기 오픈 노드 주변에 미탐색 영역이 존재하는지 여부를 판단하여 상기 오픈 노드를 닫을지 결정할 수 있다.For each open node, the control unit may divide the area around the open node from the grid map, determine whether an unexplored area exists around the open node, and determine whether to close the open node.
상기 제어부는 상기 주행 구역을 복수의 서브 영역으로 분할하고, 각각의 상기 서브 영역에 대하여 상기 그리드 맵과 상기 토폴로지 맵을 생성하며, 상기 서브 영역은 상기 이동 로봇이 상기 주행 구역을 소정 시간 또는 소정 거리만큼 주행할 때의 면적으로 분할할 수 있다.The control unit divides the driving area into a plurality of sub-areas and generates the grid map and the topology map for each sub-area, and the sub-area allows the mobile robot to travel the driving area for a predetermined time or a predetermined distance. It can be divided into the area when driving.
상기 제어부는 상기 서브 영역에 대하여 상기 오픈 노드의 오픈 여부가 재 판단된 경우, 상기 그리드 맵으로부터 상기 서브 영역에 대한 미탐색 영역이 존재하는지를 판단할 수 있다.When it is re-determined whether the open node is open for the sub-area, the control unit may determine whether an unsearched area for the sub-area exists from the grid map.
상기 제어부는 상기 미탐색 영역이 존재하면, 상기 미탐색 영역 주변의 상기 주행 노드로 이동하여 상기 미탐색 영역에 오픈 노드가 존재하는지 탐색 주행을 수행할 수 있다. If the unsearched area exists, the controller may move to the driving node around the unsearched area and perform a search drive to see if an open node exists in the unsearched area.
상기 제어부는 상기 주행 노드를 따라 주행하면서, 노드 기반 탐색 및 상기그리드맵 기반 탐색을 동시 수행할 수 있다.The control unit may simultaneously perform node-based search and grid map-based search while driving along the travel node.
상기 제어부는, 상기 주행 노드에서 레이 캐스팅하여 상기 이동 로봇의 주행이 가능하고, 상기 이동 로봇이 기 주행하지 않은 공간을 상기 오픈 공간으로 판단할 수 있다. The control unit may determine that the mobile robot can travel by ray casting from the travel node and that a space in which the mobile robot has not previously driven is the open space.
상기 제어부는 상기 주행 노드를 중심으로 360도로 레이 캐스팅을 수행할 수 있다.The control unit may perform 360-degree ray casting around the travel node.
상기 센서부는 상기 그리드 맵을 생성하기 위한 장애물 감지 센서를 더 포함할 수 있다.The sensor unit may further include an obstacle detection sensor for generating the grid map.
본 발명에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.According to the present invention, one or more of the following effects are achieved.
첫째, 추가적인 주행이 필요한 공간에 대한 탐색 주행 시 불필요한 주행을 최소화하여 효율을 향상시킬 수 있다. First, efficiency can be improved by minimizing unnecessary driving when searching for spaces that require additional driving.
본 발명은 추가적인 탐색 주행 시에 토폴로지 맵에서 그리드맵을 통한 미주행 영역의 탐색을 한번 더 수행함으로써, 중복을 최소화하면서도 신뢰성을 확보할 수 있다.The present invention can secure reliability while minimizing duplication by performing additional search of untraveled areas through a grid map in the topology map during additional search driving.
또한, 오픈 노드에서의 열림 확인 시 그리드 맵에서의 정보를 활용함으로써 오픈 노드에 대한 정확성이 향상될 수 있다.Additionally, the accuracy of open nodes can be improved by using information from the grid map when checking open nodes.
또한, 자동 맵핑 중 일부 구간에서의 수동 맵핑으로 전환될 때, 확장되는 그리드 맵에 대하여 반복적인 학습 없이 해당 위치에서부터 다시 토폴로지 맵의 작성을 수행함으로써 탐색과 연산이 단순화된다.In addition, when switching to manual mapping in some sections during automatic mapping, search and calculation are simplified by creating a topology map again from that location without repeated learning of the expanded grid map.
한편, 본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.Meanwhile, the effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description of the claims.
도 1은 본 발명의 일 실시예에 따른 이동 로봇 및 이동 로봇을 충전시키는 충전대를 도시한 사시도이다.
도 2는 도 1의 이동 로봇을 상측에서 바라본 입면도이다.
도 3은 도 1의 이동 로봇을 정면에서 바라본 입면도이다.
도 4는 도 1의 이동 로봇을 하측에서 바라본 입면도이다.
도 5는 본 발명의 다른 일 실시예에 따른, 이동 로봇의 예시를 도시한 도면이다.
도 6은 도 1 또는 도 5의 이동 로봇의 주요 구성들 간의 제어관계를 도시한 블록도이다.
도 7은 본 발명의 일 실시예에 따른 이동 로봇에 구비된 라이다 센서의 동작을 설명하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 이동 로봇의 맵 생성 과정에 대한 플로우 차트이다.
도 9a 내지 도 9e는 도 8의 순서도에 따른 이동 로봇의 맵 생성 과정을 나태내는 도면이다.
도 10은 본 발명의 다른 실시예에 따른 이동 로봇의 맵 생성 과정에 대한 플로우 차트이다.
도 11a는 비교예에 의한 오픈 공간 탐색을 도시한 것이고, 도 18b는 본 발명에 의한 오픈 공간 탐색을 도시한 것이다.Figure 1 is a perspective view showing a mobile robot and a charging base for charging the mobile robot according to an embodiment of the present invention.
FIG. 2 is an elevation view of the mobile robot of FIG. 1 viewed from above.
FIG. 3 is an elevation view of the mobile robot of FIG. 1 viewed from the front.
FIG. 4 is an elevation view of the mobile robot of FIG. 1 viewed from below.
Figure 5 is a diagram showing an example of a mobile robot according to another embodiment of the present invention.
FIG. 6 is a block diagram showing the control relationship between the main components of the mobile robot of FIG. 1 or FIG. 5.
Figure 7 is a diagram explaining the operation of a LiDAR sensor provided in a mobile robot according to an embodiment of the present invention.
Figure 8 is a flow chart of a map creation process for a mobile robot according to an embodiment of the present invention.
FIGS. 9A to 9E are diagrams showing the map creation process of the mobile robot according to the flowchart of FIG. 8.
Figure 10 is a flow chart of a map creation process for a mobile robot according to another embodiment of the present invention.
Figure 11a shows open space search according to a comparative example, and Figure 18b shows open space search according to the present invention.
본 설명 전체에 걸쳐 언어적/수학적으로 표현된 대소비교에 있어서, '작거나 같음(이하)'과 '작음(미만)'은 통상의 기술자 입장에서 서로 용이하게 치환가능한 정도이며, '크거나 같음(이상)'과 '큼(초과)'은 통상의 기술자 입장에서 서로 용이하게 치환가능한 정도이며, 본 발명을 구현함에 있어서 치환하여도 그 효과 발휘에 문제가 되지 않음은 물론이다.In the magnitude comparison expressed verbally/mathematically throughout this description, 'less than or equal to (less than)' and 'less than' are easily interchangeable from the point of view of an ordinary technician, and 'greater than or equal to' From the point of view of a person skilled in the art, '(more than)' and 'greater than (greater than)' are degrees that can be easily substituted for each other, and of course, even if they are substituted in implementing the present invention, there is no problem in achieving the effect.
본 발명의 이동 로봇(100)은 바퀴 등을 이용하여 스스로 이동이 가능한 로봇을 의미하고, 가정 도우미 로봇 및 이동 로봇 등이 될 수 있다.The mobile robot 100 of the present invention refers to a robot that can move on its own using wheels, etc., and may be a home helper robot or a mobile robot.
도 1 내지 4는 본 발명의 일 실시예에 따른 이동 로봇 및 이동 로봇을 충전시키는 충전대의 외관을 도시한 도면이다.1 to 4 are diagrams showing the appearance of a mobile robot and a charging station for charging the mobile robot according to an embodiment of the present invention.
도 1은 본 발명의 일 실시예에 따른 이동 로봇 및 이동 로봇을 충전시키는 충전대를 도시한 사시도이고, 도 2는 도 1의 이동 로봇을 상측에서 바라본 입면도이고, 도 3은 도 1의 이동 로봇을 정면에서 바라본 입면도이고, 도 4는 도 1의 이동 로봇을 하측에서 바라본 입면도이다.Figure 1 is a perspective view showing a mobile robot and a charging base for charging the mobile robot according to an embodiment of the present invention, Figure 2 is an elevation view of the mobile robot of Figure 1 viewed from above, and Figure 3 is a mobile robot of Figure 1. It is an elevation view viewed from the front, and FIG. 4 is an elevation view of the mobile robot of FIG. 1 viewed from the bottom.
이동 로봇(100)은 본체(110)를 포함한다. 이하, 본체(110)의 각부분을 정의함에 있어서, 주행구역 내의 천장을 향하는 부분을 상면부(도 2 참조)로 정의하고, 주행구역 내의 바닥을 향하는 부분을 저면부(도 4 참조)로 정의하고, 상기 상면부와 저면부 사이에서 본체(110)의 둘레를 이루는 부분 중 주행방향을 향하는 부분을 정면부(도 3 참조)라고 정의한다. 또한, 본체(110)의 정면부와 반대 방향을 향하는 부분을 후면부로 정의할 수 있다. 본체(110)는 이동 로봇(100)를 구성하는 각종 부품들이 수용되는 공간을 형성하는 케이스(111)를 포함할 수 있다.The mobile robot 100 includes a main body 110. Hereinafter, in defining each part of the main body 110, the part facing the ceiling in the travel area is defined as the upper surface part (see Figure 2), and the part facing the floor in the driving area is defined as the bottom part (see Figure 4). And, of the portion forming the circumference of the main body 110 between the upper and lower surfaces, the portion facing the traveling direction is defined as the front portion (see FIG. 3). Additionally, the portion facing the opposite direction from the front portion of the main body 110 may be defined as the rear portion. The main body 110 may include a case 111 that forms a space in which various parts constituting the mobile robot 100 are accommodated.
이동 로봇(100)은 예를 들면, 본체(110)를 이동시키는 적어도 하나의 구동 바퀴(136)를 포함할 수 있다. 구동 바퀴(136)는 예를 들면, 구동 바퀴(136)에 연결된 적어도 하나의 모터(미도시)에 의해 구동되어 회전할 수 있다. The mobile robot 100 may include, for example, at least one driving wheel 136 that moves the main body 110. The driving wheel 136 may be driven and rotated by, for example, at least one motor (not shown) connected to the driving wheel 136.
구동 바퀴(136)는 예를 들면, 본체(110)의 좌, 우측에 각각 구비될 수 있으며, 이하, 각각 좌륜(136(L))과 우륜(136(R))이라고 한다.For example, the driving wheels 136 may be provided on the left and right sides of the main body 110, respectively, and are hereinafter referred to as the left wheel 136 (L) and the right wheel 136 (R), respectively.
좌륜(136(L))과 우륜(136(R))은 하나의 구동 모터에 의해 구동될 수도 있으나, 필요에 따라 좌륜(136(L))을 구동시키는 좌륜 구동 모터와 우륜(136(R))을 구동시키는 우륜 구동 모터가 각각 구비될 수도 있다. 좌륜(136(L))과 우륜(136(R))의 회전 속도에 차이를 두어 좌측 또는 우측으로 본체(110)의 주행방향을 전환할 수 있다.The left wheel 136(L) and the right wheel 136(R) may be driven by a single drive motor, but if necessary, the left wheel drive motor and the right wheel 136(R) drive the left wheel 136(L). ) may each be provided with a right-wheel drive motor that drives the motor. The driving direction of the main body 110 can be switched to the left or right by making a difference in the rotation speed of the left wheel 136(L) and the right wheel 136(R).
이동 로봇(100)은 예를 들면, 이물질을 흡입하는 흡입 유닛(330), 비질을 수행하는 브러시(154, 155), 수거된 이물질을 저장하는 먼지통, 걸레질을 수행하는 걸레부 등을 포함할 수 있다.The mobile robot 100 may include, for example, a suction unit 330 for sucking foreign substances, brushes 154 and 155 for mopping, a dust bin for storing collected foreign substances, and a mopping unit for mopping. there is.
예를 들면, 본체(110)의 저면부에는 공기의 흡입이 이루어지는 흡입구(150h)가 형성될 수 있으며, 본체(110) 내부에는 흡입구(150h)를 통해 공기가 흡입될 수 있도록 흡입력을 제공하는 흡입장치와, 흡입구(150h)를 통해 공기와 함께 흡입된 먼지를 집진하는 먼지통이 구비될 수 있다.For example, an intake port 150h through which air is sucked may be formed on the bottom of the main body 110, and a suction port 150h may be formed inside the main body 110 to provide suction force so that air can be sucked in through the intake port 150h. The device may be provided with a dust bin that collects dust sucked in with air through the inlet 150h.
이동 로봇(100)은 예를 들면, 이동 로봇(100)을 구성하는 각종 부품들이 수용되는 공간을 형성하는 케이스(111)를 포함할 수 있다. 케이스(111)에는 먼지통의 삽입과 탈거를 위한 개구부(미도시)가 형성될 수 있고, 개구부를 여닫는 먼지통 커버(112)가 케이스(111)에 대해 회전 가능하게 구비될 수 있다.For example, the mobile robot 100 may include a case 111 that forms a space in which various parts constituting the mobile robot 100 are accommodated. An opening (not shown) for inserting and removing the dust bin may be formed in the case 111, and a dust bin cover 112 that opens and closes the opening may be rotatable with respect to the case 111.
이동 로봇(100)은 예를 들면, 흡입구(150h)를 통해 노출되는 솔들을 갖는 롤형의 메인 브러시(154)와, 본체(110)의 저면부 전방 측에 위치하며, 방사상으로 연장된 다수개의 날개로 이루어진 솔을 갖는 보조 브러시(155)를 구비할 수 있다. 이들 브러시(154, 155)들의 회전에 의해 주행 구역 내 바닥으로부터 먼지들이 분리되며, 이렇게 바닥으로부터 분리된 먼지들은 흡입구(150h)를 통해 흡입되고, 흡입 유닛(330)을 통해 먼지통으로 유입될 수 있다.For example, the mobile robot 100 includes a roll-shaped main brush 154 having brushes exposed through the suction port 150h, and a plurality of radially extending wings located on the front side of the bottom of the main body 110. An auxiliary brush 155 having a brush made of may be provided. Dust is separated from the floor in the driving area by the rotation of these brushes 154 and 155, and the dust separated from the floor is sucked through the suction port 150h and can be introduced into the dust bin through the suction unit 330. .
먼지통의 필터 내지는 사이클론을 거치면서 공기와 먼지가 상호 분리될 수 있고, 분리된 먼지는 먼지통에 집진되며, 공기는 먼지통에서 배출된 후 본체(110) 내부의 배기유로(미도시)를 거쳐 최종적으로 배기구(미도시)를 통하여 외부로 배출될 수 있다.Air and dust may be separated from each other while passing through the filter or cyclone of the dust bin, the separated dust is collected in the dust bin, and the air is discharged from the dust bin and then passes through the exhaust passage (not shown) inside the main body 110 and finally It can be discharged to the outside through an exhaust port (not shown).
배터리(138)는 예를 들면, 구동 모터뿐만 아니라, 이동 로봇(100)의 작동 전반에 필요한 전원을 공급할 수 있다. 한편, 배터리(138)가 방전될 시, 이동 로봇(100)은 충전을 위해 충전대(200)로 복귀하는 주행을 실시할 수 있으며, 이러한 복귀 주행 중, 이동 로봇(100)은 스스로 충전대(200)의 위치를 탐지할 수 있다.For example, the battery 138 may supply power required for the overall operation of the mobile robot 100 as well as the drive motor. Meanwhile, when the battery 138 is discharged, the mobile robot 100 can return to the charging station 200 for charging, and during this return driving, the mobile robot 100 moves to the charging station 200 by itself. The location can be detected.
충전대(200)는, 예를 들면, 소정의 복귀 신호를 송출하는 신호 송출부(미도시)를 포함할 수 있다. 복귀 신호는, 예를 들면, 초음파 신호 또는 적외선 신호일 수 있으나, 반드시 이에 한정되는 것은 아니다.The charging base 200 may include, for example, a signal transmitting unit (not shown) that transmits a predetermined return signal. The return signal may be, for example, an ultrasonic signal or an infrared signal, but is not necessarily limited thereto.
이동 로봇(100)은 예를 들면, 복귀 신호를 수신하는 신호 감지부(미도시)를 포함할 수 있다. The mobile robot 100 may include, for example, a signal detection unit (not shown) that receives a return signal.
예를 들면, 신호 감지부는 적외선 신호를 감지하는 적외선 센서를 포함할 수 있고, 충전대(200)의 신호 송출부로부터 송출된 적외선 신호를 수신할 수 있다. 이때, 이동 로봇(100)은 충전대(200)로부터 송출된 적외선 신호에 따라 충전대(200)의 위치로 이동하여 충전대(200)와 도킹(docking)할 수 있다. 이러한 도킹에 의해 이동 로봇(100)의 충전 단자(133)와 충전대(200)의 충전 단자(210)가 접촉될 수 있고, 배터리(138)가 충전될 수 있다.For example, the signal detector may include an infrared sensor that detects an infrared signal, and may receive an infrared signal transmitted from the signal transmitter of the charging base 200. At this time, the mobile robot 100 may move to the location of the charging station 200 and dock with the charging station 200 according to the infrared signal transmitted from the charging station 200. Through this docking, the charging terminal 133 of the mobile robot 100 and the charging terminal 210 of the charging stand 200 can be brought into contact, and the battery 138 can be charged.
이동 로봇(100)은 이동 로봇(100)의 내/외부의 정보를 감지하는 구성을 구비할 수 있다. The mobile robot 100 may be equipped with a configuration to detect internal/external information of the mobile robot 100.
이동 로봇(100)은 예를 들면, 주행 구역에 대한 영상 정보를 획득하는 카메라(120)를 구비할 수 있다. For example, the mobile robot 100 may be equipped with a camera 120 that acquires image information about the driving area.
예를 들면, 이동 로봇(100)은, 본체(110) 전방의 영상을 획득하도록 구비되는 전면 카메라(120a)를 구비할 수 있다.For example, the mobile robot 100 may be equipped with a front camera 120a to acquire an image of the front of the main body 110.
예를 들면, 이동 로봇(100)은, 본체(110)의 상면부에 구비되어, 주행 구역 내의 천장에 대한 영상을 획득하는 상부 카메라(120b)를 구비할 수 있다.For example, the mobile robot 100 may include an upper camera 120b that is provided on the upper surface of the main body 110 and acquires an image of the ceiling within the travel area.
예를 들면, 이동 로봇(100)은, 본체(110)의 저면부에 구비되어, 바닥의 영상을 획득하는 하부 카메라(179)를 더 구비할 수 있다.For example, the mobile robot 100 may further include a lower camera 179 that is provided on the bottom of the main body 110 and acquires an image of the floor.
한편, 이동 로봇(100)에 구비된 카메라(120)의 개수, 배치되는 위치와, 촬영범위 등이 반드시 이에 한정되어야 하는 것은 아니며, 주행 구역에 대한 영상 정보를 획득하기 위해 다양한 위치에 배치될 수 있다. Meanwhile, the number, placement location, and shooting range of the cameras 120 provided in the mobile robot 100 are not necessarily limited thereto, and may be placed in various locations to obtain image information about the driving area. there is.
예를 들면, 이동 로봇(100)은 본체(110)의 일면에 대하여 경사지게 배치되어 전방과 상방을 함께 촬영하도록 구성된 카메라(미도시)를 포함할 수도 있다. For example, the mobile robot 100 may include a camera (not shown) that is disposed at an angle on one side of the main body 110 and is configured to capture both the front and the top.
예를 들면, 이동 로봇(100)은 전면 카메라(120a) 및/또는 상부 카메라(120b)를 복수개 구비할 수도 있고, 전방과 상방을 함께 촬영하도록 구성된 카메라를 복수개 구비할 수도 있다.For example, the mobile robot 100 may be provided with a plurality of front cameras 120a and/or upper cameras 120b, and may be provided with a plurality of cameras configured to capture both the front and the top cameras.
본 발명의 다양한 실시예에 따르면, 이동 로봇(100)의 일부 부위(ex, 전방, 후방, 저면)에 카메라(120)가 설치되어 있으며, 주행 시나 청소 시에 영상을 지속적으로 획득할 수 있다. 이러한 카메라(120)는 촬영 효율을 위해 각 부위별로 여러 개가 설치될 수도 있고, 카메라(120)에 의해 촬상된 영상은 해당 공간에 존재하는 먼지, 머리카락, 바닥 등과 같은 물질의 종류 인식, 청소 여부, 또는 청소 시점을 확인하는데 사용될 수 있다.According to various embodiments of the present invention, cameras 120 are installed in some parts (e.g., front, rear, bottom) of the mobile robot 100, and images can be continuously acquired while driving or cleaning. Several such cameras 120 may be installed in each area for filming efficiency, and the images captured by the cameras 120 are used to recognize the types of substances such as dust, hair, floor, etc. present in the space, whether or not they are cleaned, Alternatively, it can be used to check the timing of cleaning.
이동 로봇(100)은 레이저를 이용하여 본체(110) 외부의 지형 정보를 획득하는 라이다(light detection and ranging; LiDAR) 센서(175)를 포함할 수 있다.The mobile robot 100 may include a light detection and ranging (LiDAR) sensor 175 that acquires topographic information outside the main body 110 using a laser.
라이다 센서(175)는 레이저를 출력하고, 객체로부터 반사된 레이저를 수신함으로써, 레이저를 반사시킨 객체와의 거리, 위치 방향, 재질 등의 정보를 획득할 수 있고, 주행 구역의 지형 정보를 획득할 수 있다. 이동 로봇(100)은 라이다 센서(175)를 통해 획득한 정보에 기초하여, 360도의 지형(geometry) 정보를 획득할 수 있다.The LiDAR sensor 175 outputs a laser and receives the laser reflected from the object, thereby obtaining information such as the distance from the object that reflected the laser, location direction, and material, and obtaining topographic information of the driving area. can do. The mobile robot 100 can acquire 360-degree geometry information based on information acquired through the LiDAR sensor 175.
이동 로봇(100)은 또한, 이동 로봇(100)의 동작, 상태와 관련된 각종 데이터를 센싱하는 센서들(171, 172, 179)을 포함할 수 있다.The mobile robot 100 may also include sensors 171, 172, and 179 that sense various data related to the operation and status of the mobile robot 100.
이동 로봇(100)은 전방의 장애물을 감지하는 장애물 감지센서(171), 주행 구역 내 바닥에 낭떠러지의 존재 여부를 감지하는 낭떠러지 감지센서(172) 등을 포함할 수 있다. The mobile robot 100 may include an obstacle detection sensor 171 that detects an obstacle in front, a cliff detection sensor 172 that detects the presence of a cliff on the floor within the driving area, and the like.
이동 로봇(100)은 이동 로봇(100)의 전원 온/오프(on/off) 등의 각종 명령을 입력할 수 있는 조작부(137)를 포함할 수 있고, 조작부(137)를 통해 이동 로봇(100)의 작동 전반에 필요한 각종 제어 명령을 입력받을 수 있다. The mobile robot 100 may include a manipulation unit 137 that can input various commands such as turning on/off the power of the mobile robot 100, and the mobile robot 100 may be operated through the manipulation unit 137. ) can receive various control commands necessary for the overall operation.
이동 로봇(100)은 출력부(미도시)를 포함할 수 있고, 예약 정보, 배터리 상태, 동작모드, 동작상태, 에러상태 등을 표시할 수 있다. The mobile robot 100 may include an output unit (not shown) and may display reservation information, battery status, operation mode, operation status, error status, etc.
한편, 도 5는 본 발명의 다른 일 실시예에 따른, 이동 로봇의 예시를 도시한 도면이다.Meanwhile, Figure 5 is a diagram showing an example of a mobile robot according to another embodiment of the present invention.
도 5에 도시된 이동 로봇(100)은 도 1 내지 도 4에 개시된 이동 로봇(100)와 동일 또는 유사한 구성들을 구비하며, 대면적의 공간에 적용가능한 이동 로봇으로서 기능한다. 이에 대한 상세한 설명은 생략한다. The mobile robot 100 shown in FIG. 5 has the same or similar configurations as the mobile robot 100 shown in FIGS. 1 to 4, and functions as a mobile robot applicable to a large space. A detailed description of this will be omitted.
도 6은 본 발명의 실시예에 따른 이동 로봇의 주요 구성들 간의 제어관계를 도시한 블록도이다.Figure 6 is a block diagram showing the control relationship between the main components of the mobile robot according to an embodiment of the present invention.
도 6을 참조하면, 이동 로봇(100)은 저장부(305), 영상 획득부(320), 입력부(325), 흡입 유닛(330), 제어부(350), 주행부(360), 센서부(370), 출력부(380), 및/또는 통신부(390)를 포함할 수 있다.Referring to FIG. 6, the mobile robot 100 includes a storage unit 305, an image acquisition unit 320, an input unit 325, a suction unit 330, a control unit 350, a traveling unit 360, and a sensor unit ( 370), an output unit 380, and/or a communication unit 390.
저장부(305)는 이동 로봇(100)의 제어에 필요한 각종 정보들을 저장할 수 있다. The storage unit 305 can store various types of information necessary for controlling the mobile robot 100.
저장부(305)는 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 기록 매체는, 마이크로 프로세서(microprocessor)에 의해 읽힐 수 있는 데이터를 저장한 것으로, 그 종류나 구현 방식에 한정되지 않는다.The storage unit 305 may include volatile or non-volatile recording media. A recording medium stores data that can be read by a microprocessor, and is not limited to its type or implementation method.
저장부(305)는 주행 구역에 대한 맵(map)을 저장할 수 있다. 저장부(305)에 저장되는 맵은 이동 로봇(100)과 유선 또는 무선 통신을 통해 정보를 교환할 수 있는 외부 단말기, 서버 등으로부터 입력된 것일 수도 있고, 이동 로봇(100)이 스스로 학습을 하여 생성한 것일 수도 있다. The storage unit 305 may store a map of the driving area. The map stored in the storage unit 305 may be input from an external terminal or server that can exchange information with the mobile robot 100 through wired or wireless communication, or the mobile robot 100 learns on its own and It may have been created.
저장부(305)는 서브 영역에 대한 데이터를 저장할 수 있다. 여기서, 서브 영역은 주행 구역 상의 소정 거리 또는 소정 면적을 가지는 분할된 구역을 의미할 수 있다. 서브 영역에 대한 데이터는, 해당 서브 영역을 주행하면서 구하는 라이다 감지 데이터 및 해당 라이다 감지 데이터에 대한 각 노드 정보, 각 노드에서의 이동 방향에 대한 정보 등을 포함할 수 있다. The storage unit 305 can store data for the sub-area. Here, the sub-area may refer to a divided area having a certain distance or a certain area in the driving area. The data for the sub-area may include LiDAR detection data obtained while driving in the sub-area, information on each node for the corresponding LiDAR detection data, and information on the direction of movement in each node.
저장부(305)는 다양한 맵 정보를 저장할 수 있다.The storage unit 305 can store various map information.
맵에는 주행 구역 내의 방들의 위치가 표시될 수 있다. 또한, 이동 로봇(100)의 현재 위치가 맵 상에 표시될 수 있으며, 맵 상에서의 이동 로봇(100)의 현재의 위치는 주행 과정에서 갱신될 수 있다. The map may display the locations of rooms within the driving area. Additionally, the current location of the mobile robot 100 may be displayed on the map, and the current location of the mobile robot 100 on the map may be updated during the driving process.
저장부(305)는 청소 이력 정보를 저장할 수 있다. 이러한 청소 이력 정보는 청소를 수행할 때마다 생성될 수 있다.The storage unit 305 may store cleaning history information. Such cleaning history information may be generated each time cleaning is performed.
저장부(305)에 저장되는 주행 구역에 대한 맵(map)은 예를 들면, 청소 중 주행에 사용되는 내비게이션 맵(navigation map), 위치 인식에 사용되는 슬램(simultaneous localization and mapping; SLAM) 맵, 장애물 등에 부딪히면 해당 정보를 저장하여 학습 청소 시 사용하는 학습 맵, 전역적 위치 인식에 사용되는 전역적 위상 맵(topological map), 셀 데이터 기반의 그리드 맵(grid map), 인식된 장애물에 관한 정보가 기록되는 장애물 인식 맵 등일 수 있다. The map for the driving area stored in the storage unit 305 includes, for example, a navigation map used for driving during cleaning, a simultaneous localization and mapping (SLAM) map used for location recognition, When an obstacle is encountered, the information is stored and a learning map used for learning and cleaning, a global topological map used for global location recognition, a grid map based on cell data, and information about recognized obstacles are stored. It may be a recorded obstacle recognition map, etc.
한편, 용도별로 저장부(305)에 맵들을 구분하여 저장, 관리할 수 있지만, 맵이 용도별로 명확히 구분되지 않을 수도 있다. 예를 들어, 적어도 2 이상의 용도로 사용할 수 있도록 하나의 맵에 복수의 정보가 저장될 수도 있다.Meanwhile, maps can be stored and managed by classifying them in the storage unit 305 according to purpose, but the maps may not be clearly divided by purpose. For example, a plurality of information may be stored in one map so that it can be used for at least two purposes.
영상 획득부(320)는 이동 로봇(100)의 주변의 영상을 획득할 수 있다. 영상 획득부(320)는 적어도 하나의 카메라(예: 도 1의 카메라(120))를 구비할 수 있다. The image acquisition unit 320 may acquire images around the mobile robot 100. The image acquisition unit 320 may include at least one camera (eg, camera 120 of FIG. 1).
영상 획득부(320)는, 예를 들면, 디지털 카메라를 포함할 수 있다. 디지털 카메라는, 적어도 하나의 광학렌즈와, 광학렌즈를 통과한 광에 의해 상이 맺히는 다수개의 광다이오드(photodiode, 예를 들어, pixel)를 포함하여 구성된 이미지센서(예를 들어, CMOS image sensor)와, 광다이오드들로부터 출력된 신호를 바탕으로 영상을 구성하는 디지털 신호 처리기(digital signal processor; DSP)를 포함할 수 있다. 디지털 신호 처리기는, 예를 들면, 정지영상은 물론이고, 정지영상으로 구성된 프레임들로 이루어진 동영상을 생성하는 것도 가능하다.The image acquisition unit 320 may include, for example, a digital camera. A digital camera includes an image sensor (e.g., CMOS image sensor) that includes at least one optical lens and a plurality of photodiodes (e.g., pixels) that produce images by light passing through the optical lens. , may include a digital signal processor (DSP) that configures an image based on signals output from photodiodes. A digital signal processor, for example, is capable of generating not only still images but also moving images composed of frames composed of still images.
영상 획득부(320)는 이동 로봇(100)의 주행 방향 전면에 존재하는 장애물 또는 청소 영역의 상황을 촬영할 수 있다.The image acquisition unit 320 may capture a situation of an obstacle or cleaning area in front of the mobile robot 100 in its traveling direction.
본 발명의 일 실시예에 따르면, 영상획득부(320)는 본체(110) 주변을 연속적으로 촬영하여 복수의 영상을 획득할 수 있고, 획득된 복수의 영상은 저장부(305)에 저장될 수 있다.According to one embodiment of the present invention, the image acquisition unit 320 can acquire a plurality of images by continuously photographing the surroundings of the main body 110, and the plurality of acquired images can be stored in the storage unit 305. there is.
이동 로봇(100)은 복수의 영상을 이용하여 장애물 인식의 정확성을 높이거나, 복수의 영상 중 하나 이상의 영상을 선택하여 효과적인 데이터를 사용함으로써 장애물 인식의 정확성을 높일 수 있다.The mobile robot 100 can increase the accuracy of obstacle recognition by using a plurality of images, or by selecting one or more images from among the plurality of images and using effective data.
입력부(325)는 사용자 입력을 수신할 수 있는 입력 장치(예: 키, 터치 패널 등)을 구비할 수 있다. 입력부(325)는 이동 로봇(100)의 전원 온/오프(on/off) 등의 각종 명령을 입력할 수 있는 조작부(137)를 포함할 수 있다.The input unit 325 may be provided with an input device (eg, key, touch panel, etc.) capable of receiving user input. The input unit 325 may include a manipulation unit 137 that can input various commands such as turning on/off the power of the mobile robot 100.
입력부(325)는 입력장치를 통해 사용자 입력을 수신할 수 있고, 수신된 사용자 입력에 대응하는 명령을 제어부(350)에 전송할 수 있다.The input unit 325 can receive user input through an input device and transmit a command corresponding to the received user input to the control unit 350.
흡입 유닛(330)은 먼지가 포함된 공기를 흡입할 수 있다. 흡입 유닛(330)은, 예를 들면, 이물질을 흡입하는 흡입 장치(미도시), 비질을 수행하는 브러시(154, 155), 흡입장치나 브러시(예: 도 3의 브러시(154, 155))에 의해 수거된 이물질을 저장하는 먼지통(미도시), 공기의 흡입이 이루어지는 흡입구(예: 도 4의 흡입구(150h)) 등을 포함할 수 있다.The suction unit 330 may suction air containing dust. The suction unit 330 includes, for example, a suction device (not shown) for sucking foreign substances, brushes 154 and 155 for scrubbing, and a suction device or brush (e.g., brushes 154 and 155 in FIG. 3). It may include a dust bin (not shown) for storing foreign substances collected by the dustbin, an intake port through which air is sucked (e.g., the intake port 150h in FIG. 4), etc.
주행부(360)는 이동 로봇(100)을 이동시킬 수 있다. 주행부(360)는, 예를 들면, 이동 로봇(100)을 이동시키는 적어도 하나의 구동 바퀴(136)와, 구동 바퀴를 회전시키는 적어도 하나의 모터(미도시)를 포함할 수 있다.The traveling unit 360 can move the mobile robot 100. The traveling unit 360 may include, for example, at least one driving wheel 136 that moves the mobile robot 100 and at least one motor (not shown) that rotates the driving wheel.
센서부(370)는 본체(110) 외부의 물체와의 거리를 측정하는 거리 측정 센서를 포함할 수 있다. 거리 측정 센서는 앞서 설명한 라이다 센서(175)를 포함할 수 있다. The sensor unit 370 may include a distance measurement sensor that measures the distance to an object outside the main body 110. The distance measurement sensor may include the lidar sensor 175 described above.
본 발명의 일 실시예에 따른 이동 로봇(100)은 라이다 센서(175)가 센싱한 객체들의 거리와 위치, 방향 등을 파악하여 맵을 생성할 수 있다.The mobile robot 100 according to an embodiment of the present invention can generate a map by determining the distance, location, and direction of objects sensed by the LiDAR sensor 175.
본 발명의 일 실시예에 따른 이동 로봇(100)은 외부에서 반사되어 수신되는 레이저의 시간차 또는 신호 강도 등 레이저 수신 패턴을 분석하여 주행 구역의 지형 정보를 획득할 수 있다. 또한, 이동 로봇(100)은 라이다 센서(175)를 통하여 획득한 지형 정보를 이용하여 맵을 생성할 수 있다.The mobile robot 100 according to an embodiment of the present invention can obtain topographic information of the driving area by analyzing the laser reception pattern, such as the time difference or signal strength of the laser reflected and received from the outside. Additionally, the mobile robot 100 may generate a map using terrain information acquired through the LiDAR sensor 175.
예를 들어, 본 발명에 따른 이동 로봇(100)은 라이다 센서(175)를 통하여 현재 위치에서 획득된 주변 지형 정보를 분석하여 이동 방향을 결정하는 라이다 슬램을 수행할 수 있다.For example, the mobile robot 100 according to the present invention may perform a LiDAR slam to determine the direction of movement by analyzing surrounding terrain information acquired at the current location through the LiDAR sensor 175.
더욱 바람직하게는, 본 발명에 따른 이동 로봇(100)은 카메라를 이용하는 비전 기반의 위치 인식과 레이저를 이용하는 라이다 기반의 위치 인식 기술 및 초음파 센서를 통해 장애물을 효과적으로 인식하고 변화량이 작은 최적의 이동 방향을 추출하여 맵 생성을 수행할 수 있다.More preferably, the mobile robot 100 according to the present invention effectively recognizes obstacles through vision-based location recognition using a camera, lidar-based location recognition technology using a laser, and an ultrasonic sensor, and provides optimal movement with a small amount of change. Map creation can be performed by extracting directions.
센서부(370)는 전방의 장애물을 감지하는 장애물 감지센서(171), 주행 구역 내 바닥에 낭떠러지의 존재 여부를 감지하는 낭떠러지 감지센서(172) 등을 포함할 수 있다.The sensor unit 370 may include an obstacle detection sensor 171 that detects an obstacle in front, a cliff detection sensor 172 that detects the presence of a cliff on the floor within the driving area, and the like.
장애물 감지센서(171)는 이동 로봇(100)의 외주면에 일정 간격으로 복수개 배치될 수 있다. 장애물 감지센서(171)는 적외선 센서, 초음파 센서, RF(radio frequency) 센서, 지자기 센서, PSD(position sensitive device) 센서 등을 포함할 수 있다.A plurality of obstacle detection sensors 171 may be arranged at regular intervals on the outer peripheral surface of the mobile robot 100. The obstacle detection sensor 171 may include an infrared sensor, an ultrasonic sensor, a radio frequency (RF) sensor, a geomagnetic sensor, a position sensitive device (PSD) sensor, etc.
장애물 감지센서(171)는 실내의 벽이나 장애물과의 거리를 감지하는 센서일 수 있고, 본 발명은 그 종류에 한정되지 않으나, 이하에서는 적외선 센서를 예시하여 설명한다. The obstacle detection sensor 171 may be a sensor that detects the distance to an indoor wall or obstacle, and the present invention is not limited to its type, but will be described below by taking an infrared sensor as an example.
장애물 감지센서(171)는 이동 로봇(100)의 주행(이동) 방향에 존재하는 물체, 특히 장애물을 감지하여 장애물 정보를 제어부(350)에 전달할 수 있다. 즉, 장애물 감지센서(171)는, 이동 로봇(100)의 이동 경로, 이동 로봇(100)의 전방이나 측면에 존재하는 돌출물, 집안의 집기, 가구, 벽면, 벽 모서리 등을 감지하여 그 정보를 제어부(350)에 전달할 수 있다.The obstacle detection sensor 171 can detect objects, especially obstacles, present in the driving (movement) direction of the mobile robot 100 and transmit obstacle information to the control unit 350. That is, the obstacle detection sensor 171 detects the movement path of the mobile robot 100, protrusions present in front or on the side of the mobile robot 100, household fixtures, furniture, walls, wall corners, etc., and provides the information. It can be transmitted to the control unit 350.
센서부(370)는 이동 로봇(100)의 주행 동작을 감지하고 동작 정보를 출력하는 주행 감지 센서(미도시)를 더 포함할 수 있다. 주행 감지 센서는 예를 들면, 자이로 센서(gyro sensor), 휠 센서(wheel sensor), 가속도 센서(acceleration sensor) 등을 포함할 수 있다.The sensor unit 370 may further include a driving detection sensor (not shown) that detects the driving motion of the mobile robot 100 and outputs motion information. The driving sensor may include, for example, a gyro sensor, a wheel sensor, an acceleration sensor, etc.
자이로 센서는 이동 로봇(100)이 운전 모드에 따라 움직일 때 회전 방향을 감지하고 회전각을 검출할 수 있다. 자이로 센서는 이동 로봇(100)의 각속도를 검출하여 각속도에 비례하는 전압 값을 출력할 수 있다. The gyro sensor can detect the rotation direction and rotation angle when the mobile robot 100 moves according to the driving mode. The gyro sensor can detect the angular velocity of the mobile robot 100 and output a voltage value proportional to the angular velocity.
휠 센서는 구동 바퀴(136), 일 예로 도 4의 좌륜(136(L))과 우륜(136(R))에 연결되어 구동 바퀴(136)의 회전수를 감지할 수 있다. The wheel sensor is connected to the driving wheel 136, for example, the left wheel 136 (L) and the right wheel 136 (R) of FIG. 4 and can detect the rotation speed of the driving wheel 136.
가속도 센서는 이동 로봇(100)의 속도 변화를 검출할 수 있다. 가속도 센서는 구동 바퀴(136)의 인접한 위치에 부착될 수도 있고, 제어부(350)에 내장될 수도 있다.The acceleration sensor can detect changes in speed of the mobile robot 100. The acceleration sensor may be attached to a position adjacent to the driving wheel 136 or may be built into the control unit 350.
출력부(380)는 오디오 신호를 출력하는 음향 출력부(381)를 포함할 수 있다. 음향 출력부는 제어부(350)의 제어에 따라 경고음, 동작모드, 동작상태, 에러상태 등의 알림 메시지, 사용자의 명령 입력에 대응하는 정보, 사용자의 명령 입력에 대응하는 처리 결과 등을 음향으로 출력할 수 있다. The output unit 380 may include an audio output unit 381 that outputs an audio signal. Under the control of the control unit 350, the sound output unit outputs alarm messages such as warning sounds, operation modes, operation states, and error states, information corresponding to the user's command input, and processing results corresponding to the user's command input as sound. You can.
음향 출력부(381)는 제어부(150)로부터의 전기 신호를 오디오 신호로 변환하여 출력할 수 있다. 이를 위해, 스피커 등을 구비할 수 있다.The audio output unit 381 can convert the electrical signal from the control unit 150 into an audio signal and output it. For this purpose, speakers, etc. may be provided.
출력부(380)는 사용자의 명령 입력에 대응하는 정보, 사용자의 명령 입력에 대응하는 처리 결과, 동작모드, 동작상태, 에러상태 등을 영상으로 표시하는 디스플레이(382)를 포함할 수 있다. The output unit 380 may include a display 382 that displays information corresponding to the user's command input, processing results corresponding to the user's command input, operation mode, operation state, error state, etc. as images.
실시예에 따라서, 디스플레이(382)는 터치패드와 상호 레이어 구조를 이루어 터치스크린으로 구성될 수 있다. 이 경우에, 터치스크린으로 구성되는 디스플레이(382)는 출력 장치 이외에 사용자의 터치에 의한 정보의 입력이 가능한 입력 장치로도 사용될 수 있다. Depending on the embodiment, the display 382 may be configured as a touch screen by forming a layer structure with the touch pad. In this case, the display 382, which is configured as a touch screen, can be used as an input device capable of inputting information by a user's touch in addition to an output device.
통신부(390)는 적어도 하나의 통신 모듈(미도시)을 구비할 수 있고, 외부 기기와 데이터를 송수신할 수 있다. 이동 로봇(100)과 통신하는 외부 기기 중 외부 단말기는, 예를 들면, 이동 로봇(100)을 제어하기 위한 애플리케이션을 구비하고, 애플리케이션의 실행을 통해 이동 로봇(100)이 청소할 주행 구역에 대한 맵을 표시하고, 맵 상에 특정 영역을 청소하도록 영역을 지정할 수 있다. The communication unit 390 may include at least one communication module (not shown) and may transmit and receive data with an external device. Among the external devices that communicate with the mobile robot 100, an external terminal includes, for example, an application for controlling the mobile robot 100, and maps the driving area to be cleaned by the mobile robot 100 through execution of the application. , and you can designate an area to clean a specific area on the map.
통신부(390)는 와이파이(Wi-fi), 블루투스(bluetooth), 비콘(beacon), 지그비(zigbee), RFID(radio frequency identification) 등의 무선 통신 방식으로 신호를 송수신할 수 있다.The communication unit 390 can transmit and receive signals through wireless communication methods such as Wi-Fi, Bluetooth, beacon, zigbee, and radio frequency identification (RFID).
전원 공급부는 이동 로봇(100)의 각 구성 요소들에 구동 전원과, 동작 전원을 공급할 수 있다.The power supply unit may supply driving power and operating power to each component of the mobile robot 100.
이동 로봇(100)은 배터리(138)의 배터리 잔량, 충전 상태 등을 감지할 수 있고, 감지 결과를 제어부(350)에 전송하는 배터리 감지부(미도시)를 더 포함할 수 있다. The mobile robot 100 may detect the remaining battery capacity and charging state of the battery 138 and may further include a battery detection unit (not shown) that transmits the detection result to the control unit 350.
제어부(350)는 이동 로봇(100)에 구비된 각 구성과 연결될 수 있다. 제어부(350)는, 예를 들면, 이동 로봇(100)에 구비된 각 구성과 상호 간에 신호를 송수신할 수 있고, 각 구성의 전반적인 동작을 제어할 수 있다.The control unit 350 may be connected to each component provided in the mobile robot 100. For example, the control unit 350 can transmit and receive signals between each component provided in the mobile robot 100 and control the overall operation of each component.
제어부(350)는 센서부(370)를 통해 획득한 정보에 기초하여, 이동 로봇(100)의 내/외부에 대한 상태를 판단할 수 있다. The control unit 350 may determine the internal/external status of the mobile robot 100 based on information acquired through the sensor unit 370.
제어부(350)는 자이로 센서로부터 출력되는 전압 값을 이용하여 회전 방향 및 회전각을 산출할 수 있다.The control unit 350 can calculate the rotation direction and angle using the voltage value output from the gyro sensor.
제어부(350)는 휠 센서로부터 출력되는 회전수에 기초하여, 구동 바퀴(136)의 회전 속도를 연산할 수 있다. 또한, 제어부(350)는 좌륜(136(L))과 우륜(136(R))의 회전수 차이에 기초하여 회전각을 연산할 수도 있다.The control unit 350 may calculate the rotational speed of the driving wheel 136 based on the rotational speed output from the wheel sensor. Additionally, the control unit 350 may calculate the rotation angle based on the difference in rotation speed between the left wheel 136(L) and the right wheel 136(R).
제어부(350)는 가속도 센서로부터 출력되는 값에 기초하여, 이동 로봇(100)의 출발, 정지, 방향 전환, 물체와의 충돌 등과 같은 이동 로봇(100)의 상태 변화를 판단할 수 있다. 한편, 제어부(350)는 가속도 센서로부터 출력되는 값에 기초하여, 속도 변화에 따른 충격량을 검출할 수 있어, 가속도 센서는 전자식 범퍼 센서의 기능을 수행할 수도 있다. The control unit 350 may determine changes in the state of the mobile robot 100, such as starting, stopping, changing direction, or colliding with an object, based on the value output from the acceleration sensor. Meanwhile, the control unit 350 can detect the amount of impact due to a change in speed based on the value output from the acceleration sensor, so the acceleration sensor can also perform the function of an electronic bumper sensor.
제어부(350)는 적외선 센서를 통해 수신된 적어도 2 이상의 신호에 기초하여, 장애물의 위치를 감지하고, 감지된 장애물의 위치에 따라 이동 로봇(100)의 움직임을 제어할 수 있다.The control unit 350 may detect the location of an obstacle based on at least two signals received through an infrared sensor and control the movement of the mobile robot 100 according to the location of the detected obstacle.
실시예에 따라서는, 이동 로봇(100)의 외측면에 구비되는 장애물 감지 센서(171)는 발신부와 수신부를 포함하여 구성될 수 있다. Depending on the embodiment, the obstacle detection sensor 171 provided on the outer surface of the mobile robot 100 may be configured to include a transmitter and a receiver.
예를 들면, 적외선 센서는 적어도 하나 이상의 발신부 및 적어도 둘 이상의 수신부가 서로 엇갈리도록 구비될 수 있다. 이에 따라, 발신부는 다양한 각도로 적외선 신호를 방사할 수 있고, 장애물에 반사된 적외선 신호를 적어도 둘 이상의 수신부가 다양한 각도에서 수신할 수 있다.For example, an infrared sensor may be provided with at least one transmitting unit and at least two receiving units staggered from each other. Accordingly, the transmitter can radiate infrared signals at various angles, and at least two receivers can receive the infrared signals reflected by obstacles at various angles.
실시예에 따라서는, 적외선 센서에서 수신된 신호는, 증폭, 필터링 등의 신호 처리 과정을 거칠 수 있고, 이후 장애물까지의 거리 및 방향이 산출될 수 있다.Depending on the embodiment, the signal received from the infrared sensor may undergo signal processing such as amplification and filtering, and then the distance and direction to the obstacle may be calculated.
한편, 제어부(350)는 주행제어모듈(351), 지도생성모듈(352), 위치인식모듈(353) 및/또는 장애물인식모듈(354)을 포함할 수 있다. 본 도면에서는, 설명의 편의상, 주행제어모듈(351), 지도생성모듈(352), 위치인식모듈(353) 및/또는 장애물인식모듈(354)으로 구분하여 설명하나, 본 발명이 이에 한정되는 것은 아니다.Meanwhile, the control unit 350 may include a driving control module 351, a map generation module 352, a location recognition module 353, and/or an obstacle recognition module 354. In this drawing, for convenience of explanation, the driving control module 351, map generation module 352, location recognition module 353, and/or obstacle recognition module 354 are separately described, but the present invention is not limited thereto. no.
위치인식모듈(353)과 장애물인식모듈(354)은 하나의 인식기로써 통합되어 하나의 인식모듈(355)로 구성될 수 있다. 이 경우에, 머신 러닝 등의 학습 기법을 이용하여 인식기를 학습시키고, 학습된 인식기는 이후에 입력되는 데이터를 분류하여 영역, 사물 등의 속성을 인식할 수 있다.The location recognition module 353 and the obstacle recognition module 354 can be integrated into one recognizer to form one recognition module 355. In this case, a recognizer is trained using a learning technique such as machine learning, and the learned recognizer can later classify input data to recognize properties of areas, objects, etc.
실시예에 따라서, 지도생성모듈(352), 위치인식모듈(353), 및, 장애물인식모듈(354)이 하나의 통합모듈로 구성될 수도 있다.Depending on the embodiment, the map generation module 352, the location recognition module 353, and the obstacle recognition module 354 may be configured as one integrated module.
주행제어모듈(351)은 이동 로봇(100)의 주행을 제어할 수 있고, 주행 설정에 따라 주행부(360)의 구동을 제어할 수 있다.The travel control module 351 can control the travel of the mobile robot 100 and control the driving of the travel unit 360 according to travel settings.
주행제어모듈(351)은 주행부(360)의 동작을 바탕으로 이동 로봇(100)의 주행 경로를 파악할 수 있다. 주행제어모듈(351)은 구동 바퀴(136)의 회전속도를 바탕으로 이동 로봇(100)의 현재 또는 과거의 이동속도, 주행한 거리 등을 파악할 수 있으며, 이렇게 파악된 이동 로봇(100)의 주행 정보를 바탕으로, 맵 상에서 이동 로봇(100)의 위치가 갱신될 수 있다. The travel control module 351 can determine the travel path of the mobile robot 100 based on the operation of the travel unit 360. The travel control module 351 can determine the current or past movement speed and traveled distance of the mobile robot 100 based on the rotation speed of the driving wheel 136, and the travel of the mobile robot 100 determined in this way. Based on the information, the location of the mobile robot 100 on the map may be updated.
지도생성모듈(352)은 주행 구역에 대한 맵을 생성할 수 있다. The map generation module 352 can generate a map for the driving area.
지도생성모듈(352)은 이동 로봇(100)이 주행하는 동안, 획득한 정보에 기초하여 맵을 실시간으로 생성 및/또는 갱신할 수 있다.The map generation module 352 can generate and/or update a map in real time based on information acquired while the mobile robot 100 is traveling.
지도생성모듈(352)은 복수의 이동 방향을 설정할 수 있다. 예를 들면, 지도생성모듈(352)은, 주행 구역에 대한 맵을 생성하는 기능(이하, 맵 생성 기능)이 실행되는 경우, 기능이 실행되는 시점에 이동 로봇(100)의 전면이 향하는 방향을 제1 이동 방향으로 설정할 수 있다. 또한, 지도생성모듈(352)은 기능이 실행되는 시점에 이동 로봇(100)의 좌측면이 향하는 방향을 제2 이동 방향, 이동 로봇(100)의 우측면이 향하는 방향을 제3 이동 방향, 제1 방향의 반대 방향인 이동 로봇(100)의 후면이 향하는 방향을 제4 이동 방향으로 설정할 수 있다.The map generation module 352 can set multiple movement directions. For example, when a function for generating a map of a driving area (hereinafter referred to as map generation function) is executed, the map generation module 352 determines the direction in which the front of the mobile robot 100 faces at the time the function is executed. It can be set as the first movement direction. In addition, at the time the function is executed, the map generation module 352 uses the direction in which the left side of the mobile robot 100 faces as the second movement direction, and the direction in which the right side of the mobile robot 100 faces as the third movement direction and the first direction in which the map generation module 352 faces. The direction in which the rear of the mobile robot 100 faces, which is the opposite direction, can be set as the fourth movement direction.
한편, 본 도면에서는 복수의 이동 방향을 4개의 방향으로 설정되는 것으로 설명하나, 본 발명이 이에 한정되는 것은 아니며, 다양한 실시예에 따라, 8개, 16개 등 다양한 개수의 방향으로 설정될 수도 있다.Meanwhile, in this drawing, the plurality of movement directions are described as being set to four directions, but the present invention is not limited to this, and according to various embodiments, they may be set to various directions such as 8 or 16. .
지도생성모듈(352)은 라이다 센서(175)를 통해 획득한 정보에 기초하여 맵을 작성할 수 있다.The map creation module 352 can create a map based on information acquired through the LiDAR sensor 175.
지도생성모듈(352)은 라이다 센서(175)를 통해 출력되고, 외부 객체에서 반사되어 수신되는 레이저의 수신 시간차, 신호 강도와 같은 수신 패턴을 분석하여, 주행 구역의 지형 정보를 획득할 수 있다. 주행 구역의 지형 정보는, 예를 들면, 이동 로봇(100)의 주변에 존재하는 객체들의 위치, 거리, 방향 등을 포함할 수 있다.The map generation module 352 is output through the LiDAR sensor 175 and analyzes reception patterns such as reception time difference and signal strength of the laser reflected from external objects and can obtain topographic information of the driving area. . Topographic information of the driving area may include, for example, the location, distance, and direction of objects existing around the mobile robot 100.
지도생성모듈(352)은 라이다 센서(175)를 통해 획득한 주행 구역의 지형 정보에 기초하여 전역적 위상 맵(topological map)을 생성하면서, 복수의 노드에 대한 정보를 저장할 수 있으며, 이와 같은 정보가 제1 맵 데이터로 정의될 수 있다. The map generation module 352 can store information about a plurality of nodes while generating a global topological map based on the topographic information of the driving area acquired through the LiDAR sensor 175. Information may be defined as first map data.
또한, 지도생성모듈(352)은 장애물 감지 센서(171)인 적외선 센서로부터의 거리감지 신호에 기초하여 셀 데이터 기반의 그리드 맵(grid map)을 생성할 수 있다.Additionally, the map generation module 352 may generate a grid map based on cell data based on a distance detection signal from an infrared sensor, which is the obstacle detection sensor 171.
지도생성모듈(352)은 주행 구역에 대하여 복수의 서브 영역으로 분할하고, 각서브 영역에 대하여 주행하면서 적외선 센서를 통해 장애물이 존재하는 영역과 존재하지 않는 영역에 대한 셀 데이터가 다른 그리드 맵을 생성할 수 있다.The map generation module 352 divides the driving area into a plurality of sub-areas and generates a grid map with different cell data for areas where obstacles exist and areas where obstacles do not exist through an infrared sensor while driving in each sub-area. can do.
위치인식모듈(353)은 이동 로봇(100)의 위치를 판단할 수 있다. 위치인식모듈(353)은 이동 로봇(100)이 주행하는 동안, 이동 로봇(100)의 위치를 판단할 수 있다.The location recognition module 353 can determine the location of the mobile robot 100. The location recognition module 353 can determine the location of the mobile robot 100 while the mobile robot 100 is traveling.
위치인식모듈(353)은 영상획득부(320)를 통해 획득한 획득 영상에 기초하여, 이동 로봇(100)의 위치를 판단할 수 있다. The location recognition module 353 may determine the location of the mobile robot 100 based on the acquired image obtained through the image acquisition unit 320.
예를 들면, 위치인식모듈(353)은 이동 로봇(100)이 주행하는 동안, 획득 영상으로부터 검출한 주행 구역의 각 위치에 대한 특징들을, 지도생성모듈(352)에서 생성된 맵 데이터를 기초로 각 위치에 맵핑(mapping)시킬 수 있고, 맵의 각 위치에 맵핑된 주행 구역의 각 위치에 대한 특징들에 대한 데이터를 위치인식 데이터로 저장부(305)에 저장할 수 있다.For example, while the mobile robot 100 is driving, the location recognition module 353 uses the characteristics of each location in the driving area detected from the acquired image based on the map data generated by the map generation module 352. Each location can be mapped, and data on the characteristics of each location in the driving area mapped to each location on the map can be stored in the storage unit 305 as location recognition data.
한편, 위치인식모듈(353)은, 획득 영상으로부터 검출한 주행 구역에 대한 특징들과, 저장부(305)에 저장된 위치인식 데이터에 포함된, 주행 구역의 각각의 위치에 대한 특징들을 비교하여, 위치 별 유사도(확률)를 산출할 수 있고, 산출된 위치 별 유사도(확률)에 기초하여, 유사도가 가장 큰 위치를 이동 로봇(100)의 위치로 판단할 수 있다.Meanwhile, the location recognition module 353 compares the characteristics of the driving area detected from the acquired image with the characteristics of each location of the driving area included in the location recognition data stored in the storage unit 305, The similarity (probability) for each location can be calculated, and based on the calculated similarity (probability) for each location, the location with the greatest similarity can be determined as the location of the mobile robot 100.
본 발명의 일 실시예에 따르면, 이동 로봇(100)은, 영상 획득부(320)를 통해 획득한 영상으로부터 특징을 추출하고, 상기 추출한 특징을 맵핑(mapping)된 그리드맵에 대입하여 이동 로봇(100)의 위치를 판단할 수 있다.According to one embodiment of the present invention, the mobile robot 100 extracts features from the image acquired through the image acquisition unit 320, and substitutes the extracted features into the mapped grid map to create a mobile robot ( 100) can be determined.
한편, 이동 로봇(100)은 위치인식모듈(353) 없이 주행제어모듈(351), 지도생성모듈(352) 및/또는 장애물인식모듈(354)을 통해, 맵을 학습하여, 현재 위치를 판단할 수도 있다.Meanwhile, the mobile robot 100 learns the map through the driving control module 351, map generation module 352, and/or obstacle recognition module 354 without the location recognition module 353 to determine the current location. It may be possible.
장애물인식모듈(354)은 이동 로봇(100)의 주변의 장애물을 감지할 수 있다. 예를 들면, 장애물인식모듈(354)은 영상 획득부(320)를 통해 획득한 획득 영상 및/또는 센서부(370)를 통해 획득한 센싱 데이터에 기초하여, 이동 로봇(100)의 주변의 장애물을 감지할 수 있다.The obstacle recognition module 354 can detect obstacles around the mobile robot 100. For example, the obstacle recognition module 354 detects obstacles around the mobile robot 100 based on the acquired image acquired through the image acquisition unit 320 and/or the sensing data acquired through the sensor unit 370. can be detected.
예를 들면, 장애물인식모듈(354)은, 적외선 센서를 통해 획득한 주행 구역의 지형 정보에 기초하여, 이동 로봇(100)의 주변의 장애물을 감지할 수 있다.For example, the obstacle recognition module 354 may detect obstacles around the mobile robot 100 based on topographic information of the driving area obtained through an infrared sensor.
장애물인식모듈(354)은 이동 로봇(100)이 주행하는 동안, 이동 로봇(100)의 주행을 방해하는 장애물이 존재하는지 여부를 판단할 수 있다.The obstacle recognition module 354 can determine whether there is an obstacle that interferes with the movement of the mobile robot 100 while the mobile robot 100 is traveling.
장애물인식모듈(354)은 장애물이 존재하는 것으로 판단되는 경우, 장애물의 속성에 따라 직진, 회전 등의 주행 패턴을 결정할 수 있고, 결정된 주행 패턴을 주행제어모듈(351)로 전달할 수 있다.When it is determined that an obstacle exists, the obstacle recognition module 354 can determine a driving pattern such as going straight or turning according to the attributes of the obstacle, and can transmit the determined driving pattern to the driving control module 351.
본 발명의 실시예에 따른 이동 로봇(100)은 머신 러닝(machine learning) 기반의 사람, 사물 인식 및 회피를 수행할 수 있다. 여기서, 머신 러닝은 컴퓨터에게 사람이 직접 로직(Logic)을 지시하지 않아도 데이터를 통해 컴퓨터가 학습을 하고 이를 통해 컴퓨터가 알아서 문제를 해결하게 하는 것을 의미할 수 있다.The mobile robot 100 according to an embodiment of the present invention is capable of recognizing and avoiding people and objects based on machine learning. Here, machine learning can mean that a computer learns through data without a person directly instructing the computer to use logic, and through this, the computer solves problems on its own.
딥러닝(Deep Learning)은 인공지능을 구성하기 위한 인공신경망(artificial neural networks; ANN)에 기반으로 해 컴퓨터에게 사람의 사고방식을 가르치는 방법으로 사람이 가르치지 않아도 컴퓨터가 스스로 사람처럼 학습할 수 있는 인공지능 기술을 의미할 수 있다. 인공신경망(ANN)은 소프트웨어 형태로 구현되거나 칩(chip) 등 하드웨어 형태로 구현될 수 있다.Deep Learning is a method of teaching computers how to think like humans, based on artificial neural networks (ANN) to construct artificial intelligence. It can mean intelligent technology. Artificial neural networks (ANNs) can be implemented in software form or in hardware form such as chips.
장애물인식모듈(354)은 장애물의 속성이 학습된 소프트웨어 또는 하드웨어 형태의 인공신경망(ANN)을 포함할 수 있다. The obstacle recognition module 354 may include an artificial neural network (ANN) in the form of software or hardware that learns the properties of obstacles.
예를 들면, 장애물인식모듈(354)은 딥러닝으로 학습된 CNN(convolutional neural network), RNN(recurrent neural network), DBN(deep belief network) 등 심층신경망(deep neural network; DNN)을 포함할 수 있다.For example, the obstacle recognition module 354 may include a deep neural network (DNN) such as a convolutional neural network (CNN), a recurrent neural network (RNN), and a deep belief network (DBN) learned through deep learning. there is.
장애물인식모듈(354)은, 예를 들면, 심층신경망(DNN)에 포함된 노드들 사이의 가중치(weight)들에 기초하여 입력되는 영상 데이터에 포함되는 장애물의 속성을 판별할 수 있다.For example, the obstacle recognition module 354 may determine the properties of an obstacle included in input image data based on weights between nodes included in a deep neural network (DNN).
또한, 주행제어모듈(351)은 인식된 장애물의 속성에 기초하여 주행부(360)의 구동을 제어할 수 있다.Additionally, the travel control module 351 may control the driving of the travel unit 360 based on the attributes of the recognized obstacle.
저장부(305)에는 장애물 속성 판별을 위한 입력 데이터, 상기 심층신경망(DNN)을 학습하기 위한 데이터가 저장될 수 있다. 저장부(305)에는 영상획득부(320)가 획득한 원본 영상과 소정 영역이 추출된 추출 영상들이 저장될 수 있다. 저장부(305)에는 심층신경망(DNN) 구조를 이루는 웨이트(weight), 바이어스(bias)들이 저장될 수 있다. 예를 들면, 심층신경망 구조를 이루는 웨이트(weight), 바이어스(bias)들은, 장애물인식모듈(354)의 임베디드 메모리(embedded memory)에 저장될 수 있다.The storage unit 305 may store input data for determining obstacle properties and data for learning the deep neural network (DNN). The storage unit 305 may store the original image acquired by the image acquisition unit 320 and the extracted images from which a predetermined area is extracted. Weights and biases forming a deep neural network (DNN) structure may be stored in the storage unit 305. For example, weights and biases that make up the deep neural network structure may be stored in the embedded memory of the obstacle recognition module 354.
장애물인식모듈(354)은, 예를 들면, 영상획득부(320)가 획득하는 영상의 일부 영역을 추출할 때마다 상기 추출된 영상을 트레이닝(training) 데이터로 사용하여 학습 과정을 수행하거나, 소정 개수 이상의 추출 영상이 획득된 후 학습 과정을 수행할 수 있다.For example, whenever the obstacle recognition module 354 extracts a partial area of the image acquired by the image acquisition unit 320, it performs a learning process using the extracted image as training data, or performs a predetermined The learning process can be performed after more than a number of extracted images are acquired.
즉, 장애물인식모듈(354)은 장애물을 인식할 때마다 인식 결과를 추가하여 웨이트(weight) 등 심층신경망(DNN) 구조를 업데이트(update)하거나, 소정 횟수의 트레이닝 데이터가 확보된 후에 확보된 트레이닝 데이터로 학습 과정을 수행하여 웨이트(weight) 등 심층신경망(DNN) 구조를 업데이트할 수 있다.In other words, the obstacle recognition module 354 updates the deep neural network (DNN) structure, such as weights, by adding recognition results every time it recognizes an obstacle, or trains secured after a predetermined number of training data are secured. By performing a learning process with data, you can update the deep neural network (DNN) structure, including weights.
또는, 이동 로봇(100)은 통신부(390)를 통하여 영상획득부(320)가 획득한 원본 영상 또는 추출된 영상을 소정 서버로 전송하고, 소정 서버로부터 머신 러닝과 관련된 데이터를 수신할 수 있다. 이때, 이동 로봇(100)은 소정 서버로부터 수신된 머신 러닝과 관련된 데이터에 기초하여 장애물인식모듈(354)을 업데이트(update)할 수 있다.Alternatively, the mobile robot 100 may transmit the original image or extracted image acquired by the image acquisition unit 320 to a predetermined server through the communication unit 390 and receive data related to machine learning from the predetermined server. At this time, the mobile robot 100 may update the obstacle recognition module 354 based on data related to machine learning received from a certain server.
도 7은 본 발명의 일 실시예에 따른, 이동 로봇에 구비된 라이다 센서의 설명에 참조되는 도면이다.Figure 7 is a diagram referenced in the description of a lidar sensor provided in a mobile robot according to an embodiment of the present invention.
도 7을 참조하면, 라이다 센서(175)는 360도 전 방향에 대하여 레이저를 출력할 수 있고, 객체로부터 반사된 레이저를 수신함으로써, 레이저를 반사시킨 객체와의 거리, 위치 방향, 재질 등의 정보를 획득할 수 있고, 주행 구역의 지형 정보를 획득할 수 있다.Referring to FIG. 7, the LiDAR sensor 175 can output a laser in all directions of 360 degrees, and by receiving the laser reflected from the object, the distance to the object that reflected the laser, position direction, material, etc. Information can be obtained, and topographical information of the driving area can be obtained.
이동 로봇(100)은 라이다 센서(175)의 성능 및 설정에 따른, 일정 거리 이내의 지형 정보를 획득할 수 있다. 이동 로봇(100)은 라이다 센서(175)를 기준으로 일정 거리(610)의 반경을 가지는 원 영역(610) 이내의 지형 정보를 획득할 수 있다. The mobile robot 100 can acquire terrain information within a certain distance according to the performance and settings of the lidar sensor 175. The mobile robot 100 may acquire terrain information within a circular area 610 with a radius of a certain distance 610 based on the LiDAR sensor 175.
이동 로봇(100)은 원 영역(610) 내의 지형 정보를 획득하며, 이때, 소정 서브 영역에 대한 지형 정보를 획득할 수 있다.The mobile robot 100 obtains terrain information within the original area 610, and at this time, it can acquire terrain information for a predetermined sub-area.
이때, 라이다 센서(175)의 지형 정보는 이동 로봇(100)이 소정 거리, 또는 소정 시간을 주행하는 지점마다 감지한 원 영역(610) 내의 지형 정보를 저장할 수 있으며, 이 때, 저장되는 정보는 해당 원 영역(610)의 중심이 되는 이동 로봇(100)의 현재 위치인 주행 노드(n1, n2…)에 매칭하여 저장될 수 있다.At this time, the terrain information of the LiDAR sensor 175 may store the terrain information within the circle area 610 detected at each point where the mobile robot 100 travels a predetermined distance or a predetermined time. At this time, the information stored may be stored by matching the traveling nodes (n1, n2...), which are the current location of the mobile robot 100, which is the center of the corresponding circular area 610.
따라서, 이동 로봇(100)이 분할된 각 서브 영역을 주행할 때, 각 서브 영역 내에서의 복수의 연속한 주행 노드(n1, n2…)에 대하여 각각의 원 영역(610)의 지형 정보가 획득되어 저장된다.Therefore, when the mobile robot 100 travels in each divided sub-area, topographical information of each original area 610 is obtained for a plurality of consecutive travel nodes (n1, n2...) within each sub-area. and saved.
이동 로봇(100)은 라이다 센서(175)를 통해 획득한 서브 영역에 대한 지형 정보로부터, 오픈 공간(open space)을 추출할 수 있다. 여기서, 오픈 공간(open space)는 이동 로봇(100)의 주행이 가능한 레이저를 반사시킨 객체들 사이의 공간에 대한 정보를 의미할 수 있다. The mobile robot 100 can extract open space from topographic information about the sub-area obtained through the lidar sensor 175. Here, open space may refer to information about the space between objects that reflect the laser through which the mobile robot 100 can travel.
이동 로봇(100)은 할당된 서브 영역의 주행이 종료된 후, 서브 영역 내에서 각 주행 노드(n1, n2…)에 대한 라이다 센서(175)의 감지 데이터를 연속적으로 읽어내는 레이 캐스팅(ray casting)을 수행하여 오픈 방향이 있는지 확인하는 오픈 방향 검출 알고리즘을 수행할 수 있다.After driving in the allocated sub-area ends, the mobile robot 100 continuously reads the detection data of the lidar sensor 175 for each driving node (n1, n2...) within the sub-area (ray casting). You can perform an open direction detection algorithm that checks whether there is an open direction by performing casting).
오픈 공간에 대한 정보는 해당 오픈 공간을 찾는 이동 로봇(100)의 주행 노드(n1, n2…) 및 주행 방향, 오픈 공간의 폭에 대한 정보를 포함할 수 있으며, 오픈 노드는 해당 오픈 노드를 찾은 오픈 공간 및 이동 로봇(100)의 주행 노드(n1, n2…)에 대한 정보를 포함할 수 있다.Information about the open space may include information about the traveling nodes (n1, n2...) and traveling direction of the mobile robot 100 searching for the open space, and the width of the open space. The open node may include information about the width of the open space, and the open node may include information about the width of the open space. It may include information about the open space and the traveling nodes (n1, n2...) of the mobile robot 100.
이동 로봇(100)은 서브 영역에 대하여, 각 주행 노드에 대한 오픈 방향이 모두 검출된 후, 각 서브 영역의 그리드 맵을 기초로 각 주행 노드에 대한 오픈 방향에 대하여 미탐색 영역이 존재하는지 판단하고, 미탐색 영역이 없으면, 해당 주행 노드를 닫는다. After detecting all open directions for each traveling node in the sub-area, the mobile robot 100 determines whether an unexplored area exists in the open direction for each traveling node based on the grid map of each sub-area. , If there is no unexplored area, the corresponding driving node is closed.
이동 로봇(100)은 하나의 서브 영역에 대하여 이동 로봇(100)의 주행 노드(n1, n2…)의 오픈이 모두 닫히면 토폴로지 맵을 생성할 수 있다.The mobile robot 100 can generate a topology map when all the openings of the traveling nodes (n1, n2...) of the mobile robot 100 are closed for one sub-area.
이동 로봇(100)은 토폴로지 맵이 생성된 서브 영역에 대하여, 다시 그리드 맵을 통해 미탐색 영역이 존재하는지 탐색한다. 해당 서브 영역 내에 미탐색 영역이 존재하는 경우, 미탐색 영역의 인접 주행 노드로 이동 로봇(100)이 이동하여 미탐색 영역을 탐색한 후 해당 정보로 그리드 맵 및 토폴로지 맵을 업데이트한다.The mobile robot 100 searches for the existence of an unexplored area through the grid map again in the sub-area where the topology map was created. If an unsearched area exists within the corresponding sub-area, the mobile robot 100 moves to a traveling node adjacent to the unsearched area, searches the unsearched area, and then updates the grid map and topology map with the corresponding information.
이와 같이 하나의 서브 영역에 대하여, 라이다 센서(175)에 대한 정보를 바탕으로 미탐색 영역이 없는지 확인하여 토폴로지 맵을 형성하고, 장애물 감지 센서(171)에 대한 그리드 맵에 의해 추가적으로 해당 서브 영역에 미탐색 영역이 없는지 재확인하여 미탐색 영역 없이 서브 영역의 맵핑이 가능하다.In this way, for one sub-area, a topology map is formed by checking whether there is an unexplored area based on information on the lidar sensor 175, and the corresponding sub-area is additionally determined by the grid map on the obstacle detection sensor 171. By re-checking whether there is an unsearched area in the sub-area, mapping of the sub-area is possible without an unsearched area.
이하에서는 도 8 내지 도 9를 참고하여 본 발명의 이동 로봇(100)의 각 서브 영역에 대한 맵을 생성하는 과정을 설명한다.Hereinafter, the process of generating a map for each sub-area of the mobile robot 100 of the present invention will be described with reference to FIGS. 8 and 9.
도 8은 본 발명의 일 실시예에 따른 이동 로봇의 맵 생성 과정에 대한 플로우 차트이고, 도 9a 내지 도 9e는 도 8의 순서도에 따른 이동 로봇의 맵 생성 과정을 나태내는 도면이다.FIG. 8 is a flow chart of a map creation process for a mobile robot according to an embodiment of the present invention, and FIGS. 9A to 9E are diagrams showing a map creation process for a mobile robot according to the flowchart of FIG. 8 .
도 8 내지 도 9를 참조하면, 이동 로봇(100)은 이동하면서 토폴로지 맵과 그리드 맵을 생성할 수 있다.Referring to Figures 8 and 9, the mobile robot 100 can generate a topology map and a grid map while moving.
구체적으로, 도 8과 같이 이동 로봇(100)은 주행 구역을 복수의 서브 영역으로 분할할 수 있다.Specifically, as shown in FIG. 8, the mobile robot 100 may divide the driving area into a plurality of sub-areas.
이때, 분할되는 서브 영역은 주행 거리 또는 주행 면적을 기준으로 분할할 수 있으며, 소정 거리 또는 소정 시간 동안 이동한 후 이동한 영역의 토폴로지 맵을 형성하기 위한 임의의 영역일 수 있다.At this time, the sub-area to be divided may be divided based on the driving distance or driving area, and may be an arbitrary area for forming a topology map of the moved area after moving a certain distance or for a certain time.
즉, 동일하게 분할되는 영역이 아닌, 이동 로봇(100)이 청소를 위한 미지의 주행 구역을 소정 거리 또는 소정 시간 동안 주행하면 해당 거리 또는 해당 시간 동안 주행한 영역을 하나의 서브 영역으로 정의할 수 있다.In other words, when the mobile robot 100 drives an unknown driving area for cleaning for a predetermined distance or a certain time, rather than an equally divided area, the area traveled for that distance or time can be defined as one sub-area. there is.
이때, 서브 영역은 이동 로봇(100)의 현재 위치에서 전방에 장애물이 발견되기 전까지로 정의될 수도 있으며, 사용자의 설정에 따라 다양하게 설정 가능하다.At this time, the sub-area may be defined from the current location of the mobile robot 100 until an obstacle is discovered in front, and can be set in various ways depending on the user's settings.
이동 로봇(100)은 맵 생성 기능이 실행되면(S100), 청소 작업을 위한 미지의 주행 구역을 맵핑하기 위한 선 주행하면서(S101), 라이다 센서(175)를 통해 분할된 서브 영역의 라이다 정보를 수집하여 토폴로지 맵을 형성하고, 장애물 감지 센서(171)를 통해 초음파 센서 또는 적외선 센서 정보를 수집하여 그리드 맵을 생성할 수 있다.When the map creation function is executed (S100), the mobile robot 100 drives a line to map an unknown driving area for cleaning work (S101) and uses the lidar of the divided sub-area through the lidar sensor 175. A topology map can be formed by collecting information, and a grid map can be created by collecting ultrasonic sensor or infrared sensor information through the obstacle detection sensor 171.
이때, 토폴로지 맵을 생성하기 위한 주행 노드에서의 레이 캐스팅으로 각 주행 노드가 오픈 노드인지 확인하고, 해당 영역의 그리드 맵에서 미탐색 영역이 존재하는지 재확인하여 토폴로지 맵을 업데이트한다. At this time, ray casting at the driving node to generate the topology map checks whether each driving node is an open node, and rechecks whether an unexplored area exists in the grid map of the corresponding area to update the topology map.
상기 그리드 맵은, OGM(Occupancy grid map) 으로서, 수득된 지역 정보에 의해 생성되는 그리드를 활용한 맵이다.The grid map is an OGM (Occupancy grid map), which is a map utilizing a grid generated by obtained regional information.
그리드 맵은 이동 로봇(100)의 주변 환경 인식을 위한 맵으로, 서브 영역(A)을 동일한 크기의 격자 또는 셀(이하 셀)로 표현하고 각 셀에 물체의 유무를 표시한 맵을 의미할 수 있다. 물체의 존재 유무는 색상을 통해서 표시될 수 있다. 예를 들어, 흰색 셀은 물체가 없는 영역을, 회색 셀은 물체가 있는 영역을 나타낼 수 있다. 따라서, 회색 셀을 연결한 선은 어떠한 공간의 경계선(벽, 장애물 등)을 나타낼 수 있다. 셀의 색상은 이미지 처리 과정을 통해 바뀔 수 있다.The grid map is a map for recognizing the surrounding environment of the mobile robot 100. It can refer to a map in which the sub-area (A) is expressed as a grid or cells (hereinafter referred to as cells) of the same size and the presence or absence of an object is indicated in each cell. there is. The presence or absence of an object can be indicated through color. For example, a white cell may represent an area without an object, and a gray cell may represent an area with an object. Therefore, the line connecting the gray cells can represent the border of any space (wall, obstacle, etc.). The color of a cell can change through image processing.
이때, 제어부(350)는 미지의 서브 영역을 주행하면서 동시에 그리드 맵을 생성할 수 있다. 이와 달리, 제어부(350)는 서브 영역의 주행이 완료된 후에 해당 서브 영역(A)의 그리드 맵을 생성할 수 있다. At this time, the control unit 350 can generate a grid map while driving in an unknown sub-area. In contrast, the control unit 350 may generate a grid map of the corresponding sub-area (A) after driving in the sub-area is completed.
본 발명에서는 그리드 맵 생성 단계(S102)가 서브 영역을 주행하면서 동시에 그리드 맵을 생성하는 것으로 설정할 수 있다.In the present invention, the grid map creation step (S102) can be set to generate a grid map while driving in a sub-area.
이동 로봇(100)은 서브 영역에 대하여 주행하면서 장애물 감지 센서(171) 및 라이다 센서(175)를 통해 해당 영역의 거리 정보 및 라이다 정보를 수집하는 단계(S102), 수집한 라이다 정보를 통해 토폴로지 맵을 생성하면서 각 주행 노드에서의 오픈 노드를 탐색하는 단계(S103), 각 오픈 노드에 대하여 열림을 재확인하는 단계(S104), 상기 서브 영역 내에서 오픈 노드가 더 이상 존재하지 않으면(S105), 상기 서브 영역의 그리드맵을 통해 미탐색 영역을 추출하는 단계(S107), 이동 로봇이 미탐색 영역으로 이동하는 단계(S108) 및 미탐색 영역을 탐색하여 새로운 오픈 노드를 생성하여 토폴로지 맵을 업데이트하는 단계(S109)로 진행된다.The mobile robot 100 collects distance information and LiDAR information of the area through the obstacle detection sensor 171 and the LiDAR sensor 175 while traveling in the sub-area (S102), and collects the collected LiDAR information. A step of searching for open nodes in each driving node while generating a topology map through (S103), a step of re-confirming the openness of each open node (S104), and if there are no more open nodes in the sub-area (S105) ), extracting an unexplored area through the grid map of the sub-area (S107), moving the mobile robot to the unexplored area (S108), and creating a new open node by searching the unexplored area to create a topology map. The process proceeds to the updating step (S109).
먼저, 이동 로봇(100)의 제어부(350)는 외부로부터 또는 설정되어 있는 지시(S100)에 따라 소정의 주행 구역에 대한 청소 맵 생성을 위한 선 주행을 수행한다(S101).First, the control unit 350 of the mobile robot 100 performs line driving to generate a cleaning map for a predetermined driving area according to an external or set instruction (S100) (S101).
이와 같이 주행할 때, 소정 거리 또는 소정 시간동안 주행이 완료되는 지점을 서브 영역으로 정의할 수 있으며, 해당 서브 영역까지의 주행이 완료될 때까지 동일한 방향(d1)으로 주행을 연속한다.When driving in this way, the point where driving is completed for a predetermined distance or a certain time can be defined as a sub-area, and driving continues in the same direction (d1) until driving to the corresponding sub-area is completed.
이때, 이동 로봇(100)은 도 9a와 같이, 라이다 센서(175)로부터 360도의 원 영역(610)에 대한 라이다 정보를 수득하고, 장애물 감지 센서(171)로부터 거리 정보를 수득할 수 있다(S102). 수집하는 라이다 정보는 상기 이동 로봇(100)이 서브 영역 내에서 통로를 따라 주행할 때, 경로 위에 위치하는 복수의 주행 노드(n1, n2…) 각각에서 수집될 수 있다. 이때, 통로를 따라 주행할 때, 통로의 중앙점을 따라 이동하는 센터 팔로윙(center following)을 진행할 수 있다. At this time, the mobile robot 100 can obtain LiDAR information about the 360-degree circular area 610 from the LiDAR sensor 175 and obtain distance information from the obstacle detection sensor 171, as shown in FIG. 9A. (S102). The collected LIDAR information may be collected from each of a plurality of traveling nodes (n1, n2...) located on the path when the mobile robot 100 travels along a path within the sub-area. At this time, when driving along the passage, center following can be performed, moving along the center point of the passage.
주행 노드(n1, n2…)는 상기 경로 위에서 등간격으로 설정될 수 있으나 이에 한정되는 것이 아니고, 소정 시간마다 상기 이동 로봇(100)이 위치하는 지점으로 정의될 수 있다. 이와 같은 주행 노드(n1, n2…)가 연결되는 가상의 선이 주행 경로(DP: driving path)로서 기능할 수 있으나, 이에 한정되는 것은 아니다. Travel nodes (n1, n2...) may be set at equal intervals on the route, but are not limited to this, and may be defined as points at which the mobile robot 100 is located every predetermined time. The virtual line connecting such driving nodes (n1, n2...) may function as a driving path (DP), but is not limited to this.
하나의 서브 영역에서 설정되는 주행 노드(n1, n2…)는 서로 다른 수효를 가질 수 있다.Travel nodes (n1, n2...) set in one sub-area may have different numbers.
각 주행 노드(n1, n2…)에서 이동 로봇(100)은 라이다 정보를 수집한다.The mobile robot 100 collects LIDAR information at each traveling node (n1, n2...).
따라서, 각 주행 노드(n1, n2…)에서 해당 주행 노드(n1, n2…)를 중심으로 원 영역(610)에 대한 지역 정보가 라이다 정보로 수집된다.Therefore, at each driving node (n1, n2...), local information about the circle area 610 centered on the corresponding driving node (n1, n2...) is collected as LIDAR information.
상기 각각의 라이다 정보는 각 주행 노드(n1, n2…)에 매칭하여 저장부(305)에 기록될 수 있다.Each of the LIDAR information may be recorded in the storage unit 305 by matching each driving node (n1, n2...).
이와 같은 라이다 정보는 원 영역(610) 내에서 레이저를 출력하여 레이저를 반사시킨 객체의 거리, 위치 방향, 재질 등의 정보를 포함할 수 있다.Such LIDAR information may include information such as the distance, position direction, and material of the object that outputs the laser and reflects the laser within the circle area 610.
또한, 이동 로봇(100)은 연속 주행하면서 장애물 감지 센서(171)로부터의 초음파 정보 또는 적외선 정보로부터 전방에 위치하는 장애물까지의 거리 정보를 수득할 수 있다. Additionally, the mobile robot 100 may obtain distance information to an obstacle located ahead from ultrasonic or infrared information from the obstacle detection sensor 171 while continuously traveling.
이동 로봇(100)은 상기 서브 영역(A)에 대한 주행을 완료할 때까지 각 주행 노드(n1, n2…)에 대한 라이다 정보 및 적외선 정보 등의 거리 정보를 각각 수집할 수 있다. 서브 영역에 대하여 주행이 완료되면, 수집한 정보를 활용하여 토폴로지 노드맵을 생성할 수 있다. 이때, 생성되는 토폴로지 노드 맵은 도 9a에 도시된 바와 같이, 연속되는 주행 노드(n1, n2…)에 대한 열림과 닫힘의 표시에 의해 완성될 수 있으며, 이와 같은 주행 노드의 연결에 의해 토폴로지 노드 맵이 완성된다.The mobile robot 100 may collect distance information such as lidar information and infrared information for each traveling node (n1, n2...) until it completes traveling in the sub-area (A). Once driving is completed for the sub-area, a topology node map can be created using the collected information. At this time, as shown in FIG. 9A, the generated topology node map can be completed by indicating the open and closed for consecutive traveling nodes (n1, n2...), and the topology node is formed by connecting such traveling nodes. The map is complete.
구체적으로, 이동 로봇(100)은 각 주행 노드(n1, n2…)에 대하여 라이다 정보를 레이 캐스팅하여 오픈 공간 검출 알고리즘을 수행함으로써 오픈 공간이 있는지 확인한다.Specifically, the mobile robot 100 ray casts LiDAR information for each traveling node (n1, n2...) and performs an open space detection algorithm to check whether there is an open space.
이때, 오픈 공간은 각 주행 노드(n1, n2…)에 대해 수득된 원 영역(610)에 대한 라이다 정보를 전 구간에서 레이 캐스팅(RS)함으로써 해당 주행 노드(n1, n2…)에서 오픈 공간, 즉 장애물이 존재하지 않는 열린 공간이 있는지 판단한다.At this time, the open space is created at the corresponding driving node (n1, n2...) by ray casting (RS) the lidar information on the original area 610 obtained for each driving node (n1, n2...) in the entire section. , that is, determine whether there is an open space where there are no obstacles.
이때, 오픈 공간의 유무는 상기 반사되어 수득된 라이다 데이터 사이의 거리가 상기 이동 로봇(100)의 폭보다 큰 경우로 정의될 수 있으나, 이에 한정되는 것은 아니며, 기준 폭에 대한 수치를 가지며, 해당 기준 폭보다 넓은 폭을 가지는 공간이 있는 경우, 오픈 공간으로 설정할 수 있다.At this time, the presence or absence of an open space may be defined as a case where the distance between the reflected and obtained LIDAR data is greater than the width of the mobile robot 100, but is not limited to this and has a numerical value for the reference width, If there is a space with a width wider than the standard width, it can be set as an open space.
이와 같이, 각 주행 노드(n1, n2…)에 대하여 360도의 원 영역(610)에 대한 라이다 정보의 레이 캐스팅, 즉 광선 투사를 수행함으로써 특정 방향에 대한 라이다 정보만을 확인하는 것이 아닌, 전 방향에서의 오픈 공간의 유무를 확인 가능하다.In this way, by performing ray casting, that is, ray projection, of LiDAR information on the 360-degree circular area 610 for each traveling node (n1, n2...), rather than only confirming LiDAR information for a specific direction, the entire It is possible to check the presence or absence of open space in any direction.
이는, 특정 방향, 일 예로 4방향 또는 8방향 등으로 소분하여 데이터를 연산하는 경우 필터링되지 않는 영역에서 발생할 수 있는 오픈 공간에 대한 탐색이 누락될 수 있다. 특히, 청소를 위한 주행 구역의 배치 방향 및 주요 통로의 방향과 이동 로봇(100)의 주행 방향이 일치하지 않는 경우, 매우 많은 오픈 공간에 대한 탐색 누락이 발생할 수 있는 위험이 있다. This means that when calculating data by subdividing it into a specific direction, for example, 4 or 8 directions, the search for open space that may occur in an unfiltered area may be missed. In particular, if the direction of arrangement of the driving area for cleaning and the direction of the main passage do not match the driving direction of the mobile robot 100, there is a risk that a large number of open spaces may be missed in search.
따라서, 본 발명과 같이 소정 서브 영역으로 분할 후, 서브 영역에 대하여 주행하면서 경로 상에서 복수의 주행 노드(n1, n2…)마다 수신된 라이다 정보를 360도 레이 캐스팅을 수행함으로써 누락되는 방향이 없도록 오픈 공간의 탐색이 가능하다.Therefore, as in the present invention, after dividing into a predetermined sub-area, 360-degree ray casting is performed on the lidar information received at each of the plurality of traveling nodes (n1, n2...) on the route while driving in the sub-area to ensure that no direction is missed. Exploration of open space is possible.
각 주행 노드(n1, n2…)에 대하여 레이 캐스팅으로 오픈 공간이 존재하는 경우, 해당 주행 노드(n1, n2…)를 오픈 노드로 변경하고, 그 오픈 공간이 위치하는 방향에 대한 오픈 방향(OD)을 표시한다. If an open space exists through ray casting for each traveling node (n1, n2…), the corresponding traveling node (n1, n2…) is changed to an open node, and the open direction (OD) for the direction in which the open space is located is changed. ) is displayed.
이와 같이, 해당 서브 영역의 모든 주행 노드(n1, n2…)에 대하여 레이 캐스팅이 완료되어 복수의 오픈 공간이 탐색되면, 각각의 오픈 공간의 정보, 즉 해당 오픈 공간의 위치, 폭, 상기 오픈 공간과 대응되는 주행 노드(n1, n2…)에 대한 정보를 각각 저장할 수 있다.In this way, when ray casting is completed for all driving nodes (n1, n2...) in the corresponding sub-area and a plurality of open spaces are searched, the information of each open space, that is, the location of the open space, the width, and the open space Information about the driving nodes (n1, n2...) corresponding to can be stored, respectively.
이때, 제어부(350)는 다양한 알고리즘을 적용하여 오픈 공간을 판단하고, 그에 따라 오픈 노드를 설정할 수 있다. At this time, the control unit 350 can apply various algorithms to determine open space and set open nodes accordingly.
다음으로, 제어부(350)는 도 9b와 같이, 오픈 노드(검정색으로 변환)에서의 열림을 확인한다(S104).Next, the control unit 350 confirms the opening of the open node (converted to black), as shown in FIG. 9B (S104).
구체적으로, 제어부(350)는 서브 영역에서 오픈 노드가 위치한 영역을 각 오픈 노드 별로 구획하고, 각 오픈 노드에서 오픈 방향이 향하는 영역에 다른 오픈 노드의 오픈 방향과 마주하는지를 판단한다.Specifically, the control unit 350 divides the area where the open node is located in the sub-area for each open node, and determines whether the area facing the open direction in each open node faces the open direction of another open node.
이때, 오픈 노드별 구획 및 오픈 방향에서의 판단은 그리드 맵 기반으로 탐색한다. 구체적으로, 오픈 노드에서 오픈 방향으로 그리드맵에서 미탐색 여부가 있는지 확인하기 위해 오픈 방향으로 구획하여 해당 구획의 로컬 맵을 생성한다. 상기 구획된 영역은 오픈 방향으로는 라이다 센서 감지 거리보다 길게 설정하고 좌/우는 오픈 노드의 오차 범위로 설정하고 후방은 최대한 짧게 설정한다. 오픈 노드 시작점에서 점차적으로 확장하면서 미탐색 영역이 찾아지는지 확인한다. 미탐색 영역 유무 기준은 이동 로봇 사이즈만큼의 영역에서 미확인(Unknown) 지점과 기확인(explored) 지점이 만나는 영역으로 정의된다. 미탐색 영역이 발견되지 않는 경우 오픈 노드를 닫는다. 따라서, 오픈 노드별 구획된 영역에서 서로 마주하는 오픈 방향이 존재하면, 해당 오픈 노드를 닫는다.At this time, the division of each open node and the decision on the open direction are searched based on the grid map. Specifically, in order to check whether there is an unexplored grid map from the open node to the open direction, a local map of the corresponding section is created by dividing the section in the open direction. The demarcated area is set to be longer than the lidar sensor detection distance in the open direction, set to the left/right as the error range of the open node, and set as short as possible to the rear. Gradually expand from the open node starting point and check whether unexplored areas are found. The criterion for the presence or absence of an unexplored area is defined as an area where an unknown point and an explored point meet in an area equal to the size of the mobile robot. If no unexplored area is found, the open node is closed. Therefore, if there are open directions facing each other in the area defined for each open node, the corresponding open node is closed.
이와 같이 각각의 오픈 노드에서 그리드 맵을 읽어들여 오픈 노드의 오픈 방향에서 반대 방향의 탐색을 통해 미탐색 영역이 없음을 확인하고 오픈 노드를 닫는다.In this way, the grid map is read from each open node, and through a search in the opposite direction from the open direction of the open node, it is confirmed that there is no unsearched area and the open node is closed.
일 예로, 도 9b의 제1 구획에서 제1 주행 노드(n1)와 제9 주행 노드(n9)가 서로 마주하는 오픈 방향(OD)을 가지고 있음이 확인되면, 제1 주행 노드(n1)와 제9 주행 노드(n9)의 오픈 노드 설정을 해제하여 해당 오픈 노드를 닫는다.For example, if it is confirmed that the first traveling node (n1) and the ninth traveling node (n9) have open directions (OD) facing each other in the first section of FIG. 9B, the first traveling node (n1) and the ninth traveling node (n9) 9 Remove the open node setting of the driving node (n9) and close the open node.
이와 같은 판단에서 서브 영역 내에 잔류하는 오픈 노드가 있는지 확인하고(S105), 오픈 노드가 존재 하면 그를 등록하고 저장한다(S106). In this determination, it is checked whether there is an open node remaining in the sub-area (S105), and if an open node exists, it is registered and stored (S106).
다음으로, 오픈 여부를 확인할 더 이상의 오픈 노드가 존재하지 않으면 2차 탐색을 수행한다.Next, if there are no more open nodes to check for openness, a secondary search is performed.
2차 탐색은 그리드 맵을 기반으로 수행하며, 제어부(350)은 도 9c와 같이 그리드 맵에서 상기 서브 영역에 대한 정보를 읽어들이고, 상기 서브 영역에서 닫힌 오픈 노드 이외에 미탐색 영역이 존재하는지 여부를 판단한다(S107). The secondary search is performed based on the grid map, and the control unit 350 reads information about the sub-area from the grid map as shown in FIG. 9C and determines whether there are unsearched areas in the sub-area other than closed open nodes. Judge (S107).
제어부(350)는 서브 영역의 토폴로지 맵의 오픈 노드의 정보를 서브 영역의 그리드 맵에 업데이트하면서 미탐색 세그먼트를 추출한다.The control unit 350 updates the open node information of the topology map of the sub-area to the grid map of the sub-area and extracts unsearched segments.
도 9c에서와 같이 미탐색 영역(A)이 탐색되면, 제어부(350)는 wavefront와 같은 알고리즘을 통해 주행 노드(n1, n2,..) 중 탐색된 미탐색 영역(A)과 가장 근접한 주행 노드(n5)를 탐색한다.As shown in FIG. 9C, when the unsearched area (A) is searched, the control unit 350 selects the traveling node closest to the searched unsearched area (A) among the traveling nodes (n1, n2,...) through an algorithm such as wavefront. Search for (n5).
이동 로봇은 도 9d와 같이, 미탐색 영역(A)과 가장 근접한 주행 노드(n5)로 이동하고(S108), 미탐색 영역(A)에서 기존 로봇 접근 방향 이외의 나머지 방향에서 센서 정보를 수득하고, 도 9e와 같이 미탐색 영역(A) 내에서 그리드 맵을 기반으로 새로운 오픈 노드(n10, n11)를 생성한다(S109). As shown in Figure 9d, the mobile robot moves to the traveling node (n5) closest to the unsearched area (A) (S108), obtains sensor information from the remaining direction other than the existing robot approach direction in the unsearched area (A), and , As shown in Figure 9e, new open nodes (n10, n11) are created based on the grid map within the unsearched area (A) (S109).
이때, 새로운 오픈 노드(n10, n11)가 생성되면, 상기 새로운 오픈 노드(n10, n11)로부터 다시 토폴로지 맵의 생성을 위한 서브 영역의 분할 및 탐색 주행이 시작된다. At this time, when new open nodes (n10, n11) are created, sub-area division and search driving for generating a topology map start again from the new open nodes (n10, n11).
이와 같이, 오픈 노드의 오픈 여부를 판단할 때, 그리드 맵 기반으로 업데이트 함으로써 데이터 판단의 중복 탐색을 획기적으로 줄임으로써 연산 부하를 개선할 수 있다. 이와 같이, 오픈 노드의 수효를 최소화한 상태에서, 그리드 맵 기반으로 미탐색 영역이 있는지를 추가적으로 확인함으로써, 이동 로봇(100)의 추가 탐색을 획기적으로 줄일 수 있다. In this way, when determining whether an open node is open, the computational load can be improved by drastically reducing the redundant search for data judgment by updating based on the grid map. In this way, by minimizing the number of open nodes and additionally checking whether there is an unexplored area based on the grid map, additional exploration of the mobile robot 100 can be dramatically reduced.
한편, 도 10을 참고하면, 수동 맵핑이 추가되는 경우에도 본 발명의 맵핑 방법이 적용될 수 있다.Meanwhile, referring to FIG. 10, the mapping method of the present invention can be applied even when manual mapping is added.
도 10을 참고하면, 먼저, 이동 로봇(100)의 제어부(350)는 외부로부터 또는 설정되어 있는 지시에 따라 소정의 주행 구역에 대한 청소 맵 생성을 위한 선 주행을 수행하며, 이는 도 8과 동일하다. Referring to FIG. 10, first, the control unit 350 of the mobile robot 100 performs line driving to generate a cleaning map for a predetermined driving area according to external or set instructions, which is the same as FIG. 8. do.
이때, 이동 로봇(100)은 라이다 센서(175)로부터 360도의 원 영역(610)에 대한 라이다 정보를 수득하고, 장애물 감지 센서(171)로부터 거리 정보를 수득하고, 장애물 감지 센서(171)로부터의 초음파 정보 또는 적외선 정보로부터 전방에 위치하는 장애물까지의 거리 정보를 수득할 수 있다(S200). At this time, the mobile robot 100 obtains LiDAR information about the 360-degree circular area 610 from the LiDAR sensor 175, obtains distance information from the obstacle detection sensor 171, and obtains distance information from the obstacle detection sensor 171. Distance information to an obstacle located ahead can be obtained from ultrasonic or infrared information from the device (S200).
이동 로봇(100)은 상기 서브 영역(A)에 대한 주행을 완료할 때까지 각 주행 노드(n1, n2…)에 대한 라이다 정보 및 적외선 정보 등의 거리 정보를 각각 수집할 수 있다. 서브 영역(A)에 대하여 주행이 완료되면, 수집한 정보를 활용하여 토폴로지 노드 맵을 생성할 수 있다. 이때, 생성되는 토폴로지 노드 맵은 연속되는 주행 노드(n1, n2…)에 대한 열림과 닫힘의 표시에 의해 완성될 수 있으며, 이와 같은 주행 노드의 연결에 의해 토폴로지 노드 맵이 완성된다. The mobile robot 100 may collect distance information such as lidar information and infrared information for each traveling node (n1, n2...) until it completes traveling in the sub-area (A). When driving in the sub-area (A) is completed, a topology node map can be created using the collected information. At this time, the generated topology node map can be completed by indicating open and closed for consecutive traveling nodes (n1, n2...), and the topology node map is completed by connecting such traveling nodes.
이와 같이, 맵핑을 위한 탐색 주행 중, 사용자로부터 수동 맵핑 지시를 수신하면(S201), 이동 로봇(100)은 지시된 지역으로 이동하여 해당 지역에서의 맵핑을 위한 탐색주행을 수행한다.In this way, when a manual mapping instruction is received from the user during the search drive for mapping (S201), the mobile robot 100 moves to the indicated area and performs the search drive for mapping in the area.
이때, 사용자가 어플리케이션을 통해 수동 맵핑을 수행하는 경우, 자동 맵핑과 같이, 사용자의 지시에 따라 이동하면서 라이다 센서(175) 및 장애물 감지 센서(171)로부터 감지 정보를 수득할 수 있으며, 도 9와 같이 해당 정보에 따라 주행 노드의 열림 또는 닫힘을 판단할 수 있다.At this time, when the user performs manual mapping through the application, like automatic mapping, detection information can be obtained from the lidar sensor 175 and the obstacle detection sensor 171 while moving according to the user's instructions, Figure 9 As shown, the opening or closing of the driving node can be determined according to the relevant information.
이와 같이 수동으로 주행하면서도 토폴로지 맵 및 그리드 맵을 위한 정보를 수신하고 처리하여 맵핑을 수행한다(S202).In this way, while driving manually, information for the topology map and grid map is received and processed to perform mapping (S202).
한편, 수동 맵핑을 수행하던 영역에서 수동 맵핑이 종료되면(S203), 이동 로봇(100)은 자동 맵핑을 다시 시작한다(S204).Meanwhile, when manual mapping is terminated in the area where manual mapping was performed (S203), the mobile robot 100 restarts automatic mapping (S204).
자동 맵핑이 다시 시작되면, 이동 로봇(100)은 해당 위치에서 작성된 토폴로지 주행 노드 중 오픈 노드가 존재하는지 판단한다. When automatic mapping starts again, the mobile robot 100 determines whether an open node exists among the topology driving nodes created at the corresponding location.
즉, 도 8과 같이 오픈 공간 검출 알고리즘으로부터 오픈 공간을 확인하며, 주행 노드(n1, n2…)에 대하여 레이 캐스팅으로 오픈 공간이 존재하는 경우, 해당 주행 노드(n1, n2…)를 오픈 노드로 변경하고, 그 오픈 공간이 위치하는 방향에 대한 오픈 방향(OD)을 표시한다. That is, as shown in FIG. 8, the open space is confirmed from the open space detection algorithm, and if an open space exists through ray casting for the driving node (n1, n2...), the driving node (n1, n2...) is designated as an open node. Change it and display the open direction (OD) for the direction in which the open space is located.
다음으로, 제어부(350)는 각 오픈 노드에서의 열림을 확인한다(S206).Next, the control unit 350 confirms the opening of each open node (S206).
즉, 제어부(350)는 서브 영역에서 오픈 노드가 위치한 영역을 각 오픈 노드 별로 구획하고, 각 오픈 노드에서 오픈 방향이 향하는 영역에 다른 오픈 노드의 오픈 방향과 마주하는지를 판단한다.That is, the control unit 350 divides the area where the open node is located in the sub-area for each open node, and determines whether the area facing the open direction in each open node faces the open direction of another open node.
이때, 오픈 노드별 구획 및 오픈 방향에서의 판단은 그리드 맵 기반으로 탐색한다. 구체적으로, 오픈 노드에서 오픈 방향으로 그리드 맵에서 미탐색 여부가 있는지 확인하기 위해 오픈 방향으로 구획하여 해당 구획된 영역의 로컬 맵을 생성한다. 따라서, 오픈 노드별 구획된 영역에서 서로 마주하는 오픈 방향이 존재하면, 해당 오픈 노드를 닫는다.At this time, the division of each open node and the decision on the open direction are searched based on the grid map. Specifically, in order to check whether there is any unexplored area in the grid map from the open node to the open direction, a local map of the partitioned area is created by partitioning in the open direction. Therefore, if there are open directions facing each other in the area defined for each open node, the corresponding open node is closed.
이와 같이 각각의 오픈 노드에서 그리드 맵을 읽어들여 오픈 노드의 오픈 방향에서 반대 방향의 탐색을 통해 미탐색 영역이 없음을 확인하고 오픈 노드가 열려 있는지 닫혀있는지를 판단한다. 이와 같은 판단에서 수동 맵핑한 영역 내에 잔류하는 오픈 노드가 있는지 확인하고, 오픈 노드가 존재하면 그를 등록하고 저장한다. In this way, the grid map is read from each open node, and through a search in the opposite direction from the open direction of the open node, it is confirmed that there is no unsearched area and it is determined whether the open node is open or closed. In this judgment, it is checked whether there are any open nodes remaining in the manually mapped area, and if an open node exists, it is registered and stored.
또한, 해당 오픈 노드로 이동하고, 회전하여 추가적인 주행 노드 및 다른 오픈 노드를 확인한다(S207).Also, move to the corresponding open node and rotate to check additional driving nodes and other open nodes (S207).
한편, 수동 맵핑 영역 내에 오픈 여부를 확인할 더 이상의 오픈 노드가 존재하지 않으면 2차 탐색을 수행한다.Meanwhile, if there are no more open nodes within the manual mapping area to check for openness, a secondary search is performed.
2차 탐색은 그리드 맵을 기반으로 수행하며, 제어부(350)은 도 9c와 같이 그리드 맵에서 상기 수동 맵핑 영역에 대한 정보를 읽어들이고, 상기 수동 맵핑 영역에서 닫힌 오픈 노드 이외에 미탐색 영역이 존재하는지 여부를 판단한다(S208). The secondary search is performed based on the grid map, and the control unit 350 reads information about the manual mapping area from the grid map as shown in FIG. 9C and determines whether there is an unsearched area other than closed open nodes in the manual mapping area. Determine whether or not (S208).
제어부는 수동 맵핑 영역의 토폴로지 맵의 오픈 노드의 정보를 수동 맵핑 영역의 그리드 맵에 업데이트하면서 미탐색 세그먼트를 추출한다.The control unit extracts unexplored segments while updating the open node information of the topology map of the manual mapping area to the grid map of the manual mapping area.
미탐색 영역이 탐색되면, 제어부는 wavefront와 같은 알고리즘을 통해 주행 노드 중 탐색된 미탐색 영역과 가장 근접한 주행 노드를 탐색하고, 미탐색 영역과 가장 근접한 주행 노드로 이동하여, 미탐색 영역에서 기존 로봇 접근 방향 이외의 나머지 방향에서 센서 정보를 수득하고, 도 9e와 같이 미탐색 영역 내에서 그리드 맵을 기반으로 새로운 오픈 노드를 생성한다. When an unexplored area is discovered, the control unit searches for the driving node closest to the discovered unsearched area among driving nodes through an algorithm such as wavefront, moves to the driving node closest to the unsearched area, and moves the existing robot in the unsearched area. Sensor information is obtained from directions other than the approach direction, and a new open node is created based on the grid map within the unexplored area, as shown in Figure 9e.
이때, 새로운 오픈 노드가 생성되면, 상기 새로운 오픈 노드로부터 다시 토폴로지 맵의 생성을 위한 서브 영역의 분할 및 탐색 주행이 시작된다. At this time, when a new open node is created, sub-area division and search driving for creating a topology map starts again from the new open node.
이와 같이, 자동 맵핑 중, 사용자로부터의 수동 맵핑이 진행되면, 해당 수동 맵핑이 진행된 영역에 대하여 오픈 노드를 확인하고, 2차에 걸쳐 미탐색 영역이 있는지 탐색함으로써, 맵핑 영역의 단절로 인한 중복 탐색을 방지할 수 있다.In this way, when manual mapping from the user is performed during automatic mapping, open nodes are checked for the area where the manual mapping was performed, and the search is performed twice to see if there is an unsearched area, thereby eliminating duplicate search due to disconnection of the mapping area. can be prevented.
제어부(350)는 이와 같은 오픈 노드에 대한 토폴로지 그래프를 각각 형성할 수 있으며, 복수의 서브 영역에 대한 토폴로지 그래프를 서로 연결함으로써 주행 구역 전체에 대한 토폴로지 그래프를 완성할 수 있다.The control unit 350 can form a topology graph for each of these open nodes, and can complete a topology graph for the entire driving area by connecting the topology graphs for a plurality of sub-areas.
이와 같은 토폴로지 그래프는 청소 맵을 형성하는 기초 맵으로 기능할 수 있다.This topology graph can function as a basic map to form a cleaning map.
제어부(350)는 그리드 맵과 토폴로지 그래프를 참고하여 각 노드 사이의 관계를 확인가능하며, 최적의 경로를 설정할 수 있다.The control unit 350 can check the relationship between each node by referring to the grid map and topology graph and set the optimal path.
또한, 제어부(350)는 해당 그리드 맵에 영상 데이터를 융합하여 이미지화 할 수 있다.Additionally, the control unit 350 can fuse image data into the corresponding grid map and create an image.
이와 같은 이미지화에는 경계선 처리 알고리즘, 명도 차이를 통한 이미지 처리 등을 수행하여 각 그리드 맵의 음영을 선으로 표시 가능하다.In such imaging, the shading of each grid map can be displayed as a line by performing border processing algorithms and image processing through brightness differences.
이동 로봇(100)은 현재 이동 로봇(100)의 위치에서 이미지화된 그리드 맵과 토폴로지 그래프를 기초로 최적의 경로를 설정가능하다.The mobile robot 100 can set an optimal path based on the grid map and topology graph imaged at the current location of the mobile robot 100.
이와 같은 맵핑 방법은 다음과 같은 효과를 가진다.This mapping method has the following effects.
도 11a는 토폴로지 맵에서 오픈 노드에 대한 오픈 여부 확인 없이 진행한 것이고, 도 11b는 본 발명과 가팅 오픈 노드에 대한 오픈 여부 확인 후 그리드 맵에 따른 미탐색 영역의 탐색 주행을 수행한 것이다.Figure 11a shows the process without checking whether the open node is open in the topology map, and Figure 11b shows the present invention and a search drive in an unsearched area according to the grid map after checking whether the open node is open.
각 노드는 이동 로봇의 추가 탐색 지점을 나타내는 것이다.Each node represents an additional navigation point for the mobile robot.
도 11a와 같이, 오픈 노드에서 각 오픈 노드의 오픈 여부를 재확인하지 않으면, 각 오픈 노드로 진입하여 다시 해당 오픈 노드에서의 탐색 주행을 수행하게 된다. 따라서, 이동 로봇의 추가 탐색이 매우 빈번하고 오픈 노드의 탐색이 중복된다.As shown in Figure 11a, if the open node does not re-check whether each open node is open, it enters each open node and performs search driving in that open node again. Therefore, the additional search of the mobile robot is very frequent and the search of open nodes is redundant.
반면, 도 11b와 같이, 토폴로지 맵에서 오픈 노드로 정의된 각 주행 노드를 그리드 맵 상에서 구획하여 오픈 노드의 열림 여부를 재확인하여, 일부의 오픈 노드를 닫음으로써 1차적으로 오픈 노드의 수효를 현저히 감소시킬 수 있다. 더불어, 2차로 그리드 맵 상에서 미탐색 영역의 확인을 동시 수행함으로써 이같이 감소된 오픈 노드로 인한 누락된 미탐색 영역이 존재하는지 확인할 수 있어 신뢰성이 향상된다. On the other hand, as shown in Figure 11b, each driving node defined as an open node in the topology map is divided on the grid map to recheck whether the open node is open, and by closing some open nodes, the number of open nodes is significantly reduced in the first instance. You can do it. In addition, by simultaneously checking the unsearched area on the secondary grid map, it is possible to check whether there are missing unsearched areas due to the reduced open nodes, thereby improving reliability.
본 발명에 따른 이동 로봇(100)은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.The mobile robot 100 according to the present invention is not limited to the configuration and method of the embodiments described above, but all or part of each embodiment is optional so that various modifications can be made. It may be composed of a combination of .
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나, 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다.Likewise, although operations are depicted in the drawings in a particular order, this should not be construed to mean that those operations must be performed in the specific order or sequential order shown or that all of the depicted operations must be performed to obtain desirable results. . In certain cases, multitasking and parallel processing may be advantageous.
한편, 본 발명의 실시예에 따른 이동 로봇(100)의 제어 방법은, 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Meanwhile, the control method of the mobile robot 100 according to an embodiment of the present invention can be implemented as processor-readable code on a processor-readable recording medium. Processor-readable recording media includes all types of recording devices that store data that can be read by a processor. It also includes those implemented in the form of carrier waves, such as transmission through the Internet. Additionally, the processor-readable recording medium is distributed in a computer system connected to a network, so that the processor-readable code can be stored and executed in a distributed manner.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.In addition, although preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the invention pertains without departing from the gist of the present invention as claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be understood individually from the technical idea or perspective of the present invention.
이동 로봇: 100
본체: 110
저장부: 305
영상획득부: 320
입력부: 325
흡입유닛: 330
제어부: 350
주행부: 360
센서부: 370Mobile robot: 100
Body: 110
Storage: 305
Video acquisition department: 320
Input: 325
Suction unit: 330
Control: 350
Running part: 360
Sensor unit: 370
Claims (12)
상기 본체 외부의 물체와의 거리에 관한 거리 감지 정보를 획득하는 감지부; 및
상기 거리 감지 정보로부터 상기 주행 구역에 대한 그리드 맵을 생성하고, 상기 거리 감지 정보 중 라이다 정보로부터 주행 경로 상의 복수의 주행 노드에 대하여 오픈 노드를 탐색하고, 상기 그리드 맵으로부터 각각의 상기 오픈 노드에 대하여 오픈 여부를 재판단하여 토폴로지 맵을 생성하는 제어부;
를 포함하는 이동 로봇.
a traveling unit that moves the main body within the traveling area;
a detection unit that acquires distance detection information regarding the distance to an object outside the main body; and
Generate a grid map for the driving area from the distance detection information, search for open nodes for a plurality of driving nodes on the driving path from the LiDAR information among the distance detection information, and select each open node from the grid map. A control unit that re-determines whether to open a device and generates a topology map;
Mobile robot including.
상기 센서부는 상기 본체 외부의 물체에 레이저를 조사하고, 반사되는 광에 의해 상기 거리 감지 정보를 산출하는 라이다 센서를 포함하는 것을 특징으로 하는, 이동 로봇.
According to claim 1,
The sensor unit is a mobile robot, characterized in that it includes a lidar sensor that irradiates a laser to an object outside the main body and calculates the distance detection information by reflected light.
제어부는 복수의 주행 노드마다 상기 레이 캐스팅을 실행하여 오픈 공간을 탐색하고, 상기 오픈 공간이 존재하는 상기 주행 노드를 상기 오픈 노드로 설정하는 것을 특징으로 하는 이동 로봇.
According to claim 2,
A mobile robot, wherein the control unit searches for open space by executing the ray casting for each of a plurality of traveling nodes, and sets the traveling node where the open space exists as the open node.
상기 제어부는 상기 그리드 맵을 기초로 상기 오픈 노드의 오픈 공간이 존재하는 방향에 마주하는 오픈 공간을 가지는 상기 오픈 노드가 존재하는 경우, 상기 오픈 노드를 닫는 것을 특징으로 하는 이동 로봇.
According to claim 3,
The control unit closes the open node when the open node has an open space facing the direction in which the open space of the open node exists based on the grid map.
상기 제어부는 각각의 상기 오픈 노드에 대하여, 상기 그리드 맵으로부터 상기 오픈 노드 주변을 구획하여 상기 오픈 노드 주변에 미탐색 영역이 존재하는지 여부를 판단하여 상기 오픈 노드를 닫을지 결정하는 것을 특징으로 하는 이동 로봇.
According to claim 3,
The control unit, for each open node, divides the area around the open node from the grid map, determines whether an unexplored area exists around the open node, and determines whether to close the open node. robot.
상기 제어부는 상기 주행 구역을 복수의 서브 영역으로 분할하고, 각각의 상기 서브 영역에 대하여 상기 그리드 맵과 상기 토폴로지 맵을 생성하며,
상기 서브 영역은 상기 이동 로봇이 상기 주행 구역을 소정 시간 또는 소정 거리만큼 주행할 때의 면적으로 분할하는 것을 특징으로 하는 이동 로봇.
According to claim 5,
The control unit divides the driving area into a plurality of sub-areas and generates the grid map and the topology map for each sub-area,
The sub-area is a mobile robot characterized in that the mobile robot is divided into an area when the mobile robot travels the travel area for a predetermined time or a predetermined distance.
상기 제어부는 상기 서브 영역에 대하여 상기 오픈 노드의 오픈 여부가 재 판단된 경우, 상기 그리드 맵으로부터 상기 서브 영역에 대한 미탐색 영역이 존재하는지를 판단하는 것을 특징으로 하는 이동 로봇.
According to claim 5,
The control unit determines whether an unsearched area for the sub-area exists from the grid map when it is re-determined whether the open node is open for the sub-area.
상기 제어부는 상기 미탐색 영역이 존재하면, 상기 미탐색 영역 주변의 상기 주행 노드로 이동하여 상기 미탐색 영역에 오픈 노드가 존재하는지 탐색 주행을 수행하는 것을 특징으로 하는 이동 로봇.
According to clause 6 or 7,
The mobile robot is characterized in that, when the unsearched area exists, the control unit moves to the travel node around the unsearched area and performs a search drive to see if an open node exists in the unsearched area.
상기 제어부는 상기 주행 노드를 따라 주행하면서, 노드 기반 탐색 및 상기그리드맵 기반 탐색을 동시 수행하는 것을 특징으로 하는 이동 로봇.
According to claim 8,
The mobile robot is characterized in that the control unit simultaneously performs node-based search and the grid map-based search while traveling along the travel node.
상기 제어부는, 상기 주행 노드에서 레이 캐스팅하여 상기 이동 로봇의 주행이 가능하고, 상기 이동 로봇이 기 주행하지 않은 공간을 상기 오픈 공간으로 판단하는 것을 특징으로 하는, 이동 로봇.
According to claim 3,
The control unit determines that the mobile robot can travel by ray casting from the travel node and determines a space in which the mobile robot has not previously driven as the open space.
상기 제어부는 상기 주행 노드를 중심으로 360도로 레이 캐스팅을 수행하는 것을 특징으로 하는 이동 로봇.
According to claim 10,
The mobile robot is characterized in that the control unit performs 360-degree ray casting around the traveling node.
상기 센서부는 상기 그리드 맵을 생성하기 위한 장애물 감지 센서를 더 포함하는 것을 특징으로 하는 이동 로봇. According to claim 1,
A mobile robot, wherein the sensor unit further includes an obstacle detection sensor for generating the grid map.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220034783A KR20230137080A (en) | 2022-03-21 | 2022-03-21 | A mobile robot |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220034783A KR20230137080A (en) | 2022-03-21 | 2022-03-21 | A mobile robot |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230137080A true KR20230137080A (en) | 2023-10-04 |
Family
ID=88290248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220034783A KR20230137080A (en) | 2022-03-21 | 2022-03-21 | A mobile robot |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230137080A (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100031878A (en) | 2008-09-16 | 2010-03-25 | 삼성전자주식회사 | Apparatus and method for building map used in mobile robot |
KR20210009011A (en) | 2019-07-16 | 2021-01-26 | 엘지전자 주식회사 | Moving robot and control method thereof |
-
2022
- 2022-03-21 KR KR1020220034783A patent/KR20230137080A/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100031878A (en) | 2008-09-16 | 2010-03-25 | 삼성전자주식회사 | Apparatus and method for building map used in mobile robot |
KR20210009011A (en) | 2019-07-16 | 2021-01-26 | 엘지전자 주식회사 | Moving robot and control method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7356567B2 (en) | Mobile robot and its control method | |
JP7356566B2 (en) | Mobile robot and its control method | |
AU2017316091B2 (en) | Mobile robot and control method therefor | |
US11700989B2 (en) | Mobile robot using artificial intelligence and controlling method thereof | |
KR20180087798A (en) | Moving robot and control method therof | |
US20220175208A1 (en) | Robot cleaner using artificial intelligence and control method thereof | |
KR102147210B1 (en) | Controlling method for Artificial intelligence Moving robot | |
JP7329125B2 (en) | Mobile robot and its control method | |
EP4374763A1 (en) | Robotic cleaner and method for controlling robotic cleaner | |
KR20230137080A (en) | A mobile robot | |
US20240377835A1 (en) | Robotic cleaner and method for controlling robotic cleaner | |
JP7432701B2 (en) | Mobile robot and its control method | |
KR20230143800A (en) | A mobile robot and the control method thereof | |
KR20230134800A (en) | A robot cleaner and control method thereof | |
KR20200091110A (en) | Moving Robot and controlling method thereof |