WO2024111687A1 - 로봇 가상 검증 방법 및 이를 위한 시스템 - Google Patents

로봇 가상 검증 방법 및 이를 위한 시스템 Download PDF

Info

Publication number
WO2024111687A1
WO2024111687A1 PCT/KR2022/018445 KR2022018445W WO2024111687A1 WO 2024111687 A1 WO2024111687 A1 WO 2024111687A1 KR 2022018445 W KR2022018445 W KR 2022018445W WO 2024111687 A1 WO2024111687 A1 WO 2024111687A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
simulator
information
board
virtual
Prior art date
Application number
PCT/KR2022/018445
Other languages
English (en)
French (fr)
Inventor
곽명진
정덕환
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to PCT/KR2022/018445 priority Critical patent/WO2024111687A1/ko
Publication of WO2024111687A1 publication Critical patent/WO2024111687A1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls

Definitions

  • This disclosure relates to a method and system for virtually verifying the performance of a robot.
  • Robots have been developed for industrial use and have played a part in factory automation. Recently, the field of application of robots has expanded further, and logistics robots, medical robots, and aerospace robots have been developed, and household robots that can be used in general homes are also being created. Among these robots, some are capable of traveling on their own.
  • the hardware that composes the robot and the software that controls it must be implemented simultaneously, and the robot developed in this way requires verification of operability or suitability in the field. If there is an error in the software that controls the hardware-implemented robot or it does not match the actual hardware structure and/or operating conditions in the field, the robot's hardware and/or software must be redesigned. Redesigning a robot's hardware and/or software can result in significant losses in terms of time and money. Therefore, it may be important to complete the robot through as little trial and error as possible.
  • the purpose of the present disclosure is to provide a method and a system for virtually verifying the on-site operability or suitability of a robot through a virtual verification environment.
  • the present disclosure includes a first hardware board including a first navigation board and a first user interface board that can be mounted on a first robot, a second navigation board that can be mounted on a second robot, and a first user interface board.
  • a second hardware board including a user interface board, a first simulator for virtually verifying the field operability of the first robot by communicating with the first hardware board, and communicating with the second hardware board to verify the field operability of the second robot.
  • a second simulator for virtually verifying, and receiving first individual robot information of the first robot and second individual robot information of the second robot from the first simulator and the second simulator to generate overall robot information
  • a robot virtual verification system including a robot information server that transmits the entire robot information to each of the first simulator and the second simulator can be provided.
  • the first simulator can create a 3D virtual space using 2D map information mounted on the first robot received from the first navigation board.
  • the first simulator can display the first robot and the second robot at corresponding positions in the 3D virtual space using the entire robot information.
  • the first simulator may further display virtual obstacles that can be detected by either the first robot or the second robot in the three-dimensional virtual space.
  • the robot virtual verification system may further include a remote control server for connecting the first hardware board and the first simulator and for connecting the second hardware board and the second simulator.
  • a first hardware board may be connected to the remote control server through a first USB hub, and a second hardware board may be connected to the remote control server through a second USB hub.
  • the first navigation board includes a first port for transmitting and receiving data required for autonomous driving
  • the first user interface board includes a second port for transmitting and receiving data from a CAN interface-based sensor and displays on a display provided in the first robot. It may include a third port for transmitting and receiving data about the robot screen.
  • the first simulator may generate virtual sensing data and provide it to the first navigation board through a first port, and receive data about the robot screen through a third port to display the robot screen.
  • the first individual robot information and the second individual robot information may be repeated at a predetermined period and transmitted to the robot information server, and the generated overall robot information may be repeated at a predetermined period and transmitted to each of the first simulator and the second simulator.
  • the first individual robot information and the second individual robot information may include location information and direction information of the robot, and information about obstacles detected by the robot.
  • the present disclosure includes a first navigation board and a first user interface board on which a first simulator can be mounted on the first robot to virtually verify the field operability of the first robot.
  • a robot virtual verification method may be provided including the step of transmitting the entire generated robot information to each of the first simulator and the second simulator.
  • the on-site operability or suitability of the robot can be virtually verified through a virtual verification environment, so there is an advantage in that the robot can be completed at minimal cost in terms of time or money. .
  • Figure 1 is a block diagram showing components constituting a robot according to an embodiment of the present disclosure.
  • Figure 2 is a flowchart for performing robot movement according to an embodiment of the present disclosure.
  • Figure 3 shows the configuration of a control server according to an embodiment of the present disclosure.
  • Figure 4 shows a virtual verification system for virtually verifying the field operability of a robot according to an embodiment of the present disclosure.
  • Figure 5 shows a modification of the robot simulation system of Figure 4.
  • FIG. 6 is a block diagram for explaining the robot simulator of FIG. 4.
  • FIG. 7 shows a three-dimensional virtual space that can be created by the robot simulator of FIG. 4.
  • Figure 8 is a communication flowchart between the simulators of Figure 4 and the robot information server.
  • Figure 9 shows an example of individual robot information and overall robot information according to an embodiment of the present disclosure.
  • 10 and 11 are examples of a user interface displayed on a robot simulator according to an embodiment of the present disclosure.
  • These components may each be composed of separate individual hardware modules or may be implemented as two or more hardware modules, or two or more components may be implemented as one hardware module, and in some cases, may also be implemented as software. Of course.
  • Figure 1 is a block diagram showing components constituting a robot according to an embodiment of the present disclosure.
  • the robot 1000 includes a sensing module 100 that senses externally placed moving or fixed objects, a map storage unit 200 that stores various types of maps, a moving unit 300 that controls the movement of the robot, and a robot.
  • a functional unit 400 that performs a predetermined function, a communication unit 500 that transmits and receives information about maps or moving objects, fixed objects, or external changing situations with other robots or servers, and each of these components.
  • the control unit 900 can be controlled.
  • the robot is structured hierarchically, but this is a logical representation of the robot's components. This may be different in the case of physical configuration. That is, one physical component may include multiple logical components, or multiple physical components may implement one logical component.
  • the sensing module 100 senses external objects such as obstacles and provides the sensed information to the control unit 900.
  • the sensing module 100 is a Lidar device that calculates the material and distance of external objects such as walls, glass, and metallic doors from the robot's current location using the intensity of the signal and the reflected time (velocity). It may include a sensing unit 110.
  • the sensing module 100 may include a temperature sensing unit 120 that calculates temperature information on objects placed within a certain distance from the robot 1000.
  • One embodiment of the temperature sensing unit 120 includes an infrared sensor that detects the temperature of objects placed within a certain distance from the robot 1000, particularly the body temperature of people.
  • the temperature sensing unit 120 When the temperature sensing unit 120 is configured with an infrared array sensor, the temperature of an object can be sensed without contact. When an infrared sensor or an infrared array sensor forms the temperature sensing unit 120, it can provide important information to determine whether a moving object is a person.
  • the sensing module 100 may further include a depth sensing unit 130 and a vision sensing unit 140 that calculate depth information between the robot and an external object in addition to the above-described sensing units.
  • the depth sensing unit 130 may include a depth camera.
  • the depth sensing unit 130 can determine the distance between the robot and an external object. In particular, when combined with the LIDAR sensing unit 110, the sensing accuracy of the distance between the external object and the robot can be increased.
  • the vision sensing unit 140 may include a camera.
  • the vision sensing unit 140 can capture images of objects around the robot.
  • the robot can identify whether an external object is a moving object by distinguishing between images that do not change much, such as fixed objects, and images in which moving objects are placed.
  • auxiliary sensing units 145 such as a thermal sensing unit or an ultrasonic sensing unit as an example, may be disposed. These auxiliary sensing units provide auxiliary sensing information needed to create a map or sense external objects. Additionally, these auxiliary sensing units also provide information by sensing objects placed externally while the robot is running.
  • the sensing data analysis unit 150 analyzes information sensed by multiple sensing units and transmits it to the control unit 900. For example, when an object placed externally is detected by multiple sensing units, each sensing unit can provide information about the characteristics and distance of the object. The sensing data analysis unit 150 can calculate these values by combining them and transmit them to the control unit 900.
  • the map storage unit 200 stores information on objects placed in the space where the robot moves.
  • the map storage unit 200 may include a fixed map 210 that stores information about fixed objects that do not change or are arranged fixedly among objects arranged in the entire space in which the robot moves.
  • One fixed map 210 may necessarily be included depending on the space. Since the fixed map 210 is arranged with only the objects with the lowest variation in the space, when the robot moves in the space, it can sense more objects than the objects indicated by the map 210.
  • the fixed map 210 essentially stores location information of fixed objects, and may additionally include characteristics of fixed objects, such as material information, color information, or other height information. This additional information allows the robot to more easily check when changes occur in fixed objects.
  • the robot can generate a temporary map 220 by sensing its surroundings while moving and compare it with a fixed map 210 of the entire space that was stored in the past. As a result of the comparison, the robot can confirm its current location.
  • the moving unit 300 is a means of moving the robot 1000, like wheels, and moves the robot 1000 under the control of the control unit 900.
  • the control unit 900 may check the current location of the robot 1000 in the area stored in the map storage unit 200 and provide a movement signal to the moving unit 300.
  • the control unit 900 can create a route in real time or during movement using various information stored in the map storage unit 200.
  • the moving unit 300 may include a mileage calculation unit 310 and a mileage correction unit 320.
  • the traveling distance calculation unit 310 may provide information about the distance traveled by the moving unit 300.
  • the cumulative distance traveled by the robot 1000 starting from a specific point may be provided.
  • the accumulated distance traveled in a straight line after the robot 1000 rotates at a specific point may be provided.
  • the cumulative distance traveled by the robot 1000 from a specific time may be provided.
  • the mileage calculation unit 310 may provide information on the moving distance within a certain unit as well as the cumulative distance.
  • the driving distance calculation unit 310 can calculate the distance in various ways depending on the characteristics of the moving part 300. If the moving part 300 is a wheel, the driving distance can be calculated by counting the number of rotations of the wheel.
  • the mileage correction unit 320 adjusts the distance calculated by the mileage calculation unit 310. Correct the information. Additionally, when an error accumulates in the mileage calculation unit 310, the control unit 900 or the mobile unit 300 can be notified to change the mileage calculation logic of the mileage calculation unit 310.
  • the functional unit 400 is meant to provide specialized functions of the robot.
  • the functional unit 400 includes components necessary for cleaning.
  • the functional unit 400 includes components necessary for guidance.
  • the functional unit 400 includes components necessary for security.
  • the functional unit 400 may include various components depending on the functions provided by the robot, and the present invention is not limited thereto.
  • the control unit 900 of the robot 1000 may create or update a map in the map storage unit 200. Additionally, the control unit 900 can control the driving of the robot 1000 by identifying information on the object provided by the sensing module 100 during the driving process and distinguishing whether the object is a moving object or a fixed object.
  • the control unit 900 of the robot 1000 identifies a moving object among the sensed objects based on the characteristic information of the sensed object, and detects the moving object. Except, the current location of the robot can be set based on information sensed by the sensing module as a fixed object.
  • Figure 2 is a flowchart for performing robot movement according to an embodiment of the present disclosure.
  • a global path plan for the robot 1000 to move to the target location may be established.
  • global path planning means planning a route that can travel quickly from the starting location to the target location while avoiding obstacles and collisions, based on the obstacle map.
  • the global path plan may be established by a control system (or control server) (2000 in FIG. 3) and received by the robot 1000.
  • the global route plan is performed by the robot 1000 based on information about the target location received from the control server and map information of the site where the robot 1000 is operated (for example, a logistics center, etc.). It may have been established as .
  • the map information may include an obstacle map in which obstacles (and/or movable space) within the site are displayed.
  • the obstacle map may include information about dynamic obstacles as well as static obstacles.
  • the robot 1000 i.e., the control unit 900
  • the local path plan uses sensor information sensed in real time by the sensor module 100 to avoid obstacles or moving obstacles that are not shown in the obstacle map when the robot 1000 moves along the global path. It regenerates the path locally.
  • the robot 1000 can move to the target location based on the global path plan and the local path plan through the moving unit 300 [S23].
  • Figure 3 shows the configuration of a control system according to an embodiment of the present disclosure.
  • the control system 2000 may include a Warehouse Management System (WMS) 2100, a Material Control System (MCS) 2200, a mission scheduler 2300, and a Fleet Management System (FMS) 2400.
  • WMS Warehouse Management System
  • MCS Material Control System
  • FMS Fleet Management System
  • the WMS 2100 is a logistics system that can manage the locations of the loaded products and an order list for at least one product that needs to be picked up and transported for packaging among the loaded products.
  • One order may mean a list of at least one product ordered by a customer and a loading location of the at least one product. For example, a first list of at least one product ordered by a first customer and its location is managed as a first order, and a second list of at least one product ordered by a second customer and its location is managed as a second order. It can be managed with A plurality of orders including a first order and a second order can be managed as an order list.
  • the MCS (2200) may receive the order list from the WMS (2100) and create a mission to pick up and transport the ordered product.
  • the mission may consist of at least one order. For example, if the loading positions of the goods in the first list and the loading positions of the goods in the second list are similar to each other, the first order and the second order are created in one mission, and the loading positions of the goods in the first list and the second order are created in one mission. If the loading positions of the two lists are not similar to each other, the first order and the second order may be created with different missions.
  • the mission scheduler 2300 receives the generated mission from the MCS 2200, schedules a route (or sequence) for picking up and transporting at least one item within the mission, and assigns the route-scheduled mission to the robot. You can.
  • the FMS 2400 receives the route-scheduled mission from the mission scheduler 2300, and each robot (1000A, 1000B, 1000N) performs the route-scheduled mission according to the route-scheduled mission.
  • a movement path for movement that is, a global path, can be created and provided to each robot. In creating the global path, the FMS 2400 may consider not only obstacles within the site but also the locations of other robots.
  • Verifying the field operability (or field adaptability) of the robot 1000 by actually putting it into the field may be expensive in terms of time or money. there is. Instead, if the on-site operability of the robot can be virtually verified, the cost can be greatly reduced.
  • Figure 4 shows a virtual verification system for virtually verifying the field operability of a robot according to an embodiment of the present disclosure.
  • the virtual verification system may include a robot simulation system 3000 and a robot information server 6000.
  • the robot simulation system 3000 may be based on Hardware-in-the-Loop (HIL) simulation (HILS).
  • HIL Hardware-in-the-Loop
  • the robot simulation system 3000 includes hardware boards (4000A, 4000B) that can be mounted on the robots (1000A, 1000B, ...) for the operation of the robots (1000A, 1000B, ). It can be included.
  • the hardware board may be a printed circuit board (PCB) that can be mounted on the robots (1000A, 1000B, ...) without additional software changes once virtual verification through this system is completed. That is, a virtual robot for verifying the robot can be implemented through the hardware boards 4000A and 4000B.
  • the robot simulation system 3000 may include N hardware boards each corresponding to the N robots.
  • the first hardware board 4000A is for the first robot 1000A
  • the second hardware board 4000B is for the second robot 1000B. Since the N hardware boards have the same operation, the hardware boards 4000A and 4000B will be described using the first hardware board 4000A as an example.
  • the hardware board 4000A may include a navigation board 4100A and a user interface board 4200A.
  • the navigation board 4100A is a board mainly responsible for autonomous driving of the robot 1000, and determines the starting position of the robot 1000 based on the obstacle map and sensor information sensed in real time by the sensor module 100. It can play a role in controlling movement from to the target location while avoiding obstacles and collisions. Software for this may be mounted on the navigation board (4100A). The software of the navigation board 4100A can generate robot driving information, such as robot wheel drive information, and provide it to the robot simulator 5000A, which will be described later.
  • the user interface board (4200A) is mainly for communication between a user (or robot operator) and the robot (1000A), outputting information to the user, providing a menu for receiving user commands, and manipulating the menu. It can be responsible for receiving user commands input through . Software for this may be mounted on the user interface board (4200A).
  • the hardware board 4000A may include at least one communication port for communicating with the outside.
  • the hardware board 4000A has a LAN (Local Area Network) port 4110A, a CAN (Controller Area Network) port 4120A, and an Android Debug Bridge (ADB) port 4125A as the communication ports.
  • LAN Local Area Network
  • CAN Controller Area Network
  • ADB Android Debug Bridge
  • the LAN port 4110A is provided on the navigation board 4100A and can serve as a communication port for transmitting and receiving data necessary for autonomous driving of the robot 1000A.
  • virtual data such as lidar and camera information for autonomous driving and navigation control signals can be communicated through the LAN port 4110A.
  • virtual data required for autonomous driving can be provided to the navigation board (4100A) through the LAN port (4110A).
  • the CAN port 4120A is provided on the user interface board 4200A and can serve as a communication port for transmitting and receiving data from batteries and CAN interface-based sensors.
  • virtual data from batteries and CAN interface-based sensors can be provided to the user interface board (4200A) through the CAN port (4120A).
  • the ADB port 4125A is a type of USB (Universal Serial Bus) port provided on the user interface board 4200A and is a communication port for transmitting and receiving data for screen output on a display that can be provided on the robot 1000A. can play a role.
  • USB Universal Serial Bus
  • the hardware board 4000A can communicate with a robot simulator 5000A (or a computer 5000 on which the robot simulator 5000A program is installed) for controlling it (or the robot 1000A), for example, via USB. .
  • An example of the robot simulator program is RSIM (Rice Simulator for ILP (Instruction-Level Parallelism) Multiprocessors), but is not limited thereto.
  • a plurality of robot simulators (5000A, 5000B, ...) are responsible for one-to-one communication with the plurality of robots (1000A, 1000B, ...) (or the plurality of hardware boards (4000A, 4000B, ...)). It may be provided in the robot simulation system 3000.
  • the user (or operator) of the robot 1000A can operate the robot 1000A and obtain various information about the robot 1000A through the robot simulator 5000.
  • the robot simulation system 3000 can communicate with the control system 2000.
  • the control system 2000 is as described in FIG. 3.
  • the navigation board 4100A of the hardware board 4000A may communicate with the control system 2000 through wireless communication, such as Wi-Fi communication.
  • the robot simulation system 3000 can communicate with the robot information server 6000.
  • the robot information server 6000 receives and collects information about each robot (1000A, 1000B, etc.) from each simulator (5000A, 5000B, etc.) in the robot simulation system 3000 and returns it to each simulator ( 5000A, 5000B, etc.). Information about each robot and the overall robot information will be explained later.
  • Figure 5 shows a modification of the robot simulation system of Figure 4.
  • the plurality of robot simulators (5000A, 5000B, ...) and the plurality of hardware boards (4000A, 4000B, ...) can communicate through the remote control server (7000).
  • the first robot simulator (5000A) communicates with the first hardware board (4000A) through the remote control server 7000 and a first USB hub (7100A) connected to the remote control server 7000
  • the second robot simulator (5000B) can communicate with the second hardware board (4000B) through the remote control server (7000) and a second USB hub (7100B) connected to the remote control server (7000).
  • the remote control server 7000 allows communication between the hardware board and the simulator remotely regardless of location.
  • FIG. 6 is a block diagram for explaining the robot simulator of FIG. 4.
  • FIG. 7 shows a three-dimensional virtual space that can be created by the robot simulator of FIG. 4.
  • the robot simulator will be described using the first robot simulator 5000A as an example.
  • the simulator 5000A may communicate with the hardware board 4000A through a first interface 5510. At this time, as described above, the simulator (5000A) may communicate with the hardware board (4000A) through the remote control server (7000) or directly with the hardware board (4000A).
  • the simulator (5000A) can communicate with the robot information server (6000) through the second interface (5520).
  • the simulator 5000A may include a virtual space module 5100, a virtual sensor module 5200, a virtual robot module 5300, and an additional function module 5400.
  • the virtual space module 5100 receives two-dimensional map information mounted on the robot 1000A as shown in (7-1) of FIG. 7 from the navigation board 4100A of the hardware board 4000A. Based on this, a three-dimensional virtual space as shown in (7-2) of FIG. 7 can be created.
  • the three-dimensional virtual space may represent a site (eg, a logistics center) where the robot 1000A is operated.
  • the virtual sensor module 5200 generates virtual sensing data (e.g., virtual LIDAR for autonomous driving, camera information, etc.) for the robot 1000A for virtual verification of the robot 1000A. It can be provided as the hardware board (4000A).
  • the virtual sensing data may be provided to the navigation board (4100A) through the LAN port (4110A), or may be provided to the navigation board (4100A) through the user interface board (4200A) through the CAN port (4120A). You can.
  • the navigation board 4100A can utilize the virtual sensing data for virtual autonomous driving of the robot 1000A. That is, the hardware board 4000A may recognize the virtual sensing data as actual sensing data actually sensed by the robot 1000A.
  • the robot simulation system 3000 can verify the field operability of the robot 1000A based on the virtual sensing data.
  • the virtual robot module 5300 is used to determine at least one of the type and characteristics of the robot 1000A.
  • the robot simulation system 3000 can more accurately verify the field operability of the robot 1000A by allowing at least one of the type and characteristics to be determined through the virtual robot module 5300.
  • the additional function module 5400 based on the entire robot information received from the robot information server 6000, selects the robot in charge of the simulator 5000A in the three-dimensional virtual space, that is, the first robot 1000A.
  • other robots that is, the second robot 1000B and the third robot 1000C, and obstacles OB that are not displayed in the two-dimensional map information can be displayed at each corresponding location.
  • the obstacle OB may be a virtual obstacle that is virtually sensed by any one of the first robot 1000A, the second robot 1000B, and the third robot 1000C.
  • the additional function module 5400 may be responsible for the software update function of each board of the hardware board 4000A.
  • Figure 8 is a communication flowchart between the simulators of Figure 4 and the robot information server.
  • the N simulators (5000A, 5000B, ...) may each transmit a connection request to the robot information server 6000 [S81].
  • the connection request transmission is performed when the first connection is made between each simulator and the robot information server 6000, and simulators already connected to the robot information server 6000 do not need to transmit the connection request.
  • the robot information server 6000 may transmit the unique number of each robot or each simulator while responding for connection approval to each simulator requesting a connection [S82].
  • the N simulators (5000A, 5000B, ...) can each transmit information about the robots in charge to the robot information server 6000 as individual robot information [S83]. .
  • the robot information server 6000 collects information on all robots received from the N simulators (5000A, 5000B, ...) and converts it into total robot information for the N simulators (5000A, 5000B, . ..) can be provided to each [S84].
  • the entire robot information may be provided to all of the N simulators,
  • Steps S83 and S84 may be repeated at predetermined intervals while the virtual verification is in progress. 8 illustrates that steps S83 and S84 are repeated as steps S85 and S86 after a first period (eg, 20 ms).
  • Figure 9 shows an example of individual robot information and overall robot information according to an embodiment of the present disclosure.
  • (9-1) in FIG. 9 is an example of individual robot information transmitted by each simulator (5000A, 5000B, ...) to the robot information server 6000.
  • the individual robot information includes i) the robot's name and unique number, ii) the robot's X, Y, and Z coordinates (i.e., location information), and iii) the robot's rotation X, rotation Y, and rotation Z (i.e., direction information). , and iv) may include type information of the cart connected to the robot.
  • the individual robot information may include information about the cart as shown in (9-2) of FIG. 9.
  • the information about the cart may include rotation X, rotation Y, and rotation Z of the cart robot.
  • the individual robot information may include information about the obstacle as shown in (9-3) of FIG. 9.
  • the information about the obstacle includes i) the name and type of the obstacle, ii) the horizontal, vertical, and depth size of the obstacle, iii) the X, Y, and Z coordinates of the obstacle, and iv) the rotation X, rotation Y, and rotation of the obstacle. May include Z.
  • (9-4) in FIG. 9 is an example of total robot information provided by the robot information server 6000 to each simulator (5000A, 5000B, ).
  • the robot information server 6000 can store the individual robot information in a string type, convert it into array-type overall robot information, and then transmit it to each simulator (5000A, 5000B, ).
  • 10 and 11 are examples of a user interface displayed on a robot simulator according to an embodiment of the present disclosure.
  • the user interface 8000 may include a virtual space area 8100, a menu area 8200, and a robot type selection area 8300.
  • the three-dimensional virtual space as shown in (7-1) of FIG. 7 may be displayed in the virtual space area 8100.
  • menus for setting and selecting functions of the simulators (5000A, 5000B, ...) may be displayed.
  • menus for selecting the type of robot to be virtually verified through the simulator (5000A, 5000B, ...) (e.g., stackable type, towed type) can be displayed. there is.
  • At least one pop-up window can be displayed on the user interface 8000 through menu manipulation in the menu area 8200.
  • the at least one pop-up window may include a navigation monitor window 8400, a robot connection control window 8500, a robot user interface window 8600, and a recording and playback window 8700.
  • the navigation monitor window 8400 may display various information regarding the autonomous driving of the robot handled by the robot simulator (5000A, 5000B, ...) and a menu regarding settings and functions for this.
  • the robot connection control window 8500 may display various information regarding connection control with robots handled by the robot simulators (5000A, 5000B, %) and menus regarding settings and functions for this.
  • the robot display window 8600 may display a robot user interface (i.e., robot screen) that can be displayed on the display (not shown) of the robot itself, which is in charge of the robot simulators (5000A, 5000B, ).
  • the robot user interface is a user interface for an operator working with the robot to control the robot.
  • the robot simulators 5000A, 5000B,... The user monitors various information about the robot through the robot user interface displayed on the robot display window 8600 and inputs a predetermined command (for example, a command to move to the destination) on behalf of the operator. It may be possible.
  • the recording and playback window 8700 may display menus related to settings and functions for recording and playing the robot virtual verification process through the robot simulators (5000A, 5000B, ).
  • Computer-readable media includes all types of recording devices that store data that can be read by a computer system. Examples of computer-readable media include HDD (Hard Disk Drive), SSD (Solid State Disk), SDD (Silicon Disk Drive), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. It also includes those implemented in the form of carrier waves (e.g., transmission via the Internet). Accordingly, the above detailed description should not be construed as restrictive in all respects and should be considered illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

