WO2023244052A1 - 인공신경망을 이용한 로봇의 감지 방법 및 그를 위한 장치 - Google Patents

인공신경망을 이용한 로봇의 감지 방법 및 그를 위한 장치 Download PDF

Info

Publication number
WO2023244052A1
WO2023244052A1 PCT/KR2023/008322 KR2023008322W WO2023244052A1 WO 2023244052 A1 WO2023244052 A1 WO 2023244052A1 KR 2023008322 W KR2023008322 W KR 2023008322W WO 2023244052 A1 WO2023244052 A1 WO 2023244052A1
Authority
WO
WIPO (PCT)
Prior art keywords
wheel
robot
data
particle
collision detection
Prior art date
Application number
PCT/KR2023/008322
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
Priority claimed from KR1020220177353A external-priority patent/KR20230173004A/ko
Application filed by 주식회사 유진로봇, 미일러 앤드 시이 카게 filed Critical 주식회사 유진로봇
Publication of WO2023244052A1 publication Critical patent/WO2023244052A1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Definitions

  • the present invention relates to a method for detecting a robot based on an artificial neural network and a device therefor.
  • the cleaning robot checks the dust condition on the floor and then sets a cleaning strategy according to the dust condition.
  • Existing cleaning robots use a method of measuring the amount of dust sucked by attaching an infrared ray sensor or a piezoelectricity sensor to the suction port.
  • Existing mobile robots adopt a method of detecting collisions by attaching mechanical bumpers. Collisions are detected by placing a bumper in a specific area of the mobile robot where you want to detect a collision. Even if an event such as a jamming or collision occurs in a robot area where a bumper is not attached, there is a problem that such an event cannot be detected because there is no bumper at the desired location. Even if there is a bumper at the desired location for detection, when an event such as a collision or slip occurs on a soft material such as a sofa or doll, there is a limit to detecting the event using only the detection principle of the mechanical bumper.
  • particles collide with the robot due to brush rotation in the process of sucking dust and a difference occurs in the amount of instantaneous change in the robot's posture sensing data depending on the strength of the force with which the particles collide with the robot.
  • the main purpose of the invention is to classify the types of inhaled particles based on a model learned from processed sensing data.
  • embodiments of the present invention are used to detect whether a robot collides based on a model learned from wheel control commands and data processed from wheel movement results according to wheel control commands, without using mechanical bumper sensors. There is a main purpose.
  • the main purpose of the present invention is to provide a detection method and device for a mobile robot based on an artificial neural network that detects floor material, floor dust, brush status, collision, etc. in a mobile robot based on an artificial neural network.
  • the data processing unit acquires posture sensing data, processes the posture sensing data, and creates a neural network from the processed posture sensing data.
  • a particle classification device is provided that outputs particle grades through a particle classification model.
  • Data processing of the posture sensing data involves calculating the amount of change in the posture sensing data input in time series for each axis of the posture sensor, storing the amount of change in the posture sensing data in a matrix, and applying filter weights matched to the matrix. And, the data of the matrix to which the filter weight is applied can be converted into frequency domain data.
  • Data processing of the posture sensing data may include converting the data converted to the frequency domain data into a log scale and normalizing the data converted to the log scale within a preset range.
  • the neural network-based particle classification model has a network structure in which multiple layers are connected, is learned by receiving frequency domain data regarding posture sensing data at the moment the robot inhales particles while moving, and is a first particle type with different sizes.
  • the particle classes can be classified into secondary particle types, tertiary particle types, or normal types.
  • the data processing unit may accumulate the number of particles according to the particle class, accumulate the particle size, and calculate an average amount of dust based on the accumulated number of particles and the accumulated particle size.
  • the data processing unit may provide feedback to clean an area with a lot of dust again according to the result of determining the average amount of dust.
  • the data processing unit may provide a notification to empty the dust bin according to the result of determining the average amount of dust.
  • the data processing unit may transmit a control command to adjust the brush and suction intensity according to the result of determining the particle grade.
  • posture sensing data is acquired, the posture sensing data is processed, and a particle grade is output from the processed posture sensing data through a neural network-based particle classification model.
  • particle separation device a moving device configured to move the cleaning robot based on the output particle grade; and a cleaning device that performs a cleaning operation based on the output particle grade.
  • the cleaning robot processes the posture sensing data by calculating the change amount of the posture sensing data input in time series for each axis of the posture sensor, storing the change amount of the posture sensing data in a matrix, and matching the posture sensing data to the matrix.
  • Filter weights may be applied, and data in the matrix to which the filter weights are applied may be converted into frequency domain data.
  • the data converted to the frequency domain data can be converted to a log scale and the data converted to the log scale can be normalized within a preset range.
  • the neural network-based particle classification model applied to the cleaning robot has a network structure with multiple layers connected, is learned by receiving frequency domain data regarding posture sensing data at the moment the robot inhales particles while moving, and has a size
  • the particle classes can be classified into different first particle types, second particle types, third particle types and normal types.
  • the cleaning robot may accumulate the number of particles according to the particle class, accumulate the particle size, and calculate an average amount of dust based on the accumulated number of particles and the accumulated particle size.
  • the cleaning robot may provide feedback to clean an area with a lot of dust again according to the result of determining the average amount of dust.
  • the cleaning robot may provide a notification to empty the dust bin according to the result of determining the average amount of dust.
  • the cleaning robot may adjust the rotation of the brush included in the cleaning device and the suction strength of the suction motor according to the result of determining the particle grade.
  • the data processing unit obtains a wheel control command, calculates a wheel movement result, and processes the wheel control command and the wheel movement result into data. and outputting whether or not there is a collision through a neural network-based collision detection model from the data-processed movement control command and the wheel movement result.
  • the neural network-based collision detection model has a network structure in which a plurality of layers are connected, is learned by receiving the wheel control command and the wheel movement result, and can be classified into a normal state or a collision state.
  • Obtaining the wheel control command obtains a wheel driving voltage with the wheel control command, and calculating the wheel movement result calculates the number of revolutions per unit time of the wheel, the wheel rotation angle, or a combination thereof, and the wheel control Data processing the command and the wheel movement result converts the wheel drive voltage into wheel drive power, (i) a first ratio between the wheel drive power and the number of revolutions per unit time of the wheel, and (ii) the wheel drive.
  • a second ratio between power and the wheel rotation angle, or a combination thereof, may be calculated.
  • the neural network-based collision detection model may include (i) a first ratio between the wheel driving power and the number of revolutions per unit time of the wheel, (ii) a second ratio between the wheel driving power and the wheel rotation angle, or a combination thereof can be input and classified into the normal state or the conflict state.
  • Obtaining the wheel control command acquires the left wheel speed and right wheel speed with the wheel control command, and calculating the wheel movement result calculates the actual rotation angle of the robot based on the measurement value by the posture sensor, Data processing of the wheel control command and the wheel movement result calculates a progress target angle using the relationship between the left wheel speed, the right wheel speed, and the distance from the midpoint of the centers of both wheels to the center of the wheel, An angle error can be calculated using the difference between the progress target angle and the actual rotation angle.
  • the neural network-based collision detection model receives the left wheel speed, the right wheel speed, the measurement value by the posture sensor, the angle error, or a combination thereof and classifies it as the normal state or the collision state. .
  • the neural network-based collision detection model can be learned by receiving the wheel control command and the wheel movement result that occurred during the collision time section in the forward and rotation states of the robot moving on multiple types of floor materials.
  • a wheel control command is obtained, a wheel movement result is calculated, the wheel control command and the wheel movement result are processed into data, and the data-processed movement control command is provided.
  • a collision detection device that outputs whether or not there is a collision from the wheel movement results through a neural network-based collision detection model; and a mobile robot configured to move the mobile robot based on the output collision status.
  • the neural network-based collision detection model applied to the mobile robot has a network structure in which multiple layers are connected, is learned by receiving the wheel control command and the wheel movement result, and can be classified into a normal state or a collision state.
  • the left wheel speed and right wheel speed are obtained from the wheel control command, and the wheel movement result is calculated based on the actual rotation angle of the robot based on the measurement value by the posture sensor.
  • Calculating and processing data of the wheel control command and the wheel movement result uses the relationship between the left wheel speed, the right wheel speed, and the distance from the midpoint of both wheel centers to the wheel center to obtain a progress target angle. , and the angle error can be calculated using the difference between the progress target angle and the actual rotation angle.
  • the neural network-based collision detection model applied to the mobile robot receives the left wheel speed, the right wheel speed, the measurement value by the posture sensor, the angle error, or a combination thereof, and receives the normal state or the collision state. It can be classified as:
  • the mobile robot When the mobile robot obtains the wheel control command, it obtains a wheel driving voltage with the wheel control command, and when calculating the wheel movement result, the number of revolutions per unit time of the wheel, the wheel rotation angle, or a combination thereof are calculated, and , data processing the wheel control command and the wheel movement result converts the wheel drive voltage into wheel drive power, (i) a first ratio between the wheel drive power and the number of rotations per unit time of the wheel, (ii) ) A second ratio between the wheel driving power and the wheel rotation angle, or a combination thereof, may be calculated.
  • the neural network-based collision detection model applied to the mobile robot includes (i) a first ratio between the wheel driving power and the number of rotations per unit time of the wheel, (ii) a second ratio between the wheel driving power and the wheel rotation angle , or a combination thereof can be input and classified into the normal state or the conflict state.
  • the neural network-based collision detection model applied to the mobile robot is learned by receiving the wheel control command and the wheel movement result that occurred during the time section of the collision in the forward and rotation states of the robot moving on a plurality of floor materials. You can.
  • the sensing control device is an environment that senses the surrounding environment in a map using a sensing module mounted on the mobile robot. Sensing unit; A detection control unit that detects at least one of floor material, floor dust, brush status, and collision based on surrounding environment sensing information; and a cleaning operation control unit that controls the cleaning operation based on the detection result.
  • the type of inhaled particles and the amount of inhaled dust can be measured without using a dust measurement sensor, and new particle types can be distinguished by labeling and learning only the robot data obtained from the environment to be distinguished.
  • it can provide new information about the state of floor dust, and has the effect of reducing analysis time and update time to respond to various situations.
  • collision of the robot is detected and avoided based on a model learned from data obtained by processing wheel control commands and wheel movement results according to wheel control commands.
  • it has the effect of allowing the robot to perform defensive movements to protect itself from collision.
  • FIG. 1 is a diagram illustrating rotational movements of a robot and a sensor according to embodiments of the present invention.
  • Figure 2 is a block diagram illustrating a cleaning robot according to an embodiment of the present invention.
  • Figure 3 is a block diagram illustrating a particle separation device according to another embodiment of the present invention.
  • Figure 4 is a diagram illustrating the operation of classifying particles by a particle classification device according to another embodiment of the present invention.
  • Figure 5 is a diagram illustrating a data processing operation of a particle separation device according to another embodiment of the present invention.
  • Figure 6 is a diagram illustrating an instantaneous change in posture sensing data processed by a particle separation device according to another embodiment of the present invention.
  • Figure 7 is a diagram illustrating a matrix that stores the amount of change in posture sensing data processed by a particle separation device according to another embodiment of the present invention.
  • Figures 8 and 9 are diagrams illustrating filter weights applied to the amount of change in posture sensing data processed by a particle classification device according to another embodiment of the present invention.
  • Figure 10 is a diagram illustrating posture sensing data in the frequency domain processed by a particle separation device according to another embodiment of the present invention.
  • Figure 11 is a diagram illustrating a data processing operation of a particle separation device according to another embodiment of the present invention.
  • Figure 12 is a diagram illustrating a neural network-based particle classification model applicable to a particle separation device according to another embodiment of the present invention.
  • Figures 13 and 14 are diagrams illustrating additional operations after confirming the particle grade of the particle separation device according to another embodiment of the present invention.
  • Figure 15 is a block diagram illustrating a mobile robot according to an embodiment of the present invention.
  • Figure 16 is a block diagram illustrating a collision detection device according to another embodiment of the present invention.
  • Figure 17 is a diagram illustrating a collision detection operation of a collision detection device according to another embodiment of the present invention.
  • Figure 18 is a diagram illustrating a collision detection operation based on the wheel rotation ratio by a collision detection device according to another embodiment of the present invention.
  • Figure 19 is a diagram illustrating a collision detection operation based on a heading angle error by a collision detection device according to another embodiment of the present invention.
  • Figure 20 is a diagram for explaining a heading angle error caused by a collision detection device according to another embodiment of the present invention.
  • Figure 21 is a diagram illustrating a neural network-based collision detection model applicable to a collision detection device according to another embodiment of the present invention.
  • Figure 22 is a graph illustrating the relationship between collision and angle error according to the results of simulating a collision detection device according to another embodiment of the present invention.
  • Figure 23 is a graph illustrating the relationship between collision and first rate according to the results of simulating a collision detection device according to another embodiment of the present invention.
  • Figure 24 is a graph illustrating the relationship between collision and second rate according to the results of simulating a collision detection device according to another embodiment of the present invention.
  • Figure 25 is a block diagram schematically showing a sensing control device for a mobile robot according to an embodiment of the present invention.
  • Figures 26 to 28 are diagrams for explaining the operation of detecting floor material according to an embodiment of the present invention.
  • Figures 29 to 42 are diagrams for explaining the operation of detecting floor dust according to an embodiment of the present invention.
  • Figures 43 to 49 are diagrams for explaining the operation of detecting brush blockage or jamming according to an embodiment of the present invention.
  • Figures 50 to 58 are diagrams for explaining the operation of detecting a collision according to an embodiment of the present invention.
  • FIG. 1 is a diagram illustrating rotational movements of a robot and a sensor according to embodiments of the present invention.
  • the robot 10 accurately senses the location of the surrounding environment and obstacles through the sensor 11 applied to the robot.
  • Sensors that detect the surrounding environment include various sensors such as lidar sensors, image sensors, and hybrid sensors.
  • Robots include sensors and mobile devices.
  • Robots may include mobile robots, mobile robots, cleaning robots, logistics robots, toy cars, and robots that can be used for industrial or military purposes.
  • the robot can collect environmental information (2D/3D spatial information) and odometry information through SLAM (Simultaneous Localization And Mapping), AMCL (Adaptive Monte Carlo Localization), lidar sensor, image sensor, IMU sensor, etc.
  • Robots can scan the surrounding environment through sensors and create maps.
  • IMU sensors may include acceleration sensors and gyro sensors.
  • An acceleration sensor can measure the acceleration and direction of an object based on an axis.
  • a gyro sensor can measure the rotation angle of an object based on its axis.
  • the sensor 11 mounted on the robot 10 can rotate to detect the surrounding environment and obstacles.
  • an obstacle In the case of a LiDAR sensor, an obstacle (OBS) can be detected in the direction in which the obstacle is located through the sensed point cloud data.
  • OBS obstacle
  • a LiDAR sensor is a device that emits a wireless signal, measures the time it takes for it to be reflected, and measures the distance to a reflector using the speed of light.
  • the wireless signal is converted into an electrical signal through a photodiode.
  • a wireless signal may have a preset wavelength band.
  • LiDAR sensors can operate in a time of flight (TOF) method.
  • the time-of-flight method measures the distance between a measurement object and a distance measuring device by having a laser emit a pulse or square wave signal and measuring the time for reflected pulses or square wave signals from objects within the measurement range to arrive at the receiver.
  • Lidar sensors transmit light signals and receive reflected light signals.
  • the LiDAR sensor emits light to an object by a start control signal, receives the light reflected by the object, and converts it into an electrical signal.
  • the LiDAR sensor outputs an electrical signal for a preset detection time.
  • the control unit of the LiDAR sensor can convert the signal.
  • a control unit may be connected to the receiver, and a signal amplifier may be connected.
  • the light source emits light to the object based on a preset sampling period.
  • the sampling period can be set by the control unit.
  • the sampling period is the time until the transmitter emits light according to the start control signal, the receiver receives the reflected light, and the control unit converts the light into an electrical signal.
  • the LiDAR sensor can repeatedly perform these operations in the next sampling cycle.
  • the receiver receives light reflected from an object and converts it into an electrical signal.
  • the receiver can extract intensity from the electrical signal.
  • the control unit can convert the electrical signal to measure the exact point in time and output a stop control signal.
  • the control unit converts the electrical signal so that the signal point with the maximum signal size has a preset size, adjusts the size of the converted electrical signal, and detects the point in time when the signal point has the preset size.
  • the control unit converts the electrical signal and generates a stop control signal.
  • the control unit receives electrical signals from a receiver or amplifier.
  • the received electrical signal that is, the input signal, has a form that rises and falls due to reflected light.
  • the control unit accurately measures the desired point in time for the input signal and outputs an electrical signal.
  • the control unit may include one or more time digital converters that convert the difference between the two times into a digital value.
  • the input signal of a time digital converter may be in the form of a pulse from the same signal source or an edge of a different signal source.
  • the LIDAR sensor can calculate the time difference based on the rising edge or falling edge of the start control signal and the rising edge or falling edge of the stop control signal.
  • the lidar sensor calculates the pulse width based on the rising edge or falling edge of the stop control signal, and can add the factor value applied to the function of pulse width versus work error to the flight time before correction.
  • the LiDAR sensor can calculate the accurate flight time by correcting the flight time using the pulse width of the reflected signal.
  • the robot can set a driving route using the constructed map and drive according to the driving route.
  • the robot according to this embodiment allows the cleaning robot to perform cleaning operations correctly even in situations where the cleaning robot is not equipped with a dust measurement sensor, the dust measurement sensor is broken, or the dust measurement sensor is temporarily inoperable.
  • the robot in the process of sucking dust, particles collide with the robot due to brush rotation, and depending on the strength of the force with which the particles collide with the robot, a difference occurs in the amount of instantaneous change in the robot's posture sensing data, and the robot classifies the types of inhaled particles based on a model learned from data processed from such posture sensing data.
  • the robot according to this embodiment solves the problem of not being able to detect an event when an event such as a jamming or collision occurs in a robot area where a bumper is not attached, and even if there is a bumper at the desired location for detection, it solves the problem of not being able to detect the event, such as a sofa or doll, etc.
  • an event such as collision or slip occurs in a soft material, it overcomes the detection limit of the mechanical bumper.
  • the robot according to this embodiment does not use a mechanical bumper sensor, but detects whether the robot collides based on a model learned from wheel control commands and data processed from wheel movement results according to wheel control commands.
  • Figure 2 is a block diagram illustrating a cleaning robot according to an embodiment of the present invention
  • Figure 3 is a block diagram illustrating a particle separation device according to another embodiment of the present invention.
  • the cleaning robot 10 may include a particle separation device 100, a moving device 200, and a cleaning device 300.
  • the particle classification device 100 is connected to the main body and acquires posture sensing data, processes the posture sensing data, and outputs a particle grade from the processed posture sensing data through a neural network-based particle classification model.
  • the moving device 200 is connected to the main body and is implemented to move the cleaning robot based on the output particle grade. Calculate the driving path based on the distance to the object or detect obstacles and move the moving object.
  • the mobile device 200 may be implemented with wheels, rails, legs, etc., and may include an odometry measurement sensor that detects movement changes.
  • the cleaning device 300 is connected to the main body and may include a rotating brush, dust bin, suction motor, nozzle, etc.
  • the rotating brush rotates to collect dust, controls the suction power of the suction motor to suck dust through the nozzle, and stores the sucked dust in the dust bin.
  • the particle separation device 100 may include a data processing unit 110.
  • the data processing unit 110 may be implemented with a processor or the like.
  • the data processing unit 110 acquires posture sensing data, processes the posture sensing data, and outputs a particle class from the processed posture sensing data through a neural network-based particle classification model.
  • Attitude sensing data may be measured by an attitude sensor such as an inertial sensor (IMU).
  • IMU inertial sensor
  • the particle separation device 100 may include a particle separation model 120.
  • the particle classification model 120 may be stored by the data processing unit 110 or may be stored in another recording medium.
  • the particle classification device 100 can classify the type of dust and calculate the amount of dust based on the type of dust.
  • Particle types can be classified into red bean grains (7x6mm), rice grains (6x4mm), and sand (0.9x0.9mm), and can also be classified based on different sizes depending on the robot's environment.
  • Figure 4 is a diagram illustrating the operation of classifying particles by a particle classification device according to another embodiment of the present invention.
  • step S100 a step of acquiring posture sensing data may be performed.
  • step S200 a step of data processing the posture sensing data may be performed.
  • step S300 a particle grade can be output from the processed posture sensing data through a neural network-based particle classification model.
  • Figure 5 is a diagram illustrating a data processing operation of a particle separation device according to another embodiment of the present invention.
  • the step of data processing the posture sensing data includes calculating the amount of change in the posture sensing data input in time series for each axis of the posture sensor (S210), storing the amount of change in the posture sensing data in a matrix (S220), It may include applying the matched filter weight to the matrix (S230) and converting the data of the matrix to which the filter weight is applied into frequency domain data (S240).
  • Figure 6 is a diagram illustrating an instantaneous change in posture sensing data processed by a particle separation device according to another embodiment of the present invention.
  • the step (S210) of calculating the amount of change in the posture sensing data input as a time series for each axis of the posture sensor is expressed in algorithm pseudocode as follows.
  • the robot measures the posture values corresponding to the x-axis, y-axis, and z-axis of the gyro sensor every 5ms. It remembers the posture values corresponding to the x-axis, y-axis, and z-axis of the previous gyro sensor, and calculates the difference value for each axis every time a new value comes in. Currently, the robot's movement can be expressed more clearly through the change amount rather than the posture value of the gyro sensor.
  • Diff_of_gyro[x] current_gyro[x] - pre_gyro[x]
  • Diff_of_gyro[y] current_gyro[y] - pre_gyro[y]
  • Diff_of_gyro[z] current_gyro[z] - pre_gyro[z]
  • Figure 7 is a diagram illustrating a matrix that stores the amount of change in posture sensing data processed by a particle separation device according to another embodiment of the present invention.
  • a stack data structure can be applied as a matrix that stores the amount of change in posture sensing data.
  • the matrix can be designed considering multiple frames.
  • the step of storing the amount of change in posture sensing data in a matrix (S220) is expressed in algorithm pseudocode as follows.
  • the posture change value calculated for each axis is stored in a buffer. You can see how the robot's movement changes on the time axis.
  • Figures 8 and 9 are diagrams illustrating filter weights applied to the amount of change in posture sensing data processed by a particle classification device according to another embodiment of the present invention.
  • the step of applying the filter weight matched to the matrix (S230) is expressed in algorithm pseudocode as follows. This is to give weight to important data.
  • FFT_input Data_matrix_imu * Filter_weight
  • Filter_weight[i] 0.5 * (1.0 - std::cos(2.0 * M_PI * static_cast ⁇ double>(i) / static_cast ⁇ double>(frames)));
  • Figure 10 is a diagram illustrating posture sensing data in the frequency domain processed by a particle separation device according to another embodiment of the present invention.
  • the step (S240) of converting the data of the matrix to which the filter weight is applied to frequency domain data is expressed in algorithm pseudocode as follows.
  • FFT Fast Fourier Transform
  • Figure 11 is a diagram illustrating a data processing operation of a particle separation device according to another embodiment of the present invention.
  • the step of data processing the posture sensing data may include converting the data converted to frequency domain data into log scale (S250) and normalizing the data converted to log scale within a preset range (S260). You can.
  • Logarithmic operations can be performed on data converted to frequency domain data to highlight the characteristics of the posture sensing data. Scaling can be applied so that the value lies between 0 and 1.
  • the step of converting the data converted to frequency domain data to log scale (S250) and the step of normalizing the data converted to log scale to within a preset range (S260) are expressed in algorithm pseudocode as follows.
  • vv_x (vv_x + 20.0) / 60.0;
  • vv_y (vv_y + 20.0) / 60.0;
  • vv_z (vv_z + 20.0) / 60.0;
  • Figure 12 is a diagram illustrating a neural network-based particle classification model applicable to a particle separation device according to another embodiment of the present invention.
  • the neural network-based particle classification model is a network structure in which multiple layers are connected, and is learned by receiving frequency domain data regarding posture sensing data at the moment the robot inhales particles while moving.
  • First particle types of different sizes; Particle classes can be classified as secondary particle type, tertiary particle type, or normal type.
  • the particle classification model extracts features and processes the data.
  • the particle classification model has multiple layers connected to a network and includes an input layer, a hidden layer, and an output layer.
  • a layer can include parameters, and the parameters of a layer include a set of learnable filters. Parameters include weights and/or biases between nodes.
  • the particle classification model initializes the hyperparameters that control the learning process, and the output values change depending on the changed hyperparameters, and optimized parameters can be derived.
  • the particle classification model includes encoder value, motor or wheel applied current, wheel control command, gyro sensor value, acceleration sensor value, Cliff PSD (Cliff Position Sensitive Device) sensor value, motor or wheel applied PWM (Pulse Width Modulation), Sensing data can be combined using the RPM (Revolutions Per Minute) of the motor or wheel and the shock sensor (Bumpers, Buttons, Wheel drops) values.
  • the particle classification model can be learned by receiving frequency domain conversion data of posture sensing data for 3 axes.
  • the particle classification model can be learned by performing logarithmic operations on frequency domain transformed data and receiving normalized data as input.
  • the particle classification model can classify particles into a first particle type, a second particle type, a third particle type, or a normal type with different sizes. For example, it can be classified into normal state, red beans (7x4mm), rice (4x2mm), sand (0.9x0.9mm), etc.
  • the FFT results at the moment the robot moves forward and inhales each dust can be used.
  • Figures 13 and 14 are diagrams illustrating additional operations after confirming the particle grade of the particle separation device according to another embodiment of the present invention.
  • step S100 a step of acquiring posture sensing data may be performed.
  • step S200 a step of data processing the posture sensing data may be performed.
  • step S300 a particle grade can be output from the processed posture sensing data through a neural network-based particle classification model.
  • step S400 additional operations may be performed utilizing the particle classes.
  • the data processing unit includes a step of accumulating the number of particles according to the particle class (S410), a step of accumulating the particle size (S420), and a step of calculating the average amount of dust based on the accumulated number of particles and the accumulated particle size (S430). can do.
  • the step of accumulating the number of particles (S410) is expressed in algorithmic pseudocode as follows.
  • the step of accumulating particle size (S420) is expressed in algorithmic pseudocode as follows.
  • the step of calculating the average dust amount (S430) is expressed in algorithmic pseudocode as follows.
  • avg_particle_size sum_particle_size / particle_count
  • the data processing unit may provide feedback to clean the dusty area again according to the result of determining the average amount of dust.
  • the data processing unit may provide a notification to empty the dust bin according to the result of determining the average amount of dust.
  • the data processing unit may transmit a control command to adjust the brush and suction intensity according to the result of determining the particle grade.
  • the cleaning robot is a particle classification device that acquires posture sensing data, processes the posture sensing data, and outputs particle grades through a neural network-based particle classification model from the processed posture sensing data. Based on the output particle grades, the cleaning robot It may include a moving device implemented to move the cleaning robot, and a cleaning device that performs a cleaning operation based on the output particle grade.
  • the cleaning robot processes the posture sensing data by calculating the amount of change in the posture sensing data input in time series for each axis of the posture sensor, storing the amount of change in the posture sensing data in a matrix, and applying filter weights matched to the matrix. , data in the matrix to which filter weights are applied can be converted to frequency domain data.
  • the data converted to frequency domain data can be converted to log scale, and the data converted to log scale can be normalized within a preset range.
  • the neural network-based particle classification model applied to the cleaning robot is a network structure in which multiple layers are connected, and is learned by receiving frequency domain data regarding posture sensing data at the moment the robot inhales particles while moving, and separates particles of different sizes.
  • Particle grades can be classified into 1 particle type, 2nd particle type, 3rd particle type, and normal type.
  • the cleaning robot can accumulate the number of particles according to the particle class, accumulate the particle size, and calculate the average amount of dust based on the accumulated number of particles and the accumulated particle size.
  • the cleaning robot can provide feedback to clean dusty areas again based on the results of determining the average amount of dust.
  • the cleaning robot can provide a notification to empty the dust bin based on the results of determining the average amount of dust.
  • the cleaning robot can adjust the rotation of the brush included in the cleaning device and the suction strength of the suction motor according to the results of determining the particle grade.
  • the type of inhaled particles and the amount of dust inhaled can be measured without using a dust measurement sensor, and by labeling and learning only the robot data obtained from the environment to be distinguished, new particle types can be distinguished or new information about the state of floor dust can be obtained. It can provide and has the effect of reducing analysis time and update time to respond to various situations.
  • FIG. 15 is a block diagram illustrating a mobile robot according to an embodiment of the present invention
  • FIG. 16 is a block diagram illustrating a collision detection device according to another embodiment of the present invention.
  • the mobile robot 12 may include a collision detection device 400 and a mobile device 500.
  • the collision detection device 400 is connected to the main body and acquires wheel control commands, calculates wheel movement results, processes data on the wheel control commands and wheel movement results, and creates a neural network from the data-processed movement control commands and wheel movement results. Whether or not there is a collision is output through a collision detection model.
  • the mobile device 500 is connected to the main body and is implemented to move the mobile robot based on whether there is a collision. Calculate the driving path based on the distance to the object or detect obstacles and move the moving object.
  • the mobile device 500 may be implemented with wheels, rails, legs, etc., and may include an odometry measurement sensor that detects movement changes.
  • the mobile robot 12 may include a cleaning device.
  • the cleaning device is connected to the main body and may include a rotating brush, dust bin, suction motor, nozzle, etc.
  • the rotating brush rotates to collect dust, controls the suction power of the suction motor to suck dust through the nozzle, and stores the sucked dust in the dust bin.
  • the collision detection device 400 may include a data processing unit 410.
  • the data processing unit 410 may be implemented with a processor or the like.
  • the data processing unit 410 obtains a wheel control command, calculates a wheel movement result, processes the wheel control command and the wheel movement result into data, and models a neural network-based collision detection model from the data-processed movement control command and the wheel movement result. It outputs whether there is a collision or not.
  • the collision detection device 400 may include a collision detection model 420.
  • the collision detection model 420 may be stored by the data processing unit 410 or may be stored in another recording medium.
  • the collision detection device 400 does not use a mechanical bumper sensor, but detects whether the robot collides using a wheel control command and data processed from the result of wheel movement according to the wheel control command.
  • Figure 17 is a diagram illustrating a collision detection operation of a collision detection device according to another embodiment of the present invention.
  • step S500 a step of obtaining a wheel control command may be performed.
  • step S600 wheel movement results can be calculated.
  • step S700 data processing of wheel control commands and wheel movement results may be performed.
  • step S800 a step of outputting whether there is a collision through a neural network-based collision detection model from the data-processed movement control command and wheel movement results can be performed.
  • the neural network-based collision detection model has a network structure with multiple layers connected, is learned by receiving wheel control commands and wheel movement results, and can be classified into a normal state or a collision state.
  • Figure 18 is a diagram illustrating a collision detection operation based on the wheel rotation ratio by a collision detection device according to another embodiment of the present invention.
  • step S510 a step of obtaining a wheel driving voltage can be performed using a wheel control command.
  • step S610 the number of revolutions per unit time of the wheel, the wheel rotation angle, or a combination thereof may be calculated.
  • step S711 a step of converting the wheel driving voltage into wheel driving power may be performed.
  • step S712 calculating (i) a first ratio between the wheel driving power and the number of rotations per unit time of the wheel, (ii) a second ratio between the wheel driving power and the wheel rotation angle, or a combination thereof.
  • a neural network-based collision detection model determines (i) a first ratio between the wheel drive power and the number of revolutions per unit time of the wheel, (ii) a second ratio between the wheel drive power and the wheel rotation angle, or a combination thereof. Steps can be taken to receive input and classify it as a normal state or a crash state.
  • the step of converting wheel drive voltage to wheel drive power is expressed in algorithmic pseudocode as follows.
  • Watt is the power applied to the wheel, so it corresponds to the wheel control command.
  • RPM refers to the number of actual wheel rotations per minute, so it corresponds to the result of wheel movement according to wheel control commands. It can be seen as a kind of feedback on commands. If the robot bumps into something and cannot move according to the wheel control command, it will have a very small feedback value. Therefore, the value of Watt/RPM increases rapidly.
  • the first ratio between the wheel driving power and the number of revolutions per unit time of the wheel is expressed in algorithmic pseudocode as follows.
  • watt_per_rpm watt / RPM
  • the collision detection device calculates a first ratio (L) between the wheel drive power and the number of rotations per unit time of the wheel for the left wheel, and a first ratio (R) between the wheel drive power and the number of rotations per unit time of the wheel for the right wheel. can be calculated, and whether there is a collision can be output through a collision detection model using the first ratio (L) for the left wheel and the first ratio (R) for the right wheel.
  • the collision detection device may use the wheel rotation angle instead of the wheel rotation per unit time or the wheel rotation per unit time and the wheel rotation angle as a feedback value.
  • the collision detection device calculates a second ratio (L) between wheel drive power and wheel rotation angle for the left wheel, calculates a second ratio (R) between wheel drive power and wheel rotation angle for the right wheel, and calculates a second ratio (R) between wheel drive power and wheel rotation angle for the left wheel. Whether or not there is a collision can be output through a collision detection model using the second ratio (L) for and the second ratio (R) for the right wheel.
  • FIG. 19 is a diagram illustrating a collision detection operation based on a progression angle error by a collision detection device according to another embodiment of the present invention
  • FIG. 20 is a diagram illustrating a progression angle by a collision detection device according to another embodiment of the present invention. This is a drawing to explain the error.
  • step S520 the left wheel speed and the right wheel speed can be obtained using a wheel control command.
  • step S620 the actual rotation angle of the robot can be calculated based on the measurement value by the posture sensor.
  • Attitude sensing data such as actual rotation angle can be measured by an attitude sensor such as an inertial sensor (IMU).
  • IMU inertial sensor
  • step S721 a step of calculating a progress target angle is performed using the relationship between the left wheel speed (V L ), the right wheel speed (V R ), and the distance (D) from the midpoint of both wheel centers to the wheel center. You can.
  • step S722 the angle error can be calculated using the difference between the progress target angle and the actual rotation angle.
  • step S820 a step of classifying the left wheel speed, right wheel speed, measurement value by the posture sensor, angle error, or a combination thereof into a normal state or a collision state can be performed through a neural network-based collision detection model.
  • the wheel control command may refer to the linear speed of the wheel.
  • V L the left wheel speed
  • V R the right wheel speed
  • the progress target angle ( ⁇ c ) can be obtained through kinematics.
  • Desired_theta (wheel_speed_cmd_R - wheel_speed_cmd_L) / (2 * 2.2)
  • the direction (angle) the robot was trying to go in and the direction (angle) in which the robot actually moved are different.
  • the direction in which the robot actually moves can be known by the z-axis value (yaw) of the gyro sensor. Therefore, the difference (error) between the direction (angle) desired by the robot and the direction (angle) in which the robot actually moved increases. If the angle error is expressed in algorithmic pseudocode, it is expressed as follows.
  • Figure 21 is a diagram illustrating a neural network-based collision detection model applicable to a collision detection device according to another embodiment of the present invention.
  • a neural network-based collision detection model can be learned by receiving wheel control commands and wheel movement results that occurred during the collision time section in the forward and rotation states of a robot moving on multiple types of floor materials.
  • the collision detection model extracts features and processes the data.
  • the particle classification model has multiple layers connected to a network and includes an input layer, a hidden layer, and an output layer.
  • a layer can include parameters, and the parameters of a layer include a set of learnable filters. Parameters include weights and/or biases between nodes.
  • the collision detection model initializes the hyper parameters that control the learning process, and the output values change depending on the changed hyper parameters, and optimized parameters can be derived.
  • the collision detection model includes encoder value, motor or wheel applied current, wheel control command, gyro sensor value, acceleration sensor value, Cliff PSD (Cliff Position Sensitive Device) sensor value, motor or wheel applied PWM (Pulse Width Modulation), Input data can be combined using the RPM (Revolutions Per Minute) of the motor or wheel, battery voltage, and shock sensor (Bumpers, Buttons, Wheel drops) values.
  • the collision detection model can be learned by receiving the ratio between the movement command sent to the robot and the actual movement.
  • the collision detection model includes left wheel control commands, right wheel control commands, yaw data from the gyro sensor, roll data from the acceleration sensor, the first ratio between wheel drive power and the number of revolutions per unit time of the wheel, and wheel drive power. and a second ratio between wheel rotation angles, or a combination thereof may be input and learned. It can be learned by receiving normalized data within a certain range as input data.
  • a collision detection model can classify a normal state or a collision state based on input data.
  • data on bumping from the front/side of the robot when moving forward on a hard floor can be used.
  • data on bumping from the front/side of the robot can be used.
  • Forward/backward, rotation, and stop data can be utilized on hard floors. You can use data when going up and down the carpet.
  • data on bumping on the front of the robot can be used.
  • data on bumping on the front of the robot can be used.
  • Figure 22 is a graph illustrating the relationship between collision and angle error according to the results of simulating a collision detection device according to another embodiment of the present invention
  • Figure 23 is a result of simulating a collision detection device according to another embodiment of the present invention. It is a graph illustrating the relationship between collision and the first rate
  • Figure 24 is a graph illustrating the relationship between collision and the second rate according to the results of simulating a collision detection device according to another embodiment of the present invention.
  • the collision detection device can determine whether there is a collision by using the angle command transmitted by the robot and the actual movement of the robot without using a mechanical bumper sensor.
  • the collision detection device does not use a mechanical bumper sensor, but can determine whether there is a collision by using the load on the wheels that is momentarily received when the robot fails to move in the desired direction.
  • the mobile robot acquires wheel control commands, calculates wheel movement results, processes data on the wheel control commands and wheel movement results, and detects collisions through a neural network-based collision detection model from the data-processed movement control commands and wheel movement results. It may include a collision detection device that outputs whether there is a collision, and a movement device implemented to move the mobile robot based on the output collision status.
  • the neural network-based collision detection model applied to mobile robots has a network structure with multiple layers connected, is learned by receiving wheel control commands and wheel movement results, and can be classified into a normal state or a collision state.
  • the mobile robot can acquire the left wheel speed and right wheel speed through the wheel control command.
  • the actual rotation angle of the robot can be calculated based on the measurement value by the posture sensor.
  • the progress target angle can be calculated using the relationship between the left wheel speed, right wheel speed, and the distance from the midpoint of both wheel centers to the wheel center.
  • the mobile robot can calculate the angle error using the difference between the progress target angle and the actual rotation angle.
  • a neural network-based collision detection model applied to a mobile robot can classify the robot into a normal state or a collision state by receiving left wheel speed, right wheel speed, measurement values from a posture sensor, angle error, or a combination thereof.
  • a mobile robot When a mobile robot obtains a wheel control command, it can obtain a wheel driving voltage using a wheel control command.
  • the mobile robot may calculate the wheel movement result by calculating the number of wheel rotations per unit time, the wheel rotation angle, or a combination thereof.
  • the mobile robot's data processing of wheel control commands and wheel movement results can convert wheel drive voltage into wheel drive power.
  • the mobile robot may calculate (i) a first ratio between wheel drive power and the number of revolutions per unit time of the wheels, (ii) a second ratio between wheel drive power and wheel rotation angle, or a combination thereof.
  • a neural network-based collision detection model applied to a mobile robot uses (i) a first ratio between wheel drive power and the number of rotations per unit time of the wheels, (ii) a second ratio between wheel drive power and wheel rotation angle, or a combination thereof. It can be input and classified into a normal state or a crash state.
  • the neural network-based collision detection model applied to the mobile robot can be learned by receiving wheel control commands and wheel movement results that occurred during the collision time section in the forward and rotation states of the robot moving on multiple floor materials.
  • a robot collision is detected and avoided based on a model learned from wheel control commands and data processed from wheel movement results according to wheel control commands, or the robot collides on its own. It has the effect of performing defensive actions to protect against.
  • Figure 25 is a block diagram schematically showing a sensing control device for a mobile robot according to an embodiment of the present invention.
  • Figures 26 to 28 are diagrams for explaining the operation of detecting floor material according to an embodiment of the present invention.
  • Figures 29 to 42 are diagrams for explaining the operation of detecting floor dust according to an embodiment of the present invention.
  • Figures 43 to 49 are diagrams for explaining the operation of detecting brush blockage or jamming according to an embodiment of the present invention.
  • Figures 50 to 58 are diagrams for explaining the operation of detecting a collision according to an embodiment of the present invention.
  • the detection and control device 600 of a mobile robot includes an environment sensing unit 610, a detection control unit 620, and a cleaning operation control unit 630.
  • the detection control device 600 of FIG. 25 is according to one embodiment, and not all blocks shown in FIG. 25 are essential components. In other embodiments, some blocks included in the detection control device 600 may be added or changed. Or it can be deleted.
  • the environment sensing unit 610 senses the surrounding environment within a previously stored map using a sensing module mounted on the mobile robot.
  • environmental sensing can be sensed in various ways.
  • the detection control unit 620 detects floor material, floor dust, brush condition, collision, etc. based on surrounding environment sensing information.
  • the detection control unit 620 includes a floor material detection unit 622, a floor dust detection unit 624, a brush state detection unit 626, and a collision detection unit 628.
  • the floor material detection unit 622 classifies the floor material using a neural net.
  • the floor material detection unit 622 can increase cleaning efficiency (performance) when using a mobile robot (cleaning robot) by distinguishing the floor material.
  • the developer directly selects the threshold by analyzing the current value and deviation data of the brush.
  • the floor material detection unit 622 distinguishes the floor material through a NN (Neural Network) rather than a threshold selected by the developer.
  • NN Neurological Network
  • the developer can directly analyze the data and reduce the inconvenience of having to select the threshold through hard coding, and a new model can be created by labeling and learning only the robot data obtained from the environment desired to be distinguished. .
  • the analysis time and update time to respond to various situations can be reduced through the floor material detection unit 622.
  • the floor material detection unit 622 can be used as follows.
  • the robot's cleaning and obstacle avoidance motions vary depending on the type of carpet, and it can be changed to carpet cleaning mode after recognizing the carpet.
  • the floor material detection unit 622 is capable of distinguishing not only the presence or absence of carpet but also the type (based on thickness and length of carpet bristles), thereby providing differentiation.
  • the floor material detection unit 622 does not have a specific sensor to distinguish the type of carpet, the technology can be implemented by replacing the sensor with another sensor that reflects the characteristics of each type of carpet.
  • the floor material detection unit 622 can distinguish between hard floors, thin carpets, and thick carpets.
  • the diagram of the floor material detection unit 622 is shown in FIG. 26.
  • the floor material detection unit 622 requires only a low current when the battery voltage is high, but requires a high current when the voltage is low. In other words, there is a difference in current depending on the battery voltage level, so only the main brush current value cannot be used with confidence. Therefore, the floor material can be detected by converting to watt units and extracting the actual power applied to the main brush.
  • the NN (Neural Network) of the floor material detection unit 622 may be defined as shown in FIG. 28.
  • the floor material detection unit 622 can detect the floor material using the changing pattern of the current value of each brush, the load on the wheels, the distance between floors, etc.
  • the NN model configuration of the floor material detection unit 622 is as follows.
  • Available data includes Encoder, Current (Cleaning motors, Wheels), Wheel Commands, Gyro, Acc, Cliff PSD (ASD, Distance), PWM (Cleaning motors, Wheels), RPM (Cleaning motors, Wheels), Battery voltage, Sensors (Bumpers , Buttons, Wheel drops), etc.
  • input examples include Cliff psd sensors (FL, FC, FR, BL, BR), Watt of wheels (L, R), Watt series of Main brush (-60ms ⁇ current, 4ticks), Current series of Rubber blade ( -60ms ⁇ current, 4ticks), etc.
  • Output may include hard floor, low pile carpet, high pile carpet, etc.
  • Training Data may include forward/backward, rotation, and stop data on a hard floor, forward/backward, rotation, and stop data on a Wilton carpet, and forward/backward, rotation, and stop data on a deep carpet.
  • the floor dust detection unit 624 can provide cleaning status feedback between uses of the cleaning robot and perform an additional operation (increase suction voltage) to increase cleaning efficiency depending on the dust condition of the floor.
  • the conventional floor dust detection method measures the current dust intake amount by attaching an IR sensor or a piezoelectricity sensor to the intake port.
  • the floor dust detection unit 624 detects the size and amount of dust through NN.
  • the mobile robot can provide new information about the state of floor dust, and a new model can be created by labeling and learning only the robot data obtained from the environment to be distinguished. Additionally, the floor dust detection unit 624 can reduce analysis time and update time to respond to various situations, and add learning data.
  • the mobile robot can adjust the brush and suction values according to the current dust condition on the floor and provide feedback to clean the dusty area once more.
  • the mobile robot can measure how full the dust bin is and process a notification so that the user can empty it.
  • the floor dust detection unit 624 can implement the technology without a sensor to measure how much dust is being sucked in.
  • the floor dust detection unit 624 can distinguish types of dust. For example, red bean grains (7x6mm) / rice grains (6x4mm) / sand (0.9x0.9mm), etc.
  • the floor dust detection unit 624 can calculate the amount of dust.
  • the diagram of the floor dust detection unit 624 is shown in Figure 29.
  • the feature extraction method of the floor dust detection unit 624 is as shown in FIG. 30.
  • Calculate differential of gyro data of the floor dust detection unit 624 can be calculated as follows.
  • the mobile robot measures the x,y,z values of the gyro every 5ms, and always remembers the x,y,z values of the previous gyro and calculates the diff value of each axis whenever a new value comes in.
  • an operation is performed to express the robot's movement more clearly through the amount of change rather than the current gyro value. An example of this operation is shown in Figure 31.
  • Stack 32 frames of the floor dust detection unit 624 can be calculated as follows. You can save the Calculate differential of gyro data value for each axis in the buffer and check how the robot's movement changes on the time axis. An example of this operation is shown in Figure 32.
  • the Apply Hann filter of the floor dust detection unit 624 may operate as follows.
  • the floor dust detection unit 624 pre-calculates the Hann weight tailored to 32 frames.
  • the intended Hann filter is shown in Figure 33, and the actually applied Hann filter is shown in Figure 34.
  • Hann filter can be applied to the buffer stored in the calculation stage of Stack 32 frames. This is an operation to give weight to important data, as shown in Figure 35.
  • the FFT of the floor dust detection unit 624 may operate as follows.
  • the logarithm of the floor dust detection unit 624 is as shown in FIG. 37.
  • the floor dust detection unit 624 takes log so that the characteristics are more clearly revealed, and performs scaling so that the corresponding value exists between 0 and 1. An example of this operation is shown in Figure 38.
  • Calculate quantities of dirt of the floor dust detection unit 624 are as shown in FIG. 39.
  • the NN of the floor dust detection unit 624 is as shown in FIG. 40.
  • the characteristic of the floor dust detection unit 624 is that when dust is sucked in, it measures the force with which the dust hits the robot body due to the rotation of the main brush, and measures the instantaneous change in the robot gyro caused by that force. These measurement results are shown in Figure 41.
  • the floor dust detection unit 624 performs fft of the corresponding instantaneous change amount, and the performance results are shown in FIG. 42.
  • the NN model configuration of the floor dust detection unit 624 is as follows.
  • Available data includes Encoder, Current (Cleaning motors, Wheels), Wheel Commands, Gyro, Acc, Cliff PSD (ASD, Distance), PWM (Cleaning motors, Wheels), RPM (Cleaning motors, Wheels), Battery voltage, Sensors (Bumpers , Buttons, Wheel drops), etc.
  • Input examples may include FFT Results of gyro differential 16EA * 3 Dim(x,y,z), etc.
  • Output may include Normal, Red bean (7x4mm), Rice (4x2mm), Sand (0.9x0.9mm), etc.
  • Training Data may include FFT results at the moment the robot moves forward and inhales each dust (red bean, rice, sand).
  • the brush status detection unit 626 detects the brush status to solve the problem of frequent cleaning with foreign substances caught in the brush due to the cleaning robot's failure to detect blockage or jamming of the brush.
  • Improvements to the brush state detection unit 626 are as follows.
  • the expected effects of the brush state detection unit 626 are as follows.
  • the differentiation of the brush state detection unit 626 is as follows.
  • the function of the brush state detection unit 626 is as follows.
  • the diagram of the brush state detection unit 626 is shown in FIG. 43.
  • Feature extraction of the brush state detection unit 626 is as shown in FIG. 44.
  • the brush state detection unit 626 performs the Converts Volts to Watts of Main brush step.
  • the brush state detection unit 626 requires only a low current when the battery voltage is high, but requires a high current when the voltage is low. There is a deviation in current depending on the battery voltage level, so the main brush current value cannot be used with confidence. Therefore, the actual power applied to the main brush can be extracted by converting it into watt units. An example of power extraction is shown in Figure 45.
  • the brush state detection unit 626 performs the Stack 32 frames step.
  • the brush state detection unit 626 stores the value calculated in the Converts Volts to Watts of Main brush step and the rubber blade current and rpm in the buffer. This is to capture the changing pattern of the rubber blade on the time axis. An example of this operation is shown in Figure 46.
  • the brush state detection unit 626 performs an FFT step.
  • the brush state detection unit 626 performs FFT on Data_curr_rb and Data_rpm_rb obtained at the Stack 32 frames stage. This is to allow more features to be revealed in the frequency band. An example of this operation is shown in Figure 47.
  • the NN model configuration of the brush state detection unit 626 is shown in FIG. 48.
  • Characteristics of the brush state detection unit 626 include changes in current values of various brushes and rotation patterns that are different from usual when the brushes are under load.
  • Available Data includes Encoder, Current (Cleaning motors, Wheels), Wheel Commands, Gyro, Acc, Cliff, PSD (ASD, Distance), PWM (Cleaning motors, Wheels), RPM (Cleaning motors, Wheels), Battery voltage, Sensors ( Bumpers, Buttons, Wheel drops), etc.
  • Input examples are Watt series of main brush (-200ms ⁇ current, 10ticks), Current series of rubber blade (-200ms ⁇ current, 10ticks), FFT results of rubber blade current 5EA, RPM series of rubber blade (-200ms ⁇ current, 10ticks), FFT results of rubber blade RPM 5EA, etc.
  • Output may include Normal, Blocked, etc.
  • Training Data can include robot forward data obtained when no load is applied to the brushes, data when an object is caught on the brushes while the robot is moving forward, glasses wipes, tough vinyl, non-tough vinyl, paper, etc. there is.
  • the collision detection unit 628 can detect collisions that occur in areas where bumpers do not exist through NN, and can detect collisions and slips that occur due to soft materials.
  • the expected effects of the collision detection unit 628 are as follows.
  • An example of the use of the collision detection unit 628 is as follows.
  • the differentiation of the collision detection unit 628 is as follows.
  • the functions of the collision detection unit 628 are as follows.
  • the diagram of the collision detection unit 628 is shown in FIG. 50.
  • Feature extraction of the collision detection unit 628 is as shown in FIG. 51.
  • the collision detection unit 628 performs the Converts Volts to Watts step.
  • the collision detection unit 628 performs the Calculate ratio of Watt and RPM step.
  • W is the voltage applied to the wheel, so it is the same as command.
  • RPM refers to the number of actual wheel rotations per minute, so it is the same as feedback according to a command.
  • the collision detection unit 628 performs the Calculate desired theta step.
  • Wheel_command means the linear speed of the wheel.
  • the collision detection unit 628 performs the Calculate error of desired theta and real theta step.
  • the NN model configuration of the brush state detection unit 626 is shown in FIG. 56.
  • the characteristic point of the brush state detection unit 626 is the robot's movement that is different from the angle command transmitted by the robot, as shown in FIG. 57.
  • the characteristic point of the brush state detection unit 626 is the load on the wheels that is momentarily received when the robot fails to move in the desired direction, as shown in FIG. 38.
  • Available data includes Encoder, Current (Cleaning motors, Wheels), Wheel Commands, Gyro, Acc, Cliff PSD (ASD, Distance), PWM (Cleaning motors, Wheels), RPM (Cleaning motors, Wheels), Battery voltage, Sensors (Bumpers , Buttons, Wheel drops), etc.
  • Input examples are Commands of wheels(L/R), Yaw data of Gyro, Roll data of Acc, Ratio of Watt and RPM(L/R), Watt / RPM, Error of Theta, Desired_theta - Yaw data of gyro It may include etc.
  • Output may include Normal, Bumped, etc.
  • Training Data includes bumping data from the front/side of the robot when moving forward on a hard floor, data from bumping from the front/side of the robot when rotating on a hard floor, forward/backward, rotation, and stop data on a hard floor, and data when going up and down on a carpet. It can include data on bumping, data on bumping on the front of the robot when moving forward on a carpet, data on bumping on the front of the robot when rotating on a carpet, data on forward and backward, rotation, and stop on the carpet.
  • the cleaning operation control unit 630 controls the cleaning operation based on the detection result received from the detection control unit 620.
  • a plurality of components included in the device and robot may be combined with each other and implemented as at least one module.
  • Components are connected to a communication path that connects software modules or hardware modules within the device and operate organically with each other. These components communicate using one or more communication buses or signal lines.
  • Devices and robots may be implemented within a logic circuit using hardware, firmware, software, or a combination thereof, and may also be implemented using a general-purpose or special-purpose computer.
  • the device may be implemented using hardwired devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc. Additionally, the device may be implemented as a System on Chip (SoC) including one or more processors and a controller.
  • SoC System on Chip
  • Devices and robots may be mounted on computing devices equipped with hardware elements in the form of software, hardware, or a combination thereof.
  • Computing devices are a variety of devices, including all or part of communication devices such as communication modems for communicating with various devices or wired and wireless communication networks, memory for storing data for executing programs, and microprocessors for executing programs to perform calculations and commands. It can mean a device.
  • Operations according to the present embodiments may be implemented in the form of program instructions that can be performed through various computer means and recorded on a computer-readable medium.
  • Computer-readable media refers to any media that participates in providing instructions to a processor for execution.
  • Computer-readable media may include program instructions, data files, data structures, or combinations thereof. For example, there may be magnetic media, optical recording media, memory, etc.
  • a computer program may be distributed over networked computer systems so that computer-readable code can be stored and executed in a distributed manner. Functional programs, codes, and code segments for implementing this embodiment can be easily deduced by programmers in the technical field to which this embodiment belongs.

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 발명은 인공신경망을 이용한 로봇의 감지 방법 및 그를 위한 장치에 관한 것이다. 본 실시예들은 먼지를 흡입하는 과정에서 브러시 회전으로 인하여 입자가 로봇과 충돌하고, 입자가 로봇과 충돌하는 힘의 세기에 따라 로봇의 자세 센싱 데이터의 순간 변화량에 차이가 발생하고, 이러한 자세 센싱 데이터를 학습한 모델을 기반으로 흡입 입자의 유형을 구분하는 입자 구분 장치 및 청소 로봇을 제공한다. 또한, 본 실시예들은 기구적 범퍼 센서를 이용하지 않고, 바퀴 제어 명령 및 바퀴 제어 명령에 따른 바퀴 이동 결과를 가공한 데이터를 학습한 모델을 기반으로 로봇의 충돌 여부를 감지하는 충돌 감지 장치 및 이동 로봇을 제공한다.

