WO2024147602A1 - 로봇 장애 분석 방법 및 장치 - Google Patents
로봇 장애 분석 방법 및 장치 Download PDFInfo
- Publication number
- WO2024147602A1 WO2024147602A1 PCT/KR2024/000045 KR2024000045W WO2024147602A1 WO 2024147602 A1 WO2024147602 A1 WO 2024147602A1 KR 2024000045 W KR2024000045 W KR 2024000045W WO 2024147602 A1 WO2024147602 A1 WO 2024147602A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- analysis
- robot
- failure
- map
- maps
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1674—Program controls characterised by safety, monitoring, diagnostic
-
- 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
-
- 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/20—Control system inputs
-
- 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/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/246—Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
- G05D1/2464—Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM] using an occupancy grid
Definitions
- Failures in robots can occur due to various causes, but failures due to various causes often appear as one phenomenon, making it difficult to identify the cause of the failure and take action.
- the plurality of analysis maps with different analysis units may have different unit areas that are the subject of analysis.
- the area unit includes a grid unit dividing the original map into a grid
- the step of generating a plurality of analysis maps with different analysis units includes a grid analysis map including a plurality of grids dividing the original map.
- a step of generating wherein the step of generating an analysis result including error information appearing in a plurality of analysis maps with different analysis units determines the error type on a grid basis based on the robot's driving data in the grid. It may include a step of generating grid analysis results by extracting.
- the area unit includes a grid unit that divides the original map into a grid
- the step of generating a plurality of analysis maps with different analysis units includes generating a distance analysis map indicating the optimal path of the robot.
- the step of generating an analysis result including error information appearing in a plurality of analysis maps with different analysis units includes extracting an error type based on the difference between the robot's driving path and the optimal path in a grid unit. It may include generating a distance analysis result.
- the step of generating a plurality of analysis maps with different analysis units includes generating a driving prohibition analysis map indicating in point units whether the robot is prohibited from running, and errors appearing in the plurality of analysis maps with different analysis units.
- the step of generating an analysis result including information may include generating a no-run analysis result by extracting an error type based on whether or not the robot enters the no-run area on a point-by-point basis.
- the step of extracting error information matching the specific failure cause selects one or more error types that appear with a frequency higher than a reference value from the analysis results of the plurality of driving data as one or more error types matching the specific failure cause. It may include steps.
- the specific cause of the failure may include at least one of the cause of the failure and a measure for the failure.
- the robot failure analysis device includes a control unit that generates a plurality of analysis maps with different analysis units based on the original map, and a communication unit that collects driving data of the robot traveling based on the original map. And, the control unit applies driving data in a failure situation to a plurality of analysis maps with different analysis units, generates an analysis result including error information shown in the plurality of analysis maps with different analysis units, and generates a specific By analyzing the analysis results of a large number of driving data in which the cause of the failure occurred, error information matching the specific cause of the failure is extracted.
- the plurality of analysis maps with different analysis units may have different unit areas that are the subject of analysis.
- Figure 6 is a diagram showing a driving ban analysis map according to the present invention.
- Figure 7 is a diagram showing a grid analysis map according to the present invention.
- control unit 120 may generate a plurality of analysis maps with different analysis units based on the original map 310 (S210).
- some analysis maps are used to identify the robot's error information (information that allows identifying the cause of the robot failure) on a point-by-point basis
- other analysis maps among the plurality of analysis maps are used to identify error information on a zone-by-zone basis.
- the size of the unit area subject to analysis is the size of a point
- the size of the unit area subject to analysis is the size of an area combining a plurality of points
- the size of the unit area subject to analysis is the size of a point.
- the size of the unit area subject to analysis on the map may be larger.
- Incomplete boundaries are areas that robots (or lidar sensors) must additionally explore in map navigation.
- the incomplete boundary is judged to be an area where the robot is likely to cause a failure (e.g., localization fail, etc.), and the information on the incomplete boundary can be stored in point units. . This is because if an incomplete boundary exists within the map 310, the actual traveling robot does not pass through the boundary and avoids it.
- the size of the zone is determined by the robot's sensing It may be determined based on at least one of distance and speed.
- the sensing distance of the robot may mean the distance at which the robot can sense surrounding objects through sensing means such as lidar or cameras.
- the robot failure analysis device 100 may acquire location information (coordinates) of the robot in a certain time unit (e.g., 3 seconds) and determine that the robot has stopped based on the location information of the robot. You can. Meanwhile, assume that the first robot stopped while traveling at 10 kilometers per hour, and the second robot stopped while traveling at 5 kilometers per hour. In this case, even though both the first robot and the second robot stopped, it means that the first robot stopped due to a random factor that occurred in a wider area around it, and the second robot stopped due to a random factor that occurred in a narrower area around it. It means that it stopped due to random factors. Accordingly, the control unit 120 can analyze the cause of the robot's behavior by setting a wider zone for the fast-speed robot compared to the slow-speed robot.
- a certain time unit e.g. 3 seconds
- the control unit 120 may generate the distance analysis map 360 using the distance transform technology shown in FIG. 9B, and the distance analysis map 360 is the original It may be a distance map created by applying distance transform technology to the map 310. Specifically, since the distance transform technology assigns a score based on the distance to the nearest object (specifically, the object's boundary), the highest path score is given to the path connecting the center of the widest passage, as shown in the previous example. It can be.
- Figure 9a shows the route scores in color, and it can be seen that the optimal route is displayed in yellow in the center of the passage. In this case, the robot can drive along the place with the highest route score.
- a distance map is used by a robot to select the optimal path.
- the control unit 120 may use the distance analysis map 360 to determine how much the robot detours the optimal path depending on factors such as obstacle detection. For example, if robots frequently detour in a specific area, the control unit 120 may determine that obstacles frequently appear in the area.
- control unit 120 may generate the distance analysis map 360 to enable point-by-point analysis.
- the control unit 120 may match route scores to pixels and store them in pixel units.
- the method is not limited to this, and the control unit 120 may generate the distance analysis map 360 to enable analysis on a grid basis by matching the route score to a grid and storing it in grid units.
- the control unit 120 may generate a distance analysis map 360 to enable zone-wise analysis by matching route scores to zones and storing them on a zone-by-zone basis.
- control unit 120 may collect driving data of the robot traveling based on the original map 310 (S220).
- the robot can drive based on the original map 310. For example, unless there are other factors, the robot runs while avoiding boundaries shown in the original map 310, runs through passages shown in the original map 310, and travels in no-driving areas shown in the original map 310. You can drive without entering. Additionally, the robot can sense the surroundings while driving (lidar scanning, camera shooting, etc.) and perform actions such as avoiding obstacles based on the sensing results.
- the robot's driving data may further include robot movement information (370 in FIG. 3).
- the robot's movement information is generated using coordinate information for each time unit of the robot, and may include the robot's driving path.
- the control unit 120 may generate the robot's driving path by connecting the robot's coordinate information collected every 0.5 seconds.
- the robot's movement information may include the robot's movement speed.
- the control unit 120 can calculate the robot's movement speed using the robot's coordinate information collected every 0.5 seconds. Meanwhile, the control unit 120 may generate the path traveled by the robot point by point, but the method is not limited to this.
- the robot's driving data may include robot's motion information.
- the robot's motion information may include at least one of robot behavior information, robot mission information, and mission-based behavior information.
- the control unit 120 may generate motion information of the robot using at least one of coordinate information (eg, x, y coordinates) and movement information for each time unit of the robot.
- the robot's behavior information represents the robot's behavior and may include, for example, the robot 'stopped', 'moved', or 'waited'.
- the robot's mission information represents the mission assigned to the robot and may include, for example, 'move from the first label to the second label'.
- Mission-based behavior information represents the robot's behavior when a mission is given to the robot, for example, 'It received a mission and moved', 'It was supposed to move after receiving a mission, but failed the mission by not moving', etc. It can be included.
- control unit 120 applies the driving data in the event of a failure to a plurality of analysis maps with different analysis units, and generates analysis results including error information shown in the plurality of analysis maps with different analysis units. (S230).
- Error information may include at least one of whether an error defined to be detected in advance exists in the corresponding analysis unit (point, grid, zone, etc.) and the type of error.
- the type of error can be created when an error exists in the corresponding analysis unit (point, grid, zone, etc.).
- control unit 120 may extract error information using at least one of the analysis map and driving data. That is, the error information may include at least one of error information identified from the analysis map, error information identified from the robot's driving data, and error information identified by combining the driving data with the analysis map.
- control unit 120 may extract error information on a point-by-point or region-by-zone basis, match the extracted error information to the corresponding point or zone, and store it. For example, when error information is extracted from a specific point of the boundary analysis map, the control unit 120 may match the identification information of the specific point with the error information and store it. For another example, when error information is extracted from a specific grid of the grid analysis map, the control unit 120 may match the identification information of the specific grid with the error information and store it.
- the analysis results may include the same number of detailed analysis results (boundary analysis results, driving ban analysis results, grid analysis results, zone analysis results, and distance analysis results) as the number of analysis maps. Additionally, each detailed analysis result may include error information (whether an error occurred, error type) shown in each detailed analysis result and identification information of a point or area where the error information appeared.
- boundary analysis results corresponding to the boundary analysis map 320 will be described. While other analysis maps generate analysis results by combining them with the robot's driving data, the boundary analysis map 320 is intended to determine only the incompleteness of the map, and boundary analysis results are generated without being combined with the robot's driving data. You can.
- control unit 120 may generate a boundary analysis result including error information shown in the boundary analysis map 320.
- the control unit 120 may extract the error type on a point-by-point basis based on the incompleteness of the original map.
- the error type may include, but is not limited to, information about whether the boundary is incomplete at the point, and may also indicate the degree of incompleteness of the map.
- the boundary analysis result is called B, and the types of errors included in the boundary analysis result are called B1, B2, etc. For example, if the boundary of a particular point is incomplete, the error type may be displayed as B1.
- control unit 120 can match error information to the corresponding point and store it.
- control unit 120 may store identification information for a specific point along with error information (B1) for the specific point. Accordingly, boundary analysis results including error types for each point can be generated.
- control unit 120 may apply driving data in a situation where a failure occurs to the driving ban analysis map 330 and extract error information shown in the driving ban analysis map 330 .
- the control unit 120 may apply the robot's driving data to the driving ban analysis map 330 to extract the error type. More specifically, the control unit 120 uses the robot's driving data (e.g., movement information) and the driving ban analysis map 330 to determine whether the robot has entered the driving ban area, and determines whether the robot has entered the driving ban area. Based on this, the error type can be extracted.
- the error type may include information such as whether the corresponding point belongs to the no-driving area or whether the corresponding point belongs to the no-driving area and the robot entered it.
- the driving prohibition analysis result is called D
- the types of errors included in the driving ban analysis result are called D1, D2, etc. For example, if a specific point is a no-driving area, the error type may be displayed as D1, and if a specific point is a no-driving area and the robot enters the specific point, the error type may be displayed as D2.
- control unit 120 may extract error information (error type) by point, match the extracted error information (error type) to the corresponding point, and store it.
- error information error type
- control unit 120 may store identification information for a specific point along with error information for the specific point.
- control unit 120 may generate a driving prohibition analysis result including error information (error type) for each point.
- control unit 120 may apply driving data in a situation where a failure occurs to the grid analysis map 340 to extract error information shown in the grid analysis map 340 .
- control unit 120 may apply the robot's driving data to the grid analysis map 340 to extract error types for each grid. Specifically, the control unit 120 may extract the error type on a grid basis based on the robot's driving data in the grid.
- the error type can be determined based on the robot's driving data on the corresponding grid.
- the control unit 120 uses the robot's driving data to perform predefined actions (e.g., 'stop', 'move', 'wait', 'mission failure', 'obstacle detection', 'more than 3 minutes' 'stop', predefined speed, etc.) can be extracted and an error type corresponding to the extracted motion can be assigned.
- predefined actions e.g., 'stop', 'move', 'wait', 'mission failure', 'obstacle detection', 'more than 3 minutes' 'stop', predefined speed, etc.
- the analysis result is called C, and the error types included in the driving ban analysis result are called C1, C2, etc.
- the error type may be displayed as C1
- the robot stops in a specific grid the error type may be displayed as C2
- the error type may be displayed as C3.
- control unit 120 may extract error information (error type) on a grid basis, match the extracted error information (error type) to the corresponding grid, and store it.
- error information error type
- control unit 120 may store identification information for a specific grid along with error information for the specific grid.
- control unit 120 may generate a grid analysis result including error information (error type) for each grid.
- control unit 120 may apply the robot's driving data to the zone analysis map 350 to extract error types for each zone. Specifically, the control unit 120 may extract the error type on a zone basis based on the robot's driving data in the zone.
- control unit 120 can extract error information (error type) on a zone basis, match the extracted error information (error type) to the corresponding zone, and store it.
- error information error type
- control unit 120 may store identification information for a specific zone along with error information for the specific zone.
- control unit 120 may generate a zone analysis result including error information (error type) for each zone.
- control unit 120 may apply driving data in a situation where a failure occurs to the distance analysis map 360 to extract error information shown in the distance analysis map 360 .
- control unit 120 may apply the robot's driving data to the distance analysis map 360 and extract the error type on a grid basis.
- the error type can be extracted based on the difference between the robot's driving path and the optimal path.
- the robot's driving data includes the robot's driving path.
- the control unit 120 can calculate and store the difference between the robot's driving path and the optimal path for each grid.
- the distance difference is 4, it can be classified as a first error type, and if the distance difference is 3, it can be classified as a second error type.
- the distance analysis result is called F, and the types of errors included in the distance analysis result are called F1, F2, etc.
- control unit 120 may extract error information (error type) on a grid basis, match the extracted error information (error type) to the corresponding grid, and store it.
- error information error type
- control unit 120 may store identification information for a specific grid along with error information for the specific grid.
- control unit 120 may generate a distance analysis result including error information (error type) for each grid.
- the control unit 120 can extract the error type (difference between the robot's driving path and the optimal path) for each point and store error information for each point.
- the error type difference between the robot's driving path and the optimal path
- more detailed analysis is possible.
- control unit 120 generates analysis results including boundary analysis results, driving prohibition analysis results, grid analysis results, zone analysis results, and distance analysis results by applying one driving data to a plurality of analysis maps. can do.
- control unit 120 may generate an analysis result by extracting the error type at the location where the error occurred for one piece of driving data. For example, when it is reported that a failure has occurred in the first grid for some driving data, the control unit 120 determines the The error type can be extracted. As an example, the control unit 120 extracts an error type (e.g., B1) at a point included in the first grid from the boundary analysis result and extracts an error type (e.g., C2) in the first grid from the grid analysis result. and the error type (for example, E3) in the zone including the first grid can be extracted from the zone analysis result.
- the analysis result of the driving data may include B1, C2, and E3.
- the control unit 120 determines the The error type can be extracted.
- the control unit 120 may extract an error type (e.g., C6) in the second grid from the grid analysis result and extract an error type (e.g., F4) in the second grid from the distance analysis result.
- the analysis results of driving data may include C6 and F4.
- the control unit 120 may extract one or more error types that appear at a frequency greater than a reference value from a plurality of analysis results classified as the first cause of the failure. For example, the control unit 120 selects the first error type (B1) of the boundary analysis result and the first error type (C1) of the grid analysis result from the 10,000 analysis results classified as the first cause of failure. can be extracted.
- one or more error types that appear with a frequency higher than the reference value may include a combination of error types that appear with a frequency higher than the reference value.
- the control unit 120 may select one or more error types that appear with a frequency greater than the reference value as one or more error types that match the first failure cause. For example, the control unit 120 may select B1 and C1 as error types that match the first failure cause.
- control unit 120 can select, for each of a plurality of failure causes, one or more error information matching the failure cause as one or more error types matching the corresponding failure cause.
- the control unit 120 may select B3, C1, and D1 as error types that match the second failure cause, and may match B3, C1, and D1 to the second failure cause and store them.
- the control unit 120 may select D3 and F2 as error types that match the third failure cause, and store D3 and F2 by matching them to the third failure cause.
- the control unit 120 may store one or more error information matching the corresponding failure causes in the memory 130.
- the control unit 120 stores one or more error information (B1) matching the first failure cause in the memory 130, and stores one or more error information (B1 and C1) matching the second failure cause in the memory ( 130).
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
로봇 장애 분석 방법이 개시된다. 본 발명에 따른 로봇 장애 분석 방법은, 원본맵에 기초하여, 분석 단위가 상이한 복수의 분석맵을 생성하는 단계, 상기 원본맵에 기반하여 주행하는 로봇의 주행 데이터를 수집하는 단계, 장애가 발생한 상황에서의 주행 데이터를 상기 분석 단위가 상이한 복수의 분석맵에 적용하여, 상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계, 및, 특정 장애원인이 발생한 다수의 주행 데이터들의 분석결과들을 분석하여, 상기 특정 장애원인에 매칭되는 에러 정보를 추출하는 단계를 포함한다.
Description
본 출원은, 2023년 1월 6일자로 출원된 한국 특허출원번호 제 10-2023-0002238호에 대한 우선권주장출원으로서, 해당 출원의 명세서 및 도면에 개시된 모든 내용은 인용에 의해 본 출원에 원용된다.
본 발명은, 원본맵에 기초하여 분석 단위가 상이한 복수의 분석맵을 생성하고, 로봇의 주행 데이터를 복수의 분석맵에 적용한 후 분석함으로써 장애가 발생하는 패턴을 파악할 수 있는, 로봇 장애 분석 방법 및 장치에 관한 것이다.
다양한 원인에 의해 로봇에 장애가 발생할 수 있으나, 다양한 원인에 따른 장애가 하나의 현상으로 나타나는 경우가 많아, 장애의 원인 파악 및 조치 마련에 어려움을 겪는 경우가 많다.
예를 들어 장애물이 오탐지되는 경우에도, 그리고 로봇이 자신의 위치를 파악하지 못하는 경우에도, 로봇 멈춤이라는 현상으로 나타난다. 또한 장애물의 오탐지 역시, 지도가 잘못 작성된 경우, 라이다 센서의 고장, 카메라의 고장 등 다양한 원인에 의해 발생할 수 있다.
현재는, 로봇에서 발생한 장애의 원인을 파악하기 위해, 로봇 내 부품이나 소프트웨어에서 보고하는 에러 정보에 의존하였다. 다만 로봇의 장애는, 로봇 내 부품 및 소프트웨어 뿐만이 아니라, 로봇의 운행 상황, 주변 환경, 로봇이 참조하는 맵의 완성도 등 다양한 요인이 복합적으로 작용하여 발생할 수 있는 것으로, 로봇에서 발생시키는 에러 정보 만으로는 로봇의 장애 원인을 파악하기 어렵다는 한계가 있다.
따라서 종래에는 운영자가 현장에 직접 출동하거나 원격 장비를 이용하여, 장애가 발생한 당시의 상황을 재현하는 방식으로 장애 원인을 파악하였다. 다만 이는 운용자의 경험에 의존하는 것에 불과하여 장애의 근본 원인을 찾기에는 한계가 존재하며, 장애의 원인을 세부적으로 분류하는 것도 불가능하였다. 또한 장애가 발생한 후의 사후 조치에 불과하기 때문에 고객의 VOC를 막지 못하는 문제가 있었다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은, 원본맵에 기초하여 분석 단위가 상이한 복수의 분석맵을 생성하고, 로봇의 주행 데이터를 복수의 분석맵에 적용한 후 분석함으로써 장애가 발생하는 패턴을 파악할 수 있는, 로봇 장애 분석 방법 및 장치에 관한 것이다.
본 발명에 따른 로봇 장애 분석 방법은, 원본맵에 기초하여, 분석 단위가 상이한 복수의 분석맵을 생성하는 단계, 상기 원본맵에 기반하여 주행하는 로봇의 주행 데이터를 수집하는 단계, 장애가 발생한 상황에서의 주행 데이터를 상기 분석 단위가 상이한 복수의 분석맵에 적용하여, 상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계, 및, 특정 장애원인이 발생한 다수의 주행 데이터들의 분석결과들을 분석하여, 상기 특정 장애원인에 매칭되는 에러 정보를 추출하는 단계를 포함한다.
이 경우 상기 분석 단위가 상이한 복수의 분석맵은, 분석의 대상이 되는 단위 영역의 크기가 상이할 수 있다.
이 경우 상기 분석 단위는, 점 단위 및 구역 단위를 포함할 수 있다.
이 경우 상기 분석 단위가 상이한 복수의 분석맵을 생성하는 단계는, 상기 원본맵을 이용하여, 상기 원본맵의 불완전성을 점 단위로 나타내는 경계 분석맵을 생성하는 단계를 포함하고, 상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계는, 점 단위로, 상기 원본맵의 불완전성에 기초하여 에러 유형을 추출함으로써 경계 분석결과를 생성하는 단계를 포함할 수 있다.
이 경우 상기 원본맵 내에서의 불완전한 경계는 로봇에 의해 회피될 수 있다.
한편 상기 구역 단위는, 상기 원본맵을 그리드로 구분하는 그리드 단위를 포함하고, 상기 분석 단위가 상이한 복수의 분석맵을 생성하는 단계는, 상기 원본맵을 구분하는 복수의 그리드를 포함하는 그리드 분석맵을 생성하는 단계를 포함하고, 상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계는, 그리드 단위로, 해당 그리드에서의 로봇의 주행 데이터에 기반하여 에러 유형을 추출함으로써 그리드 분석결과를 생성하는 단계를 포함할 수 있다.
이 경우 상기 구역 단위는, 상기 원본맵을 복수의 그리드를 결합한 존으로 구분하는 존 단위를 더 포함할 수 있다.
이 경우 상기 존의 크기는, 상기 로봇의 센싱 거리 및 속도 중 적어도 하나에 기초하여 결정될 수 있다.
한편 상기 구역 단위는, 상기 원본맵을 그리드로 구분하는 그리드 단위를 포함하고, 상기 분석 단위가 상이한 복수의 분석맵을 생성하는 단계는, 상기 로봇의 최적 경로를 나타내는 거리 분석맵을 생성하는 단계를 포함하고, 상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계는, 그리드 단위로, 상기 로봇의 주행 경로와 상기 최적 경로의 차이에 기반하여 에러 유형을 추출함으로써 거리 분석결과를 생성하는 단계;를 포함할 수 있다.
한편 상기 분석 단위가 상이한 복수의 분석맵을 생성하는 단계는, 로봇의 주행 금지 여부를 점 단위로 나타내는 주행금지 분석맵을 생성하는 단계를 포함하고, 상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계는, 점 단위로, 상기 로봇의 주행 금지 영역의 진입 여부에 기초하여 에러 유형을 추출함으로써 주행금지 분석결과를 생성하는 단계를 포함할 수 있다.
한편 상기 특정 장애원인에 매칭되는 에러 정보를 추출하는 단계는, 상기 다수의 주행데이터들의 분석결과들에서, 기준치 이상의 빈도로 나타나는 하나 이상의 에러 유형을 상기 특정 장애 원인에 매칭되는 하나 이상의 에러 유형으로 선정하는 단계를 포함할 수 있다.
이 경우 상기 특정 장애원인은, 장애가 발생한 원인 및 장애에 대한 조치 중 적어도 하나를 포함할 수 있다.
한편 복수의 장애원인에 대하여, 해당 장애원인에 매칭되는 하나 이상의 에러 정보를 저장하는 단계, 주행 로봇의 주행 데이터를 상기 복수의 분석맵에 적용하여, 상기 복수의 분석맵에서 나타난 에러 정보를 포함하는 주행 분석결과를 생성하는 단계, 상기 복수의 장애원인 중, 상기 주행 로봇의 에러 정보와 일치하는 에러 정보를 가지는 장애원인을 추출하는 단계, 및, 상기 추출된 장애원인을 상기 주행로봇의 운영자에 제공하는 단계를 더 포함할 수 있다.
한편 본 발명에 따른 로봇 장애 분석 장치는, 원본맵에 기초하여, 분석 단위가 상이한 복수의 분석맵을 생성하는 제어부, 및, 상기 원본맵에 기반하여 주행하는 로봇의 주행 데이터를 수집하는 통신부를 포함하고, 상기 제어부는, 장애가 발생한 상황에서의 주행 데이터를 상기 분석 단위가 상이한 복수의 분석맵에 적용하여, 상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하고, 특정 장애원인이 발생한 다수의 주행 데이터들의 분석결과들을 분석하여, 상기 특정 장애원인에 매칭되는 에러 정보를 추출한다.
이 경우 상기 분석 단위가 상이한 복수의 분석맵은, 분석의 대상이 되는 단위 영역의 크기가 상이할 수 있다.
이 경우 상기 분석 단위는, 점 단위 및 구역 단위를 포함할 수 있다.
이 경우 상기 제어부는, 상기 원본맵을 이용하여, 상기 원본맵의 불완전성을 점 단위로 나타내는 경계 분석맵을 생성하고, 점 단위로, 상기 원본맵의 불완전성에 기초하여 에러 유형을 추출함으로써 경계 분석결과를 생성할 수 있다.
이 경우 상기 원본맵 내에서의 불완전한 경계는 로봇에 의해 회피될 수 있다.
한편 상기 구역 단위는, 상기 원본맵을 그리드로 구분하는 그리드 단위를 포함하고, 상기 제어부는, 상기 원본맵을 구분하는 복수의 그리드를 포함하는 그리드 분석맵을 생성하고, 그리드 단위로, 해당 그리드에서의 로봇의 주행 데이터에 기반하여 에러 유형을 추출함으로써 그리드 분석결과를 생성할 수 있다.
이 경우 상기 구역 단위는, 상기 원본맵을 복수의 그리드를 결합한 존으로 구분하는 존 단위를 더 포함할 수 있다.
본 발명에 따르면, 로봇이 사용하는 맵 및 로봇의 주행 데이터라는 최소한의 데이터만으로, 장애의 원인 및 조치를 정확하게 파악할 수 있는 장점이 있다.
본 발명에 따르면, 한정된 데이터(맵, 주행 데이터)를 장애 분석에 이용함에도 불구하고, 복수의 분석맵을 활용하여 한정된 데이터를 다각도로 분석함으로써, 장애의 원인 및 조치를 더욱 세부적으로 마련하고 정확하게 파악할 수 있는 장점이 있다.
본 발명에 따르면, 분석 단위가 상이한 복수의 분석맵을 이용하여 한정된 데이터(맵, 주행 데이터)를 다각도로 분석함으로써, 장애의 원인 및 조치를 더욱 세부적으로 마련하고 정확하게 파악할 수 있는 장점이 있다.
도 1은 본 발명에 따른, 로봇 장애 분석 장치를 설명하기 위한 블록도이다.
도 2는 본 발명에 따른 로봇 장애 분석 방법을 설명하기 위한 순서도이다.
도 3은 본 발명에 따른, 원본맵, 원본맵에 기반하여 생성되는 복수의 분석맵 및 로봇의 이동 정보(주행 경로)를 설명하기 위한 도면이다.
도 4는 본 발명에 따른 원본맵을 설명하기 위한 도면이다.
도 5는 본 발명에 따른 경계 분석맵을 도시한 도면이다.
도 6은 본 발명에 따른 주행금지 분석맵을 도시한 도면이다.
도 7은 본 발명에 따른 그리드 분석맵을 도시한 도면이다.
도 8은 본 발명에 따른 존(Zone) 분석맵을 도시한 도면이다.
도 9는 본 발명에 따른 거리 분석맵을 도시한 도면이다.
도 10은 본 발명에 따른, 장애원인에 에러 유형을 매칭한 예시를 도시한 도면이다.
도 11은 본 발명에 따른, 로봇 장애 분석 장치가 장애 분석 서비스를 제공하는 방법을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
도 1은 본 발명에 따른, 로봇 장애 분석 장치를 설명하기 위한 블록도이다.
로봇 장애 분석 장치(100)(이하 “장치(100)”라 함)는, 통신부(110), 제어부(120) 및 메모리(130)를 포함할 수 있다.
통신부(110)는 유/무선 통신 기술을 이용하여 외부 장치와 통신하기 위한 통신 회로 또는 통신 모듈을 포함하고, 외부 장치와 데이터를 송/수신할 수 있다. 이에 따라 통신부(110)는 로봇 운영자 장치(예를 들어 로봇 관제 센터 등 로봇을 관제 또는 관리하는 장치) 또는 로봇과 데이터를 송신 및 수신할 수 있다. 통신부는 통신기(ommunicatior) 또는 통신 인터페이스(ommunication interface)로 명칭될 수도 있으며, 하나 이상의 통신 모듈(또는 통신 회로)을 포함하여 제어 서버(200) 이외의 다른 장치와 데이터를 송신 또는 수신할 수 있다.
제어부(120)는 장치(100)의 전반적인 동작을 제어할 수 있다. 용어 “제어부”는, “마이크로 프로세서”, “컨트롤러”, “마이크로 컨트롤러”, “프로세서” 등의 용어와 혼용되어 사용될 수 있다. 여기서 제어부는, 제어기(controller)로 표현될 수도 있으며, 하나 이상의 프로세서(또는 마이크로 컨트롤러, 또는 마이크로 프로세서)로 구성될 수 있다. 또한 하나 이상의 프로세서(또는 마이크로 컨트롤러, 또는 마이크로 프로세서)는 제어 서버(200)의 다른 구성 요소와 연결될 수 있다(coupled). 제어부(120)는 장치(100)를 구성하는 하나 이상의 다른 구성요소와 연동하여 본 발명의 동작을 수행할 수 있다.
메모리(130)는 장치(100)의 구동을 위한 프로그램 및 기타 데이터를 저장할 수 있다. 또한 메모리(130)는 원본맵, 분석맵, 주행 데이터, 에러 정보, 에러 유형, 분석결과, 장애원인, 장애원인과 하나 이상의 에러 정보의 매칭 정보 등을 저장할 수 있다.
도 2는 본 발명에 따른 로봇 장애 분석 방법을 설명하기 위한 순서도이다.
본 발명에 따른 로봇 장애 분석 방법은, 원본맵에 기초하여, 분석 단위가 상이한 복수의 분석맵을 생성하는 단계(S210), 상기 원본맵에 기반하여 주행하는 로봇의 주행 데이터를 수집하는 단계(S220), 장애가 발생한 상황에서의 주행 데이터를 분석 단위가 상이한 복수의 분석맵에 적용하여 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계(S230), 및, 특정 장애원인이 발생한 다수의 주행데이터들의 분석결과들을 분석하여, 상기 특정 장애원인에 매칭되는 에러 정보를 추출하는 단계(S240)를 포함한다.
S210 내지 S240과 관련하여, 도 3 내지 도 10을 참고하여 설명한다.
도 3은 본 발명에 따른, 원본맵, 원본맵에 기반하여 생성되는 복수의 분석맵 및 로봇의 이동 정보(주행 경로)을 설명하기 위한 도면이다.
도 4는 본 발명에 따른 원본맵을 설명하기 위한 도면이다.
도 5는 본 발명에 따른 경계 분석맵을 도시한 도면이다.
도 6은 본 발명에 따른 주행금지 분석맵을 도시한 도면이다.
도 7은 본 발명에 따른 그리드 분석맵을 도시한 도면이다.
도 8은 본 발명에 따른 존(Zone) 분석맵을 도시한 도면이다.
도 9는 본 발명에 따른 거리 분석맵을 도시한 도면이다.
도 10은 본 발명에 따른, 장애원인에 에러 유형을 매칭한 예시를 도시한 도면이다.
도 3 및 도 4를 참고하면, 원본맵(310)은 하나 이상의 로봇이 라이다 센서를 이용하여 주변을 스캔함으로써 생성된 맵일 수 있다. 일 실시 예로, 하나 이상의 로봇은 SLAM(Simultaneous Localization and Mapping) 기법에 기반하여 원본맵(310)을 생성할 수 있다. 다만 이에 한정되지 않으며, 원본맵은 복수의 카메라로 촬영된 다각도의 영상, 뎁스 카메라로 촬영된 영상 및 뎁스 정보 등, 다양한 데이터에 의해 생성될 수도 있다. 또한 원본맵(310)이 작성된 공간을 주행하는 하나 이상의 로봇은, 원본 맵(310)에 기반하여 주행할 수 있다.
또한 제어부(120)는 사용자 입력에 기반하여, 원본맵(310)에 주행 금지 영역, 라벨 등을 지정할 수 있다. 주행 금지 영역은 로봇이 주행할 수 없는 영역을 설정한 것일 수 있다. 또한 라벨은 로봇에 임무를 부여하기 위해 설정되는 것으로, 예를 들어 로봇이 도착해야 하는 목적지(충전소, 테이블 등)를 지정한 것일 수 있다.
한편 제어부(120)는 원본맵(310)에 기초하여, 분석 단위가 상이한 복수의 분석맵을 생성할 수 있다(S210).
분석맵은, 로봇에서 장애가 발생하는 경우, 장애가 발생한 원인을 분석하기 위한 도구이다. 그리고 장애가 발생한 원인을 다각도로 분석하여 장애원인을 찾기 위해, 하나의 원본맵으로부터 복수의 분석맵이 생성될 수 있다. 분석맵은 로봇의 주행 데이터와 결합될 수 있으며, 로봇 장애 분석 장치(100)는 분석맵과 주행 데이터를 결합하여 사전에 정의된 에러 정보가 존재하는지 판단할 수 있다.
복수의 분석맵은 원본맵을 이용하여 생성되기 때문에, 원본맵과 복수의 분석맵은 동일한 공간을 나타낼 수 있다. 예를 들어 원본맵이 A 건물의 1층을 나타내는 평면도인 경우, 복수의 분석맵 역시 A 건물의 1층을 나타내는 평면도이다.
또한 복수의 분석맵은 원본맵을 이용하여 생성되기 때문에, 원본맵과 복수의 분석맵은 동일한 좌표를 가질 수 있다. 구체적으로 특정 위치(점, 구역 등)를 나타내는 좌표는 원본맵 및 복수의 분석맵 상에서 모두 동일할 수 있다. 예를 들어 특정 점의 좌표가 원본맵 상에서 10,10인 경우, 특정 점의 좌표는 복수의 분석맵 상에서도 10,10일 수 있다.
또한 추후에 설명하는 로봇의 주행 데이터 역시 원본맵 상에서의 로봇의 좌표 정보에 기반하여 생성되기 때문에, 로봇과 복수의 분석맵은 동일한 좌표 공간을 사용한다. 따라서 로봇의 주행 데이터가 복수의 분석맵과 결합되는 경우, 로봇의 주행 데이터가 복수의 분석맵의 해당 위치에 반영될 수 있다. 예를 들어 10시 1분 1초의 로봇의 좌표가 50,45인 경우, 10시 1분 1초의 로봇의 위치는 복수의 분석맵 상에서 좌표가 50,45인 지점에 표시될 수 있다.
한편 도 3 내지 도 9에서는 복수의 분석맵이 지도(320, 330, 340, 350, 360)의 형태로 생성되는 것으로 예시하였으나, 이는 설명의 편의를 위한 것일 뿐으로, 이에 한정되지는 않는다.
복수의 분석맵은 분석 단위가 상이할 수 있다. 여기서 분석 단위가 상이하다는 것은, 분석의 대상이 되는 단위 영역의 크기가 서로 상이하다는 것을 의미할수 있다. 그리고 분석 단위는, 점 단위 및 구역 단위를 포함할 수 있다.
여기서 점 단위란, 분석맵의 픽셀 단위를 의미할 수 있다. 다만 이에 한정되지 않으며 점 단위란, 로봇 장애 분석 장치(100)의 분석이 가능한 최소 단위를 의미할 수 있다. 예를 들어 원본 맵(310) 상에서의 로봇의 좌표(x,y 좌표)를 수집하는 경우, 로봇의 좌표 단위의 분석이 가능하다. 제어부(120)는 원본 맵(310) 또는 분석맵들 상에서의 점들의 위치 정보(좌표 정보)를 저장할 수 있다.
한편 구역 단위란, 인접한 복수의 점을 결합하여 생성되는 영역의 단위를 의미할 수 있다. 제어부(120)는 원본 맵(310) 또는 분석맵들 상에서의 구역들의 위치 정보(좌표 정보)를 저장할 수 있다.
복수의 분석맵 중 일부 분석맵은 로봇의 에러 정보(로봇 장애 원인을 파악할 수 있게 해주는 정보)를 점 단위로 파악하는데 사용되고, 복수의 분석맵 중 다른 일부 분석맵은 에러 정보를 구역 단위로 파악하는데 사용될 수 있다. 상기 일부 분석맵에서 분석의 대상이 되는 단위 영역의 크기는 점의 크기이고, 상기 다른 일부 분석맵에서 분석의 대상이 되는 단위 영역의 크기는 복수의 점을 결합한 구역의 크기인 바, 다른 일부 분석맵에서 분석의 대상이 되는 단위 영역의 크기가 더 클 수 있다.
또한 구역 단위는, 원본맵을 그리드로 구분하는 그리드(Grid) 단위 및 원본맵을 복수의 그리드를 결합한 존으로 구분하는 존(Zone) 단위를 포함할 수 있다. 구체적으로, 로봇의 장애 원인을 구역 단위로 분석하는데 사용되는 분석맵들 중 일부는 로봇의 에러 정보를 그리드(Grid) 단위로 파악하는데 사용되고, 로봇의 장애 원인을 구역 단위로 분석하는데 사용되는 분석맵들 중 다른 일부는 로봇의 에러 정보를 존(Zone) 단위로 파악하는데 사용될 수 있다. 상기 일부의 분석맵에서 분석의 대상이 되는 단위 영역의 크기는 복수의 점을 결합한 그리드의 크기이고, 상기 다른 일부의 분석맵에서 분석의 대상이 되는 단위 영역의 크기는 복수의 그리드를 조합한 존의 크기인 바, 다른 일부 분석맵에서 분석의 대상이 되는 단위 영역의 크기가 더 클 수 있다.
본 발명은, 로봇에 장애를 일으킬 수 있는 요인이 매우 다양함에도 불구하고, 한정된 정보(로봇이 이용하는 맵과 로봇의 주행 데이터)만을 이용하여 장애가 발생하는 원인 및 조치를 파악하는 것을 목적으로 한다. 그리고 로봇에 장애를 일으킬 수 있는 다양한 요인을 분석하고 그 패턴을 발견해 내기 위해서는, 다양한 분석 단위의 분석이 필요하다.
예를 들어, 라이다 스캔을 통한 맵 생성 기술의 한계 때문에, 원본 맵(310)이 불완전한 상황을 가정한다. 그리고 원본 맵(310)이 불완전한 경우에는, 점 단위의 불완전성을 이유로 로봇에 장애가 발생할 수 있다. 예를 들어 원본 맵(310) 상에서, 실제로는 빈 공간임에도 불구하고 물체에 의해 점유된 것으로 표시되는 단 하나의 점(하나의 픽셀)이 존재한다고 가정하면, 로봇은 해당 점을 장애물로 인식하고 회피 주행을 수행할 것이다. 라이다 스캔을 통한 맵 생성에서 이러한 오류는 흔히 일어나는 사건이며, 점 단위의 오류임에도 불구하고 로봇의 주행에 큰 영향을 미칠 수 있기 때문에 점 단위의 분석이 필요하다.
다른 예를 들어, 로봇에 장애를 일으킬 수 있는 다양한 요인을 분석하고 그 패턴을 발견해 내기 위해서는, 유사한 정보들을 그룹화할 필요가 있다. 즉 본 발명에서는 동일한 위치에서 유사한 정보(동일한 위치에서 장애가 자주 발생, 동일한 위치에서 로봇들이(또는 하나의 로봇이 여러 번) 일정한 행동 패턴을 나타냄 등)가 나타나는데 기반하여 장애의 원인을 매칭할 수 있는데, 동일한 위치를 점으로 한정해 버리면, 해당 점에서의 데이터가 쌓이지 않아 장애를 일으킬 수 있는 요인의 분석 및 패턴의 발견이 불가능하다. 또한 로봇의 행동에 필요한 영역, 로봇의 부피, 위치의 오차 등을 감안할 때, 유사한 정보를 점 단위로 그룹핑하는 것은 무의미하다. 따라서 장애를 일으킬 수 있는 요인의 분석 및 패턴의 발견을 위해, 그리드 단위의 분석이 필요하다.
다른 예를 들어, 현재 로봇이 위치한 그리드 뿐만 아니라, 로봇이 위치한 존에 기반하여 로봇의 행동이 나타날 수 있다. 예를 들어 로봇이 제3 그리드에 나타난 장애물을 스캔하여 긴급 정지를 하였고, 긴급 정지를 한 위치가 제1 그리드라고 가정한다. 이 경우 로봇은 제1 그리드에서 정지를 하였음에도 불구하고, 제1 그리드 및 제3 그리드를 포함하는 존에서의 상황에 기반하여 행동하였다. 다른 예를 들어 특정 존에서의 환경(예를 들어 특정 존에, 기존에 없었던 조형물들이 세워진 경우)때문에 특정 존에서 장애가 빈번히 발생하는 경우, 그리드 단위의 분석으로는 잘 나타나지 않으나 존 단위의 분석으로는 패턴이 잘 나타날 수 있다. 따라서 장애를 일으킬 수 있는 다양한 요인의 분석 및 다양한 패턴의 발견을 위해서는, 존 단위의 분석 역시 필요할 수 있다.
따라서 본 발명에서는, 원본 맵(310)에 기초하여 분석 단위가 상이한 복수의 분석맵을 생성하고, 로봇의 주행 데이터를 복수의 분석맵에 적용하여 분석을 함으로써, 한정된 정보(로봇이 이용하는 원본맵과 로봇의 주행 데이터)만을 이용하여 장애 원인(장애가 발생하는 원인 및 장애에 대한 조치 중 적어도 하나)를 파악할 수 있다.
도 3 및 도 5를 참고하면, 제어부(120)는 라이다 스캔에 기반하여 생성된 원본 맵(310)으로부터, 맵의 불완전성을 점 단위로 나타내는 경계 분석맵(320)를 생성할 수 있다. 경계 분석맵(320)는 원본 맵(310)의 불완전성에 대한 정보를 점 단위로 추출하기 위한 것일 수 있다.
구체적으로 제어부(120)는 라이다 센서에 기반하여 생성된 원본 맵(310)을 이미지 프로세싱하여, 원본 맵(310)에 나타난 완전한 경계 및 불완전한 경계를 점 단위로 검출 및 저장할 수 있다. 따라서 경계 분석맵은, 점 단위로, 원본 맵(310)에 나타난 경계가 완전한지 또는 불완전한지, 불완전성의 정도 등에 대한 정보를 포함할 수 있다. 여기서 완전한 경계란 라이다 센서가 복수회의 스캔을 통해 경계임을 확정시킨 영역이고, 불완전한 경계란 라이다 센서가 스캔을 하였음에도 불구하고 미확인 영역(unknown area)으로 남겨놓은 영역일 수 있다.
불완전한 경계는 지도 탐색에 있어서는 로봇(또는 라이다 센서)이 추가적으로 탐색해야 할 영역이다. 다만 본 발명에 따라 로봇의 장애를 분석함에 있어서는, 불완전한 경계를 로봇이 장애(예를 들어, localization fail 등)를 발생시킬 확률이 큰 영역으로 판단하여, 불완전한 경계라는 정보를 점 단위로 저장할 수 있다. 맵(310) 내에 불완전한 경계가 존재하는 경우, 실제 주행하는 로봇은 해당 경계를 통과하지 않으며 회피하기 때문이다.
한편 제어부(120)는 Frontier detection 기술을 이용하여 완전한 경계 및 불완전한 경계를 점 단위로 검출할 수 있다. 일반적으로 Frontier detection은 SLAM 알고리즘과 함께 미지의 영역을 탐색하여 지도 및 현재 위치를 완성하는데 사용되는 기술이다. 다만 제어부(120)는 완성된 지도인 원본 맵(310)에 대하여 Frontier detection을 추가로 수행하여 점유된 영역(known area) 및 미확인 영역(unknown area)을 구분함으로써, 맵의 불완전성을 점 단위로 분석하고 원본 맵(310)에서 완전한 경계 및 불완전한 경계를 추출할 수 있다.
도 5를 참고하면, 불완전한 경계(미확인 영역(unknown area))이 빨간색으로 표시되어 있다. 추후에 제어부(120)는 경계 분석맵에서 나타난 불완전한 경계 및 다른 분석맵을 통하여 추출된 정보를 활용하여, 장애의 원인을 분석하고 조치를 생성할 수 있다. 예를 들어 제어부(120)는, 불완전한 경계를 포함하는 영역이 주행 가능 영역으로 설정되어 있다는 정보와 결합하여, 로봇이 장애(예를 들어, localization fail 등)를 일으킬 확률이 높으니 주행 금지구역으로 지정하라는 조치, 라이다 스캔을 다시 수행하라는 조치 등을 생성할 수 있다.
도 3 및 도 6을 참고하면, 제어부(120)는 로봇의 주행 금지 여부를 점 단위로 나타내는 주행금지 분석맵(330)를 생성할 수 있다. 구체적으로 제어부(120)는 사용자 입력에 기반하여 원본 맵(310)에 주행 금지 영역을 설정한다. 따라서 제어부(120)는 로봇의 주행 금지 여부를 점 단위로 추출 및 저장할 수 있다.
따라서 주행금지 분석맵(330)은, 점 단위로, 해당 점에서 주행이 금지되었는지 또는 금지되지 않았는지에 대한 정보를 포함할 수 있다. 예를 들어 도 6에서는, 로봇의 주행이 금지되지 않은 영역이 하얀색으로, 로봇의 주행이 금지된 영역이 검은색으로 도시되어 있다.
추후에 주행금지 분석맵(330)은 로봇의 주행 데이터와 결합될 수 있으며, 제어부(120)는 주행금지 분석맵(330)과 주행 데이터를 결합하여 해당 점에서 사전에 정의된 에러 정보가 존재하는지 판단하고, 에러 정보를 해당 점에 매칭하여 저장할 수 있다.
로봇의 주행 데이터는 점 단위(예를 들어 좌표)로 생성되며, 로봇이 주행 금지 영역에 들어간 이후의 주행 데이터는 장애의 패턴 및 원인을 분석하는데 무의미한 데이터이다. 따라서 로봇의 주행 데이터로부터 유의미한 데이터만을 추출하기 위해 주행 금지 분석맵(330)이 생성될 수 있다.추후에, 주행 금지 분석맵(330)를 통하여 획득되는 분석결과는 다른 분석맵을 통하여 획득되는 분석결과와 결합하여, 장애의 원인 및 조치를 생성하는데 활용될 수 있다.
도 3 및 도 7을 참고하면, 제어부(120)는 원본맵을 구분하는 복수의 그리드(341)를 포함하는 그리드 분석맵(340)를 생성할 수 있다. 그리드(341)는 로봇의 주행 데이터를 분석하기 위한 최소 단위일 수 있다. 추후에 그리드 분석맵(340)은 로봇의 주행 데이터와 결합될 수 있으며, 로봇의 장애 분석 장치(100)의 제어부(120)는, 그리드 단위로, 해당 그리드에서의 장애의 발생 여부, 해당 그리드에서의 로봇의 주행 데이터 (시간 단위 별 좌표 정보, 이동 정보, 동작 정보 등)를 저장할 수 있다. 또한 제어부(120)는, 해당 그리드에서 사전에 정의된 에러 정보가 존재하는지 판단하고, 에러 정보를 해당 그리드에 매칭하여 저장할 수 있다.
도 3 및 도 8을 참고하면, 제어부(120)는 맵을 구분하는 복수의 존(351)을 포함하는 존 분석맵(350)를 생성할 수 있다. 추후에 존 분석맵(350)은 로봇의 주행 데이터와 결합될 수 있으며, 제어부(120)는, 존 단위로, 해당 존에서의 장애의 발생 여부, 해당 존에서의 로봇의 주행 데이터(시간 단위 별 좌표 정보, 이동 정보, 동작 정보 등)를 저장할 수 있다. 또한 제어부(120)는, 해당 존에서 사전에 정의된 에러 정보가 존재하는지 판단하고, 에러 정보를 해당 존에 매칭하여 저장할 수 있다.
본 발명에서는 로봇의 주변 상황까지 고려하여 장애의 요인 및 패턴을 찾아내며, 이를 위해 존 분석맵(350)를 이용한 존 단위의 분석을 수행한다. 그리고 로봇의 행동이 발생한 위치(예를 들어 로봇이 정지한 위치)와, 로봇이 행동을 하게한 요인이 발생한 위치(예를 들어 장애물의 위치)는 서로 일치하지 않을 수 있기 때문에, 제어부(120)는 그리드 분석맵(340) 뿐만 아니라, 존 분석맵(350)을 추가로 생성할 수 있다.
로봇의 행동이 발생한 위치(예를 들어 로봇이 정지한 위치)와 로봇이 행동을 하게한 요인이 발생한 위치(예를 들어 장애물의 위치)가 서로 일치하지 않기 때문에, 존의 크기는, 로봇의 센싱 거리 및 속도 중 적어도 하나에 기초하여 결정될 수 있다. 여기서 로봇의 센싱 거리란, 로봇이 라이다, 카메라 등의 감지 수단을 통하여, 주변의 오브젝트를 감지할 수 있는 거리를 의미할 수 있다.
예를 들어 로봇이 제3 그리드에 나타난 장애물을 스캔하여 긴급 정지를 하였고 긴급 정지를 한 위치가 제1 그리드라고 가정하면, 로봇은 제1 그리드 및 제3 그리드를 포함하는 존에서의 상황을 인식하여 행동하였다. 그리고 로봇의 센싱 거리는 로봇이 주변 상황을 인식할 수 있는 범위를 의미할 수 있다. 즉 로봇의 센싱 거리가 크다는 것은 로봇이 더 넓은 주변 상황을 인식한다는 것을 의미하고, 로봇의 센싱 거리가 작다는 것은 로봇이 더 좁은 주변 상황을 인식한다는 것을 의미한다. 따라서 제어부(120)는, 센싱 거리가 작은 로봇에 비해, 센싱 거리가 큰 로봇에 대하여 더 넓은 존을 설정함으로써, 로봇의 행동에 대한 원인을 분석하도록 할 수 있다.
다른 예를 들어, 로봇 장애 분석 장치(100)는 일정 시간 단위(예를 들어 3초)로 로봇의 위치 정보(좌표)를 획득할 수 있으며, 로봇의 위치 정보에 기초하여 로봇이 멈췄다는 것을 결정할 수 있다. 한편 제1 로봇은 시속 10킬로미터로 주행하다가 정지를 하였고, 제2 로봇은 시속 5킬로미터로 주행을 하다가 정지를 하였다고 가정한다. 이 경우 제1 로봇과 제2 로봇이 모두 정지하였음에도 불구하고, 제1 로봇은 주변의 더 넓은 영역에서 발생한 임의의 요인에 의해 정지를 했다는 것을 의미하며, 제2 로봇은 주변의 더 좁은 영역에서 발생한 임의의 요인에 의해 정지를 했다는 것을 의미한다. 따라서 제어부(120)는, 속도가 느린 로봇에 비해, 속도가 빠른 로봇에 대하여 더 넓은 존을 설정함으로써, 로봇의 행동에 대한 원인을 분석하도록 할 수 있다.
도 3 및 도 9a를 참고하면, 제어부(120)는 원본맵 상에서 로봇의 최적 경로를 포함하는 거리 분석맵(360)을 생성할 수 있다.
로봇의 최적 경로란, 로봇의 주행 가능한 영역 중 로봇이 주행할 수 있는 최적의 경로를 의미하며, 따라서 로봇은 별도의 요인이 없는 한 로봇의 최적 경로를 통하여 주행할 수 있다. 로봇의 최적 경로의 예시로, 복수의 통로 중 가장 넓은 통로, 넓은 영역을 가지는 통로 중에서도 통로의 중앙을 연결하는 경로 등이 있을 수 있다.
추후에 거리 분석맵(360)은 로봇의 주행 데이터와 결합될 수 있으며, 제어부(120)는 거리 분석맵(360)과 주행 데이터를 결합하여 해당 구역에서 사전에 정의된 에러 정보가 존재하는지 판단하고, 에러 정보를 해당 구역에 매칭하여 저장할 수 있다.
구체적으로 거리 분석맵(360)은, 로봇이 최적 경로로부터 얼마나 떨어져서 주행했는지를 판단하기 위해 사용될 수 있다. 즉 로봇은 최적 경로로 주행하려고 하며, 임의의 요인이 발생한 경우에 최적 경로 대신 다른 경로를 통하여 주행한다. 따라서 거리 분석맵(360)에 포함되는 최적 경로와 주행 데이터에 포함되는 로봇의 실제 주행 경로가 결합되는 경우 최적 경로와 실제 주행 경로의 차이가 산출되기 때문에, 로봇의 주행에 영향을 미치는 요인이 있음이 검출될 수 있다.
거리 분석맵(360)의 일 예로, 제어부(120)는 도 9b에서 도시한 거리 변환(distance transform) 기술을 이용하여 거리 분석맵(360)를 생성할 수 있으며, 거리 분석맵(360)는 원본맵(310)에 거리 변환(distance transform) 기술을 적용함으로써 생성된 거리 맵(Distance map)일 수 있다. 구체적으로 distance transform 기술은 가장 가까운 오브젝트(구체적으로, 오브젝트의 경계)와의 거리에 따라 점수를 부여하는 것이기 때문에, 앞서 예시한 바와 같이 가장 넓은 통로의 가장 중앙을 연결하는 경로에 가장 높은 경로 점수가 부여될 수 있다. 도 9a는 경로 점수를 색상으로 표시한 것으로, 통로의 중앙에 최적 경로가 노란색으로 표시된 것을 알 수 있다. 이 경우 로봇은 경로 점수가 가장 높은 곳을 따라 주행할 수 있다.
일반적으로 거리 맵(Distance map)은 로봇이 최적의 경로를 선택하는데 사용된다. 다만 본 발명에서, 제어부(120)는 로봇이 장애물 감지 등의 요인에 따라 최적의 경로를 얼마만큼 우회하는지를 판단하기 위해 거리 분석맵(360)을 사용할 수 있다. 일 예로 특정 구역에서 로봇들의 우회가 자주 발생하는 경우, 제어부(120)는 해당 구역에서 장애물이 자주 나타나는 것으로 판단할 수 있다.
한편 제어부(120)는 거리 분석맵(360)을 점 단위의 분석이 가능하도록 생성할 수 있으며, 이 경우 제어부(120)는 경로 점수를 픽셀에 매칭하여 픽셀 단위로 저장할 수 있다. 다만 이에 한정되지 않으며, 제어부(120)는 경로 점수를 그리드에 매칭하여 그리드 단위로 저장하는 방식으로, 거리 분석맵(360)를 그리드 단위의 분석이 가능하도록 생성할 수도 있다. 또한 제어부(120)는 경로 점수를 존에 매칭하여 존 단위로 저장하는 방식으로, 거리 분석맵(360)를 존 단위의 분석이 가능하도록 생성할 수도 있다.
다시 도 2로 돌아가서, 제어부(120)는 원본맵(310)에 기반하여 주행하는 로봇의 주행 데이터를 수집할 수 있다(S220).
구체적으로 로봇은 원본맵(310)에 기반하여 주행할 수 있다. 예를 들어 로봇은 별도의 요인이 없는 한, 원본맵(310)에 나타나는 경계를 회피하며 주행하고, 원본맵(310)에 나타나는 통로를 통하여 주행하며, 원본맵(310)에 나타나는 주행 금지 영역에 진입하지 않으면서 주행할 수 있다. 또한 로봇은 주행 중 주변을 센싱(라이다 스캔, 카메라 촬영 등)하고, 센싱 결과에 기초하여 장애물을 회피하는 등의 동작을 수행할 수 있다.
제어부(120)는 로봇의 주행 데이터를 수집할 수 있다. 여기서 로봇의 주행 데이터는, 원본맵(310) 상에서의 로봇의 시간 단위 별 좌표 정보(예를 들어, x,y 좌표)를 포함할 수 있다. 즉 제어부(120)는 로봇에서 수집한 시간 단위 별 좌표 정보를 수신할 수 있다. 예를 들어 로봇이 0.5초마다 로봇의 좌표 정보를 수집하는 경우, 제어부(120)는 0.5초 단위의 좌표 정보를 수신할 수 있다.
또한 로봇의 주행 데이터는, 로봇의 이동 정보(도 3의 370)를 더 포함할 수 있다. 여기서 로봇의 이동 정보는 로봇의 시간 단위 별 좌표 정보를 이용하여 생성되는 것으로, 로봇의 주행 경로를 포함할 수 있다. 예를 들어 제어부(120)는 0.5초 단위로 수집된 로봇의 좌표 정보를 연결하여 로봇의 주행 경로를 생성할 수 있다. 또한 로봇의 이동 정보는 로봇의 이동 속도를 포함할 수 있다. 예를 들어 제어부(120)는 0.5초 단위로 수집된 로봇의 좌표 정보를 이용하여 로봇의 이동 속도를 산출할 수 있다. 한편 제어부(120)는 로봇이 주행한 경로를 점 단위로 생성할 수 있으나 이에 한정되지 않는다.
또한 로봇의 주행 데이터는 로봇의 동작 정보를 포함할 수 있다. 로봇의 동작 정보는 로봇의 행동 정보, 로봇의 미션 정보 및 미션 기반 행동 정보 중 적어도 하나를 포함할 수 있다. 그리고 제어부(120)는 로봇의 시간 단위 별 좌표 정보(예를 들어, x,y 좌표) 및 이동 정보 중 적어도 하나를 이용하여 로봇의 동작 정보를 생성할 수 있다.
로봇의 행동 정보는 로봇의 행동을 나타내는 것으로, 예를 들어 로봇이 '정지했다', '이동한다', '대기한다' 등을 포함할 수 있다. 로봇의 미션 정보는 로봇에 부여된 임무를 나타내는 것으로, 예를 들어 '제1 라벨로부터 제2 라벨로 이동해라' 등을 포함할 수 있다. 미션 기반 행동 정보는, 로봇에 미션이 부여된 경우의 로봇의 행동을 나타내는 것으로, 예를 들어 '임무를 받아 이동했다', '임무를 받아 이동해야 하는데 이동하지 않음으로써 임무에 실패했다' 등을 포함할 수 있다.
또한 제어부(120)는 로봇에 장애가 발생하였는지 여부를 판단할 수 있다. 구체적으로 제어부(120)는 고객의 VOC에 기반하여, 로봇에 장애가 발생하였는지에 대한 정보, 장애가 발생한 위치에 대한 정보 등을 저장할 수 있다. 예를 들어 고객은 VOC를 통해 어느 위치에서 어떤 유형의 장애가 발생하였는지를 로봇 관리 주체에 알릴 수 있으며, 로봇 장애 분석 장치(100)는 장애가 발생한 로봇의 주행 데이터를 로봇에 장애가 발생하였는지에 대한 정보 및 장애가 발생한 위치(점, 그리드, 존 등)와 매칭하여 저장할 수 있다.
또한 제어부(120)는 로봇의 주행 데이터에 기반하여, 로봇에 장애가 발생하였는지에 대한 정보, 장애가 발생한 위치에 대한 정보 등을 저장할 수 있다. 예를 들어 제어부(120)는 로봇의 주행 데이터로부터 비정상적인 동작(일 예로, 미션을 부여받아 이동을 하다가 정지)을 추출하고, 비정상적인 동작에 기반하여 로봇에 장애가 발생하였는지에 대한 정보, 장애가 발생한 위치(점, 그리드, 존 등)에 대한 정보를 획득할 수 있다. 이 경우 제어부(120)는 장애가 발생한 로봇의 주행 데이터를 장애가 발생하였는지에 대한 정보 및 장애가 발생한 위치에 대한 정보와 매칭하여 저장할 수 있다.
다음으로, 제어부(120)는 장애가 발생한 상황에서의 주행 데이터를 분석 단위가 상이한 복수의 분석맵에 적용하여, 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성할 수 있다(S230).
에러 정보는 사전에 탐지하기로 정의된 에러가 해당 분석 단위(점, 그리드, 존 등)에서 존재하는지 여부 및 에러의 유형 중 적어도 하나를 포함할 수 있다. 여기서 에러의 유형은, 해당 분석 단위(점, 그리드, 존 등)에 에러가 존재하는 경우에 생성될 수 있다.
또한 제어부(120)는 분석맵 및 주행 데이터 중 적어도 하나를 이용하여 에러 정보를 추출할 수 있다. 즉 에러 정보는, 분석맵으로부터 파악되는 에러 정보, 로봇의 주행 데이터로부터 파악되는 에러 정보, 분석맵에 주행 데이터를 결합하여 파악되는 에러 정보 중 적어도 하나를 포함할 수 있다.
또한 제어부(120)는 점 단위 또는 구역 단위로 에러 정보를 추출하고, 추출된 에러 정보를 해당 점 또는 해당 구역에 매칭하여 저장할 수 있다. 예를 들어 경계 분석맵의 특정 점에서 에러 정보가 추출된 경우, 제어부(120)는 특정 점의 식별 정보를 에러 정보와 매칭하여 저장할 수 있다. 다른 예를 들어 그리드 분석 맵의 특정 그리드에서 에러 정보가 추출된 경우, 제어부(120)는 특정 그리드의 식별 정보를 에러 정보와 매칭하여 저장할 수 있다.
또한 분석 결과는, 경계 분석맵(320)에 상응하는 경계 분석결과, 주행금지 분석맵(330)에 상응하는 주행금지 분석결과, 그리드 분석맵(340)에 상응하는 그리드 분석결과, 존 분석맵(350)에 상응하는 존 분석결과 및 거리 분석맵(360)에 상응하는 거리 분석결과를 포함할 수 있다.
정리하면, 분석 결과는 복수의 분석맵의 개수와 동일한 개수의 세부 분석 결과(경계 분석결과, 주행금지 분석결과, 그리드 분석결과, 존 분석결과 및 거리 분석결과)를 포함할 수 있다. 또한 각각의 세부 분석 결과는, 각각의 세부 분석 결과에서 나타난 에러 정보(에러가 발생하였는지 여부, 에러 유형) 및 에러 정보가 나타난 점 또는 구역의 식별 정보를 포함할 수 있다.
먼저 도 3및 도 5를 참고하여, 경계 분석맵(320)에 상응하는 경계 분석결과에 대하여 설명한다. 다른 분석맵들은 로봇의 주행 데이터와 결합됨으로써 분석 결과가 생성되는 반면, 경계 분석맵(320)은 맵의 불완전성만을 판단하기 위한 것으로, 로봇의 주행 데이터와 결합되지 않은 채 경계 분석결과가 생성될 수 있다.
도 3 및 도 5를 참고하면, 제어부(120)는 경계 분석맵(320)에서 나타난 에러 정보를 포함하는 경계 분석결과를 생성할 수 있다.
구체적으로 제어부(120)는, 점 단위로, 원본맵의 불완전성에 기초하여 에러 유형을 추출할 수 있다. 여기서 에러 유형은 해당 점에서 경계가 불완전한지에 대한 정보를 포함할 수 있으나 이에 한정되지 않으며, 맵의 불완전성의 정도를 나타낼 수도 있다. 경계 분석결과는 B로, 경계 분석결과에 포함되는 에러의 유형들은 B1, B2 등으로 명칭한다. 예를 들어 특정 점의 경계가 불완전한 경우, 에러 유형은 B1으로 표시될 수 있다.
이 경우 제어부(120)는 에러 정보를 해당 점에 매칭하여 저장할 수 있다. 예를 들어 제어부(120)는 특정 점에서의 에러 정보(B1)와 함께 특정 점의 식별 정보를 저장할 수 있다. 이에 따라 점 별 에러 유형을 포함하는 경계 분석결과가 생성될 수 있다.
도 3 및 도 6을 참고하면, 제어부(120)는 장애가 발생한 상황에서의 주행 데이터를 주행금지 분석맵(330)에 적용하여, 주행금지 분석맵(330)에서 나타난 에러 정보를 추출할 수 있다.
구체적으로, 제어부(120)는 주행금지 분석맵(330)에 로봇의 주행 데이터를 적용하여, 에러 유형을 추출할 수 있다. 더욱 구체적으로 제어부(120)는 로봇의 주행 데이터(예를 들어 이동 정보) 및 주행금지 분석맵(330)을 이용하여 로봇이 주행금지 영역에 진입하였는지를 판단하고, 로봇의 주행금지 영역의 진입 여부에 기초하여 에러 유형을 추출할 수 있다. 여기서 에러 유형은, 해당 점이 주행 금지 영역에 속하는지, 해당 점이 주행 금지 영역에 속하며 로봇이 진입하였는지 등의 정보를 포함할 수 있다. 주행금지 분석결과는 D로, 주행금지 분석결과에 포함되는 에러의 유형들은 D1, D2 등으로 명칭한다. 예를 들어 특정 점이 주행금지 영역인 경우 에러 유형은 D1, 특정 점이 주행금지 영역이며 로봇이 특정 점에 진입한 경우 에러 유형은 D2로 표시될 수 있다.
이 경우 제어부(120)는 점 단위로 에러 정보(에러 유형)을 추출하고, 추출된 에러 정보(에러 유형)를 해당 점에 매칭하여 저장할 수 있다. 예를 들어 제어부(120)는 특정 점에서의 에러 정보와 함께 특정 점의 식별 정보를 저장할 수 있다.
또한 제어부(120)는 점 별 에러 정보(에러 유형)을 포함하는 주행금지 분석결과를 생성할 수 있다.
도 3 및 도 7을 참고하면, 제어부(120)는 장애가 발생한 상황에서의 주행 데이터를 그리드 분석맵(340)에 적용하여, 그리드 분석맵(340)에 나타난 에러 정보를 추출할 수 있다.
구체적으로, 제어부(120)는 그리드 분석맵(340)에 로봇의 주행 데이터를 적용하여, 그리드 별 에러 유형을 추출할 수 있다. 구체적으로 제어부(120)는, 그리드 단위로, 해당 그리드에서의 로봇의 주행 데이터에 기반하여 에러 유형을 추출할 수 있다.
여기서 에러 유형은 해당 그리드에서의 로봇의 주행 데이터에 기초하여 결정될 수 있다. 예를 들어 제어부(120)는 로봇의 주행 데이터를 이용하여 미리 정의된 동작(예를 들어, '정지', '이동', '대기', '임무 실패', '장애물 감지', '3분 이상 정지', 미리 정의된 속도 등)을 추출하고, 추출된 동작에 상응하는 에러 유형을 부여할 수 있다.
분석결과는 C로, 주행금지 분석결과에 포함되는 에러 유형들은 C1, C2 등으로 명칭한다. 예를 들어 특정 그리드에서 장애물을 감지한 경우 에러 유형은 C1, 특정 그리드에서 로봇이 멈춘 경우 에러 유형은 C2, 특정 그리드에서 임무에 실패한 경우 에러 유형은 C3로 표시될 수 있다.
이 경우 제어부(120)는 그리드 단위로 에러 정보(에러 유형)를 추출하고, 추출된 에러 정보(에러 유형)를 해당 그리드에 매칭하여 저장할 수 있다. 예를 들어 제어부(120)는 특정 그리드에서의 에러 정보와 함께 특정 그리드의 식별 정보를 저장할 수 있다.
또한 제어부(120)는 그리드 별 에러 정보(에러 유형)을 포함하는 그리드 분석 결과를 생성할 수 있다.
도 3 및 도 8을 참고하면, 제어부(120)는 장애가 발생한 상황에서의 주행 데이터를 존 분석맵(350)에 적용하여, 존 분석맵(350)에 나타난 에러 정보를 추출할 수 있다.
구체적으로, 제어부(120)는 존 분석맵(350)에 로봇의 주행 데이터를 적용하여, 존 별 에러 유형을 추출할 수 있다. 구체적으로 제어부(120)는 존 단위로, 해당 존에서의 로봇의 주행 데이터에 기반하여 에러 유형을 추출할 수 있다.
여기서 에러 유형은 해당 그리드에서의 로봇의 주행 데이터에 기초하여 결정될 수 있다. 예를 들어 제어부(120)는 로봇의 주행 데이터를 이용하여 미리 정의된 동작(예를 들어, '정지', '이동', '대기', '임무 실패' , '장애물 감지', '3분 이상 정지', 미리 정의된 속도 등)을 추출하고, 추출된 동작에 에러 유형을 할당할 수 있다.
존 분석결과는 E로, 주행금지 분석결과에 포함되는 에러 유형들은 E1, E2 등으로 명칭한다. 예를 들어 특정 존에서 장애물을 감지한 경우 에러 유형은 E1, 특정 존에서 로봇이 멈춘 경우 에러 유형은 E2, 특정 존에서 임무에 실패한 경우 에러 유형은 E3로 표시될 수 있다.
이 경우 제어부(120)는 존 단위로 에러 정보(에러 유형)를 추출하고, 추출된 에러 정보(에러 유형)를 해당 존에 매칭하여 저장할 수 있다. 예를 들어 제어부(120)는 특정 존에서의 에러 정보와 함께 특정 존의 식별 정보를 저장할 수 있다.
또한 제어부(120)는 존 별 에러 정보(에러 유형)을 포함하는 존 분석 결과를 생성할 수 있다.
도 3 및 도 9를 참고하면, 제어부(120)는 장애가 발생한 상황에서의 주행 데이터를 거리 분석맵(360)에 적용하여, 거리 분석맵(360)에 나타난 에러 정보를 추출할 수 있다.
구체적으로, 제어부(120)는 거리 분석맵(360)에 로봇의 주행 데이터를 적용하여, 그리드 단위로 에러 유형을 추출할 수 있다. 여기서 에러 유형은 로봇의 주행 경로와 최적 경로의 차이에 기반하여 추출될 수 있다.
구체적으로 로봇의 주행 데이터에는 로봇의 주행 경로가 포함된다. 이 경우 제어부(120)는 로봇의 주행 경로와 최적 경로의 차이를 그리드 별로 산출하여 저장할 수 있다.
예를 들어 거리 차가 4인 경우 제1 에러 유형으로, 거리 차가 3인 경우 제2 에러 유형으로 분류될 수 있다. 거리 분석결과는 F로, 거리 분석결과에 포함되는 에러의 유형들은 F1, F2 등으로 명칭한다.
이 경우 제어부(120)는 그리드 단위로 에러 정보(에러 유형)을 추출하고, 추출된 에러 정보(에러 유형)을 해당 그리드에 매칭하여 저장할 수 있다. 예를 들어 제어부(120)는 특정 그리드에서의 에러 정보와 함께 특정 그리드의 식별 정보를 저장할 수 있다.
또한 제어부(120)는 그리드 별 에러 정보(에러 유형)을 포함하는 거리 분석 결과를 생성할 수 있다.
한편 그리드 별 에러 정보(에러 유형)을 포함하는 거리 분석결과를 생성하는 것으로 설명하였으나 이에 한정되지 않는다. 예를 들어 점 단위의 분석이 가능하도록, 제어부(120)는 에러 유형(로봇의 주행 경로와 최적 경로의 차이)을 점 별로 추출하고, 점 별 에러 정보를 저장할 수 있다. 이 경우 하나의 그리드 내에서의 로봇의 주행 경로(예를 들어, 특정 그리드 내에서 로봇이 장애물을 우회하는 상황)까지 분석이 가능하기 때문에, 더욱 세분화된 분석이 가능하다.
위 과정을 통해, 제어부(120)는 하나의 주행 데이터를 복수의 분석맵에 적용함으로써, 경계 분석결과, 주행금지 분석결과, 그리드 분석결과, 존 분석결과 및 거리 분석결과를 포함하는 분석 결과를 생성할 수 있다.
또한 제어부(120)는 하나의 주행 데이터에 대하여, 장애가 발생한 위치에서의 에러 유형을 추출하여 분석 결과를 생성할 수도 있다. 예를 들어 어느 주행 데이터에 대하여 제1 그리드에서 장애가 발생된 것으로 보고되는 경우, 제어부(120)는 경계 분석결과, 주행금지 분석결과, 그리드 분석결과, 존 분석결과 및 거리 분석결과로부터 해당 그리드에서의 에러 유형을 추출할 수 있다. 일 예로 제어부(120)는 경계 분석결과로부터 제1 그리드에 포함되는 점에서의 에러 유형(예를 들어 B1)을 추출하고, 그리드 분석결과로부터 제1 그리드에서의 에러 유형(예를 들어 C2)를 추출하고, 존 분석결과로부터 제1 그리드를 포함하는 존에서의 에러 유형(예를 들어 E3)를 추출할 수 있다. 이 경우 주행 데이터의 분석 결과는, B1, C2, E3를 포함할 수 있다.
다른 예를 들어 어느 주행 데이터의 제2 그리드에서 장애가 발생된 것으로 파악되는 경우, 제어부(120)는 경계 분석결과, 주행금지 분석결과, 그리드 분석결과, 존 분석결과 및 거리 분석결과로부터 해당 그리드에서의 에러 유형을 추출할 수 있다. 일 예로 제어부(120)는 그리드 분석결과로부터 제2 그리드에서의 에러 유형(예를 들어 C6)를 추출하고, 거리 분석결과로부터 제2 그리드에서의 에러 유형(예를 들어 F4)를 추출할 수 있다. 이 경우 주행 데이터의 분석 결과는 C6, F4를 포함할 수 있다.
다시 도 3으로 돌아가서, 제어부(120)는 특정 장애원인이 발생한 다수의 주행 데이터들의 분석결과들을 분석하여, 특정 장애원인에 매칭되는 에러 정보를 추출할 수 있다(S240).
장애원인은, 장애가 발생한 원인 및 장애에 대한 조치 중 적어도 하나를 할 수 있다. 예를 들어 장애가 발생한 원인이 “지도 작성 오류로 인한 장애물 감지”라면, 장애에 대한 조치는 “지속적 발생시 지도 수정”일 수 있다. 장애가 발생한 원인 및 장애에 대한 조치는, 장애 상황을 해결한 전문가에 의해 작성될 수 있다.
한편 한번의 장애 상황만으로는, 장애 분석 정보에 에러 정보를 적절히 매칭할 수 없다. 따라서 로봇 장애 분석 장치(100)는 원본맵에 기반하여 주행한 하나 이상의 로봇의 다수의 주행 데이터들 및 이에 대응하는 장애 원인을 획득할 수 있다.
또한 제어부(120)는 다수의 주행 데이터들을 복수의 분석맵에 적용하여 다수의 분석결과들을 획득할 수 있다. 예를 들어 제어부(120)는 제1 주행 데이터를 복수의 분석맵에 적용하여 제1 분석결과를 획득하고, 제2 주행 데이터를 복수의 분석맵에 적용하여 제2 분석결과를 획득할 수 있다.
또한 제어부(120)는 다수의 분석결과들을 장애 원인별로 분류할 수 있다. 예를 들어, 제어부(120)는 제1 장애원인(예를 들어 “지도 작성 오류로 인한 자기위치 잃어버림”)을 가지는 제1 내지 제 10000 주행 데이터들을 선별하고, 이들을 이용하여 제1 내지 제 10000 분석결과를 생성할 수 있다. 이 경우 제1 분석결과는 제1 주행 데이터를 복수의 분석맵에 적용함으로써 생성된 분석결과를 포함할 수 있다. 또한 제2 분석결과는 제2 주행 데이터를 복수의 분석맵에 적용함으로써 생성된 분석결과를 포함할 수 있다. 이 경우 제어부(120)는 제1 내지 제10000 분석 결과를 제1 장애원인(예를 들어 “지도 작성 오류로 인한 자기위치 잃어버림”)으로 분류할 수 있다.
같은 방식으로, 제어부(120)는 제10001 내지 제20000 분석 결과를 제2 장애원인(예를 들어 “지도 작성 오류로 인한 라이다 틀어짐 현상”)으로 분류할 수 있다.
이와 같은 방식으로, 로봇 장애 분석 장치(100)에서 수집된 주행 데이터들로부터 생성된 분석 결과들은, 장애 원인 별로 분류될 수 있다. 예를 들어 메모리(130)에는, 제1 장애 원인(예를 들어 “지도 작성 오류로 인한 자기위치 잃어버림”)으로 분류되는 분석결과들, 제2 장애원인(예를 들어 “지도 작성 오류로 인한 라이다 틀어짐 현상”)으로 분류되는 분석결과들, 제3 장애원인(예를 들어 “지도 오류”)으로 분류되는 분석결과들, 제4 장애원인(예를 들어 “지도 작성 오류로 인한 자기 위치 잃어버림”)으로 분류되는 분석결과들, 제5 장애원인(예를 들어 “지도작성 오류로 인한 주행 저하”)으로 분류되는 분석결과들, 제6 장애원인(예를 들어 “바닥 노이즈 발생으로 인한 잦은 주행 변경”)으로 분류되는 분석결과들, 제7 장애원인(예를 들어 “장애물이 없는데도 장애물로 인식”)으로 분류되는 분석결과들이 저장될 수 있다.
제어부(120)는 특정 장애원인이 발생한 다수의 주행 데이터들의 분석결과들을 분석하여, 특정 장애원인을 설명할 수 있는 하나 이상의 에러 정보(에러 유형)를 추출할 수 있다. 여기서 특정 장애원인을 설명한다는 것은 특정 장애원인이 다수의 분석결과에 포함된 에러 유형과 인과 관계를 가진다는 것으로, 제어부(120)는 통계적인 방법 또는 인공지능 모델의 지도학습 알고리즘에 기반하여 특정 장애원인을 설명할 수 있는 에러 유형을 추출할 수 있다.
일 예로, 제어부(120)는 제1 장애 원인으로 분류되는 다수의 분석결과들에서, 기준치 이상의 빈도로 나타나는 하나 이상의 에러 유형을 추출할 수 있다. 예를 들어 제어부(120)는 제1 장애 원인으로 분류되는 10000개의 분석 결과로부터, 빈도수가 기준치 이상으로 나타나는 경계 분석결과의 제1 에러 유형(B1) 및 그리드 분석결과의 제1 에러 유형(C1)을 추출할 수 있다. 여기서 기준치 이상의 빈도로 나타나는 하나 이상의 에러 유형이란, 기준치 이상의 빈도로 나타나는 에러 유형들의 조합을 포함할 수 있다. 그리고 나서 제어부(120)는 기준치 이상의 빈도로 나타나는 하나 이상의 에러 유형을 제1 장애 원인에 매칭되는 하나 이상의 에러 유형으로 선정할 수 있다. 예를 들어 제어부(120)는 제1 장애 원인에 매칭되는 에러 유형으로 B1 및 C1을 선정할 수 있다.
이와 같은 방식으로, 제어부(120)는 복수의 장애 원인 각각에 대하여, 장애 원인에 매칭되는 하나 이상의 에러 정보를 해당하는 장애 원인에 매칭되는 하나 이상의 에러 유형으로 선정할 수 있다. 예를 들어 제어부(120)는 제2 장애 원인에 매칭되는 에러 유형으로 B3, C1, D1을 선정하고, 제2 장애 원인에 B3, C1, D1를 매칭하여 저장할 수 있다. 다른 예를 들어 제어부(120)는 제3 장애 원인에 매칭되는 에러 유형으로 D3, F2를 선정하고, 제3 장애 원인에 D3, F2를 매칭하여 저장할 수 있다.
도 10은 본 발명에 따른, 장애원인에 에러 유형을 매칭한 예시를 도시한 도면이다.
앞서 설명한 바와 같이 장애 원인은 장애가 발생하는 원인 및 장애에 대한 조치 중 적어도 하나를 포함한다. 도 10의 표의 첫번째 케이스(두번째 행)를 참고하면, 제1 장애 원인은 장애가 발생하는 원인(지도 오류) 및 장애에 대한 조치(주행 에러는 없으니 유지)를 포함한다. 또한 제1 장애 원인에는 B1이라는 에러 유형이 매칭되었다.
도 10의 표의 두번째 케이스(세번째 행)를 참고하면, 제2 장애 원인은 장애가 발생하는 원인(지도 작성 오류로 인한 장애물 감지) 및 장애에 대한 조치(지속적 발생시 지도 수정)를 포함한다. 또한 제2 장애 원인에는 B1 및 C1이라는 에러 유형이 매칭되었다.
도 10의 표의 세번째 케이스(네번째 행)을 참고하면, 제3 장애 원인은 장애가 발생하는 원인(지도 작성 오류로 인한 자기 위치 잃어버림) 및 장애에 대한 조치(지워진 지도가 있는지, 유리 등 벽면 재질 검토)를 포함한다. 또한 제3 장애 원인에는 B2 및 D1이라는 에러 유형이 매칭되었다.
한편 제어부(120)는 복수의 장애원인에 대하여, 해당 장애원인에 매칭되는 하나 이상의 에러 정보를 메모리(130)에 저장할 수 있다. 예를 들어 제어부(120)는 제1 장애 원인에 매칭되는 하나 이상의 에러 정보(B1)를 메모리(130)에 저장하고, 제2 장애 원인에 매칭되는 하나 이상의 에러 정보(B1 및 C1)를 메모리(130)에 저장할 수 있다.
도 11에서는, 메모리(130)에 저장된 장애 원인 별 에러 정보를 이용하여 실제 주행하는 주행 로봇의 장애 원인을 파악하고, 파악된 장애 원인을 고객에게 제공하는 방법을 설명한다.
도 11은 본 발명에 따른, 로봇 장애 분석 장치가 장애 분석 서비스를 제공하는 방법을 설명하기 위한 도면이다.
로봇 운영자 장치는, 주행 중인 로봇의 주행 데이터를 실시간으로 전송하거나, 주행을 완료한 로봇의 주행 데이터를 전송할 수 있다(S1110). 이 로봇을 주행 로봇이라 명칭한다. 한편 주행 데이터는, 로봇의 시간 단위 별 좌표 정보, 로봇의 미션 정보 등을 포함할 수 있다.
로봇 장애 분석 장치(100)의 제어부(120)는 주행 로봇의 주행 데이터를 획득할 수 있다. 일 예로, 제어부(120)는 로봇 운영자 장치로부터 로봇의 시간 단위 별 좌표 정보를 수신할 수 있으며, 시간 단위 별 좌표 정보를 이용하여 로봇의 이동 정보, 동작 정보 등을 획득할 수 있다.
로봇 장애 분석 장치(100)의 제어부(120)는 주행 로봇의 장애 발생 정보를 획득할 수 있다(S1120). 일 예로, 제어부(120)는 주행 데이터에서 나타나는 비정상적인 동작에 기반하여 로봇에 장애가 발생하였는지에 대한 정보, 장애가 발생한 위치에 대한 정보를 획득할 수 있다. 다만 이에 한정되지 않으며, 제어부(120)는 로봇 운영자 장치 또는 다른 장치로부터 로봇에 장애가 발생하였다는 정보 및 장애가 발생한 위치를 수신할 수 있다.
다음으로, 제어부(120)는 장애가 발생한 주행로봇의 주행 데이터를 복수의 분석맵에 적용하여 복수의 분석맵에서 나타난 에러 정보를 포함하는 주행 분석결과를 생성할 수 있다(S1130). 구체적으로 제어부(120)는 S230에서 설명한 것과 같은 방식으로, 주행 로봇의 경계 분석결과, 주행금지 분석결과, 그리드 분석결과, 존 분석결과, 거리 분석결과를 포함하는 주행 분석결과를 생성할 수 있다.
다음으로, 제어부(120)는 주행 분석결과로부터 장애가 발생한 위치에서의 에러 정보를 추출할 수 있다. 예를 들어 제어부(120)는 장애가 발생한 위치에서, 경계 분석결과에 나타난 에러 유형(B1) 및 그리드 분석결과에 나타난 에러 유형(C1)을 추출할 수 있다.
다음으로 제어부(120)는 복수의 장애원인 중, 주행로봇의 에러 정보와 일치하는 에러 정보를 가지는 장애원인을 추출할 수 있다(S1140). 구체적으로, 메모리(130)에는 복수의 장애 원인에 대하여, 해당 장애원인에 매칭되는 하나 이상의 에러 정보가 저장되어 있는 상태이다. 예를 들어 메모리(130)에는 제1 장애 원인에 매칭되는 하나 이상의 에러 정보(B1)와 제2 장애 원인에 매칭되는 하나 이상의 에러 정보(B1 및 C1)가 저장되어 있다.
이 경우 제어부(120)는 주행 로봇의 주행 데이터를 이용하여 획득된 하나 이상의 에러 정보(예를 들어 B1 및 C1)를 복수의 장애 원인들에 매칭된 하나 이상의 에러 정보와 비교할 수 있다. 또한 제어부(120)는 주행 로봇의 주행 데이터를 이용하여 획득된 하나 이상의 에러 정보(예를 들어 B1 및 C1)와 일치하는 에러 정보를 가지는 제2 장애 원인을 추출할 수 있다.
다음으로, 제어부(120)는 추출된 장애원인을 주행로봇의 운영자에게 제공할 수 있다(S1150). 여기서 장애원인은 장애 원인 및 장애 원인에 따른 조치 중 적어도 하나를 포함할 수 있다. 예를 들어 제어부(120)는 로봇의 장애는 지도 작성 오류로 인한 장애물 감지에 따른 것이고 지속적 발생 시 지도를 수정하라는 내용의 장애원인을 주행로봇의 운영자에게 제공할 수 있다.
한편 로봇 운영자 장치는 장애원인에 기초하여 조치를 취하고(S1160), 조치 결과 및 피드백 중 적어도 하나를 로봇 장애 분석 장치(100)에 전송할 수 있다(S1170). 이 경우 로봇 장애 분석 장치(100)는 피드백에 기반하여 장애원인을 업데이트할 수 있다(S1190). 일 예로, 로봇 장애 분석 장치(100)는 조치가 부적절하다는 피드백에 기반하여 장애원인을 에러 정보와 재매칭할 수 있다.
한편 새로운 유형의 장애가 발견된 경우, 로봇 운영자 장치는 새로운 유형의 장애를 로봇 장애 분석 장치(100)에 보고할 수 있다(S1180). 이 경우 로봇 장애 분석 장치(100)는 새로운 유형의 장애에 기반하여 장애원인을 업데이트할 수 있다(S1190). 일 예로, 로봇 장애 분석 장치(100)는 새로운 장애원인을 생성하고, 새로운 장애원인에 매칭되는 하나 이상의 에러 정보를 추출할 수 있다.
다른 실시 예로, 로봇 장애 분석 장치(100)의 제어부(120)는, 장애가 발생하지 않은 상태에서도, 장애의 위험성을 파악하여 고객에게 제공할 수 있다. 구체적으로 제어부(120)는 주행 로봇의 주행 데이터로부터 획득된 주행 분석결과로부터, 복수의 분석맵 상의 동일 위치에서 나타난 하나 이상의 에러 정보를 추출할 수 있다. 또한 제어부(120)는 추출된 하나 이상의 에러 정보와 일치하는 에러 정보를 가지는 장애원인을 추출할 수 있다. 이 경우 제어부(120)는 추출된 장애원인 및 해당 위치를 로봇 운영자 장치에 제공할 수 있다. 즉 로봇에 아직 장애가 발생하지 않은 상황에서도, 로봇 장애 분석 장치(100)는 주행 데이터를 이용하여 장애가 발생할 가능성이 높은 위치, 장애의 원인 등을 미리 예측하여 주행로봇의 운영자에게 제공할 수 있다.
한편 본 발명은 종류가 다른 로봇들(예를 들어, 다른 제조사에서 생성된 모델들, 동일 제조사의 다른 모델들, 동일 모델의 다른 버전들, 서로 다른 서비스(방역/서빙/안내 등)를 제공하는 동일 모델들)에 적용될 수 있다. 즉, 에러 유형, 장애 원인, 장애 조치 등은 로봇의 종류마다 다소 상이해질 수 있음에도 불구하고, 하나의 장애원인에 하나 이상의 에러 정보를 매칭하는 방식은 종류가 다른 로봇들에도 그대로 적용될 수 있다. 또한 제어부(120)가 종류가 다른 로봇들의 다수의 주행 데이터들을 이용하여 다수의 분석결과를 생성하는 방식으로도 구현될 수 있다.
본 발명에 따르면, 로봇이 사용하는 원본맵 및 로봇의 주행 데이터라는 최소한의 데이터만으로, 장애의 원인 및 조치를 정확하게 파악할 수 있는 장점이 있다. 특히 대부분의 로봇은 원본맵에 기반하여 주행하며 주행 데이터를 생성하기 때문에, 원본맵 및 주행 데이터는 대부분의 로봇 관제에 사용되는 공통 데이터이다. 로봇들의 주행특성이 상이하고 서로 다른 형식의 에러 메시지를 발생시킴에도 불구하고, 본 발명에서는 공통 데이터(원본맵, 주행 데이터)를 이용하여 장애를 분석하기 때문에, 다양한 종류의 로봇의 장애를 분석할 수 있는 장점이 있다, 특히 본 발명은, 멀티 벤더에서 개발한 이종 로봇들을 대량으로 관제하는 환경에서, 최소의 공통 데이터 수집만으로 장애 원인 및 조치를 효율적으로 마련할 수 있는 장점이 있다.
또한 본 발명에 따르면, 한정된 데이터(원본맵, 주행 데이터)를 장애 분석에 이용함에도 불구하고, 복수의 분석맵을 활용하여 한정된 데이터를 다각도로 분석함으로써, 장애의 원인 및 조치를 더욱 세부적으로 마련하고 정확하게 파악할 수 있는 장점이 있다.
또한 본 발명에 따르면, 분석 단위가 상이한 복수의 분석맵을 이용하여 한정된 데이터(원본맵, 주행 데이터)를 다각도로 분석함으로써, 장애의 원인 및 조치를 더욱 세부적으로 마련하고 정확하게 파악할 수 있는 장점이 있다. 예를 들어 본 발명에 따르면, 그리드 단위의 분석을 통해 특정 그리드에서 로봇이 멈췄음을 감지하고, 점 단위의 분석을 통해 해당 영역에서 지도가 잘못 그려졌음을 인지하여, '지도가 잘못 그려졌으니 지도를 재작성해야 한다'는 조치를 마련할 수 있다. 다른 예를 들어 본 발명에 따르면, 점 단위의 분석을 통해 지도가 잘못 그려졌음과 로봇이 주행 금지 영역에 진입하였음을 인지하고, 그리드 단위의 분석을 통해 로봇이 최적 경로에서 멀리 벗어난 상황을 인지하여, '로봇이 자신의 위치를 잃어버렸으니, 맵과 해당 영역의 실제 상황을 비교하여 지도를 수정해야한다'는 조치를 마련할 수 있다. 다른 예를 들어 본 발명에 따르면, 특정 그리드에서는 장애가 많이 발생하는 것은 아니나 특정 그리드를 포함하는 존에서는 장애가 많이 발생한다는 것을 인지하여(즉 하나의 존 내 복수의 그리드에 장애 발생의 빈도가 고르게 분포하는 경우), 'A 구역에 환경 변화가 감지되니 A 구역에 대한 지도를 재작성해야한다'는 조치를 마련할 수 있다.
본 발명에 따르면, 로봇 장애 분석 장치는 주행 로봇의 주행 데이터만으로, 장애 발생 여부, 장애의 원인 및 조치를 추출할 수 있다. 이에 따라 고객의 VOC가 없더라도, 장애의 원인 및 조치를 사전에 파악하여 조치할 수 있는 장점이 있다.
본 발명에 따르면, 로봇이 사용하는 맵을 이용하여 복수의 분석맵을 생성해 놓은 상태에서, 이후에 수집되는 주행 데이터들을 분석맵에 적용하여 에러 정보를 포함하는 분석 결과를 생성한다. 즉 분석 도구(분석맵)를 최초에 한번 생성해 놓은 상태에서, 이후에 수집되는 주행데이터들을 그대로 분석도구에 적용만 하면 되기 때문에, 장애의 원인을 파악하는데 드는 비용 및 자원을 절감할 수 있는 장점이 있다.
장애 발생 여부, 장애의 원인 또는 조치가 획득된 경우, 로봇의 주행에 필요한 각종 데이터는 장애 발생 여부, 장애의 원인 또는 조치에 기반하여 업데이트된 후 로봇에게 전달될 수 있다. 이에 따라 본 발명은 로봇의 주행성능의 향상이라는 기술적 효과를 달성할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 상기 컴퓨터는 제어부를 포함할 수도 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
Claims (20)
- 원본맵에 기초하여, 분석 단위가 상이한 복수의 분석맵을 생성하는 단계;상기 원본맵에 기반하여 주행하는 로봇의 주행 데이터를 수집하는 단계;장애가 발생한 상황에서의 주행 데이터를 상기 분석 단위가 상이한 복수의 분석맵에 적용하여, 상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계; 및특정 장애원인이 발생한 다수의 주행 데이터들의 분석결과들을 분석하여, 상기 특정 장애원인에 매칭되는 에러 정보를 추출하는 단계;를 포함하는로봇 장애 분석 방법.
- 제 1항에 있어서,상기 분석 단위가 상이한 복수의 분석맵은,분석의 대상이 되는 단위 영역의 크기가 상이한로봇 장애 분석 방법.
- 제 2항에 있어서,상기 분석 단위는,점 단위 및 구역 단위를 포함하는로봇 장애 분석 방법.
- 제 3항에 있어서,상기 분석 단위가 상이한 복수의 분석맵을 생성하는 단계는,상기 원본맵을 이용하여, 상기 원본맵의 불완전성을 점 단위로 나타내는 경계 분석맵을 생성하는 단계;를 포함하고,상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계는,점 단위로, 상기 원본맵의 불완전성에 기초하여 에러 유형을 추출함으로써 경계 분석결과를 생성하는 단계;를 포함하는로봇 장애 분석 방법.
- 제 4항에 있어서,상기 원본맵 내에서의 불완전한 경계는 로봇에 의해 회피되는로봇 장애 분석 방법.
- 제 3항에 있어서,상기 구역 단위는, 상기 원본맵을 그리드로 구분하는 그리드 단위를 포함하고,상기 분석 단위가 상이한 복수의 분석맵을 생성하는 단계는,상기 원본맵을 구분하는 복수의 그리드를 포함하는 그리드 분석맵을 생성하는 단계;를 포함하고,상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계는,그리드 단위로, 해당 그리드에서의 로봇의 주행 데이터에 기반하여 에러 유형을 추출함으로써 그리드 분석결과를 생성하는 단계;를 포함하는로봇 장애 분석 방법.
- 제 6항에 있어서,상기 구역 단위는, 상기 원본맵을 복수의 그리드를 결합한 존으로 구분하는 존 단위를 더 포함하는로봇 장애 분석 방법.
- 제 7항에 있어서,상기 존의 크기는, 상기 로봇의 센싱 거리 및 속도 중 적어도 하나에 기초하여 결정되는로봇 장애 분석 방법.
- 제 3항에 있어서,상기 구역 단위는, 상기 원본맵을 그리드로 구분하는 그리드 단위를 포함하고,상기 분석 단위가 상이한 복수의 분석맵을 생성하는 단계는,상기 로봇의 최적 경로를 나타내는 거리 분석맵을 생성하는 단계;를 포함하고,상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계는,그리드 단위로, 상기 로봇의 주행 경로와 상기 최적 경로의 차이에 기반하여 에러 유형을 추출함으로써 거리 분석결과를 생성하는 단계;를 포함하는로봇 장애 분석 방법.
- 제 3항에 있어서,상기 분석 단위가 상이한 복수의 분석맵을 생성하는 단계는,로봇의 주행 금지 여부를 점 단위로 나타내는 주행금지 분석맵을 생성하는 단계;를 포함하고,상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하는 단계는,점 단위로, 상기 로봇의 주행 금지 영역의 진입 여부에 기초하여 에러 유형을 추출함으로써 주행금지 분석결과를 생성하는 단계;를 포함하는로봇 장애 분석 방법.
- 제 1항에 있어서,상기 특정 장애원인에 매칭되는 에러 정보를 추출하는 단계는,상기 다수의 주행데이터들의 분석결과들에서, 기준치 이상의 빈도로 나타나는 하나 이상의 에러 유형을 상기 특정 장애 원인에 매칭되는 하나 이상의 에러 유형으로 선정하는 단계;를 포함하는로봇 장애 분석 방법.
- 제 11항에 있어서,상기 특정 장애원인은, 장애가 발생한 원인 및 장애에 대한 조치 중 적어도 하나를 포함하는로봇 장애 분석 방법.
- 제 1항에 있어서,복수의 장애원인에 대하여, 해당 장애원인에 매칭되는 하나 이상의 에러 정보를 저장하는 단계;주행 로봇의 주행 데이터를 상기 복수의 분석맵에 적용하여, 상기 복수의 분석맵에서 나타난 에러 정보를 포함하는 주행 분석결과를 생성하는 단계;상기 복수의 장애원인 중, 상기 주행 로봇의 에러 정보와 일치하는 에러 정보를 가지는 장애원인을 추출하는 단계; 및상기 추출된 장애원인을 상기 주행로봇의 운영자에 제공하는 단계;를 더 포함하는로봇 장애 분석 방법.
- 원본맵에 기초하여, 분석 단위가 상이한 복수의 분석맵을 생성하는 제어부; 및상기 원본맵에 기반하여 주행하는 로봇의 주행 데이터를 수집하는 통신부;를 포함하고,상기 제어부는,장애가 발생한 상황에서의 주행 데이터를 상기 분석 단위가 상이한 복수의 분석맵에 적용하여, 상기 분석 단위가 상이한 복수의 분석맵에서 나타난 에러 정보를 포함하는 분석결과를 생성하고,특정 장애원인이 발생한 다수의 주행 데이터들의 분석결과들을 분석하여, 상기 특정 장애원인에 매칭되는 에러 정보를 추출하는로봇 장애 분석 장치.
- 제 14항에 있어서,상기 분석 단위가 상이한 복수의 분석맵은,분석의 대상이 되는 단위 영역의 크기가 상이한로봇 장애 분석 장치.
- 제 15항에 있어서,상기 분석 단위는,점 단위 및 구역 단위를 포함하는로봇 장애 분석 장치.
- 제 16항에 있어서,상기 제어부는,상기 원본맵을 이용하여, 상기 원본맵의 불완전성을 점 단위로 나타내는 경계 분석맵을 생성하고,점 단위로, 상기 원본맵의 불완전성에 기초하여 에러 유형을 추출함으로써 경계 분석결과를 생성하는로봇 장애 분석 장치.
- 제 17항에 있어서,상기 원본맵 내에서의 불완전한 경계는 로봇에 의해 회피되는로봇 장애 분석 장치.
- 제 16항에 있어서,상기 구역 단위는, 상기 원본맵을 그리드로 구분하는 그리드 단위를 포함하고,상기 제어부는,상기 원본맵을 구분하는 복수의 그리드를 포함하는 그리드 분석맵을 생성하고,그리드 단위로, 해당 그리드에서의 로봇의 주행 데이터에 기반하여 에러 유형을 추출함으로써 그리드 분석결과를 생성하는로봇 장애 분석 장치.
- 제 19항에 있어서,상기 구역 단위는, 상기 원본맵을 복수의 그리드를 결합한 존으로 구분하는 존 단위를 더 포함하는로봇 장애 분석 장치.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2023-0002238 | 2023-01-06 | ||
| KR1020230002238A KR20240110310A (ko) | 2023-01-06 | 2023-01-06 | 로봇 장애 분석 방법 및 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024147602A1 true WO2024147602A1 (ko) | 2024-07-11 |
Family
ID=91804147
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2024/000045 Ceased WO2024147602A1 (ko) | 2023-01-06 | 2024-01-02 | 로봇 장애 분석 방법 및 장치 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR20240110310A (ko) |
| WO (1) | WO2024147602A1 (ko) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002091565A (ja) * | 2000-09-11 | 2002-03-29 | Kawasaki Heavy Ind Ltd | 移動体制御装置および移動体制御方法 |
| JP2012048642A (ja) * | 2010-08-30 | 2012-03-08 | Denso Corp | 走行環境認識装置 |
| KR20130120307A (ko) * | 2012-04-25 | 2013-11-04 | 주식회사 하이로시 | 주행로봇 및 주행로봇의 제어방법 |
| KR20190029524A (ko) * | 2016-05-11 | 2019-03-20 | 브레인 코퍼레이션 | 경로를 자율주행하도록 로봇을 훈련시키기 위한 시스템 및 방법 |
| KR20220113910A (ko) * | 2020-06-18 | 2022-08-17 | 주식회사 클로봇 | 이동 로봇의 장애 상황 유형 별 판단 및 대처 방법 및 이를 위한 서버 |
-
2023
- 2023-01-06 KR KR1020230002238A patent/KR20240110310A/ko active Pending
-
2024
- 2024-01-02 WO PCT/KR2024/000045 patent/WO2024147602A1/ko not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002091565A (ja) * | 2000-09-11 | 2002-03-29 | Kawasaki Heavy Ind Ltd | 移動体制御装置および移動体制御方法 |
| JP2012048642A (ja) * | 2010-08-30 | 2012-03-08 | Denso Corp | 走行環境認識装置 |
| KR20130120307A (ko) * | 2012-04-25 | 2013-11-04 | 주식회사 하이로시 | 주행로봇 및 주행로봇의 제어방법 |
| KR20190029524A (ko) * | 2016-05-11 | 2019-03-20 | 브레인 코퍼레이션 | 경로를 자율주행하도록 로봇을 훈련시키기 위한 시스템 및 방법 |
| KR20220113910A (ko) * | 2020-06-18 | 2022-08-17 | 주식회사 클로봇 | 이동 로봇의 장애 상황 유형 별 판단 및 대처 방법 및 이를 위한 서버 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20240110310A (ko) | 2024-07-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2018186583A1 (ko) | 주행 지면의 장애물을 식별하는 방법 및 이를 구현하는 로봇 | |
| WO2018230852A1 (ko) | 3차원 공간의 이동 객체를 식별하는 방법 및 이를 구현하는 로봇 | |
| WO2018143620A2 (en) | Robot cleaner and method of controlling the same | |
| WO2020230931A1 (ko) | 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법 | |
| WO2021040214A1 (ko) | 이동 로봇 및 그 제어 방법 | |
| WO2020226187A1 (ko) | 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇 | |
| WO2018201638A1 (zh) | 基于图像识别的信息采集方法、移动终端及存储介质 | |
| WO2021137483A1 (ko) | 자율주행 로봇을 이용한 지도 업데이트 방법 및 시스템 | |
| WO2018230845A1 (ko) | 비전 정보에 기반한 위치 설정 방법 및 이를 구현하는 로봇 | |
| WO2020204219A1 (ko) | 인공지능을 이용한 사물 인식 학습에서 아웃라이어를 분류하는 방법 및 분류장치와 로봇 | |
| WO2022158628A1 (ko) | 머신러닝 모델에 기반한 디스플레이 패널의 결함 판정 시스템 | |
| WO2022035054A1 (ko) | 로봇 및 이의 제어 방법 | |
| WO2022045431A1 (ko) | 위치 추정 방법 및 시스템 | |
| EP3562369A2 (en) | Robot cleaner and method of controlling the same | |
| WO2020196948A1 (ko) | 인공 지능 청소기 및 그의 동작 방법 | |
| WO2024147602A1 (ko) | 로봇 장애 분석 방법 및 장치 | |
| WO2024034855A1 (ko) | 마스크 맵을 이용하여 주행을 수행하는 로봇 및 그의 주행 방법 | |
| WO2024214860A1 (ko) | 저가형 센서 기반의 자율주행을 위한 지역 의미론적 정보가 저장된 주행용 지도에서 레퍼런스 지역 경로 계획 방법 및 장치 | |
| WO2024253400A1 (ko) | Slam 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 장치 및 시스템 | |
| WO2022039575A1 (ko) | 딥 러닝 기반 실시간 공정 감시 시스템 및 그 방법 | |
| WO2022215838A1 (ko) | 로봇의 통신 장애 복구 방법 및 시스템, 그리고 네트워크 장애 상황에 강인한 로봇이 주행하는 건물 | |
| WO2021206209A1 (ko) | 스마트 팩토리 구축을 위한 마커리스 기반의 ar 구현 방법 및 시스템 | |
| WO2025164869A1 (ko) | 선호도 정보가 주입되어 선호도 정보를 반영하도록 학습된 로봇의 자율주행을 제어하기 위한 학습 모델을 생성하는 방법 및 장치 | |
| WO2025116305A1 (ko) | 복수개의 이동 로봇 주행 제어 방법 | |
| WO2025063508A1 (ko) | 로봇 청소기 및 그의 청소 시간 예측 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24738673 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 24738673 Country of ref document: EP Kind code of ref document: A1 |