본 개시는 가상 검증 환경을 통해 가상으로 로봇의 현장 동작성 또는 적합성을 검증하는 방법 및 이를 위한 시스템에 관한 것이다. 본 개시는, 제 1 로봇에 장착될 수 있는 제 1 내비게이션 보드 및 제 1 유저인터페이스 보드를 포함하는 제 1 하드웨어 기판, 제 2 로봇에 장착될 수 있는 제 2 내비게이션 보드 및 제 2 유저인터페이스 보드를 포함하는 제 2 하드웨어 기판, 제 1 하드웨어 기판과 통신하여 제 1 로봇의 현장 동작성을 가상으로 검증하기 위한 제 1 시뮬레이터, 제 2 하드웨어 기판과 통신하여 제 2 로봇의 현장 동작성을 가상으로 검증하기 위한 제 2 시뮬레이터, 및 제 1 시뮬레이터 및 제 2 시뮬레이터로부터 제 1 로봇의 제 1 개별 로봇 정보 및 제 2 로봇의 제 2 개별 로봇 정보를 수신하여 전체 로봇 정보를 생성하고, 상기 생성된 전체 로봇 정보를 제 1 시뮬레이터 및 제 2 시뮬레이터 각각에 전송하는 로봇 정보 서버를 포함하는 로봇 가상 검증 시스템을 제공할 수 있다.