Description

인공신경망을 이용한 로봇의 감지 방법 및 그를 위한 장치
본 발명은 인공신경망 기반의 로봇의 감지 방법 및 그를 위한 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
청소 로봇은 바닥의 먼지 상태를 확인한 후 먼지 상태에 따라 청소 전략을 설정한다. 기존의 청소 로봇은 흡입구에 적외선(infrared ray) 센서 또는 압전(piezoelectricity) 센서 등을 부착하여 현재 먼지의 흡입량 등을 측정하는 방식을 채택하고 있다.
청소 로봇이 먼지 측정 센서를 구비하지 않거나 먼지 측정 센서가 고장난 상황 또는 먼지 측정 센서가 일시적으로 동작하지 않는 상황에서도 청소 동작을 올바르게 수행하기 위한 방안이 필요한 실정이다.
또한, 로봇 기술의 발전에 따라 스스로 경로를 설정하고 이동하는 자율 이동 로봇의 활용도가 높아지고 있다. 자율 이동 로봇이 이동 경로를 스스로 설정하기 위해서는 현재 위치와 목적지를 인식하고 이동할 수 있는 경로를 탐색할 수 있어야 할 뿐만 아니라, 이동 경로 상에 존재하는 장애물을 감지하여 회피할 수 있어야 한다.
기존의 이동 로봇은 기구적인 범퍼를 부착하여 충돌을 감지하는 방식을 채택하고 있다. 충돌을 감지하고 싶은 이동 로봇의 특정 영역에 범퍼를 위치시켜 충돌을 감지한다. 범퍼가 부착되지 않은 로봇 영역에서 끼임 또는 충돌 등의 이벤트가 발생하더라도, 감지를 원하는 위치에 범퍼가 없으므로 이러한 이벤트를 감지할 수 없는 문제가 있다. 감지를 원하는 위치에 범퍼가 있더라도 소파 또는 인형 등의 소프트 재질에 충돌 또는 슬립 등의 이벤트가 발생했을 때, 기구적 범퍼의 감지 원리만으로는 이벤트를 감지하는데 한계가 있다.
본 발명의 실시예들은 먼지를 흡입하는 과정에서 브러시 회전으로 인하여 입자가 로봇과 충돌하고, 입자가 로봇과 충돌하는 힘의 세기에 따라 로봇의 자세 센싱 데이터의 순간 변화량에 차이가 발생하고, 이러한 자세 센싱 데이터를 가공한 데이터를 학습한 모델을 기반으로 흡입 입자의 유형을 구분하는 데 발명의 주된 목적이 있다.
또한, 본 발명의 실시예들은 기구적 범퍼 센서를 이용하지 않고, 바퀴 제어 명령 및 바퀴 제어 명령에 따른 바퀴 이동 결과를 가공한 데이터를 학습한 모델을 기반으로 로봇의 충돌 여부를 감지하는 데 발명의 주된 목적이 있다.
또한, 본 발명은 인공신경망을 기반으로 모바일 로봇에서 바닥 재질, 바닥 먼지, 브러쉬 상태, 충돌 등을 감지하는 인공신경망 기반의 모바일 로봇의 감지 방법 및 그를 위한 장치를 제공하는 데 주된 목적이 있다.
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.
본 실시예의 일 측면에 의하면, 데이터 처리부를 포함하는 입자 구분 장치에 있어서, 상기 데이터 처리부는, 자세 센싱 데이터를 획득하고, 상기 자세 센싱 데이터를 데이터 가공하고, 상기 데이터 가공한 자세 센싱 데이터로부터 신경 네트워크 기반의 입자 구분 모델을 통해 입자 등급을 출력하는 것을 특징으로 하는 입자 구분 장치를 제공한다.
상기 자세 센싱 데이터를 데이터 가공하는 것은, 자세 센서의 각 축 별로 시계열로 입력된 자세 센싱 데이터의 변화량을 산출하고, 상기 자세 센싱 데이터의 변화량을 매트릭스에 저장하고, 상기 매트릭스에 매칭된 필터 가중치를 적용하고, 상기 필터 가중치가 적용된 매트릭스의 데이터를 주파수 도메인 데이터로 변환할 수 있다.
상기 자세 센싱 데이터를 데이터 가공하는 것은, 상기 주파수 도메인 데이터로 변환된 데이터를 로그 스케일로 변환하고, 상기 로그 스케일로 변환된 데이터를 미리 설정된 범위 내로 정규화할 수 있다.
상기 신경 네트워크 기반의 입자 구분 모델은 복수의 레이어가 연결된 네트워크 구조이고, 로봇이 이동하는 동안 입자를 흡입하는 순간에서 자세 센싱 데이터에 관한 주파수 도메인 데이터를 입력받아 학습되고, 크기가 상이한 제1 입자 유형, 제2 입자 유형, 제3 입자 유형, 또는 정상 유형으로 상기 입자 등급을 분류할 수 있다.
상기 데이터 처리부는, 상기 입자 등급에 따라 입자 개수를 누적하고, 입자 크기를 누적하고, 상기 누적한 입자 개수와 상기 누적한 입자 크기를 기반으로 평균 먼지량을 산출할 수 있다.
상기 데이터 처리부는, 상기 평균 먼지량을 판단한 결과에 따라 먼지가 많은 영역을 다시 청소하도록 피드백을 제공할 수 있다.
상기 데이터 처리부는, 상기 평균 먼지량을 판단한 결과에 따라 먼지통을 비우도록 알림을 제공할 수 있다.
상기 데이터 처리부는, 상기 입자 등급을 판단한 결과에 따라 브러쉬 및 흡입 세기를 조정하는 제어 명령을 송신할 수 있다.
본 실시예의 다른 측면에 의하면, 청소 로봇에 있어서, 자세 센싱 데이터를 획득하고, 상기 자세 센싱 데이터를 데이터 가공하고, 상기 데이터 가공한 자세 센싱 데이터로부터 신경 네트워크 기반의 입자 구분 모델을 통해 입자 등급을 출력하는 입자 구분 장치; 상기 출력한 입자 등급을 기반으로 상기 청소 로봇을 이동하도록 구현된 이동 장치; 및 상기 출력한 입자 등급을 기반으로 청소 동작을 수행하는 청소 장치를 포함하는 청소 로봇을 제공한다.
상기 청소 로봇이 상기 자세 센싱 데이터를 데이터 가공하는 것은, 자세 센서의 각 축 별로 시계열로 입력된 자세 센싱 데이터의 변화량을 산출하고, 상기 자세 센싱 데이터의 변화량을 매트릭스에 저장하고, 상기 매트릭스에 매칭된 필터 가중치를 적용하고, 상기 필터 가중치가 적용된 매트릭스의 데이터를 주파수 도메인 데이터로 변환할 수 있다.
상기 청소 로봇이 상기 자세 센싱 데이터를 데이터 가공하는 것은, 상기 주파수 도메인 데이터로 변환된 데이터를 로그 스케일로 변환하고, 상기 로그 스케일로 변환된 데이터를 미리 설정된 범위 내로 정규화할 수 있다.
상기 청소 로봇에 적용된 상기 신경 네트워크 기반의 입자 구분 모델은 복수의 레이어가 연결된 네트워크 구조이고, 로봇이 이동하는 동안 입자를 흡입하는 순간에서 자세 센싱 데이터에 관한 주파수 도메인 데이터를 입력받아 학습되고, 크기가 상이한 제1 입자 유형, 제2 입자 유형, 제3 입자 유형, 정상 유형으로 상기 입자 등급을 분류할 수 있다.
상기 청소 로봇은, 상기 입자 등급에 따라 입자 개수를 누적하고, 입자 크기를 누적하고, 상기 누적한 입자 개수와 상기 누적한 입자 크기를 기반으로 평균 먼지량을 산출할 수 있다.
상기 청소 로봇은, 상기 평균 먼지량을 판단한 결과에 따라 먼지가 많은 영역을 다시 청소하도록 피드백을 제공할 수 있다.
상기 청소 로봇은, 상기 평균 먼지량을 판단한 결과에 따라 먼지통을 비우도록 알림을 제공할 수 있다.
상기 청소 로봇은, 상기 입자 등급을 판단한 결과에 따라 상기 청소 장치에 포함된 브러쉬의 회전 및 흡입 모터의 흡입 세기를 조정할 수 있다.
본 실시예의 일 측면에 의하면, 데이터 처리부를 포함하는 충돌 감지 장치에 있어서, 상기 데이터 처리부는, 바퀴 제어 명령을 획득하고, 바퀴 이동 결과를 산출하고, 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 데이터 가공하고, 상기 데이터 가공한 상기 이동 제어 명령과 상기 바퀴 이동 결과로부터 신경 네트워크 기반의 충돌 감지 모델을 통해 충돌 여부를 출력하는 것을 특징으로 하는 충돌 감지 장치를 제공한다.
상기 신경 네트워크 기반의 충돌 감지 모델은 복수의 레이어가 연결된 네트워크 구조이고, 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 입력받아 학습되고, 정상 상태 또는 충돌 상태로 분류할 수 있다.
상기 바퀴 제어 명령을 획득하는 것은 상기 바퀴 제어 명령으로 바퀴 구동 전압을 획득하고, 상기 바퀴 이동 결과를 산출하는 것은 바퀴의 단위시간당 회전수, 바퀴 회전 각도, 또는 이들의 조합을 산출하고, 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 데이터 가공하는 것은, 상기 바퀴 구동 전압을 바퀴 구동 전력으로 변환하고, (i) 상기 바퀴 구동 전력 및 상기 바퀴의 단위시간당 회전수 간의 제1 비율, (ii) 상기 바퀴 구동 전력 및 상기 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 산출할 수 있다.
상기 신경 네트워크 기반의 충돌 감지 모델은 (i) 상기 바퀴 구동 전력 및 상기 바퀴의 단위시간당 회전수 간의 제1 비율, (ii) 상기 바퀴 구동 전력 및 상기 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 입력받아 상기 정상 상태 또는 상기 충돌 상태로 분류할 수 있다.
상기 바퀴 제어 명령을 획득하는 것은 상기 바퀴 제어 명령으로 좌측 바퀴 속도 및 우측 바퀴 속도를 획득하고, 상기 바퀴 이동 결과를 산출하는 것은 자세 센서에 의한 측정값을 기반으로 로봇의 실제 회전 각도를 산출하고, 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 데이터 가공하는 것은, 상기 좌측 바퀴 속도, 상기 우측 바퀴 속도, 및 양 바퀴 중심의 중간 지점으로부터 바퀴 중심까지의 거리의 관계를 이용하여 진행 목표 각도를 산출하고, 상기 진행 목표 각도 및 상기 실제 회전 각도 간의 차이를 이용하여 각도 오차를 산출할 수 있다.
상기 신경 네트워크 기반의 충돌 감지 모델은 상기 좌측 바퀴 속도, 상기 우측 바퀴 속도, 상기 자세 센서에 의한 측정값, 상기 각도 오차, 또는 이들의 조합을 입력받아 상기 정상 상태 또는 상기 충돌 상태로 분류할 수 있다.
상기 신경 네트워크 기반의 충돌 감지 모델은 복수 유형의 바닥면 재질에서 이동하는 로봇의 전진 상태 및 회전 상태에서 충돌한 시간 구간에 발생한 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 입력받아 학습될 수 있다.
본 실시예의 다른 측면에 의하면, 이동 로봇에 있어서, 바퀴 제어 명령을 획득하고, 바퀴 이동 결과를 산출하고, 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 데이터 가공하고, 상기 데이터 가공한 상기 이동 제어 명령과 상기 바퀴 이동 결과로부터 신경 네트워크 기반의 충돌 감지 모델을 통해 충돌 여부를 출력하는 충돌 감지 장치; 및 상기 출력한 충돌 여부를 기반으로 상기 이동 로봇을 이동하도록 구현된 이동 장치를 포함하는 이동 로봇을 제공한다.
상기 이동 로봇에 적용된 상기 신경 네트워크 기반의 충돌 감지 모델은 복수의 레이어가 연결된 네트워크 구조이고, 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 입력받아 학습되고, 정상 상태 또는 충돌 상태로 분류할 수 있다.
상기 이동 로봇이 상기 바퀴 제어 명령을 획득하는 것은 상기 바퀴 제어 명령으로 좌측 바퀴 속도 및 우측 바퀴 속도를 획득하고, 상기 바퀴 이동 결과를 산출하는 것은 자세 센서에 의한 측정값을 기반으로 로봇의 실제 회전 각도를 산출하고, 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 데이터 가공하는 것은, 상기 좌측 바퀴 속도, 상기 우측 바퀴 속도, 및 양 바퀴 중심의 중간 지점으로부터 바퀴 중심까지의 거리의 관계를 이용하여 진행 목표 각도를 산출하고, 상기 진행 목표 각도 및 상기 실제 회전 각도 간의 차이를 이용하여 각도 오차를 산출할 수 있다.
상기 이동 로봇에 적용된 상기 신경 네트워크 기반의 충돌 감지 모델은 상기 좌측 바퀴 속도, 상기 우측 바퀴 속도, 상기 자세 센서에 의한 측정값, 상기 각도 오차, 또는 이들의 조합을 입력받아 상기 정상 상태 또는 상기 충돌 상태로 분류할 수 있다.
상기 이동 로봇이 상기 바퀴 제어 명령을 획득하는 것은 상기 바퀴 제어 명령으로 바퀴 구동 전압을 획득하고, 상기 바퀴 이동 결과를 산출하는 것은 바퀴의 단위시간당 회전수, 바퀴 회전 각도, 또는 이들의 조합을 산출하고, 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 데이터 가공하는 것은, 상기 바퀴 구동 전압을 바퀴 구동 전력으로 변환하고, (i) 상기 바퀴 구동 전력 및 상기 바퀴의 단위시간당 회전수 간의 제1 비율, (ii) 상기 바퀴 구동 전력 및 상기 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 산출할 수 있다.
상기 이동 로봇에 적용된 상기 신경 네트워크 기반의 충돌 감지 모델은 (i) 상기 바퀴 구동 전력 및 상기 바퀴의 단위시간당 회전수 간의 제1 비율, (ii) 상기 바퀴 구동 전력 및 상기 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 입력받아 상기 정상 상태 또는 상기 충돌 상태로 분류할 수 있다.
상기 이동 로봇에 적용된 상기 신경 네트워크 기반의 충돌 감지 모델은 복수의 바닥면 재질에서 이동하는 로봇의 전진 상태 및 회전 상태에서 충돌한 시간 구간에 발생한 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 입력받아 학습될 수 있다.
또한, 본 발명의 일 측면에 의하면, 상기 목적을 달성하기 위한 모바일 로봇의 감지를 제어하는 장치에 있어서, 감지 제어 장치는 상기 모바일 로봇에 장착된 센싱모듈을 이용하여 지도 내의 주변 환경을 센싱하는 환경 센싱부; 주변 환경 센싱 정보를 기반으로 바닥 재질, 바닥 먼지, 브러쉬 상태 및 충돌 중 적어도 하나를 감지하는 감지 제어부; 및 상기 감지 결과를 기반으로 청소 동작을 제어하는 청소 동작 제어부를 포함할 수 있다.
이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면 먼지 측정 센서를 사용하지 않고도 흡입 입자 유형 및 먼지 흡입량을 측정할 수 있고, 구분하고 싶은 환경에서 얻은 로봇 데이터만 라벨링하여 학습하면 신규 입자 유형을 구분하거나 바닥 먼지 상태에 대한 새로운 정보를 제공할 수 있고, 다양한 상황에 대응하기 위한 분석 시간 및 업데이트 시간을 감소시킬 수 있는 효과가 있다.
또한, 본 발명의 실시예들에 의하면 기구적 범퍼 센서를 이용하지 않고, 바퀴 제어 명령 및 바퀴 제어 명령에 따른 바퀴 이동 결과를 가공한 데이터를 학습한 모델을 기반으로 로봇의 충돌 여부를 감지하여 회피하거나 로봇이 스스로 충돌로부터 보호하기 위한 방어 동작을 수행할 수 있는 효과가 있다.
여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급된다.
도 1은 본 발명의 실시예들에 따른 로봇 및 센서의 회전 동작을 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 청소 로봇을 예시한 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 입자 구분 장치를 예시한 블록도이다.
도 4는 본 발명의 다른 실시예에 따른 입자 구분 장치의 입자 등급을 구분하는 동작을 예시한 도면이다.
도 5는 본 발명의 다른 실시예에 따른 입자 구분 장치의 데이터 가공 동작을 예시한 도면이다.
도 6은 본 발명의 다른 실시예에 따른 입자 구분 장치가 처리하는 자세 센싱 데이터의 순간 변화량을 예시한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 입자 구분 장치가 처리하는 자세 센싱 데이터의 변화량을 저장하는 매트릭스를 예시한 도면이다.
도 8 및 도 9는 본 발명의 다른 실시예에 따른 입자 구분 장치가 처리하는 자세 센싱 데이터의 변화량에 적용하는 필터 가중치를 예시한 도면이다.
도 10은 본 발명의 다른 실시예에 따른 입자 구분 장치가 처리하는 주파수 도메인의 자세 센싱 데이터를 예시한 도면이다.
도 11은 본 발명의 다른 실시예에 따른 입자 구분 장치의 데이터 가공 동작을 예시한 도면이다.
도 12는 본 발명의 다른 실시예에 따른 입자 구분 장치에 적용 가능한 신경 네트워크 기반의 입자 구분 모델을 예시한 도면이다.
도 13 및 도 14는 본 발명의 다른 실시예에 따른 입자 구분 장치의 입자 등급 확인 후 추가 동작을 예시한 도면이다.
도 15는 본 발명의 일 실시예에 따른 이동 로봇을 예시한 블록도이다.
도 16은 본 발명의 다른 실시예에 따른 충돌 감지 장치를 예시한 블록도이다.
도 17는 본 발명의 다른 실시예에 따른 충돌 감지 장치의 충돌 감지 동작을 예시한 도면이다.
도 18은 본 발명의 다른 실시예에 따른 충돌 감지 장치에 의한 바퀴 회전 비율을 기반으로 하는 충돌 감지 동작을 예시한 도면이다.
도 19는 본 발명의 다른 실시예에 따른 충돌 감지 장치에 의한 진행 각도 오차를 기반으로 하는 충돌 감지 동작을 예시한 도면이다.
도 20은 본 발명의 다른 실시예에 따른 충돌 감지 장치에 의한 진행 각도 오차를 설명하기 위한 도면이다.
도 21은 본 발명의 다른 실시예에 따른 충돌 감지 장치에 적용 가능한 신경 네트워크 기반의 충돌 감지 모델을 예시한 도면이다.
도 22는 본 발명의 다른 실시예에 따른 충돌 감지 장치를 시뮬레이션한 결과에 따라 충돌 및 각도 오차 간의 관계를 예시한 그래프이다.
도 23은 본 발명의 다른 실시예에 따른 충돌 감지 장치를 시뮬레이션한 결과에 따라 충돌 및 제1 비율 간의 관계를 예시한 그래프이다.
도 24는 본 발명의 다른 실시예에 따른 충돌 감지 장치를 시뮬레이션한 결과에 따라 충돌 및 제2 비율 간의 관계를 예시한 그래프이다.
도 25는 본 발명의 실시예에 따른 모바일 로봇의 감지 제어 장치를 개략적으로 나타낸 블록 구성도이다.
도 26 내지 도 28은 본 발명의 실시예에 따른 바닥 재질을 감지하는 동작을 설명하기 위한 도면이다.
도 29 내지 도 42는 본 발명의 실시예에 따른 바닥 먼지를 감지하는 동작을 설명하기 위한 도면이다.
도 43 내지 도 49는 본 발명의 실시예에 따른 브러쉬 막힘 또는 걸림을 감지하는 동작을 설명하기 위한 도면이다.
도 50 내지 도 58은 본 발명의 실시예에 따른 충돌을 감지하는 동작을 설명하기 위한 도면이다.
이하, 본 발명을 설명함에 있어서 관련된 공지기능에 대하여 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하고, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다.
도 1은 본 발명의 실시예들에 따른 로봇 및 센서의 회전 동작을 예시한 도면이다.
로봇 기술의 발전에 따라 스스로 경로를 설정하고 이동하는 자율 이동 로봇의 활용도가 높아지고 있다. 자율 이동 로봇이 이동 경로를 스스로 설정하기 위해서는 현재 위치와 목적지를 인식하고 이동할 수 있는 경로를 탐색할 수 있어야 할 뿐만 아니라, 이동 경로 상에 존재하는 장애물을 감지하여 회피할 수 있어야 한다.
로봇(10)은 로봇에 적용되는 센서(11)를 통해 주변 환경 및 장애물의 위치를 정확히 감지한다.
주변 환경을 탐지하는 센서로는 라이다 센서, 영상 센서, 하이브리드 센서 등의 다양한 센서가 있다.
로봇은 센서 및 이동 장치를 포함한다. 로봇은 이동 로봇, 모바일 로봇, 청소 로봇, 물류 로봇, 장난감 자동차, 산업용 또는 군사용 목적 등으로 이용 가능한 로봇 등이 있을 수 있다.
로봇은 SLAM(Simultaneous Localization And Mapping), AMCL(Adaptive Monte Carlo Localization), 라이다 센서, 영상 센서, IMU 센서 등을 통하여 환경 정보(2D/3D 공간 정보) 및 오도메트리 정보를 수집할 수 있다. 로봇은 센서를 통해 주변 환경을 스캔하고 지도를 생성할 수 있다. IMU 센서는 가속도 센서 및 자이로 센서를 포함할 수 있다. 가속도 센서는 축을 기준으로 물체의 가속도와 방향을 계측할 수 있다. 자이로 센서는 축을 기준으로 물체의 회전 각도를 계측할 수 있다.
로봇(10)에 장착된 센서(11)는 주변 환경 및 장애물을 감지하기 위해서 회전할 수 있다. 라이다 센서의 경우는 센싱한 포인트 클라우드 데이터를 통해서 장애물이 위치하는 방향에 대해서 장애물(OBS)을 감지할 수 있다.
라이다 센서는 무선 신호를 쏘고 반사되어 돌아오는 시간을 측정하고, 빛의 속도를 이용하여 반사체의 거리를 측정하는 장치이다. 무선 신호는 포토 다이오드를 통하여 전기적인 신호로 변경된다. 무선 신호는 기 설정된 파장 대역을 가질 수 있다.
라이다 센서는 타임 오브 플라이트(Time of Flight, TOF) 방식으로 동작할 수 있다. 타임 오브 플라이트 방식은 레이저가 펄스 또는 구형파 신호를 방출하여 측정 범위 내에 있는 물체들로부터의 반사 펄스 또는 구형파 신호들이 수신기에 도착하는 시간을 측정함으로써, 측정 대상과 거리 측정 장치 사이의 거리를 측정한다.
라이다 센서는 광 신호를 송신하고 반사된 광 신호를 수신한다. 라이다 센서는 시작 제어 신호에 의해 대상체로 광을 출사하고 대상체에 반사된 광을 수신하여 전기 신호로 변환한다. 라이다 센서는 기 설정된 검출 시간 동안 전기 신호를 출력한다.
라이다 센서의 제어부는 신호를 변환할 수 있다. 수신기에 제어부가 연결되고, 신호 증폭기가 연결될 수 있다.
광원은 기 설정된 샘플링 주기에 기반하여 대상체로 광을 출사한다. 샘플링 주기는 제어부에 의해 설정될 수 있다. 샘플링 주기는 시작 제어 신호에 따라 송신기가 광을 출사하고 수신기가 반사된 광을 수신하고 제어부가 광을 전기 신호로 변환하기까지의 시간이다. 라이다 센서는 다음 샘플링 주기에서 이러한 동작들을 반복하여 수행할 수 있다.
수신기는 대상체에 반사된 광을 수신하여 전기 신호로 변환한다. 수신기는 전기 신호에 대해서 인텐시티를 추출할 수 있다.
제어부는 전기 신호를 변환하여 정확한 시점을 측정하고 정지 제어 신호를 출력할 수 있다.
제어부는 최대 신호 크기를 갖는 신호 지점을 기 설정된 크기를 갖도록 전기 신호를 변환하고, 변환된 전기 신호의 크기를 조절하고, 기 설정된 크기를 갖는 시점을 검출한다. 제어부는 전기 신호를 변환하여 정지 제어 신호를 생성한다.
제어부는 수신기 또는 증폭기로부터 전기 신호를 수신한다. 수신한 전기 신호, 즉, 입력 신호는 반사된 광에 의해 상승하고 하강하는 형태를 갖는다. 제어부는 입력 신호에 대해 목적하는 시점을 정확하게 측정하여 전기 신호를 출력한다.
제어부는 두 시간의 차이를 디지털 값으로 변환하는 하나 이상의 시간 디지털 변환기를 포함할 수 있다. 시간 디지털 변환기의 입력 신호는 동일 신호원의 펄스 형태가 될 수도 있고, 다른 신호원의 에지가 될 수도 있다. 예컨대, 라이다 센서는 시작 제어 신호의 상승 에지 또는 하강 에지, 정지 제어 신호의 상승 에지 또는 하강 에지를 기준으로 시간차를 산출할 수 있다.
라이다 센서는 정지 제어 신호의 상승 에지 또는 하강 에지를 기준으로 펄스 폭을 산출하고, 펄스 폭 대 워크에러의 함수에 적용한 팩터 값을 보정 전의 비행시간에 가산할 수 있다. 라이다 센서는 반사 신호의 펄스 폭을 이용하여 비행시간을 보정함으로써, 정확한 비행시간을 산출할 수 있다.
로봇은 구축한 지도를 이용하여 주행 경로를 설정하고 주행 경로에 따라 주행할 수 있다.
본 실시예에 따른 로봇은 청소 로봇이 먼지 측정 센서를 구비하지 않거나 먼지 측정 센서가 고장난 상황 또는 먼지 측정 센서가 일시적으로 동작하지 않는 상황에서도 청소 동작을 올바르게 수행할 수 있도록 한다.
본 실시예에 따른 로봇은 먼지를 흡입하는 과정에서 브러시 회전으로 인하여 입자가 로봇과 충돌하고, 입자가 로봇과 충돌하는 힘의 세기에 따라 로봇의 자세 센싱 데이터의 순간 변화량에 차이가 발생하고, 로봇은 이러한 자세 센싱 데이터를 가공한 데이터를 학습한 모델을 기반으로 흡입 입자의 유형을 구분한다.
또한, 본 실시예에 따른 로봇은 범퍼가 부착되지 않은 로봇 영역에서 끼임 또는 충돌 등의 이벤트가 발생할 때 이벤트를 감지할 수 없는 문제를 해결하고, 감지를 원하는 위치에 범퍼가 있더라도 소파 또는 인형 등의 소프트 재질에 충돌 또는 슬립 등의 이벤트가 발생했을 때, 기구적 범퍼의 감지 한계를 극복하도록 한다.
본 실시예에 따른 로봇은 기구적 범퍼 센서를 이용하지 않고, 바퀴 제어 명령 및 바퀴 제어 명령에 따른 바퀴 이동 결과를 가공한 데이터를 학습한 모델을 기반으로 로봇의 충돌 여부를 감지한다.
도 2는 본 발명의 일 실시예에 따른 청소 로봇을 예시한 블록도이고, 도 3은 본 발명의 다른 실시예에 따른 입자 구분 장치를 예시한 블록도이다.
청소 로봇(10)은 입자 구분 장치(100), 이동 장치(200), 청소 장치(300)를 포함할 수 있다.
입자 구분 장치(100)는 본체에 연결되며 자세 센싱 데이터를 획득하고, 자세 센싱 데이터를 데이터 가공하고, 데이터 가공한 자세 센싱 데이터로부터 신경 네트워크 기반의 입자 구분 모델을 통해 입자 등급을 출력한다.
이동 장치(200)는 본체에 연결되며 출력한 입자 등급을 기반으로 청소 로봇을 이동하도록 구현된다. 대상체까지의 거리를 기반으로 주행 경로를 산출하거나 장애물을 검출하여 이동체를 이동시킨다. 이동 장치(200)는 바퀴, 레일, 다리 등으로 구현될 수 있으며, 움직임 변화를 파악하는 오도메트리 측정 센서를 포함할 수 있다.
청소 장치(300)는 본체에 연결되며 회전 브러쉬, 먼지통, 흡입 모터, 노즐 등을 포함할 수 있다. 회전 브러쉬가 회전하여 먼지를 모으고, 흡입 모터의 흡입력을 제어하여 노즐을 통해 먼지를 흡입하고, 흡입한 먼지를 먼지통에 저장한다.
입자 구분 장치(100)는 데이터 처리부(110)를 포함할 수 있다. 데이터 처리부(110)는 프로세서 등으로 구현될 수 있다.
데이터 처리부(110)는 자세 센싱 데이터를 획득하고, 자세 센싱 데이터를 데이터 가공하고, 데이터 가공한 자세 센싱 데이터로부터 신경 네트워크 기반의 입자 구분 모델을 통해 입자 등급을 출력한다. 자세 센싱 데이터는 관성 센서(IMU) 등과 같은 자세 센서에 의해 계측될 수 있다.
입자 구분 장치(100)는 입자 구분 모델(120)을 포함할 수 있다. 입자 구분 모델(120)은 데이터 처리부(110)에 의해 저장되거나 다른 기록 매체에 저장될 수 있다.
입자 구분 장치(100)는 먼지의 종류를 구분하며, 먼지의 종류를 기반으로 먼지의 양을 계산할 수 있다. 입자 유형으로는 팥 알갱이(7x6mm), 쌀알(6x4mm), 모래(0.9x0.9mm) 등으로 구분할 수 있으며, 로봇의 환경에 따라 다른 크기를 기준으로 구분할 수도 있다.
도 4는 본 발명의 다른 실시예에 따른 입자 구분 장치의 입자 등급을 구분하는 동작을 예시한 도면이다.
단계 S100에서는 자세 센싱 데이터를 획득하는 단계를 수행할 수 있다. 단계 S200에서는 자세 센싱 데이터를 데이터 가공하는 단계를 수행할 수 있다. 단계 S300에서는 데이터 가공한 자세 센싱 데이터로부터 신경 네트워크 기반의 입자 구분 모델을 통해 입자 등급을 출력하는 단계를 수행할 수 있다.
도 5는 본 발명의 다른 실시예에 따른 입자 구분 장치의 데이터 가공 동작을 예시한 도면이다.
자세 센싱 데이터를 데이터 가공하는 단계(S200)는 자세 센서의 각 축 별로 시계열로 입력된 자세 센싱 데이터의 변화량을 산출하는 단계(S210), 자세 센싱 데이터의 변화량을 매트릭스에 저장하는 단계(S220), 매트릭스에 매칭된 필터 가중치를 적용하는 단계(S230), 필터 가중치가 적용된 매트릭스의 데이터를 주파수 도메인 데이터로 변환하는 단계(S240)를 포함할 수 있다.
도 6은 본 발명의 다른 실시예에 따른 입자 구분 장치가 처리하는 자세 센싱 데이터의 순간 변화량을 예시한 도면이다.
자세 센서의 각 축 별로 시계열로 입력된 자세 센싱 데이터의 변화량을 산출하는 단계(S210)를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
diff_of_gyro = current_gyro - previous_gyro
로봇은 매 5ms마다 자이로 센서의 x축, y축, z축에 해당하는 자세값을 측정한다. 직전의 자이로 센서의 x축, y축, z축에 해당하는 자세값을 기억하여 새로운 값이 들어올 때마다 각 축의 차이값을 계산한다. 현재 자이로 센서의 자세값보다는 변화량을 통하여 로봇의 움직임을 더 명확하게 표현할 수 있다.
자세값의 변화량을 산출하는 것을 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
Diff_of_gyro[x] = current_gyro[x] - pre_gyro[x]
Diff_of_gyro[y] = current_gyro[y] - pre_gyro[y]
Diff_of_gyro[z] = current_gyro[z] - pre_gyro[z]
Pre_gyro[x] = current_gyro[x]
Pre_gyro[y] = current_gyro[y]
Pre_gyro[z] = current_gyro[z]
도 7은 본 발명의 다른 실시예에 따른 입자 구분 장치가 처리하는 자세 센싱 데이터의 변화량을 저장하는 매트릭스를 예시한 도면이다.
자세 센싱 데이터의 변화량을 저장하는 매트릭스로 스택 데이터 구조를 적용할 수 있다. 매트릭스는 복수의 프레임을 고려하여 설계될 수 있다.
자세 센싱 데이터의 변화량을 매트릭스에 저장하는 단계(S220)를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
Data_matrix_imu_push_back(Diff_of_gyro)
자세 센싱 데이터의 변화량을 저장하는 것은 각 축별로 계산한 자세 변화값을 버퍼에 저장한다. 시간축에서 로봇의 움직임이 어떻게 변화하는지 파악할 수 있다.
도 8 및 도 9는 본 발명의 다른 실시예에 따른 입자 구분 장치가 처리하는 자세 센싱 데이터의 변화량에 적용하는 필터 가중치를 예시한 도면이다.
매트릭스에 매칭된 필터 가중치를 적용하는 단계(S230)를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다. 중요한 데이터에 가중치를 두기 위해서이다.
FFT_input = Data_matrix_imu * Filter_weight
32 프레임에 맞춘 필터 가중치를 사전에 계산한다. 필터로는 Hann filter 등이 적용될 수 있다.
Hann filter를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
w = [0.000 0.010 0.038 0.084 0.146 0.222 0.309 0.402 0.500 0.598 0.691 0.778 0.854 0.916 0.962 0.990 1.000 0.990 0.962 0.916 0.854 0.778 0.691 0.598 0.500 0.402 0.309 0.222 0.146 0.084 0.038 0.010]
32 프레임에 맞춘 필터 가중치를 적용하는 것을 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
for (int i(0); i < 32; i++)
{
Filter_weight[i] = 0.5 * (1.0 - std::cos(2.0 * M_PI * static_cast<double>(i) / static_cast<double>(frames)));
}
도 10은 본 발명의 다른 실시예에 따른 입자 구분 장치가 처리하는 주파수 도메인의 자세 센싱 데이터를 예시한 도면이다.
필터 가중치가 적용된 매트릭스의 데이터를 주파수 도메인 데이터로 변환하는 단계(S240)를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
FFT.compute(FFT_input, amplitude, frequency)
필터 가중치를 적용한 값에 푸리에 변환을 적용한다. 예컨대, FFT(Fast Fourier Transform)를 적용할 수 있다. 주파수 대역으로 변환하여 특징이 부각되도록 처리할 수 있다.
필터 가중치를 적용한 값에 푸리에 변환을 적용하는 것을 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
fft_input[x] -----FFT-----> amplitude[x], frequency
fft_input[y] -----FFT-----> amplitude[y], frequency
fft_input[z] -----FFT-----> amplitude[z], frequency
/// amplitude[x].size == 16
/// [y][z] same as [x]
도 11은 본 발명의 다른 실시예에 따른 입자 구분 장치의 데이터 가공 동작을 예시한 도면이다.
자세 센싱 데이터를 데이터 가공하는 단계(S200)는 주파수 도메인 데이터로 변환된 데이터를 로그 스케일로 변환하는 단계(S250), 로그 스케일로 변환된 데이터를 미리 설정된 범위 내로 정규화하는 단계(S260)를 포함할 수 있다.
자세 센싱 데이터의 특징이 부각되도록 주파수 도메인 데이터로 변환된 데이터에 로그 연산을 취할 수 있다. 해당 값이 0과 1사이에 존재할 수 있도록 스케일링을 적용할 수 있다.
주파수 도메인 데이터로 변환된 데이터를 로그 스케일로 변환하는 단계(S250), 로그 스케일로 변환된 데이터를 미리 설정된 범위 내로 정규화하는 단계(S260)를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
Out = 10.0 * std::log10( amplitude * amplitude )
Out = ( out + 20.0 ) / 60.0
Out = out * scale_factor
보다 구체적인 알고리즘 코드로 표현하면 아래와 같이 표현된다.
scales_imu[x] = 0.5;
scales_imu[y] = 1.0;
scales_imu[z] = 0.5;
for (int j(0); j < amplitudes.size(); j++)
{
double vv_x = 10.0 * std::log10(amplitudes[x][j] * amplitudes[x][j]);
double vv_y = 10.0 * std::log10(amplitudes[y][j] * amplitudes[y][j]);
double vv_z = 10.0 * std::log10(amplitudes[z][j] * amplitudes[z][j]);
vv_x = (vv_x + 20.0) / 60.0;
vv_y = (vv_y + 20.0) / 60.0;
vv_z = (vv_z + 20.0) / 60.0;
vv_x *= scales_imu[x];
vv_y *= scales_imu[y];
vv_z *= scales_imu[z];
}
도 12는 본 발명의 다른 실시예에 따른 입자 구분 장치에 적용 가능한 신경 네트워크 기반의 입자 구분 모델을 예시한 도면이다.
신경 네트워크 기반의 입자 구분 모델은 복수의 레이어가 연결된 네트워크 구조이고, 로봇이 이동하는 동안 입자를 흡입하는 순간에서 자세 센싱 데이터에 관한 주파수 도메인 데이터를 입력받아 학습되고, 크기가 상이한 제1 입자 유형, 제2 입자 유형, 제3 입자 유형, 또는 정상 유형으로 입자 등급을 분류할 수 있다.
입자 구분 모델은 특징을 추출하고 특징을 데이터 가공 처리한다. 입자 구분 모델은 다수의 레이어가 네트워크로 연결되며 입력 레이어, 히든 레이어, 출력 레이어를 포함한다. 레이어는 파라미터를 포함할 수 있고, 레이어의 파라미터는 학습가능한 필터 집합을 포함한다. 파라미터는 노드 간의 가중치 및/또는 바이어스를 포함한다. 입자 구분 모델은 학습 과정을 제어하는 하이퍼 파라미터를 초기화하고 변경된 하이퍼 파라미터에 의해 출력값이 달라지게 되고 최적화된 파라미터를 도출할 수 있다.
입자 구분 모델은 엔코더(Encoder) 값, 모터 또는 바퀴 인가 전류, 바퀴 제어 명령, 자이로 센서 값, 가속도 센서 값, 클리프 PSD(Cliff Position Sensitive Device) 센서 값, 모터 또는 바퀴 인가 PWM(Pulse Width Modulation), 모터 또는 바퀴의 RPM(Revolutions Per Minute), 충격 감지 센서(Bumpers, Buttons, Wheel drops) 값 등을 활용하여 센싱 데이터를 조합할 수 있다.
입자 구분 모델은 3축에 대한 자세 센싱 데이터의 주파수 도메인 변환 데이터를 입력받아 학습될 수 있다. 입자 구분 모델은 주파수 도메인 변환 데이터에 대해서 로그 연산을 수행하고 정규화된 데이터를 입력받아 학습될 수 있다.
입자 구분 모델은 크기가 상이한 제1 입자 유형, 제2 입자 유형, 제3 입자 유형, 또는 정상 유형으로 입자 등급을 분류할 수 있다. 예컨대, 정상 상태, 팥(7x4mm), 쌀(4x2mm), 모래(0.9x0.9mm) 등으로 분류할 수 있다.
입자 구분 모델의 학습 데이터로는 로봇이 전진하며 각 먼지(Red bean, rice, sand)를 흡입하는 순간의 FFT 결과물을 활용할 수 있다.
도 13 및 도 14는 본 발명의 다른 실시예에 따른 입자 구분 장치의 입자 등급 확인 후 추가 동작을 예시한 도면이다.
단계 S100에서는 자세 센싱 데이터를 획득하는 단계를 수행할 수 있다. 단계 S200에서는 자세 센싱 데이터를 데이터 가공하는 단계를 수행할 수 있다. 단계 S300에서는 데이터 가공한 자세 센싱 데이터로부터 신경 네트워크 기반의 입자 구분 모델을 통해 입자 등급을 출력하는 단계를 수행할 수 있다. 단계 S400에서는 입자 등급을 활용하여 추가 동작을 수행할 수 있다.
데이터 처리부는 입자 등급에 따라 입자 개수를 누적하는 단계(S410), 입자 크기를 누적하는 단계(S420), 누적한 입자 개수와 누적한 입자 크기를 기반으로 평균 먼지량을 산출하는 단계(S430)를 포함할 수 있다.
입자 개수를 누적하는 단계(S410)를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
If( predicted == red bean ) particle_size = 6
Else if( predicted == rice) particle_size = 3
Else if( predicted == sand) particle_size = 1
partcle_count++
입자 크기를 누적하는 단계(S420)를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
sum_particle_size += particle_size
평균 먼지량을 산출하는 단계(S430)를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
avg_particle_size = sum_particle_size / particle_count
데이터 처리부는 평균 먼지량을 판단한 결과에 따라 먼지가 많은 영역을 다시 청소하도록 피드백을 제공할 수 있다.
데이터 처리부는 평균 먼지량을 판단한 결과에 따라 먼지통을 비우도록 알림을 제공할 수 있다.
데이터 처리부는 입자 등급을 판단한 결과에 따라 브러쉬 및 흡입 세기를 조정하는 제어 명령을 송신할 수 있다.
청소 로봇은 자세 센싱 데이터를 획득하고, 자세 센싱 데이터를 데이터 가공하고, 데이터 가공한 자세 센싱 데이터로부터 신경 네트워크 기반의 입자 구분 모델을 통해 입자 등급을 출력하는 입자 구분 장치, 출력한 입자 등급을 기반으로 청소 로봇을 이동하도록 구현된 이동 장치, 및 출력한 입자 등급을 기반으로 청소 동작을 수행하는 청소 장치를 포함할 수 있다.
청소 로봇이 자세 센싱 데이터를 데이터 가공하는 것은 자세 센서의 각 축 별로 시계열로 입력된 자세 센싱 데이터의 변화량을 산출하고, 자세 센싱 데이터의 변화량을 매트릭스에 저장하고, 매트릭스에 매칭된 필터 가중치를 적용하고, 필터 가중치가 적용된 매트릭스의 데이터를 주파수 도메인 데이터로 변환할 수 있다.
청소 로봇이 자세 센싱 데이터를 데이터 가공하는 것은 주파수 도메인 데이터로 변환된 데이터를 로그 스케일로 변환하고, 로그 스케일로 변환된 데이터를 미리 설정된 범위 내로 정규화할 수 있다.
청소 로봇에 적용된 신경 네트워크 기반의 입자 구분 모델은 복수의 레이어가 연결된 네트워크 구조이고, 로봇이 이동하는 동안 입자를 흡입하는 순간에서 자세 센싱 데이터에 관한 주파수 도메인 데이터를 입력받아 학습되고, 크기가 상이한 제1 입자 유형, 제2 입자 유형, 제3 입자 유형, 정상 유형으로 입자 등급을 분류할 수 있다.
청소 로봇은 입자 등급에 따라 입자 개수를 누적하고, 입자 크기를 누적하고, 누적한 입자 개수와 누적한 입자 크기를 기반으로 평균 먼지량을 산출할 수 있다.
청소 로봇은 평균 먼지량을 판단한 결과에 따라 먼지가 많은 영역을 다시 청소하도록 피드백을 제공할 수 있다.
청소 로봇은 평균 먼지량을 판단한 결과에 따라 먼지통을 비우도록 알림을 제공할 수 있다.
청소 로봇은 입자 등급을 판단한 결과에 따라 청소 장치에 포함된 브러쉬의 회전 및 흡입 모터의 흡입 세기를 조정할 수 있다.
실시예들에 의하면 먼지 측정 센서를 사용하지 않고도 흡입 입자 유형 및 먼지 흡입량을 측정할 수 있고, 구분하고 싶은 환경에서 얻은 로봇 데이터만 라벨링하여 학습하면 신규 입자 유형을 구분하거나 바닥 먼지 상태에 대한 새로운 정보를 제공할 수 있고, 다양한 상황에 대응하기 위한 분석 시간 및 업데이트 시간을 감소시킬 수 있는 효과가 있다.
도 15는 본 발명의 일 실시예에 따른 이동 로봇을 예시한 블록도이고, 도 16은 본 발명의 다른 실시예에 따른 충돌 감지 장치를 예시한 블록도이다.
이동 로봇(12)은 충돌 감지 장치(400), 이동 장치(500)를 포함할 수 있다.
충돌 감지 장치(400)는 본체에 연결되며 바퀴 제어 명령을 획득하고, 바퀴 이동 결과를 산출하고, 바퀴 제어 명령과 바퀴 이동 결과를 데이터 가공하고, 데이터 가공한 이동 제어 명령과 바퀴 이동 결과로부터 신경 네트워크 기반의 충돌 감지 모델을 통해 충돌 여부를 출력한다.
이동 장치(500)는 본체에 연결되며 충돌 여부를 기반으로 이동 로봇을 이동하도록 구현된다. 대상체까지의 거리를 기반으로 주행 경로를 산출하거나 장애물을 검출하여 이동체를 이동시킨다. 이동 장치(500)는 바퀴, 레일, 다리 등으로 구현될 수 있으며, 움직임 변화를 파악하는 오도메트리 측정 센서를 포함할 수 있다.
이동 로봇(12)은 청소 장치를 포함할 수 있다. 청소 장치는 본체에 연결되며 회전 브러쉬, 먼지통, 흡입 모터, 노즐 등을 포함할 수 있다. 회전 브러쉬가 회전하여 먼지를 모으고, 흡입 모터의 흡입력을 제어하여 노즐을 통해 먼지를 흡입하고, 흡입한 먼지를 먼지통에 저장한다.
충돌 감지 장치(400)는 데이터 처리부(410)를 포함할 수 있다. 데이터 처리부(410)는 프로세서 등으로 구현될 수 있다.
데이터 처리부(410)는 바퀴 제어 명령을 획득하고, 바퀴 이동 결과를 산출하고, 바퀴 제어 명령과 바퀴 이동 결과를 데이터 가공하고, 데이터 가공한 이동 제어 명령과 바퀴 이동 결과로부터 신경 네트워크 기반의 충돌 감지 모델을 통해 충돌 여부를 출력한다.
충돌 감지 장치(400)는 충돌 감지 모델(420)을 포함할 수 있다. 충돌 감지 모델(420)은 데이터 처리부(410)에 의해 저장되거나 다른 기록 매체에 저장될 수 있다.
충돌 감지 장치(400)는 기구적 범퍼 센서를 이용하지 않고, 바퀴 제어 명령 및 바퀴 제어 명령에 따른 바퀴 이동 결과를 가공한 데이터를 이용하여 로봇의 충돌 여부를 감지한다.
도 17는 본 발명의 다른 실시예에 따른 충돌 감지 장치의 충돌 감지 동작을 예시한 도면이다.
단계 S500에서는 바퀴 제어 명령을 획득하는 단계를 수행할 수 있다. 단계 S600에서는 바퀴 이동 결과를 산출할 수 있다. 단계 S700에서는 바퀴 제어 명령과 바퀴 이동 결과를 데이터 가공하는 단계를 수행할 수 있다. 단계 S800에서는 데이터 가공한 이동 제어 명령과 바퀴 이동 결과로부터 신경 네트워크 기반의 충돌 감지 모델을 통해 충돌 여부를 출력하는 단계를 수행할 수 있다.
신경 네트워크 기반의 충돌 감지 모델은 복수의 레이어가 연결된 네트워크 구조이고, 바퀴 제어 명령과 바퀴 이동 결과를 입력받아 학습되고, 정상 상태 또는 충돌 상태로 분류할 수 있다.
도 18는 본 발명의 다른 실시예에 따른 충돌 감지 장치에 의한 바퀴 회전 비율을 기반으로 하는 충돌 감지 동작을 예시한 도면이다.
단계 S510에서는 바퀴 제어 명령으로 바퀴 구동 전압을 획득하는 단계를 수행할 수 있다.
단계 S610에서는 바퀴의 단위시간당 회전수, 바퀴 회전 각도, 또는 이들의 조합을 산출하는 단계를 수행할 수 있다.
단계 S711에서는 바퀴 구동 전압을 바퀴 구동 전력으로 변환하는 단계를 수행할 수 있다.
단계 S712에서는 (i) 바퀴 구동 전력 및 바퀴의 단위시간당 회전수 간의 제1 비율, (ii) 바퀴 구동 전력 및 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 산출하는 단계를 수행할 수 있다.
단계 S810에서는 신경 네트워크 기반의 충돌 감지 모델을 통해 (i) 바퀴 구동 전력 및 바퀴의 단위시간당 회전수 간의 제1 비율, (ii) 바퀴 구동 전력 및 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 입력받아 정상 상태 또는 충돌 상태로 분류하는 단계를 수행할 수 있다.
바퀴 구동 전압을 바퀴 구동 전력으로 변환하는 단계를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
Watt = battrey_volt * current * pwm /100
같은 힘을 내기 위해서는 배터리 전압이 높을 때는 낮은 전류만 있어도 되지만 전압이 낮을 때는 높은 전류가 필요하다. 배터리 전압 레벨에 따른 전류의 편차가 존재하여 브러쉬 등의 구동 전류값만 신뢰하여 사용할 수 없다. 와트 단위로 변환하여 실제 바퀴에 걸리는 전력을 추출할 필요가 있다.
보다 구체적인 알고리즘 코드로 표현하면 아래와 같이 표현된다.
Battery = 15V
Current of wheel = 0.345A
PWM of wheel = 25%
Watt_wheel = 15 * 0.345 * 25 / 100
Watt는 바퀴에 인가되는 전력이므로 바퀴 제어 명령에 해당한다. RPM은 실제 바퀴가 분당 회전한 횟수를 의미하므로 바퀴 제어 명령에 따른 바퀴 이동 결과에 해당한다. 일종의 명령에 대한 피드백으로 볼 수 있다. 로봇이 무엇인가에 부딪혀서 바퀴 제어 명령과 달리 움직이지 못했다면 매우 작은 피드백 값을 가지게 된다. 따라서 Watt/RPM의 값은 급격히 커진다.
바퀴 구동 전력 및 바퀴의 단위시간당 회전수 간의 제1 비율을 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
watt_per_rpm = watt / RPM
좌측 바퀴의 제1 비율 및 우측 바퀴의 제1 비율을 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
Watt_per_rpm[L] = Watt_wheel[L] / RPM[L]
Watt_per_rpm[R] = Watt_wheel[R] / RPM[R]
충돌 감지 장치는 좌측 바퀴에 대해서 바퀴 구동 전력 및 바퀴의 단위시간당 회전수 간의 제1 비율(L)을 산출하고, 우측 바퀴에 대해서 바퀴 구동 전력 및 바퀴의 단위시간당 회전수 간의 제1 비율(R)을 산출하고, 좌측 바퀴에 대한 제1 비율(L) 및 우측 바퀴에 대한 제1 비율(R)을 이용하여 충돌 감지 모델을 통해 충돌 여부를 출력할 수 있다.
충돌 감지 장치는 피드백 값으로 바퀴의 단위시간당 회전수 대신에 바퀴 회전 각도를 활용하거나 바퀴의 단위시간당 회전수 및 바퀴 회전 각도를 활용할 수도 있다.
충돌 감지 장치는 좌측 바퀴에 대해서 바퀴 구동 전력 및 바퀴 회전 각도 간의 제2 비율(L)을 산출하고, 우측 바퀴에 대해서 바퀴 구동 전력 및 바퀴 회전 각도 간의 제2 비율(R)을 산출하고, 좌측 바퀴에 대한 제2 비율(L) 및 우측 바퀴에 대한 제2 비율(R)을 이용하여 충돌 감지 모델을 통해 충돌 여부를 출력할 수 있다.
도 19은 본 발명의 다른 실시예에 따른 충돌 감지 장치에 의한 진행 각도 오차를 기반으로 하는 충돌 감지 동작을 예시한 도면이고, 도 20은 본 발명의 다른 실시예에 따른 충돌 감지 장치에 의한 진행 각도 오차를 설명하기 위한 도면이다.
단계 S520에서는 바퀴 제어 명령으로 좌측 바퀴 속도 및 우측 바퀴 속도를 획득하는 단계를 수행할 수 있다.
단계 S620에서는 자세 센서에 의한 측정값을 기반으로 로봇의 실제 회전 각도를 산출하는 단계를 수행할 수 있다. 실제 회전 각도 등의 자세 센싱 데이터는 관성 센서(IMU) 등과 같은 자세 센서에 의해 계측될 수 있다.
단계 S721에서는 좌측 바퀴 속도(VL), 우측 바퀴 속도(VR), 및 양 바퀴 중심의 중간 지점으로부터 바퀴 중심까지의 거리(D)의 관계를 이용하여 진행 목표 각도를 산출하는 단계를 수행할 수 있다.
단계 S722에서는 진행 목표 각도 및 실제 회전 각도 간의 차이를 이용하여 각도 오차를 산출할 수 있다.
단계 S820에서는 신경 네트워크 기반의 충돌 감지 모델을 통해 좌측 바퀴 속도, 우측 바퀴 속도, 자세 센서에 의한 측정값, 각도 오차, 또는 이들의 조합을 입력받아 정상 상태 또는 충돌 상태로 분류하는 단계를 수행할 수 있다.
바퀴 제어 명령은 바퀴의 선속도를 의미할 수 있다. 좌측 바퀴 속도(VL)와 우측 바퀴 속도(VR)의 차를 계산하면 실제 로봇이 가려고 하는 각도(θc)을 알 수 있다. 도 20을 참조하면 진행 목표 각도(θc)를 기구학으로 구할 수 있다.
진행 목표 각도 및 각도 오차를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
Desired_theta = (wheel_speed_cmd_R - wheel_speed_cmd_L) / (2 * 2.2)
Err_of_theta = desired_theta - gyro_of_yaw
특정 상황에서의 데이터를 가정하여 보다 구체적인 알고리즘 코드로 표현하면 아래와 같이 표현된다.
Wheel_command[L] = 144.4186 mm/s
Wheel_command[R] = 270.0 mm/s
Distance_from_robot_center_to_wheel = 120 mm
Desired_theta = (270 - 144.4186) / (2 * 120) = 0.5232 rad
로봇이 무엇인가에 부딪혀서 움직이지 못했다면 로봇이 가려고 했던 방향(각도)와 실제 로봇이 움직인 방향(각도)가 다르게 된다. 실제 로봇이 움직인 방향은 자이로 센서의 z축 값(yaw)으로 알 수 있다. 따라서 로봇이 원하는 방향(각도)와 실제 로봇이 움직인 방향(각도)의 차(에러)가 커지게 된다. 각도 오차를 알고리즘 슈도 코드로 표현하면 아래와 같이 표현된다.
Err_of_theta = desired_theta - gyro[z]
도 21은 본 발명의 다른 실시예에 따른 충돌 감지 장치에 적용 가능한 신경 네트워크 기반의 충돌 감지 모델을 예시한 도면이다.
신경 네트워크 기반의 충돌 감지 모델은 복수 유형의 바닥면 재질에서 이동하는 로봇의 전진 상태 및 회전 상태에서 충돌한 시간 구간에 발생한 바퀴 제어 명령과 바퀴 이동 결과를 입력받아 학습될 수 있다.
충돌 감지 모델은 특징을 추출하고 특징을 데이터 가공 처리한다. 입자 구분 모델은 다수의 레이어가 네트워크로 연결되며 입력 레이어, 히든 레이어, 출력 레이어를 포함한다. 레이어는 파라미터를 포함할 수 있고, 레이어의 파라미터는 학습가능한 필터 집합을 포함한다. 파라미터는 노드 간의 가중치 및/또는 바이어스를 포함한다. 충돌 감지 모델은 학습 과정을 제어하는 하이퍼 파라미터를 초기화하고 변경된 하이퍼 파라미터에 의해 출력값이 달라지게 되고 최적화된 파라미터를 도출할 수 있다.
충돌 감지 모델은 엔코더(Encoder) 값, 모터 또는 바퀴 인가 전류, 바퀴 제어 명령, 자이로 센서 값, 가속도 센서 값, 클리프 PSD(Cliff Position Sensitive Device) 센서 값, 모터 또는 바퀴 인가 PWM(Pulse Width Modulation), 모터 또는 바퀴의 RPM(Revolutions Per Minute), 배터리 전압, 충격 감지 센서(Bumpers, Buttons, Wheel drops) 값 등을 활용하여 입력 데이터를 조합할 수 있다.
충돌 감지 모델은 로봇에 전달한 이동 명령과 실제 이동 움직임 간의 비율을 입력받아 학습될 수 있다. 충돌 감지 모델은 좌측 바퀴 제어 명령, 우측 바퀴 제어 명령, 자이로 센서의 요(yaw) 데이터, 가속도 센서의 롤(roll) 데이터, 바퀴 구동 전력 및 바퀴의 단위시간당 회전수 간의 제1 비율, 바퀴 구동 전력 및 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 입력받아 학습될 수 있다. 입력 데이터로 일정 범위 내에서 정규화된 데이터를 입력받아 학습될 수 있다.
충돌 감지 모델은 입력 데이터를 기반으로 정상 상태 또는 충돌 상태를 분류할 수 있다.
충돌 감지 모델의 학습 데이터로는 딱딱한 바닥에서 전진시 로봇 전면/옆면에서 범핑이 발생한 데이터를 활용할 수 있다. 딱딱한 바닥에서 회전시 로봇 전면/옆면에서 범핑이 발생한 데이터를 활용할 수 있다. 딱딱한 바닥에서 전후진, 회전, 정지 데이터를 활용할 수 있다. 카펫에 올라갔다가 내려갈 때의 데이터를 활용할 수 있다. 카펫 위에서 전진시 로봇 전면에서 범핑이 발생한 데이터를 활용할 수 있다. 카펫 위에서 회전시 로봇 전면에서 범핑이 발생한 데이터를 활용할 수 있다. 카펫 위에서 전후진, 회전, 정지 데이터를 활용할 수 있다.
도 22는 본 발명의 다른 실시예에 따른 충돌 감지 장치를 시뮬레이션한 결과에 따라 충돌 및 각도 오차 간의 관계를 예시한 그래프이고, 도 23은 본 발명의 다른 실시예에 따른 충돌 감지 장치를 시뮬레이션한 결과에 따라 충돌 및 제1 비율 간의 관계를 예시한 그래프이고, 도 24은 본 발명의 다른 실시예에 따른 충돌 감지 장치를 시뮬레이션한 결과에 따라 충돌 및 제2 비율 간의 관계를 예시한 그래프이다.
도 22를 참조하면 충돌 상황과 각도 오차 간의 상관 관계를 쉽게 파악할 수 있다. 도 23을 참조하면 충돌 상황과 제1 비율(바퀴 구동 전력 및 바퀴의 단위시간당 회전수 간의 비율) 간의 상관 관계를 쉽게 파악할 수 있다. 도 24을 참조하면, 충돌 상황과 제2 비율(바퀴 구동 전력 및 바퀴 회전 각도 간의 비율) 간의 상관 관계를 쉽게 파악할 수 있다.
충돌 감지 장치는 기구적 범퍼 센서를 이용하지 않고 로봇이 전달한 각도 명령과 실제 로봇의 움직임을 이용하여 충돌 여부를 판단할 수 있다. 충돌 감지 장치는 기구적 범퍼 센서를 이용하지 않고 로봇이 이동하고자 하는 방향으로 움직이지 못했을 때 순간적으로 받는 바퀴의 부하를 이용하여 충돌 여부를 판단할 수 있다.
이동 로봇은 바퀴 제어 명령을 획득하고, 바퀴 이동 결과를 산출하고, 바퀴 제어 명령과 바퀴 이동 결과를 데이터 가공하고, 데이터 가공한 이동 제어 명령과 바퀴 이동 결과로부터 신경 네트워크 기반의 충돌 감지 모델을 통해 충돌 여부를 출력하는 충돌 감지 장치, 및 출력한 충돌 여부를 기반으로 이동 로봇을 이동하도록 구현된 이동 장치를 포함할 수 있다.
이동 로봇에 적용된 신경 네트워크 기반의 충돌 감지 모델은 복수의 레이어가 연결된 네트워크 구조이고, 바퀴 제어 명령과 바퀴 이동 결과를 입력받아 학습되고, 정상 상태 또는 충돌 상태로 분류할 수 있다.
이동 로봇이 바퀴 제어 명령을 획득하는 것은 바퀴 제어 명령으로 좌측 바퀴 속도 및 우측 바퀴 속도를 획득할 수 있다. 이동 로봇이 바퀴 이동 결과를 산출하는 것은 자세 센서에 의한 측정값을 기반으로 로봇의 실제 회전 각도를 산출할 수 있다. 이동 로봇이 바퀴 제어 명령과 바퀴 이동 결과를 데이터 가공하는 것은 좌측 바퀴 속도, 우측 바퀴 속도, 및 양 바퀴 중심의 중간 지점으로부터 바퀴 중심까지의 거리의 관계를 이용하여 진행 목표 각도를 산출할 수 있다. 이동 로봇은 진행 목표 각도 및 실제 회전 각도 간의 차이를 이용하여 각도 오차를 산출할 수 있다.
이동 로봇에 적용된 신경 네트워크 기반의 충돌 감지 모델은 좌측 바퀴 속도, 우측 바퀴 속도, 자세 센서에 의한 측정값, 각도 오차, 또는 이들의 조합을 입력받아 정상 상태 또는 충돌 상태로 분류할 수 있다.
이동 로봇이 바퀴 제어 명령을 획득하는 것은 바퀴 제어 명령으로 바퀴 구동 전압을 획득할 수 있다. 이동 로봇이 바퀴 이동 결과를 산출하는 것은 바퀴의 단위시간당 회전수, 바퀴 회전 각도, 또는 이들의 조합을 산출할 수 있다. 이동 로봇이 바퀴 제어 명령과 바퀴 이동 결과를 데이터 가공하는 것은 바퀴 구동 전압을 바퀴 구동 전력으로 변환할 수 있다. 이동 로봇은 (i) 바퀴 구동 전력 및 바퀴의 단위시간당 회전수 간의 제1 비율, (ii) 바퀴 구동 전력 및 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 산출할 수 있다.
이동 로봇에 적용된 신경 네트워크 기반의 충돌 감지 모델은 (i) 바퀴 구동 전력 및 바퀴의 단위시간당 회전수 간의 제1 비율, (ii) 바퀴 구동 전력 및 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 입력받아 정상 상태 또는 충돌 상태로 분류할 수 있다.
이동 로봇에 적용된 신경 네트워크 기반의 충돌 감지 모델은 복수의 바닥면 재질에서 이동하는 로봇의 전진 상태 및 회전 상태에서 충돌한 시간 구간에 발생한 바퀴 제어 명령과 바퀴 이동 결과를 입력받아 학습될 수 있다.
실시예들에 의하면 기구적 범퍼 센서를 이용하지 않고, 바퀴 제어 명령 및 바퀴 제어 명령에 따른 바퀴 이동 결과를 가공한 데이터를 학습한 모델을 기반으로 로봇의 충돌 여부를 감지하여 회피하거나 로봇이 스스로 충돌로부터 보호하기 위한 방어 동작을 수행할 수 있는 효과가 있다.
도 25는 본 발명의 실시예에 따른 모바일 로봇의 감지 제어 장치를 개략적으로 나타낸 블록 구성도이다. 도 26 내지 도 28은 본 발명의 실시예에 따른 바닥 재질을 감지하는 동작을 설명하기 위한 도면이다. 도 29 내지 도 42는 본 발명의 실시예에 따른 바닥 먼지를 감지하는 동작을 설명하기 위한 도면이다. 도 43 내지 도 49는 본 발명의 실시예에 따른 브러쉬 막힘 또는 걸림을 감지하는 동작을 설명하기 위한 도면이다. 도 50 내지 도 58은 본 발명의 실시예에 따른 충돌을 감지하는 동작을 설명하기 위한 도면이다.
본 실시예에 따른 모바일 로봇의 감지 제어 장치(600)는 환경 센싱부(610), 감지 제어부(620), 청소 동작 제어부(630)을 포함한다. 도 25의 감지 제어 장치(600)는 일 실시예에 따른 것으로서, 도 25에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 감지 제어 장치(600)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다.
환경 센싱부(610)는 모바일 로봇에 장착된 센싱모듈을 이용하여 기 저장된 지도 내의 주변 환경을 센싱한다. 여기서, 환경 센싱은 다양한 방식으로 센싱될 수 있다.
감지 제어부(620)는 주변 환경 센싱 정보를 기반으로 바닥 재질, 바닥 먼지, 브러쉬 상태, 충돌 등을 감지한다. 감지 제어부(620)는 바닥 재질 감지부(622), 바닥 먼지 감지부(624), 브러쉬 상태 감지부(626) 및 충돌 감지부(628)를 포함한다.
바닥 재질 감지부(622)는 Neural Net을 이용하여 바닥 재질을 구분한다.
바닥 재질 감지부(622)는 바닥 재질 구분을 통하여 모바일 로봇(청소로봇) 사용 간 청소 효율(성능)을 증가시킬 수 있다.
종래에는 브러쉬의 전류값 및 편차 데이터 분석하여 개발자가 직접 threshold 선정한다. 하지만, 오래 사용되어 마모된 브러쉬, 신규 브러쉬에 대한 빠른 대응이 불가하게되며, 신규 알고리즘을 구성하는 것만큼의 시간 소요된다. 또한, 로봇 센서 데이터 전체를 활용하지 못하게 된다.
본 실시예에 따른 바닥 재질 감지부(622)는 개발자가 선정한 Threshold가 아닌 NN(Neural Network)을 통하여 바닥 재질의 구분한다.
바닥 재질 감지부(622)를 통해 개발자가 직접 데이터 분석하여 hard coding으로 threshold를 선정해야하는 번거로움 감소할 수 있고, 구분하고 싶은 환경에서 얻은 로봇 데이터만 정리(labeling)하여 학습하면 신규 모델 생성 가능하다.
또한, 바닥 재질 감지부(622)를 통해 다양한 상황에 대응하기 위한 분석 시간 및 업데이트 시간을 감소시킬 수 있다.
바닥 재질 감지부(622)는 다음과 같이 사용될 수 있다.
카펫 종류에 따른 로봇의 청소 및 장애물 회피 모션이 달라지게 하고, 카펫 인지 후 카펫 청소모드로 변경할 수 있다.
바닥 재질 감지부(622)는 카펫 유무의 구분만이 아닌 종류(두께, 카펫 모의 길이 기준)에 대한 구분이 가능하여 차별점이 존재한다.
바닥 재질 감지부(622)는 카펫의 종류를 구분하기 위한 특정 센서가 없음에도 불구하고 카펫 종류별 특성이 반영되어 나타나는 다른 센서로 해당 센서를 대체하여 기술 구현이 가능하다.
바닥 재질 감지부(622)는 딱딱한 바닥, 얇은 카펫, 두꺼운 카펫 등에 대한 구분이 가능하다.
바닥 재질 감지부(622)의 다이어그램( Diagram)은 도 26와 같다.
또한, 바닥 재질 감지부(622)의 특징 추출(Feature extraction) 동작은 도 27과 같다.
바닥 재질 감지부(622)는 같은 힘을 내기 위해서는 배터리 전압이 높을 때는 낮은 전류만 있어도 되지만 전압이 낮을 때는 높은 전류가 필요하다. 즉, 배터리 전압 레벨에 따른 전류의 편차가 존재하여 메인브러쉬 전류값만 신뢰하여 사용할 수 없다. 따라서 와트 단위로 변환하여 실제 메인브러쉬에 걸리는 전력을 추출하여 바닥 재질을 감지할 수 있다.
예를 들어, 바닥 재질 감지부(622)는 battery = 15V, Current of main brush = 0.345A, PWM of main brush = 25%, Watt_mb = 15 * 0.345 * 25 / 100과 같이 전력을 추출할 수 있다.
바닥 재질 감지부(622)는 NN(Neural Network)은 도 28와 같이 정의될 수 있다.
바닥 재질 감지부(622)는 각 브러쉬의 전류값이 변화하는 양상, 바퀴에 걸리는 부하, 바닥 간의 거리 등을 이용하여 바닥 재질을 감지할 수 있다.
바닥 재질 감지부(622)의 NN 모델 구성은 다음과 같다.
Available Data는 Encoder, Current (Cleaning motors, Wheels), Wheel Commands, Gyro, Acc, Cliff PSD (ASD, Distance), PWM (Cleaning motors, Wheels), RPM (Cleaning motors, Wheels), Battery voltage, Sensors (Bumpers, Buttons, Wheel drops) 등을 포함할 수 있다.
또한, Input examples은, Cliff psd sensors (FL, FC, FR, BL, BR), Watt of wheels (L, R), Watt series of Main brush (-60ms ~ current, 4ticks), Current series of Rubber blade (-60ms ~ current, 4ticks) 등을 포함할 수 있다.
또한, Output는, Hard floor, Low pile carpet, High pile carpet 등을 포함할 수 있다.
또한, Training Data는, Hard floor에서 전/후진, 회전, 정지 데이터, Wilton carpet에서 전/후진, 회전, 정지 데이터, Deep carpet에서 전/후진, 회전, 정지 데이터 등을 포함할 수 있다.
바닥 먼지 감지부(624)는 바닥의 먼지 상태가 어떤지에 따라 청소로봇 사용 간 청소 상태 피드백 및 청소 효율을 높이기 위한 추가 동작(Increase suction voltage)을 수행할 수 있다.
종래의 바닥 먼지 감지 방식은 흡입구에 IR 센서 혹은 압전(pizeoelectricity) 센서등을 부착하여 현재 먼지의 흡입량 등을 측정하였다.
본 실시예에 따른 바닥 먼지 감지부(624)는 NN을 통하여 먼지가 어느 정도의 크기이며 양인지를 감지한다.
바닥 먼지 감지부(624)를 통해 모바일 로봇은 바닥 먼지 상태에 대한 새로운 정보를 제공할 수 있고, 구분하고 싶은 환경에서 얻은 로봇 데이터만 정리(labeling)하여 학습하면 신규 모델 생성 가능하다. 또한, 바닥 먼지 감지부(624)는 다양한 상황에 대응하기 위한 분석 시간 및 업데이트 시간을 감소할 수 있고, 학습 데이터를 추가할 수 있다.
바닥 먼지 감지부(624)의 사용 예시는 다음과 같다.
바닥 먼지 감지부(624)를 통해 모바일 로봇은 현재 바닥의 먼지 상태에 따라 브러쉬 및 석션 값 조정할 수 있고, 먼지가 많은 영역을 한 번 더 청소하도록 피드백할 수 있다.
또한, 바닥 먼지 감지부(624)를 통해 모바일 로봇은 먼지통이 얼마나 찼는지 가늠하여 사용자가 비울 수 있도록 알림 처리할 수 있다.
바닥 먼지 감지부(624)는 먼지가 얼마나 빨아들여지고 있는지를 측정하기 위한 센서 없이도 해당 기술 구현할 수 있다.
바닥 먼지 감지부(624)는 먼지의 종류를 구분할 수 있다 예를 들어, 팥 알갱이(7x6mm) / 쌀알(6x4mm) / 모래(0.9x0.9mm) 등을 구분할 수 있다.
바닥 먼지 감지부(624)는 먼지의 양을 계산할 수 있다.
바닥 먼지 감지부(624)의 다이어그램은 도 29 같다.
바닥 먼지 감지부(624)의 특징 추출(Feature Extraction) 방식은 도 30과 같다.
바닥 먼지 감지부(624)의 Calculate differential of gyro data는 다음과 같이 산출될 수 있다.
모바일 로봇은 매 5ms마다 gyro의 x,y,z 값을 측정하고, 항상 직전의 gyro x,y,z 값을 기억하여 새로운 값이 들어올 때마다 각 축의 diff 값을 계산한다. 또한, 현재 gyro의 값보다는 변화량을 통하여 로봇의 움직임을 더 명확하게 표현하기 위한 동작을 수행한다. 이러한 동작의 예시는 도 31과 같다.
바닥 먼지 감지부(624)의 Stack 32 frames은 다음과 같이 산출될 수 있다. 각 축별로 Calculate differential of gyro data 값을 버퍼에 저장하고, 시간축에서 로봇의 움직임이 어떻게 변화하는지 확인할 수 있다. 이러한 동작의 예시는 도 32와 같다.
바닥 먼지 감지부(624)의 Apply Hann filter는 다음과 같이 동작할 수 있다.
바닥 먼지 감지부(624)는 32 frame에 맞춘 Hann weight를 사전에 계산한다.
의도한 Hann filter는 도 33과 같으며, 실제 적용하는 Hann filter는 도 34와 같다.
Stack 32 frames의 산출 단계에서 저장된 버퍼에 Hann filter를 적용할 수 있다. 중요한 데이터에 가중치를 두기 위한 동작이며, 이는 도 35와 같다.
바닥 먼지 감지부(624)의 FFT는 다음과 같이 동작할 수 있다.
Apply Hann filter 단계에서 계산한 fft_input 값의 FFT를 진행한다.
이는 주파수대역에서 더욱 feature가 드러나도록 하기 위함이며, 이러한 동작의 예시는 도 36과 같다.
바닥 먼지 감지부(624)의 logarithm은 도 37에 도시된 바와 같다.
바닥 먼지 감지부(624)는 특징이 조금 더 잘 드러나도록 log를 취하며, 해당 값이 0과 1사이에 존재할 수 있도록 scaling을 진행한다. 이러한 동작의 예시는 도 38과 같다.
바닥 먼지 감지부(624)의 Calculate quantities of dirt는 도 39와 같다.
또한, 바닥 먼지 감지부(624)의 NN은 도 40과 같다.
바닥 먼지 감지부(624)의 특징점은 먼지를 흡입할 때 Main brush 회전에 의하여 먼지가 로봇 본체를 때리는 힘을 측정하고, 그 힘에 의하여 생기는 로봇 gyro의 순간 변화량을 측정한다. 이러한 측정 결과는 도 41과 같다.
바닥 먼지 감지부(624)는 해당 순간 변화량의 fft를 수행하며, 이러한 수행결과는 도 42와 같다.
바닥 먼지 감지부(624)의 NN 모델 구성은 다음과 같다.
Available Data는 Encoder, Current (Cleaning motors, Wheels), Wheel Commands, Gyro, Acc, Cliff PSD (ASD, Distance), PWM (Cleaning motors, Wheels), RPM (Cleaning motors, Wheels), Battery voltage, Sensors (Bumpers, Buttons, Wheel drops) 등을 포함할 수 있다.
또한, Input examples은, FFT Results of gyro differential 16EA * 3 Dim(x,y,z) 등을 포함할 수 있다.
또한, Output는, Normal, Red bean(7x4mm), Rice(4x2mm), Sand(0.9x0.9mm) 등을 포함할 수 있다.
또한, Training Data는, 로봇이 전진하며 각 먼지(Red bean, rice, sand)를 흡입하는 순간의 FFT 결과물 등을 포함할 수 있다.
브러쉬 상태 감지부(626)는 청소로봇의 브러쉬 막힘 또는 걸림을 감지하지 못하여 브러쉬에 이물질이 끼여있는 상태로 청소하는 경우가 빈번한 것을 해결하기 위하여 브러쉬 상태를 감지한다.
종래에는 청소 로봇의 브러쉬가 모터나 로봇 내부에 결함을 만들어낼 정도의 부하, 모터가 정지하는 수준이 아니라면 감지할 방법이 없었다. 적은 부하를 받으며 청소 성능을 확실히 떨어트리는 경우에 대하여 대응이 불가하였다. 즉, 비닐, 종이, 양말 등이 감겨있는 상태로 청소를 진행하였다.
브러쉬 상태 감지부(626)의 개선점은 다음과 같다.
- NN을 통하여 청소 성능은 떨어트리나 각종 모터에 부하가 심하지 않아 감지가 불가능한 상태를 감지
- 청소 브러쉬에 물체가 끼인 상태로 청소 재개하는 상황을 방지
브러쉬 상태 감지부(626)의 기대 효과는 다음과 같다.
- 브러쉬 막힘 또는 걸림에 대한 정보 제공
- 구분하고 싶은 환경에서 얻은 로봇 데이터만 정리(labeling)하여 학습하면 신규 모델 생성 가능
- 다양한 상황에 대응하기 위한 분석 시간 및 업데이트 시간 감소
- 학습 데이터 추가
브러쉬 상태 감지부(626)의 사용 예시는 다음과 같다.
- 브러쉬에 무언가 걸린 상태에서 사용자에게 제거해달라고 알림
- 로봇 스스로 브러쉬에 걸린 이물질을 제거하는 모션
브러쉬 상태 감지부(626)의 차별성은 다음과 같다.
브러쉬 모터에 결함을 주는지 여부만 감지하는 것 뿐아니라 청소 성능을 떨어뜨리는 요인을 감지
해당 상황을 감지하기 위한 특정 센서가 없음에도 불구하고 감지 가능한 기술 구현
브러쉬 상태 감지부(626)의 기능은 다음과 같다.
- 딱딱한 바닥에서 브러쉬에 무언가 걸렸는지 아닌지를 감지
브러쉬 상태 감지부(626)의 다이어그램은 도 43과 같다.
브러쉬 상태 감지부(626)의 특징 추출은 도 44와 같다.
브러쉬 상태 감지부(626)는 Converts Volts to Watts of Main brush 단계를 수행한다.
브러쉬 상태 감지부(626)는 같은 힘을 내기 위해서는 배터리 전압이 높을 때는 낮은 전류만 있어도 되지만 전압이 낮을 때는 높은 전류가 필요하다. 배터리 전압 레벨에 따른 전류의 편차가 존재하여 메인브러쉬 전류값만 신뢰하여 사용할 수 없다. 따라서 와트 단위로 변환하여 실제 메인브러쉬에 걸리는 전력을 추출할 수 있다. 전력 추출 예시는 도 45와 같다.
브러쉬 상태 감지부(626)는 Stack 32 frames 단계를 수행한다.
브러쉬 상태 감지부(626)는 Converts Volts to Watts of Main brush 단계에서 계산한 값과 rubber blade current와 rpm을 버퍼에 저장한다. 이는 시간축에서 rubber blade의 변화 양상을 담기 위함이다. 이러한 동작의 예시는 도 46과 같다.
브러쉬 상태 감지부(626)는 FFT 단계를 수행한다.
브러쉬 상태 감지부(626)는 Stack 32 frames 단계에서 얻은 Data_curr_rb, Data_rpm_rb에 FFT 진행을 수행한다. 이는 주파수대역에서 더욱 feature가 드러나도록 하기 위함이다. 이러한 동작의 예시는 도 47과 같다.
브러쉬 상태 감지부(626)의 NN 모델 구성은 도 48과 같다.
브러쉬 상태 감지부(626)의 특징점은 각종 브러쉬의 전류값이 변화하는 양상, 브러쉬의 부하가 걸렸을 때에 평상시와 다른 회전 양상 등이 있다.
Available Data는 Encoder, Current (Cleaning motors, Wheels), Wheel Commands, Gyro, Acc, Cliff, PSD (ASD, Distance), PWM (Cleaning motors, Wheels), RPM (Cleaning motors, Wheels), Battery voltage, Sensors (Bumpers, Buttons, Wheel drops) 등을 포함할 수 있다.
또한, Input examples은, Watt series of main brush (-200ms ~ current, 10ticks), Current series of rubber blade (-200ms ~ current, 10ticks), FFT results of rubber blade current 5EA, RPM series of rubber blade (-200ms ~ current, 10ticks), FFT results of rubber blade RPM 5EA 등을 포함할 수 있다.
또한, Output는, Normal, Blocked 등을 포함할 수 있다.
또한, Training Data는, 브러쉬에 아무 부하도 걸리지 않은 상태에서 얻은 로봇 전진 데이터, 로봇이 전진하면서 브러쉬에 물체가 걸렸을 시점의 데이터, 안경 닦이, 질긴 비닐, 질기지 않은 비닐, 종이 등을 포함할 수 있다.
종래의 충돌 감지는 기구적인 범퍼가 존재하지 않는 곳에서 발생한 충돌은 감지가 불가하였다. 즉, 기구적으로 범퍼가 존재하는 곳에서 발생한 충돌만 감지 가능하고, 충돌을 감지하고 싶은 지점에 범퍼를 구성하여야 하였다. 그 외에서 끼임 또는 충돌이 발생했을 시 감지 불가하고, 소파 아래나 인형 등 소프트한 재질의 장애물 감지 불가하였다.
충돌 감지부(628)는 NN을 통하여 범퍼가 존재하지 않은 영역에서 발생한 충돌에 대하여 감지가 가능하고, 소프트한 재질에 의해 발생한 충돌 및 슬립에 대하여 감지가 가능하다.
충돌 감지부(628)의 기대 효과는 다음과 같다.
- 범퍼가 존재하지 않는 영역에서 발생한 충돌 감지
- 구분하고 싶은 환경에서 얻은 로봇 데이터만 정리(labeling)하여 학습하면 신규 모델 생성 가능
- 다양한 상황에 대응하기 위한 분석 시간 및 업데이트 시간 감소
- 학습 데이터 추가
충돌 감지부(628)의 사용 예시는 다음과 같다.
- 실제 기구 범퍼를 통한 시그널이 없어도 충돌 감지하여 회피 가능
- 로봇이 스스로를 충돌로부터 보호하기 위한 방어 기능
충돌 감지부(628)의 차별성은 다음과 같다.
- 기구로 구현된 범퍼가 없음에도 불구하고 있는 것과 같은 효과를 내는 기술 구현
충돌 감지부(628)의 기능은 다음과 같다.
- 실제 범퍼를 통해 들어오는 시그널이 없어도 충돌 감지
충돌 감지부(628)의 다이어그램은 도 50과 같다.
충돌 감지부(628)의 특징 추출은 도 51과 같다.
충돌 감지부(628)는 Converts Volts to Watts 단계를 수행한다.
같은 힘을 내기 위해서는 배터리 전압이 높을 때는 낮은 전류만 있어도 되지만 전압이 낮을 때는 높은 전류가 필요하다.
배터리 전압 레벨에 따른 전류의 편차가 존재하여 메인브러쉬 전류값만 신뢰하여 사용할 수 없다. 따라서 와트 단위로 변환하여 실제 바퀴에 걸리는 전력을 추출할 수 있다. 전력 추출 예시는 도 52와 같다.
충돌 감지부(628)는 Calculate ratio of Watt and RPM 단계를 수행한다.
여기서, Watt는 바퀴에 인가되는 전압이므로 command와 같다. RPM은 실제 바퀴가 분당회전한 횟수를 의미하므로 command에 따른 feedback과 같다.
로봇이 장애물에 부딪혀서 command와 달리 움직이지 못했다면 매우 작은 feedback 값을 가지게 된다. 따라서 Watt/RPM의 값은 급격히 커지게 되는 것을 측정할 수 있다. 이러한 측정 예시는 도 53과 같다.
충돌 감지부(628)는 Calculate desired theta 단계를 수행한다.
Wheel_command는 바퀴의 선속도를 의미한다.
왼쪽 바퀴, 오른쪽 바퀴의 차를 계산하면 실제 로봇이 가고자하는 방향을 알 수 있다. 이는 기구학으로 구할 수 있다. 이러한 측정 예시는 도 54와 같다.
충돌 감지부(628)는 Calculate error of desired theta and real theta 단계를 수행한다.
로봇이 장애물에 부딪혀서 움직이지 못했다면 로봇이 가고자했던 방향과 실제 로봇이 움직인 방향이 크게 다르다. 실제 로봇이 움직인 방향은 gyro의 z축 값(yaw)으로 알 수 있다. 따라서 로봇이 원하는 방향과 실제 로봇이 움직인 방향의 차(에러)가 커짐을 측정할 수 있다. 이러한 측정 예시는 도 55와 같다.
브러쉬 상태 감지부(626)의 NN 모델 구성은 도 56과 같다.
브러쉬 상태 감지부(626)의 특징점은 로봇이 전달한 각도 명령과 다른 로봇의 움직임이며, 이는 도 57과 같다. 또한, 브러쉬 상태 감지부(626)의 특징점은 로봇이 이동하고자 하는 방향으로 움직이지 못했을 때 순간적으로 받는 바퀴의 부하이며, 이는 도 38과 같다.
Available Data는 Encoder, Current (Cleaning motors, Wheels), Wheel Commands, Gyro, Acc, Cliff PSD (ASD, Distance), PWM (Cleaning motors, Wheels), RPM (Cleaning motors, Wheels), Battery voltage, Sensors (Bumpers, Buttons, Wheel drops) 등을 포함할 수 있다.
또한, Input examples은, Commands of wheels(L/R), Yaw data of Gyro, Roll data of Acc, Ratio of Watt and RPM(L/R), Watt / RPM, Error of Theta, Desired_theta - Yaw data of gyro 등을 포함할 수 있다.
또한, Output는, Normal, Bumped 등을 포함할 수 있다.
또한, Training Data는, 딱딱한 바닥에서 전진시 로봇 전면/옆면에서 범핑 발생한 데이터, 딱딱한 바닥에서 회전시 로봇 전면/옆면에서 범핑 발생한 데이터, 딱딱한 바닥에서 전후진, 회전, 정지 데이터, 카펫에 올라갔다가 내려갈 때의 데이터, 카펫 위에서 전진시 로봇 전면에서 범핑 발생한 데이터, 카펫 위에서 회전시 로봇 전면에서 범핑 발생한 데이터, 카펫 위에서 전후진, 회전, 정지 데이터 등을 포함할 수 있다.
청소 동작 제어부(630)는 감지 제어부(620)로부터 수신된 감지 결과를 기반으로 청소 동작을 제어한다.
장치 및 로봇에 포함된 복수의 구성요소들은 상호 결합되어 적어도 하나의 모듈로 구현될 수 있다. 구성요소들은 장치 내부의 소프트웨어적인 모듈 또는 하드웨어적인 모듈을 연결하는 통신 경로에 연결되어 상호 간에 유기적으로 동작한다. 이러한 구성요소들은 하나 이상의 통신 버스 또는 신호선을 이용하여 통신한다.
장치 및 로봇은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로 내에서 구현될 수 있고, 범용 또는 특정 목적 컴퓨터를 이용하여 구현될 수도 있다. 장치는 고정배선형(Hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(Field Programmable Gate Array, FPGA), 주문형 반도체(Application Specific Integrated Circuit, ASIC) 등을 이용하여 구현될 수 있다. 또한, 장치는 하나 이상의 프로세서 및 컨트롤러를 포함한 시스템온칩(System on Chip, SoC)으로 구현될 수 있다.
장치 및 로봇은 하드웨어적 요소가 마련된 컴퓨팅 디바이스에 소프트웨어, 하드웨어, 또는 이들의 조합하는 형태로 탑재될 수 있다. 컴퓨팅 디바이스는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신장치, 프로그램을 실행하기 위한 데이터를 저장하는 메모리, 프로그램을 실행하여 연산 및 명령하기 위한 마이크로프로세서 등을 전부 또는 일부 포함한 다양한 장치를 의미할 수 있다.
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는 데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
본 발명의 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명의 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 실시예들은 본 발명의 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 데이터 처리부를 포함하는 입자 구분 장치에 있어서,
    상기 데이터 처리부는,
    자세 센싱 데이터를 획득하고,
    상기 자세 센싱 데이터를 데이터 가공하고,
    상기 데이터 가공한 자세 센싱 데이터로부터 신경 네트워크 기반의 입자 구분 모델을 통해 입자 등급을 출력하는 것을 특징으로 하는 입자 구분 장치.
  2. 제1항에 있어서,
    상기 자세 센싱 데이터를 데이터 가공하는 것은,
    자세 센서의 각 축 별로 시계열로 입력된 자세 센싱 데이터의 변화량을 산출하고,
    상기 자세 센싱 데이터의 변화량을 매트릭스에 저장하고,
    상기 매트릭스에 매칭된 필터 가중치를 적용하고,
    상기 필터 가중치가 적용된 매트릭스의 데이터를 주파수 도메인 데이터로 변환하는 것을 특징으로 하는 입자 구분 장치.
  3. 제2항에 있어서,
    상기 자세 센싱 데이터를 데이터 가공하는 것은,
    상기 주파수 도메인 데이터로 변환된 데이터를 로그 스케일로 변환하고,
    상기 로그 스케일로 변환된 데이터를 미리 설정된 범위 내로 정규화하는 것을 특징으로 하는 입자 구분 장치.
  4. 제1항에 있어서,
    상기 신경 네트워크 기반의 입자 구분 모델은 복수의 레이어가 연결된 네트워크 구조이고, 로봇이 이동하는 동안 입자를 흡입하는 순간에서 자세 센싱 데이터에 관한 주파수 도메인 데이터를 입력받아 학습되고, 크기가 상이한 제1 입자 유형, 제2 입자 유형, 제3 입자 유형, 또는 정상 유형으로 상기 입자 등급을 분류하는 것을 특징으로 하는 입자 구분 장치.
  5. 제1항에 있어서,
    상기 데이터 처리부는,
    상기 입자 등급에 따라 입자 개수를 누적하고,
    입자 크기를 누적하고,
    상기 누적한 입자 개수와 상기 누적한 입자 크기를 기반으로 평균 먼지량을 산출하는 것을 특징으로 하는 입자 구분 장치.
  6. 제5항에 있어서,
    상기 데이터 처리부는,
    상기 평균 먼지량을 판단한 결과에 따라 먼지가 많은 영역을 다시 청소하도록 피드백을 제공하는 것을 특징으로 하는 입자 구분 장치.
  7. 제5항에 있어서,
    상기 데이터 처리부는,
    상기 평균 먼지량을 판단한 결과에 따라 먼지통을 비우도록 알림을 제공하는 것을 특징으로 하는 입자 구분 장치.
  8. 제1항에 있어서,
    상기 데이터 처리부는,
    상기 입자 등급을 판단한 결과에 따라 브러쉬 및 흡입 세기를 조정하는 제어 명령을 송신하는 것을 특징으로 하는 입자 구분 장치.
  9. 데이터 처리부를 포함하는 충돌 감지 장치에 있어서,
    상기 데이터 처리부는,
    바퀴 제어 명령을 획득하고,
    바퀴 이동 결과를 산출하고,
    상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 데이터 가공하고,
    상기 데이터 가공한 상기 이동 제어 명령과 상기 바퀴 이동 결과로부터 신경 네트워크 기반의 충돌 감지 모델을 통해 충돌 여부를 출력하는 것을 특징으로 하는 충돌 감지 장치.
  10. 제9항에 있어서,
    상기 신경 네트워크 기반의 충돌 감지 모델은 복수의 레이어가 연결된 네트워크 구조이고, 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 입력받아 학습되고, 정상 상태 또는 충돌 상태로 분류하는 것을 특징으로 하는 충돌 감지 장치.
  11. 제10항에 있어서,
    상기 바퀴 제어 명령을 획득하는 것은 상기 바퀴 제어 명령으로 바퀴 구동 전압을 획득하고,
    상기 바퀴 이동 결과를 산출하는 것은 바퀴의 단위시간당 회전수, 바퀴 회전 각도, 또는 이들의 조합을 산출하고,
    상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 데이터 가공하는 것은,
    상기 바퀴 구동 전압을 바퀴 구동 전력으로 변환하고,
    (i) 상기 바퀴 구동 전력 및 상기 바퀴의 단위시간당 회전수 간의 제1 비율, (ii) 상기 바퀴 구동 전력 및 상기 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 산출하는 것을 특징으로 하는 충돌 감지 장치.
  12. 제11항에 있어서,
    상기 신경 네트워크 기반의 충돌 감지 모델은 (i) 상기 바퀴 구동 전력 및 상기 바퀴의 단위시간당 회전수 간의 제1 비율, (ii) 상기 바퀴 구동 전력 및 상기 바퀴 회전 각도 간의 제2 비율, 또는 이들의 조합을 입력받아 상기 정상 상태 또는 상기 충돌 상태로 분류하는 것을 특징으로 하는 충돌 감지 장치.
  13. 제10항에 있어서,
    상기 바퀴 제어 명령을 획득하는 것은 상기 바퀴 제어 명령으로 좌측 바퀴 속도 및 우측 바퀴 속도를 획득하고,
    상기 바퀴 이동 결과를 산출하는 것은 자세 센서에 의한 측정값을 기반으로 로봇의 실제 회전 각도를 산출하고,
    상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 데이터 가공하는 것은,
    상기 좌측 바퀴 속도, 상기 우측 바퀴 속도, 및 양 바퀴 중심의 중간 지점으로부터 바퀴 중심까지의 거리의 관계를 이용하여 진행 목표 각도를 산출하고,
    상기 진행 목표 각도 및 상기 실제 회전 각도 간의 차이를 이용하여 각도 오차를 산출하는 것을 특징으로 하는 충돌 감지 장치.
  14. 제13항에 있어서,
    상기 신경 네트워크 기반의 충돌 감지 모델은 상기 좌측 바퀴 속도, 상기 우측 바퀴 속도, 상기 자세 센서에 의한 측정값, 상기 각도 오차, 또는 이들의 조합을 입력받아 상기 정상 상태 또는 상기 충돌 상태로 분류하는 것을 특징으로 하는 충돌 감지 장치.
  15. 제10항에 있어서,
    상기 신경 네트워크 기반의 충돌 감지 모델은 복수 유형의 바닥면 재질에서 이동하는 로봇의 전진 상태 및 회전 상태에서 충돌한 시간 구간에 발생한 상기 바퀴 제어 명령과 상기 바퀴 이동 결과를 입력받아 학습되는 것을 특징으로 하는 충돌 감지 장치.
PCT/KR2023/008322 2022-06-15 2023-06-15 인공신경망을 이용한 로봇의 감지 방법 및 그를 위한 장치 WO2023244052A1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20220073137 2022-06-15
KR10-2022-0073137 2022-06-15
KR10-2022-0177353 2022-12-16
KR10-2022-0177354 2022-12-16
KR1020220177353A KR20230173004A (ko) 2022-06-15 2022-12-16 인공신경망을 이용한 먼지 입자 구분 장치 및 청소 로봇
KR1020220177354A KR20230173005A (ko) 2022-06-15 2022-12-16 인공신경망을 이용한 충돌 감지 장치 및 이동 로봇

Publications (1)

Publication Number Publication Date
WO2023244052A1 true WO2023244052A1 (ko) 2023-12-21

Family

ID=89191664

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/008322 WO2023244052A1 (ko) 2022-06-15 2023-06-15 인공신경망을 이용한 로봇의 감지 방법 및 그를 위한 장치

Country Status (1)

Country Link
WO (1) WO2023244052A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013223630A (ja) * 2012-04-23 2013-10-31 Panasonic Corp 電気掃除機
JP2018513768A (ja) * 2015-04-24 2018-05-31 アビドボッツ コーポレイション 表面の半自動清掃のための装置および方法
KR20190135394A (ko) * 2018-05-11 2019-12-06 삼성전자주식회사 청소 동작을 실행하는 청소 장치 및 청소 방법
KR20200122035A (ko) * 2019-04-17 2020-10-27 현대자동차주식회사 이동체 및 그의 제어 방법
KR20210040613A (ko) * 2019-10-04 2021-04-14 삼성전자주식회사 전자 장치 및 그의 제어 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013223630A (ja) * 2012-04-23 2013-10-31 Panasonic Corp 電気掃除機
JP2018513768A (ja) * 2015-04-24 2018-05-31 アビドボッツ コーポレイション 表面の半自動清掃のための装置および方法
KR20190135394A (ko) * 2018-05-11 2019-12-06 삼성전자주식회사 청소 동작을 실행하는 청소 장치 및 청소 방법
KR20200122035A (ko) * 2019-04-17 2020-10-27 현대자동차주식회사 이동체 및 그의 제어 방법
KR20210040613A (ko) * 2019-10-04 2021-04-14 삼성전자주식회사 전자 장치 및 그의 제어 방법

Similar Documents

Publication Publication Date Title
WO2018038552A1 (ko) 이동 로봇 및 그 제어방법
AU2019335976B2 (en) A robot cleaner and a controlling method for the same
WO2021010757A1 (en) Mobile robot and control method thereof
WO2018139796A1 (ko) 이동 로봇 및 그의 제어 방법
AU2019262468B2 (en) A plurality of robot cleaner and a controlling method for the same
AU2019430311B2 (en) Plurality of autonomous mobile robots and controlling method for the same
AU2019262467B2 (en) A plurality of robot cleaner and a controlling method for the same
WO2018097574A1 (ko) 이동 로봇 및 그 제어방법
AU2019262482B2 (en) Plurality of autonomous mobile robots and controlling method for the same
WO2019212239A1 (en) A plurality of robot cleaner and a controlling method for the same
WO2020050489A1 (en) A robot cleaner and a controlling method for the same
WO2020050494A1 (en) A robot cleaner and a controlling method for the same
AU2019262477B2 (en) Plurality of autonomous mobile robots and controlling method for the same
WO2017200350A1 (ko) 로봇 청소기
WO2019212240A1 (en) A plurality of robot cleaner and a controlling method for the same
WO2019212277A1 (en) Plurality of autonomous mobile robots and controlling method for the same
WO2021006542A1 (en) Mobile robot using artificial intelligence and controlling method thereof
WO2017200347A1 (ko) 로봇 청소기
WO2019212281A1 (en) Plurality of autonomous mobile robots and controlling method for the same
WO2017200351A1 (ko) 로봇 청소기
WO2021006553A1 (en) Moving robot and control method thereof
WO2023244052A1 (ko) 인공신경망을 이용한 로봇의 감지 방법 및 그를 위한 장치
WO2021157833A1 (ko) 로봇 청소기 및 그 제어 방법
WO2020050565A1 (en) Plurality of autonomous mobile robots and controlling method for the same
WO2023195621A1 (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: 23824265

Country of ref document: EP

Kind code of ref document: A1