Description

로봇 가상 검증 방법 및 이를 위한 시스템
본 개시는 로봇의 성능을 가상으로 검증하기 위한 방법 및 이를 위한 시스템에 관한 것이다.
로봇은 산업용으로 개발되어 공장 자동화의 일 부분을 담당하여 왔다. 최근에는 로봇을 응용한 분야가 더욱 확대되어, 물류 로봇, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다. 이러한 로봇 중에서 자력으로 주행이 가능한 것도 있다.
일반적으로 로봇을 개발하기 위해서는 로봇을 구성하는 하드웨어와 이를 제어하는 소프트웨어를 동시에 구현하여야 하며, 이와 같이 개발된 로봇은 현장에서의 동작성 또는 적합성 검증이 필요하다. 하드웨어적으로 구현된 로봇을 제어하는 소프트웨어에 에러가 있거나 실제 하드웨어의 구조 및/또는 현장에서의 운용 조건과 부합하지 않을 때에는 로봇의 하드웨어 및/또는 소프트웨어를 다시 설계하여야 한다. 로봇의 하드웨어 및/또는 소프트웨어의 재설계는 시간적인 측면이나 금전적인 측면에서 큰 손실을 가져올 수 있다. 따라서, 가능한 최소의 시행 착오를 통해 로봇을 완성하는 것이 중요할 수 있다.
본 개시는, 가상 검증 환경을 통해 가상으로 로봇의 현장 동작성 또는 적합성을 검증하는 방법 및 이를 위한 시스템을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해 본 개시는, 제 1 로봇에 장착될 수 있는 제 1 내비게이션 보드 및 제 1 유저인터페이스 보드를 포함하는 제 1 하드웨어 기판, 제 2 로봇에 장착될 수 있는 제 2 내비게이션 보드 및 제 2 유저인터페이스 보드를 포함하는 제 2 하드웨어 기판, 제 1 하드웨어 기판과 통신하여 제 1 로봇의 현장 동작성을 가상으로 검증하기 위한 제 1 시뮬레이터, 제 2 하드웨어 기판과 통신하여 제 2 로봇의 현장 동작성을 가상으로 검증하기 위한 제 2 시뮬레이터, 및 제 1 시뮬레이터 및 제 2 시뮬레이터로부터 제 1 로봇의 제 1 개별 로봇 정보 및 제 2 로봇의 제 2 개별 로봇 정보를 수신하여 전체 로봇 정보를 생성하고, 상기 생성된 전체 로봇 정보를 제 1 시뮬레이터 및 제 2 시뮬레이터 각각에 전송하는 로봇 정보 서버를 포함하는 로봇 가상 검증 시스템을 제공할 수 있다.
제 1 시뮬레이터는 제 1 내비게이션 보드로부터 수신하는 제 1 로봇에 탑재되는 2차원 맵 정보을 이용하여 3차원 가상공간을 생성할 수 있다.
제 1 시뮬레이터는 상기 전체 로봇 정보를 이용하여 상기 3차원 가상 공간에 제 1 로봇 및 제 2 로봇을 해당 위치에 표시할 수 있다.
제 1 시뮬레이터는 제 1 로봇 및 제 2 로봇 중 어느 하나에 의해 감지될 수 있는 가상 장애물을 상기 3차원 가상 공간에 더욱 표시할 수 있다.
상기 로봇 가상 검증 시스템은, 제 1 하드웨어 기판 및 제 1 시뮬레이터 간을 서로 연결하고 제 2 하드웨어 기판 및 제 2 시뮬레이터 간을 서로 연결하기 위한 원격제어서버를 더욱 포함할 수 있다.
제 1 하드웨어 기판은 제 1 USB 허브를 통해 상기 원격제어서버와 연결되고, 제 2 하드웨어 기판은 제 2 USB 허브를 통해 상기 원격제어서버와 연결될 수 있다.
제 1 내비게이션 보드는 자율 주행에 필요한 데이터를 송수신하기 위한 제 1 포트를 포함하고, 제 1 유저인터페이스 보드는 CAN 인터페이스 기반 센서의 데이터를 송수신하기 위한 제 2 포트와 제 1 로봇에 구비된 디스플레이에 디스플레이되는 로봇 화면에 관한 데이터를 송수신하기 위한 제 3 포트를 포함할 수 있다.
제 1 시뮬레이터는, 가상의 센싱 데이터를 생성하여 제 1 포트를 통해 제 1 내비게이션 보드에 제공하고, 제 3 포트를 통해 상기 로봇 화면에 관한 데이터를 수신하여 상기 로봇 화면을 디스플레이할 수 있다.
제 1 개별 로봇 정보 및 제 2 개별 로봇 정보는 소정 주기로 반복되어 상기 로봇 정보 서버로 전송되고, 상기 생성된 전체 로봇 정보는 상기 소정 주기로 반복되어 제 1 시뮬레이터 및 제 2 시뮬레이터 각각에 전송될 수 있다.
제 1 개별 로봇 정보 및 제 2 개별 로봇 정보는 해당 로봇의 위치 정보 및 방향 정보와, 해당 로봇에 의해 감지된 장애물에 관한 정보를 포함할 수 있다.
또한, 상기 목적을 달성하기 위해 본 개시는, 제 1 로봇의 현장 동작성을 가상으로 검증하기 위해 제 1 시뮬레이터가 제 1 로봇에 장착될 수 있는 제 1 내비게이션 보드 및 제 1 유저인터페이스 보드를 포함하는 제 1 하드웨어 기판과 통신하는 단계, 제 2 로봇의 현장 동작성을 가상으로 검증하기 위해 제 2 시뮬레이터가 제 2 로봇에 장착될 수 있는 제 2 내비게이션 보드 및 제 2 유저인터페이스 보드를 포함하는 제 2 하드웨어 기판과 통신하는 단계, 및 상기 로봇 정보 서버가 제 1 시뮬레이터 및 제 2 시뮬레이터로부터 제 1 로봇의 제 1 개별 로봇 정보 및 제 2 로봇의 제 2 개별 로봇 정보를 수신하여 전체 로봇 정보를 생성하고, 상기 생성된 전체 로봇 정보를 제 1 시뮬레이터 및 제 2 시뮬레이터 각각에 전송하는 단계를 포함하는 로봇 가상 검증 방법을 제공할 수 있다.
본 개시에 따른 로봇 가상 검증 방법 및 이를 위한 시스템의 효과에 대해 설명하면 다음과 같다.
본 개시의 실시 예들 중 적어도 하나에 의하면, 가상 검증 환경을 통해 가상으로 로봇의 현장 동작성 또는 적합성을 검증할 수 있어서 시간적인 측면이나 금전적인 측면에서 최소한 비용으로 로봇을 완성할 수 있다는 장점이 있다.
도 1은 본 개시의 일 실시예에 의한 로봇을 구성하는 구성요소를 보여주는 블록도이다.
도 2는 본 개시의 일실시예에 따른 로봇 이동 수행을 위한 순서도이다.
도 3은 본 개시의 일실시예에 따른 관제 서버의 구성을 도시한다.
도 4는 본 개시의 일실시예에 따라 로봇의 현장 동작성을 가상으로 검증하기 위한 가상 검증 시스템을 도시한다.
도 5는 도 4의 로봇 시뮬레이션 시스템의 변형예를 도시한다.
도 6은 도 4의 로봇 시뮬레이터를 설명하기 위한 블록도이다.
도 7은 도 4의 로봇 시뮬레이터에 의해 생성될 수 있는 3차원 가상공간을 도시한다.
도 8은 도 4의 시뮬레이터들과 로봇정보서버 간의 통신 순서도이다.
도 9는 본 개시의 일실시예에 따른 개별 로봇 정보 및 전체 로봇 정보의 예시를 도시한다.
도 10 및 도 11을 본 개시의 일실시예에 따른 로봇 시뮬레이터에 디스플레이되는 유저인터페이스의 예시이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
이들 구성요소들은 각각 별도의 개별 하드웨어 모듈로 구성되거나 둘 이상의 하드웨어 모듈로 구현될 수도 있고, 둘 이상의 구성요소들이 하나의 하드웨어 모듈로 구현될 수도 있으며, 경우에 따라서는 소프트웨어로도 구현될 수 있음은 물론이다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1을 참조하여, 본 개시의 일실시예에 따른 로봇을 구성하는 구성요소에 대해 설명하겠다. 도 1은 본 개시의 일 실시예에 의한 로봇을 구성하는 구성요소를 보여주는 블록도이다.
로봇(1000)은 외부에 배치되는 이동 객체 혹은 고정 객체를 센싱하는 센싱모듈(100), 다양한 종류의 맵을 저장하는 맵 저장부(200), 로봇의 이동을 제어하는 이동부(300), 로봇의 소정의 기능을 수행하는 기능부(400), 다른 로봇 또는 서버와 맵 또는 이동 객체, 고정 객체, 혹은 외부의 변동되는 상황에 관한 정보를 송수신하는 통신부(500), 그리고 이들 각각의 구성요소들을 제어하는 제어부(900)를 할 수 있다.
도 1에서는 로봇의 구성을 계층적으로 구성하고 있으나, 이는 로봇의 구성요소들을 논리적으로 나타낸 것이다. 물리적 구성인 경우에는 이와 다를 수 있다. 즉, 하나의 물리적 구성요소에 다수의 논리적 구성요소가 포함되거나, 다수의 물리적 구성요소가 하나의 논리적 구성요소를 구현할 수 있다.
센싱모듈(100)는 장애물과 같은 외부의 객체들을 센싱하여 센싱한 정보를 제어부(900)에게 제공한다. 일 실시예로 센싱모듈(100)는 로봇의 현재 위치에서 벽, 유리, 금속성 문 등 외부 객체들의 재질과 거리를 신호의 강도(intensity)와 반사된 시간(속도)로 산출하는 라이다(Lidar) 센싱부(110)를 포함할 수 있다. 또한, 센싱모듈(100)는 로봇(1000)으로부터 일정 거리 내에 배치된 객체들의 온도 정보를 산출하는 온도 센싱부(120)를 포함할 수 있다. 온도 센싱부(120)의 일 실시예는 로봇(1000)으로부터 일정 거리 내에 배치된 사물의 온도, 특히 사람들의 체온을 감지하는 적외선 센서를 포함한다. 적외선 어레이 센서(Infrared Array sensor)로 온도 센싱부(120)를 구성할 경우 접촉 없이도 객체의 온도를 센싱할 수 있다. 적외선 센서 혹은 적외선 어레이 센서가 온도 센싱부(120)를 구성할 경우, 이동 객체가 사람인지 여부를 확인하는 주요한 정보를 제공할 수 있다.
뿐만 아니라, 센싱모듈(100)은 전술한 센싱부들 외에 로봇과 외부 객체와의 뎁스 정보를 산출하는 뎁스 센싱부(130) 및 비전 센싱부(140)를 더 포함할 수 있다.
뎁스 센싱부(130)는 뎁스 카메라를 포함할 수 있다. 뎁스 센싱부(130)는 로봇과 외부 객체 사이의 거리를 판단할 수 있도록 하는데, 특히 라이다 센싱부(110)와 결합하여 외부 객체와 로봇 사이의 거리의 센싱 정확도를 높일 수 있다.
비전 센싱부(140)는 카메라를 포함할 수 있다. 비전 센싱부(140)는 로봇의 주변의 객체들의 이미지를 촬영할 수 있다. 특히, 로봇은 고정 객체와 같이 변화가 많지 않은 이미지와 이동 객체가 배치된 이미지를 구분하여 외부의 객체가 이동 객체인지를 식별할 수 있다.
그 외에도 열감지 센싱부, 초음파 센싱부 등을 일 실시예로 하는 보조 센싱부(145)가 다수 배치될 수 있다. 이들 보조 센싱부들은 맵을 생성하거나 외부 객체를 센싱하는데 필요한 보조적인 센싱 정보를 제공한다. 또한, 이들 보조 센싱부들 역시 로봇이 주행함에 있어 외부에 배치되는 객체를 센싱하여 정보를 제공한다.
센싱 데이터 분석부(150)는 다수의 센싱부들이 센싱한 정보들을 분석하여 이를 제어부(900)에게 전달한다. 예를 들어 다수의 센싱부들에 의해 외부에 배치된 객체가 감지될 경우, 해당 객체의 특성과 거리에 대한 정보를 각각의 센싱부가 제공할 수 있다. 센싱 데이터 분석부(150)는 이들의 값을 조합하여 산출하고 이를 제어부(900)에게 전달할 수 있다.
맵 저장부(200)는 로봇이 이동하는 공간에 배치되는 객체들의 정보를 저장한다. 맵 저장부(200)는 로봇이 이동하는 전체 공간에 배치되는 객체들 중에서 변동이 없거나 혹은 고정되어 배치되는 고정 객체들에 대한 정보를 저장하는 고정맵(210)을 포함할 수 있다. 고정맵(210)은 공간에 따라 필수적으로 하나가 포함될 수 있다. 고정맵(210)은 해당 공간에서 가장 변동이 낮은 객체들만 배치된 것이므로, 로봇이 해당 공간을 이동할 경우 맵(210)에서 지시하는 객체들보다는 더 많은 객체를 센싱할 수 있다.
고정맵(210)은 고정 객체들의 위치 정보를 필수적으로 저장하며, 추가적으로 고정 객체들의 특성, 예를 들어 재질 정보, 색상 정보, 혹은 기타 높이 정보 등을 포함할 수 있다. 이러한 추가적인 정보들은 고정 객체들에 변동 사항이 발생한 경우 로봇이 보다 쉽게 확인할 수 있도록 한다.
또한 로봇은 이동하는 과정에서 주변을 센싱하여 임시맵(220)을 생성하여 이를 과거 저장했던 전체 공간에 대한 고정맵(210)과 비교할 수 있다. 비교 결과 로봇은 현재의 위치를 확인할 수 있다.
이동부(300)는 바퀴와 같이 로봇(1000)을 이동시키는 수단으로, 제어부(900)의 제어에 따라 로봇(1000)을 이동시킨다. 이때, 제어부(900)는 맵 저장부(200)에 저장된 영역에서 로봇(1000)의 현재 위치를 확인하여 이동부(300)에 이동 신호를 제공할 수 있다. 제어부(900)는 맵 저장부(200)에 저장된 다양한 정보들을 이용하여 경로를 실시간으로 생성하거나 혹은 이동 과정에서 경로를 생성할 수 있다.
이동부(300)는 주행거리 산출부(310)와 주행거리 보정부(320)를 포함할 수 있다. 주행거리 산출부(310)는 이동부(300)가 이동한 거리에 대한 정보를 제공할 수 있다. 일 실시예로 특정 지점에서 출발한 로봇(1000)이 이동한 누적 거리를 제공할 수 있다. 또는 로봇(1000)이 특정한 지점에서 회전한 후 직선으로 이동한 누적 거리를 제공할 수 있다. 또는 로봇(1000)이 특정한 시간부터 이동한 누적 거리를 제공할 수 있다.
또한, 본 개시의 일 실시예에 의하면 누적 거리뿐만 아니라 일정한 단위 내에 이동 거리에 대한 정보를 주행거리 산출부(310)가 제공할 수 있다. 주행거리 산출부(310)는 이동부(300)의 특성에 따라 다양하게 거리를 산출할 수 있는데, 이동부(300)가 바퀴인 경우 바퀴의 회전 횟수를 카운팅하여 주행 거리를 산출할 수 있다.
주행거리 보정부(320)는 주행거리 산출부(310)가 산출한 거리가 실제 로봇(1000)의 센싱 모듈(100)이 산출한 거리 정보와 상이한 경우 주행 거리 산출부(310)가 산출한 거리 정보를 보정한다. 또한, 주행 거리 산출부(310)에서 오차가 누적하여 발생할 경우 주행거리 산출부(310)의 주행거리 산출 로직을 변경하도록 제어부(900) 또는 이동부(300)에게 통지할 수 있다.
기능부(400)는 로봇의 특화된 기능을 제공하는 것을 의미한다. 예를 들어, 청소 로봇인 경우 기능부(400)는 청소에 필요한 구성요소를 포함한다. 안내 로봇인 경우 기능부(400)는 안내에 필요한 구성요소를 포함한다. 보안로봇인 경우 기능부(400)는 보안에 필요한 구성요소를 포함한다. 기능부(400)는 로봇이 제공하는 기능에 따라 다양한 구성요소를 포함할 수 있으며, 본 발명이 이에 한정되는 것은 아니다.
로봇(1000)의 제어부(900)는 맵 저장부(200)의 맵을 생성하거나 업데이트할 수 있다. 또한, 제어부(900)는 주행 과정에서 센싱 모듈(100)이 제공하는 객체의 정보를 식별하여 이동 객체인지 고정 객체인지를 구분하여 로봇(1000)의 주행을 제어할 수 있다.
정리하면, 로봇(1000)의 제어부(900)는 센싱 모듈(100)이 외부에 배치된 객체를 센싱하면, 센싱된 객체의 특성 정보에 기반하여 센싱된 객체 중에서 이동 객체를 식별하여, 이동 객체를 제외하고 상기 센싱 모듈이 고정 객체로 센싱한 정보에 기반하여 로봇의 현재 위치를 설정할 수 있다.
이하, 도 2를 참조하여, 본 개시의 일실시예에 따른 로봇 이동 수행에 대해 설명하겠다. 도 2는 본 개시의 일실시예에 따른 로봇 이동 수행을 위한 순서도이다.
상기 로봇(1000)가 목표 위치로 이동하기 위한 전역 경로 계획(global path planning)이 수립될 수 있다. 여기서 전역 경로 계획이라 함은, 장애물 맵에 기반하여 출발 위치에서 목표 위치까지 장애물과 충돌을 피하면서 빠르게 갈 수 있는 경로를 계획하는 것을 의미한다.
상기 전역 경로 계획은 관제 시스템(또는 관제 서버)(도 3의 2000)에 의해 수립되어 상기 로봇(1000)이 수신하는 것일 수도 있다. 또는 상기 전역 경로 계획은, 상기 로봇(1000)이 상기 관제 서버로부터 수신한 목표 위치에 관한 정보 및 상기 로봇(1000)이 운용되는 현장(예를 들면, 물류 센터 등)의 맵 정보에 기반하여 자체적으로 수립한 것일 수도 있다. 상기 맵 정보는 상기 현장 내의 장애물(및/또는 이동가능 공간)이 표시된 장애물 맵을 포함할 수 있다. 상기 장애물 맵은 정적 장애물 뿐만 아니라 동적 장애물에 관한 정보를 포함할 수도 있다.
그 다음, 상기 로봇(1000)(즉, 상기 제어부(900))은 지역 경로 계획 (local path planning)을 수립할 수 있다[S22]. 상기 지역 경로 계획은, 상기 로봇(1000)이 상기 전역 경로에 따라 이동할 때 상기 장애물 맵에는 나와 있지 않은 장애물이나 이동 장애물을 피하기 위하여 상기 센서 모듈(100)에 의해 실시간으로 센싱되는 센서 정보를 이용하여 국부적으로 경로를 재생성하는 것이다.
그 다음, 상기 로봇(1000)은 상기 이동부(300)을 통해 상기 전역 경로 계획 및 상기 지역 경로 계획에 기반하여 상기 목표 위치로 이동할 수 있다[S23].
이하, 도 3을 더욱 참조하여, 상기 관제 시스템 (2000)의 구성에 대해 더욱 구체적으로 살펴 보겠다. 도 3은 본 개시의 일실시예에 따른 관제 시스템의 구성을 도시한다.
상기 관제 시스템(2000)는 WMS(Warehouse Management System)(2100), MCS(Material Control System)(2200), 미션 스케쥴러(2300), 및 FMS(Fleet Management System)(2400)을 포함할 수 있다.
상기 WMS(2100)는 물류 시스템으로서, 상기 적재되어 있는 물품들의 위치와 상기 적재된 물품들 중 픽업해서 포장을 위해 이송해야 하는 적어도 하나의 물품에 대한 오더 리스트를 관리할 수 있다. 하나의 오더는 한 고객이 주문한 적어도 하나의 물품에 대한 리스트 및 상기 적어도 하나의 물품의 적재 위치를 의미할 수 있다. 예를 들면, 제 1 고객이 주문한 적어도 하나의 물품 및 그 위치에 관한 제 1 리스트는 제 1 오더로 관리되고, 제 2 고객이 주문한 적어도 하나의 물품 및 그 위치에 관한 제 2 리스트는 제 2 오더로 관리될 수 있다. 제 1 오더 및 제 2 오더를 포함하는 복수의 오더가 오더 리스트로서 관리될 수 있다.
상기 MCS(2200)는 상기 WMS(2100)로부터 상기 오더 리스트를 수신하여, 상기 주문된 물품을 픽업하여 이송하기 위한 미션을 생성할 수 있다. 상기 미션은 적어도 하나의 오더로 구성될 수 있다. 예를 들어 제 1 리스트의 물품의 적재 위치와 제 2 리스트의 물품의 적재 위치가 서로 유사성이 있으면 제 1 오더 및 제 2 오더가 하나의 미션으로 생성되고, 제 1 리스트의 물품의 적재 위치와 제 2 리스트의 적재 위치가 서로 유사성이 없다면 제 1 오더 및 제 2 오더는 각각 다른 미션으로 생성될 수 있다.
상기 미션 스케쥴러(2300)는 상기 MCS(2200)로부터 상기 생성된 미션을 수신하여 상기 미션 내의 적어도 하나의 물품을 픽업하여 이송하는 동선(또는 순서)을 스케쥴링하고 상기 동선 스케쥴링된 미션을 로봇에 할당할 수 있다.
상기 FMS(2400)는 상기 미션 스케쥴러(2300)로부터 상기 동선 스케쥴링된 미션을 수신하고, 각 로봇(1000A, 1000B, 쪋, 1000N)이 상기 동선 스케쥴링된 미션을 수행하기 위해 상기 동선 스케쥴링된 미션에 따라 이동하기 위한 이동 경로, 즉 전역 경로를 생성하여 각 로봇에 제공할 수 있다. 상기 전역 경로의 생성함에 있어, 상기 FMS(2400)는 상기 현장 내의 장애물 뿐만 아니라 다른 로봇들의 위치도 함께 고려할 수 있다.
상기 로봇(1000)을 실제로 현장(예를 들면, 물류 센터)에 투입하여 상기 로봇(1000)의 현장 동작성 (또는 현장 적응성)을 검증하는 것은 시간적인 측면이나 금전적인 측면에서 많은 비용이 소요될 수 있다. 대신에 상기 로봇의 현장 동작성을 가상으로 검증할 수 있다면 그 비용이 훨씬 절감할 수 있다. 이하, 도 4를 참조하여, 로봇의 현장 동작성을 가상으로 검증하기 위한 시스템에 대해 설명하겠다. 도 4는 본 개시의 일실시예에 따라 로봇의 현장 동작성을 가상으로 검증하기 위한 가상 검증 시스템을 도시한다.
상기 가상 검증 시스템은 로봇 시뮬레이션 시스템(3000)과 로봇 정보 서버(6000)를 포함할 수 있다.
먼저 상기 로봇 시뮬레이션 시스템(3000)에 대해 설명하겠다.
상기 로봇 시뮬레이션 시스템(3000)은 HILS(Hardware-in-the-Loop (HIL) simulation) 기반일 수 있다. 이를 위해 상기 로봇 시뮬레이션 시스템(3000)은 살제로 상기 로봇(1000A, 1000B, ...)의 동작을 위해 상기 로봇(1000A, 1000B, ...) 장착될 수 있는 하드웨어 기판(4000A, 4000B)을 포함할 수 있다. 상기 하드웨어 기판은 본 시스템을 통한 가상 검증이 완료되면 별도의 소프트웨어 변경 없이 그대로 상기 로봇(1000A, 1000B, ...)에 탑재될 수 있는 PCB(Printed Circuit Board)일 수 있다. 즉, 상기 하드웨어 기판(4000A, 4000B)을 통해 상기 로봇을 검증하기 위한 가상의 로봇을 구현할 수 있다. 상기 가상 검증 시스템을 통해 N개의 로봇을 현장 동작성을 검증하는 경우, 상기 로봇 시뮬레이션 시스템(3000)은 상기 N개의 로봇에 각각 대응되는 N개의 하드웨어 기판을 포함할 수 있다. 도 4에서는 제 1 하드웨어 기판(4000A)는 제 1 로봇(1000A)을 위한 것이고, 제 2 하드웨어 기판(4000B)는 제 2 로봇(1000B)을 위한 것임이 예시되어 있다. 상기 N 개의 하드웨어 기판들을 서로 동작이 동일하므로, 제 1 하드웨어 기판(4000A)을 예시로 하여 상기 하드웨어 기판(4000A, 4000B)을 설명하겠다.
상기 하드웨어 기판(4000A)은 내비게이션 보드(4100A)와 유저인터페이스 보드(4200A)를 포함할 수 있다.
상기 내비게이션 보드(4100A)는 주로 상기 로봇(1000)의 자율 주행을 담당하는 보드로서, 장애물 맵 및 상기 센서 모듈(100)에 의해 실시간으로 센싱되는 센서 정보에 기반하여 상기 로봇(1000)이 출발 위치에서 목표 위치까지 장애물과 충돌을 피하면서 이동하도록 제어하는 역할을 할 수 있다. 이를 위한 소프트웨어가 상기 내비게이션 보드(4100A)에 탑재되어 있을 수 있다. 상기 내비게이션 보드(4100A)의 소트프웨어는 로봇의 휠 구동 정보와 같은 로봇의 주행 정보를 생성하여 후술되는 로봇 시뮬레이터(5000A)에 제공될 수 있다.
상기 유저인터페이스 보드(4200A)는 주로 사용자(또는 로봇 오퍼레이터)와 상기 로봇(1000A) 간의 커뮤니케이션을 위한 것으로서, 사용자에게 제공하기 위한 정보 출력, 사용자의 명령을 수신하기 위한 메뉴 제공, 및 상기 메뉴의 조작을 통해 입력되는 사용자의 명령의 수신을 담당하는 역할을 할 수 있다. 이를 위한 소프트웨어가 상기 유저인터페이스 보드(4200A)에 탑재되어 있을 수 있다.
상기 하드웨어 기판(4000A)은 외부와 통신하기 위한 적어도 하나의 통신 포트를 포함할 수 있다. 도 4에서는, 상기 하드웨어 기판(4000A)이 상기 통신 포트로서 랜(LAN: Local Area Network) 포트(4110A), CAN(Controller Area Network) 포트(4120A), 및 ADB(Android Debug Bridge) 포트(4125A)를 포함하는 것이 예시되어 있으나, 상기 하드웨어 기판(4000A)이 더 많거나 적은 통신 포트를 포함할 수 있음은 물론이다.
상기 랜 포트(4110A)는 상기 내비게이션 보드(4100A)에 구비되어 상기 로봇(1000A)의 자율 주행에 필요한 데이터를 송수신하는 통신 포트 역할을 할 수 있다. 예를 들면, 자율 주행을 위한 라이다, 카메라 정보 등의 가상 데이터와 내비게이션 제어 신호가 상기 랜 포트(4110A)를 통해 통신될 수 있다. 본 시스템에서는 상기 랜 포트(4110A)를 통해 상기 자율 주행에 필요한 가상 데이터가 상기 내비게이션 보드(4100A)에 제공될 수 있다.
상기 CAN 포트(4120A)는 상기 유저인터페이스 보드(4200A)에 구비되어, 배터리 및 CAN 인터페이스 기반 센서들의 데이터 등을 송수신하는 통신 포트 역할을 할 수 있다. 본 시스템에서는 상기 CAN 포트(4120A)를 통해 배터리 및 CAN 인터페이스 기반 센서들의 가상 데이터가 상기 유저인터페이스 보드(4200A)에 제공될 수 있다.
상기 ADB 포트(4125A)는 일종의 USB(Universal Serial Bus) 포트로서 상기 유저인터페이스 보드(4200A)에 구비되어, 상기 로봇(1000A)에 구비될 수 있는 디스플레이의 화면 출력을 위한 데이터 등을 송수신하는 통신 포트 역할을 할 수 있다.
상기 하드웨어 기판(4000A)은 이를 (또는 상기 로봇(1000A)을) 제어하기 위한 로봇 시뮬레이터(5000A) (또는 상기 로봇 시뮬레이터(5000A) 프로그램이 설치된 컴퓨터(5000))와 예컨대 USB 방식으로 통신될 수 있다. 상기 로봇 시뮬레이터 프로그램의 예시로는 RSIM(Rice Simulator for ILP(Instruction-Level Parallelism) Multiprocessors)가 있으나, 이에 한정되는 것은 아니다. 복수의 로봇 시뮬레이터(5000A, 5000B, ...)가 상기 복수의 로봇(1000A, 1000B, ...) (또는 상기 복수의 하드웨어 기판(4000A, 4000B, ...)을 일대일 담당하여 통신하도록 상기 로봇 시뮬레이션 시스템(3000)에 구비될 수 있다.
상기 로봇(1000A)의 사용자(또는 오퍼레이터)는 상기 로봇 시뮬레이터(5000)를 통해 상기 로봇(1000A)을 운용하고 상기 로봇(1000A)에 관한 각종 정보를 파악할 수 있다.
상기 로봇 시뮬레이션 시스템(3000)은 관제 시스템(2000)와 통신할 수 있다. 상기 관제 시스템(2000)는 도 3에서 설명된 바와 같다.
상기 하드웨어 기판(4000A)의 상기 내비게이션 보드(4100A)는 예를 들면 와이파이 통신과 같은 무선 통신을 통해 상기 관제 시스템(2000)과 통신할 수 있다.
한편, 상기 로봇 시뮬레이션 시스템(3000)는 로봇 정보 서버(6000)와 통신할 수 있다. 상기 로봇 정보 서버(6000)는 상기 로봇 시뮬레이션 시스템(3000) 내의 각 시뮬레이터(5000A, 5000B 등)로부터 각 로봇(1000A, 1000B 등)에 관한 정보를 수신하고 취합하여 이를 전체 로봇 정보로서 다시 각 시뮬레이터(5000A, 5000B 등)로 제공할 수 있다. 각 로봇에 관한 정보 및 상기 전체 로봇 정보에 대해서는 나중에 다시 설명하겠다.
도 4에서는 상기 복수의 로봇 시뮬레이터(5000A, 5000B, ...)와 상기 복수의 하드웨어 기판(4000A, 4000B, ...)가 직접 통신하는 것으로 예시되어 있다. 즉, 제 1 로봇 시뮬레이터(5000A)는 제 1 하드웨어 보드(4000A)와 직접 통신하고, 제 2 로봇 시뮬레이터(5000B)는 제 2 하드웨어 보드(4000B)와 직접 통신하는 것이 예시되어 있다.
그러나, 상기 복수의 로봇 시뮬레이터(5000A, 5000B, ...)와 상기 복수의 하드웨어 기판(4000A, 4000B, ...)가 반드시 직접 통신해야 하는 것은 아니다. 이에 대해 도 5를 더욱 참조하여 설명하겠다. 도 5는 도 4의 로봇 시뮬레이션 시스템의 변형예를 도시한다.
도 5에 도시된 바와 같이, 상기 복수의 로봇 시뮬레이터(5000A, 5000B, ...)와 상기 복수의 하드웨어 기판(4000A, 4000B, ...)가 원격제어서버(7000)을 통해 통신할 수 있다. 예를 들면, 제 1 로봇 시뮬레이터(5000A)는 상기 원격제어 서버(7000) 및 상기 원격제어서버(7000)에 통신 연결된 제 1 USB 허브(7100A)를 통해 제 1 하드웨어 보드(4000A)와 통신하고, 제 2 로봇 시뮬레이터(5000B)는 상기 원격제어 서버(7000) 및 상기 원격제어서버(7000)에 통신 연결된 제 2 USB 허브(7100B)를 통해 제 2 하드웨어 보드(4000B)와 통신할 수 있다. 상기 원격제어서버(7000)로 인해 장소에 구애되지 않고 원격으로 상기 하드웨어 보드 및 상기 시뮬레이터 간에 통신이 이루어질 수 있다.
이하, 도 6 및 도 7을 참조하여 상기 로봇 시뮬레이터(5000A)의 동작에 대해 좀더 구체적으로 살펴보겠다. 도 6은 도 4의 로봇 시뮬레이터를 설명하기 위한 블록도이다. 도 7은 도 4의 로봇 시뮬레이터에 의해 생성될 수 있는 3차원 가상공간을 도시한다.
앞서 설명한 바와 마찬가지로, 상기 N개의 하드웨어 기판에 각각 대응되는 N개의 로봇 시뮬레이터들은 서로 동작이 동일하므로, 제 1 로봇 시뮬레이터(5000A)를 예시로 하여 상기 로봇 시뮬레이터를 설명하겠다.
상기 시뮬레이터(5000A)는 제 1 인터페이스(5510)을 통해 상기 하드웨어 기판(4000A)와 통신할 수 있다. 이 때, 상기 시뮬레이터(5000A)는 상기 원격제어서버(7000)을 통해 상기 하드웨어 기판(4000A)와 통신할 수도 있고, 직접 상기 하드웨어 기판(4000A)과 통신할 수 있음은 전술한 바와 같다.
상기 시뮬레이터(5000A)는 제 2 인터페이스(5520)을 통해 상기 로봇정보서버(6000)와 통신할 수 있다.
상기 시뮬레이터(5000A)는 가상공간 모듈(5100), 가상센서 모듈(5200), 가상로봇 모듈(5300), 및 부가기능 모듈(5400)을 포함할 수 있다.
상기 가상공간 모듈(5100)은, 도 7의 (7-1)에 도시된 바와 같은 상기 로봇(1000A)에 탑재된 2차원 맵 정보를 상기 하드웨어 기판(4000A)의 상기 내비게이션 보드(4100A)로부터 수신하여 이를 기반으로 도 7의 (7-2)에 도시된 바와 같은 3차원 가상공간을 생성할 수 있다. 상기 3차원 가상 공간은 상기 로봇(1000A)이 운용되는 현장(예를 들면, 물류 센터)을 나타낼 수 있다.
상기 가상 센서 모듈(5200)은 상기 로봇(1000A)의 가상 검증을 위해 상기 로봇(1000A)을 위한 가상의 센싱 데이터(예를 들면, 자율 주행을 위한 가상의 라이다, 카메라 정보 등)를 생성하여 상기 하드웨어 기판(4000A)으로 제공할 수 있다. 상기 가상의 센싱 데이터는 상기 랜포트(4110A)를 통해 상기 내비게이션 보드(4100A)로 제공되거나, 상기 CAN 포트(4120A)를 통해 상기 유저인터페이스 보드(4200A)를 거쳐 상기 내비게이션 보드(4100A)로 제공될 수 있다. 상기 내비게이션 보드(4100A)는 상기 가상의 센싱 데이터를 상기 로봇(1000A)의 가상 자율 주행에 활용할 수 있다. 즉, 상기 하드웨어 기판(4000A)는 상기 가상의 센싱 데이터를 상기 로봇(1000A)이 실제로 센싱한 실제 센싱 데이터인 것으로 인식할 수 있다. 상기 로봇 시뮬레이션 시스템(3000)은 상기 가상의 센싱 데이터에 기반하여 상기 로봇(1000A)의 현장 동작성을 검증할 수 있다.
상기 가상 로봇 모듈(5300)은 상기 로봇(1000A)의 타입 및 특성 중 적어도 하나를 정하기 위한 것이다. 상기 로봇 시뮬레이션 시스템(3000)은 상기 가상 로봇 모듈(5300)을 통해 타입 및 특성 중 적어도 하나를 정할 수 있도록 함으로써 상기 로봇(1000A)의 현장 동작성을 더욱 정확하게 검증할 수 있다.
상기 부가기능 모듈(5400)은, 상기 로봇정보서버(6000)로부터 수신하는 상기 전체 로봇 정보에 기반하여, 상기 3차원 가상공간에서 상기 시뮬레이터(5000A)가 담당하는 로봇, 즉 제 1 로봇(1000A) 뿐만 아니라, 다른 로봇, 즉 제 2 로봇(1000B) 및 제 3 로봇(1000C)과, 상기 2차원 맵 정보에는 표시되어 있지 않은 장애물(OB)을 각각의 해당 위치에 표시할 수 있다. 상기 장애물(OB)는 제 1 로봇(1000A), 제 2 로봇(1000B), 및 제 3 로봇(1000C) 중 어느 하나에 의해 가상으로 센싱되는 가상 장애물일 수 있다. 또한, 상기 부가기능 모듈(5400)은 상기 하드웨어 기판(4000A)의 각 보드의 소프트웨어 업데이트 기능을 담당할 수 있다.
이하, 도 8을 참조하여, 상기 N개의 시뮬레이터들(5000A, 5000B, ...)과 상기 로봇정보서버(6000) 간의 송수신되는 데이터에 대해 설명하겠다. 도 8은 도 4의 시뮬레이터들과 로봇정보서버 간의 통신 순서도이다.
상기 N개의 시뮬레이터들(5000A, 5000B, ...)은 각각 상기 로봇정보서버(6000)에 연결 요청을 전송할 수 있다[S81]. 상기 연결 요청 전송은 각 시뮬레이터와 상기 로봇정보서버(6000) 간의 최초 연결 시에 행해지는 것으로서, 상기 로봇정보서버(6000)에 기연결되어 있는 시뮬레이터는 상기 연결 요청 전송을 할 필요 없다.
상기 로봇정보서버(6000)는 연결 요청하는 각 시뮬레이터에게 연결 승인을 위한 응답을 하면서 각 로봇 또는 각 시뮬레이터의 고유 번호를 전송할 수 있다[S82].
상기 N개의 시뮬레이터들(5000A, 5000B, ...)은 각각 상기 로봇정보서버(6000)에 각기 담당하는 로봇에 관한 정보를 개별 로봇 정보로서 상기 로봇정보서버(6000)로 전송할 수 있다[S83].
그러면, 상기 로봇정보서버(6000)는 상기 N개의 시뮬레이터들(5000A, 5000B, ...)로부터 수신하는 모든 로봇의 정보를 취합하여 이를 전체 로봇 정보로서 상기 N개의 시뮬레이터들(5000A, 5000B, ...) 각각에게 제공할 수 있다[S84]. 상기 전체 로봇 정보는 상기 N개의 시뮬레이터들 모두에게 제공될 수도 있고,
상기 S83 단계 및 상기 S84 단계는 상기 가상 검증이 진행되는 동안 소정 주기로 계속 반복될 수 있다. 도 8에서는 상기 S83 단계 및 상기 S84 단계가 제 1 주기(예를 들면, 20ms) 이후 S85 단계 및 S86 단계로서 반복되는 것이 예시되어 있다.
이하, 도 9를 참조하여 상기 개별 로봇 정보 및 상기 전체 로봇 정보에 대해 설명하겠다. 도 9는 본 개시의 일실시예에 따른 개별 로봇 정보 및 전체 로봇 정보의 예시를 도시한다.
도 9의 (9―1)은 각 시뮬레이터(5000A, 5000B, ...)가 상기 로봇 정보 서버(6000)에 전송하는 개별 로봇 정보의 예시이다.
상기 개별 로봇 정보는, i)로봇의 이름 및 고유 번호, ii) 로봇의 X, Y, 및 Z 좌표 (즉 위치 정보), iii) 로봇의 회전 X, 회전Y, 및 회전Z (즉 방향 정보), 및 iv) 로봇에 연결된 카트의 타입 정보를 포함할 수 있다.
상기 로봇에 연결된 카트가 있다면, 상기 개별 로봇 정보는, 도 9의 (9-2)에 도시된 바와 같은 카트에 관한 정보를 포함할 수 있다. 상기 카트에 관한 정보는, 카트의 로봇의 회전 X, 회전Y, 회전Z를 포함할 수 있다.
또한, 상기 로봇에 의해 감지된 장애물이 있다면, 상기 개별 로봇 정보는, 도 9의 (9-3)에 도시된 바와 같은 장애물에 관한 정보를 포함할 수 있다. 상기 장애물에 관한 정보는, i) 장애물의 이름 및 종류, ii) 장애물의 가로, 세로, 깊이 사이즈, iii) 장매물의 X, Y, Z 좌표, 및 iv) 장애물의 회전 X, 회전Y, 회전Z를 포함할 수 있다.
한편, 도 9의 (9-4)는 상기 로봇 정보 서버(6000)가 각 시뮬레이터(5000A, 5000B, ...)에게 제공하는 전체 로봇 정보의 예시이다.
상기 로봇 정보 서버(6000)는 상기 개별 로봇 정보를 스트링 타입으로 저장하고, 이를 어레이 타입의 전체 로봇 정보로 변환한 후 각 시뮬레이터(5000A, 5000B, ...)에 전송할 수 있다.
이하, 도 10 및 도 11을 참조하여, 로봇의 가상 검증을 위해 각 시뮬레이터(5000A, 5000B, ...)에서 디스플레이되는 유저인터페이스에 대해 설명하겠다. 도 10 및 도 11을 본 개시의 일실시예에 따른 로봇 시뮬레이터에 디스플레이되는 유저인터페이스의 예시이다.
도 10에 도시된 바와 같이, 상기 유저인터페이스(8000)는 가상공간 영역(8100), 메뉴 영역(8200), 및 로봇 타입 선택 영역(8300)을 포함할 수 있다.
상기 가상공간 영역(8100)에는 도 7의 (7-1)에 도시된 바와 같은 상기 3차원 가상공간이 디스플레이될 수 있다.
상기 메뉴 영역(8200)에는 상기 시뮬레이터(5000A, 5000B, ...)의 설정 및 기능 선택을 위한 메뉴들이 디스플레이될 수 있다.
상기 로봇 타입 선택 영역(8300)에는 상기 시뮬레이터(5000A, 5000B, ...)를 통해 가상 검증하고자 하는 로봇의 타입(예를 들며, 적재형 타입 견인형 타입)을 선택하기 위한 메뉴들이 디스플레이될 수 있다.
한편, 도 11에 도시된 바와 같이, 상기 메뉴 영역(8200)에서의 메뉴 조작을 통해 상기 유저인터페이스(8000) 상에 적어도 하나의 팝업창이 디스플레이되도록 할 수 있다.
예를 들어, 상기 적어도 하나의 팝업창은 내비게이션 모니터 창(8400), 로봇 연결 제어창(8500), 로봇 유저인터페이스 창(8600), 및 녹화 및 재생 창(8700)을 포함할 수 있다.
상기 내비게이션 모니터 창(8400)에는 상기 로봇 시뮬레이터(5000A, 5000B, ...)가 담당하는 로봇의 자율 주행에 관한 각종 정보와 이를 위한 위한 설정 및 기능에 관한 메뉴가 디스플레이될 수 있다.
상기 로봇 연결 제어창(8500)에는 상기 로봇 시뮬레이터(5000A, 5000B, ...)가 담당하는 로봇과의 연결 제어에 관한 각종 정보와 이를 위한 설정 및 기능에 관한 메뉴가 디스플레이될 수 있다.
상기 로봇 디스플레이 창(8600)에는 상기 로봇 시뮬레이터(5000A, 5000B, ...)가 담당하는 로봇 자체의 디스플레이(미도시)에 디스플레이될 수 있는 로봇 유저인터페이스(즉, 로봇 화면)가 디스플레이될 수 있다. 상기 로봇 유저인터페이스는 상기 로봇과 함께 작업하는 오퍼레이터가 상기 로봇을 제어하기 위한 유저인터페이스인데, 상기 로봇 유저인터페이스가 상기 로봇 디스플레이 창(8600)에 디스플레이됨으로써, 상기 로봇 시뮬레이터(5000A, 5000B, ...)의 사용자는 상기 로봇 디스플레이 창(8600)에 디스플레이되는 상기 로봇 유저인터페이스를 통해 상기 로봇에 관한 각종 정보를 모니터하면서 상기 오퍼레이터를 대신하여 소정 명령(예를 들면, 목적지로의 이동 명령)을 입력할 수도 있다.
상기 녹화 및 재생 창(8700)는 상기 로봇 시뮬레이터(5000A, 5000B, ...)를 통한 로봇 가상 검증 과정을 녹화하고 재생하기 위한 설정 및 기능에 관한 메뉴가 디스플레이될 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (20)

  1. 제 1 로봇에 장착될 수 있는 제 1 내비게이션 보드 및 제 1 유저인터페이스 보드를 포함하는 제 1 하드웨어 기판;
    제 2 로봇에 장착될 수 있는 제 2 내비게이션 보드 및 제 2 유저인터페이스 보드를 포함하는 제 2 하드웨어 기판;
    제 1 하드웨어 기판과 통신하여 제 1 로봇의 현장 동작성을 가상으로 검증하기 위한 제 1 시뮬레이터;
    제 2 하드웨어 기판과 통신하여 제 2 로봇의 현장 동작성을 가상으로 검증하기 위한 제 2 시뮬레이터; 및
    제 1 시뮬레이터 및 제 2 시뮬레이터로부터 제 1 로봇의 제 1 개별 로봇 정보 및 제 2 로봇의 제 2 개별 로봇 정보를 수신하여 전체 로봇 정보를 생성하고, 상기 생성된 전체 로봇 정보를 제 1 시뮬레이터 및 제 2 시뮬레이터 각각에 전송하는 로봇 정보 서버;를 포함하는 로봇 가상 검증 시스템.
  2. 제 1 항에 있어서,
    제 1 시뮬레이터는 제 1 내비게이션 보드로부터 수신하는 제 1 로봇에 탑재되는 2차원 맵 정보을 이용하여 3차원 가상공간을 생성하는 것을 특징으로 하는 로봇 가상 검증 시스템.
  3. 제 2 항에 있어서,
    제 1 시뮬레이터는 상기 전체 로봇 정보를 이용하여 상기 3차원 가상 공간에 제 1 로봇 및 제 2 로봇을 해당 위치에 표시하는 것을 특징으로 하는 로봇 가상 검증 시스템.
  4. 제 3 항에 있어서,
    제 1 시뮬레이터는 제 1 로봇 및 제 2 로봇 중 어느 하나에 의해 감지될 수 있는 가상 장애물을 상기 3차원 가상 공간에 더욱 표시하는 것을 특징으로 하는 로봇 가상 검증 시스템.
  5. 제 1 항에 있어서, 상기 로봇 가상 검증 시스템은,
    제 1 하드웨어 기판 및 제 1 시뮬레이터 간을 서로 연결하고 제 2 하드웨어 기판 및 제 2 시뮬레이터 간을 서로 연결하기 위한 원격제어서버를 더욱 포함하는 것을 특징으로 하는 로봇 가상 검증 시스템.
  6. 제 5 항에 있어서,
    제 1 하드웨어 기판은 제 1 USB 허브를 통해 상기 원격제어서버와 연결되고, 제 2 하드웨어 기판은 제 2 USB 허브를 통해 상기 원격제어서버와 연결되는 것을 특징으로 하는 로봇 가상 검증 시스템.
  7. 제 1 항에 있어서,
    제 1 내비게이션 보드는 자율 주행에 필요한 데이터를 송수신하기 위한 제 1 포트를 포함하고,
    제 1 유저인터페이스 보드는 CAN 인터페이스 기반 센서의 데이터를 송수신하기 위한 제 2 포트와 제 1 로봇에 구비된 디스플레이에 디스플레이되는 로봇 화면에 관한 데이터를 송수신하기 위한 제 3 포트를 포함하는 것을 특징으로 하는 로봇 가상 검증 시스템.
  8. 제 7 항에 있어서, 제 1 시뮬레이터는,
    가상의 센싱 데이터를 생성하여 제 1 포트를 통해 제 1 내비게이션 보드에 제공하고,
    제 3 포트를 통해 상기 로봇 화면에 관한 데이터를 수신하여 상기 로봇 화면을 디스플레이하는 것을 특징으로 하는 로봇 가상 검증 시스템.
  9. 제 1 항에 있어서,
    제 1 개별 로봇 정보 및 제 2 개별 로봇 정보는 소정 주기로 반복되어 상기 로봇 정보 서버로 전송되고,
    상기 생성된 전체 로봇 정보는 상기 소정 주기로 반복되어 제 1 시뮬레이터 및 제 2 시뮬레이터 각각에 전송되는 것을 특징으로 하는 로봇 가상 검증 시스템.
  10. 제 1 항에 있어서,
    제 1 개별 로봇 정보 및 제 2 개별 로봇 정보는 해당 로봇의 위치 정보 및 방향 정보와, 해당 로봇에 의해 감지된 장애물에 관한 정보를 포함하는 것을 특징으로 하는 로봇 가상 검증 시스템.
  11. 제 1 로봇의 현장 동작성을 가상으로 검증하기 위해 제 1 시뮬레이터가 제 1 로봇에 장착될 수 있는 제 1 내비게이션 보드 및 제 1 유저인터페이스 보드를 포함하는 제 1 하드웨어 기판과 통신하는 단계;
    제 2 로봇의 현장 동작성을 가상으로 검증하기 위해 제 2 시뮬레이터가 제 2 로봇에 장착될 수 있는 제 2 내비게이션 보드 및 제 2 유저인터페이스 보드를 포함하는 제 2 하드웨어 기판과 통신하는 단계; 및
    상기 로봇 정보 서버가 제 1 시뮬레이터 및 제 2 시뮬레이터로부터 제 1 로봇의 제 1 개별 로봇 정보 및 제 2 로봇의 제 2 개별 로봇 정보를 수신하여 전체 로봇 정보를 생성하고, 상기 생성된 전체 로봇 정보를 제 1 시뮬레이터 및 제 2 시뮬레이터 각각에 전송하는 단계;를 포함하는 로봇 가상 검증 방법.
  12. 제 11 항에 있어서,
    제 1 시뮬레이터가 제 1 내비게이션 보드로부터 수신하는 제 1 로봇에 탑재되는 2차원 맵 정보을 이용하여 3차원 가상공간을 생성하는 단계;를 포함하는 것을 특징으로 하는 로봇 가상 검증 방법.
  13. 제 12 항에 있어서,
    제 1 시뮬레이터는 상기 전체 로봇 정보를 이용하여 상기 3차원 가상 공간에 제 1 로봇 및 제 2 로봇을 해당 위치에 표시하는 단계;를 포함하는 것을 특징으로 하는 로봇 가상 검증 방법.
  14. 제 13 항에 있어서,
    제 1 시뮬레이터는 제 1 로봇 및 제 2 로봇 중 어느 하나에 의해 감지될 수 있는 가상 장애물을 상기 3차원 가상 공간에 표시하는 단계;를 포함하는 것을 특징으로 하는 로봇 가상 검증 방법.
  15. 제 11 항에 있어서,
    제 1 하드웨어 기판 및 제 1 시뮬레이터는 원격제어서버를 통해 연결되고, 제 2 하드웨어 기판 및 제 2 시뮬레이터는 상기 원격제어서버를 통해 서로 연결되는 것은 포함하는 것을 특징으로 하는 로봇 가상 검증 방법.
  16. 제 15 항에 있어서,
    제 1 하드웨어 기판은 제 1 USB 허브를 통해 상기 원격제어서버와 연결되고, 제 2 하드웨어 기판은 제 2 USB 허브를 통해 상기 원격제어서버와 연결되는 것을 특징으로 하는 로봇 가상 검증 방법.
  17. 제 11 항에 있어서,
    제 1 내비게이션 보드는 자율 주행에 필요한 데이터를 송수신하기 위한 제 1 포트를 포함하고,
    제 1 유저인터페이스 보드는 CAN 인터페이스 기반 센서의 데이터를 송수신하기 위한 제 2 포트와 제 1 로봇에 구비된 디스플레이에 디스플레이되는 로봇 화면에 관한 데이터를 송수신하기 위한 제 3 포트를 포함하는 것을 특징으로 하는 로봇 가상 검증 방법.
  18. 제 17 항에 있어서,
    제 1 시뮬레이터가 가상의 센싱 데이터를 생성하여 제 1 포트를 통해 제 1 내비게이션 보드에 제공하는 단계; 및
    제 1 시뮬레이터가 제 3 포트를 통해 상기 로봇 화면에 관한 데이터를 수신하여 상기 로봇 화면을 디스플레이하는 단계;를 포함하는 것을 특징으로 하는 로봇 가상 검증 방법.
  19. 제 11 항에 있어서,
    제 1 개별 로봇 정보 및 제 2 개별 로봇 정보는 소정 주기로 반복되어 상기 로봇 정보 서버로 전송되고,
    상기 생성된 전체 로봇 정보는 상기 소정 주기로 반복되어 제 1 시뮬레이터 및 제 2 시뮬레이터 각각에 전송되는 것을 특징으로 하는 로봇 가상 검증 방법.
  20. 제 11 항에 있어서,
    제 1 개별 로봇 정보 및 제 2 개별 로봇 정보는 해당 로봇의 위치 정보 및 방향 정보와, 해당 로봇에 의해 감지된 장애물에 관한 정보를 포함하는 것을 특징으로 하는 로봇 가상 검증 방법.
PCT/KR2022/018445 2022-11-22 2022-11-22 로봇 가상 검증 방법 및 이를 위한 시스템 WO2024111687A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2022/018445 WO2024111687A1 (ko) 2022-11-22 2022-11-22 로봇 가상 검증 방법 및 이를 위한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2022/018445 WO2024111687A1 (ko) 2022-11-22 2022-11-22 로봇 가상 검증 방법 및 이를 위한 시스템

Publications (1)

Publication Number Publication Date
WO2024111687A1 true WO2024111687A1 (ko) 2024-05-30

Family

ID=91196300

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/018445 WO2024111687A1 (ko) 2022-11-22 2022-11-22 로봇 가상 검증 방법 및 이를 위한 시스템

Country Status (1)

Country Link
WO (1) WO2024111687A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008100315A (ja) * 2006-10-19 2008-05-01 Mitsubishi Heavy Ind Ltd 制御シミュレーションシステム
JP2013517151A (ja) * 2010-01-21 2013-05-16 デュール システムズ ゲゼルシャフト ミット ベシュレンクテル ハフツング ロボット装置用の制御プログラムを試験するための試験装置
JP2013136123A (ja) * 2011-12-28 2013-07-11 Kawasaki Heavy Ind Ltd ロボット動作教示支援装置及び方法
JP2018047509A (ja) * 2016-09-20 2018-03-29 ファナック株式会社 ロボットシミュレーション装置
KR20220150700A (ko) * 2021-05-04 2022-11-11 한국전자통신연구원 로봇 제어 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008100315A (ja) * 2006-10-19 2008-05-01 Mitsubishi Heavy Ind Ltd 制御シミュレーションシステム
JP2013517151A (ja) * 2010-01-21 2013-05-16 デュール システムズ ゲゼルシャフト ミット ベシュレンクテル ハフツング ロボット装置用の制御プログラムを試験するための試験装置
JP2013136123A (ja) * 2011-12-28 2013-07-11 Kawasaki Heavy Ind Ltd ロボット動作教示支援装置及び方法
JP2018047509A (ja) * 2016-09-20 2018-03-29 ファナック株式会社 ロボットシミュレーション装置
KR20220150700A (ko) * 2021-05-04 2022-11-11 한국전자통신연구원 로봇 제어 시스템

Similar Documents

Publication Publication Date Title
CN1758990B (zh) 自动机械仿真装置
WO2011074838A2 (ko) 로봇 동기화 장치 및 그 방법
WO2021066416A1 (en) Unmanned aerial vehicle for inventory management and method of operating the same
JP2017094407A (ja) シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
WO2018230845A1 (ko) 비전 정보에 기반한 위치 설정 방법 및 이를 구현하는 로봇
WO2018105954A1 (ko) 가시광통신을 이용한 무인 운송장치 및 시스템
CN108549370A (zh) 数据采集方法及采集装置
WO2016068593A2 (ko) 3차원 형상의 모델링을 위한 블록 및 사용자 단말기와 이를 이용한 3차원 형상의 모델링 방법
WO2024111687A1 (ko) 로봇 가상 검증 방법 및 이를 위한 시스템
CN114879699A (zh) 针对埋地管道野外巡检机器人的自主导航系统及方法
WO2020184776A1 (ko) 코드 인식을 통한 위치 인식 및 이동경로 설정 방법과 무인 모빌리티와 운영시스템
CN113253719B (zh) 基于ros操作系统的智能移动设备及通信建立方法
US20220317704A1 (en) Transport system, control apparatus, transport method, and program
WO2023027283A1 (ko) 클라우드 로봇 제어 개발을 위한 시뮬레이션 시스템 및 그 방법
WO2022114664A1 (ko) 무인이동체 자율주행 시스템 및 이를 이용한 방법
Freund et al. Systems approach to robotics and automation
Keller et al. Real time command control architecture for an ITER relevant inspection robot in operation on Tore Supra
JP2022132166A (ja) ロボット支援システム
CN210072405U (zh) 一种无人机协同控制验证平台
WO2022240256A1 (ko) 자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션
WO2024034911A1 (ko) 로봇 제어를 위한 전자 장치, 시스템 및 방법
WO2023249185A1 (ko) 차량 생산 관리 시스템 및 그 방법
WO2024010318A1 (ko) 자율주행 로봇, 자율주행 로봇의 동작 방법, 자율주행 로봇 플랫폼 서버, 그리고 사용자 단말을 이용하여 자율주행 로봇을 제어하는 방법
JP7554988B2 (ja) 設計支援システム、設計支援方法、及びプログラム
WO2024144064A1 (ko) 3차원 공간에 대한 포인트 클라우드를 정합하는 전자 장치 및 방법

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: 22966548

Country of ref document: EP

Kind code of ref document: A1