KR102025940B1 - Curling robot and method for controlling a drive of the curling robot - Google Patents

Curling robot and method for controlling a drive of the curling robot Download PDF

Info

Publication number
KR102025940B1
KR102025940B1 KR1020170132819A KR20170132819A KR102025940B1 KR 102025940 B1 KR102025940 B1 KR 102025940B1 KR 1020170132819 A KR1020170132819 A KR 1020170132819A KR 20170132819 A KR20170132819 A KR 20170132819A KR 102025940 B1 KR102025940 B1 KR 102025940B1
Authority
KR
South Korea
Prior art keywords
curling robot
curling
robot
rotated
distance
Prior art date
Application number
KR1020170132819A
Other languages
Korean (ko)
Other versions
KR20190041345A (en
Inventor
오세훈
최정현
Original Assignee
재단법인대구경북과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 재단법인대구경북과학기술원 filed Critical 재단법인대구경북과학기술원
Priority to KR1020170132819A priority Critical patent/KR102025940B1/en
Publication of KR20190041345A publication Critical patent/KR20190041345A/en
Application granted granted Critical
Publication of KR102025940B1 publication Critical patent/KR102025940B1/en

Links

Images

Classifications

    • 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
    • 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
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

컬링 로봇이 개시된다. 본 컬링 로봇은 센서, 컬링 로봇의 좌측 및 우측에 각각 마련된 바퀴 및 컬링 로봇의 직진 속도 및 각속도가 입력되면, 입력된 직진 속도와 각속도에 기초하여 바퀴를 구동하고, 바퀴의 구동에 따라 주행하는 컬링 로봇의 실제 직진 속도 및 각속도를 이용하여 피드백 제어를 수행하는 프로세서를 포함하며, 이 경우, 프로세서는 센서를 통해 컬링 로봇의 회전 각도 및 컬링 로봇과 컬링 로봇 주변에 설치된 가이드 간의 거리 중 적어도 하나를 측정하고, 측정된 회전 각도 및 거리 중 적어도 하나를 피드백 제어에 추가로 이용할 수 있다.A curling robot is disclosed. The curling robot drives the wheels based on the input straight speed and the angular velocity when the sensors and the wheels provided on the left and right sides of the curling robot and the curling robot are input, respectively. And a processor for performing feedback control using the actual straight and angular velocity of the robot, in which case the processor measures at least one of the angle of rotation of the curling robot and the distance between the curling robot and a guide installed around the curling robot via sensors. In addition, at least one of the measured rotation angle and distance may be further used for feedback control.

Description

컬링 로봇 및 그의 주행 제어 방법 { CURLING ROBOT AND METHOD FOR CONTROLLING A DRIVE OF THE CURLING ROBOT }Curling robot and its driving control method {CURLING ROBOT AND METHOD FOR CONTROLLING A DRIVE OF THE CURLING ROBOT}

본 발명은 컬링 로봇 및 그의 주행 제어 방법에 관한 것으로, 컬링 경기를 수행하는 컬링 로봇 및 그의 주행 제어 방법에 관한 것이다.The present invention relates to a curling robot and a driving control method thereof, and to a curling robot performing a curling race and a driving control method thereof.

컬링은 빙판 위에서 둥글고 납작한 스톤을 미끄러뜨려 하우스 안에 넣어 득점을 겨루는 경기이다.Curling is a game in which a player slides a round, flat stone on an ice sheet into a house to compete for a goal.

최근에는, 로봇 공학의 발전으로, 컬링 경기를 수행하는 다양한 컬링 로봇이 개발되고 있다.Recently, with the development of robotics, various curling robots for performing curling races have been developed.

일반적으로, 컬링 로봇은 스톤을 잡고 출발선에서부터 주행을 시작하여 호그 라인(hog line)에 도착하기 이전에 잡고 있던 스톤을 놓아, 빙판 위에서 스톤을 미끄러뜨려 반대편의 하우스 안에 위치시키게 된다.In general, the curling robot grabs the stone, starts driving from the starting line, releases the stone before it reaches the hog line, slides the stone over the ice and places it in the opposite house.

이때, 스톤을 더욱 정확히 하우스 안에 넣기 위해, 스톤을 놓기 전까지 컬링 로봇이 직진으로 주행하는 것은 무엇보다 중요하다. 이에 따라, 컬링 로봇의 직진 주행을 제어할 수 있는 방안의 모색이 요청된다.At this time, in order to put the stone more accurately in the house, it is most important that the curling robot travels straight before the stone is released. Accordingly, the search for a way to control the straight running of the curling robot is requested.

따라서, 본 발명의 목적은 다양한 센서를 통해 측정된 컬링 로봇의 회전 각도 및 컬링 로봇과 가이드 사이의 거리를 이용하여 컬링 로봇의 직진 주행을 제어할 수 있는 컬링 로봇 및 그의 주행 제어 방법을 제공함에 있다.Accordingly, an object of the present invention is to provide a curling robot and a driving control method thereof capable of controlling the straight running of the curling robot by using the rotation angle of the curling robot and the distance between the curling robot and the guide measured by various sensors. .

상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 컬링 로봇은 센서, 상기 컬링 로봇의 좌측 및 우측에 각각 마련된 바퀴 및 상기 컬링 로봇의 직진 속도 및 각속도가 입력되면, 상기 입력된 직진 속도와 각속도에 기초하여 상기 바퀴를 구동하고, 상기 바퀴의 구동에 따라 주행하는 상기 컬링 로봇의 실제 직진 속도 및 각속도를 이용하여 피드백 제어를 수행하는 프로세서를 포함하고, 상기 프로세서는 상기 센서를 통해 상기 컬링 로봇의 회전 각도 및 상기 컬링 로봇과 상기 컬링 로봇 주변에 설치된 가이드 간의 거리 중 적어도 하나를 측정하고, 상기 측정된 회전 각도 및 거리 중 적어도 하나를 상기 피드백 제어에 추가로 이용한다.The curling robot according to an embodiment of the present invention for achieving the above object is a sensor, a wheel provided on the left and right of the curling robot and the straight speed and the angular velocity of the curling robot, respectively, the input straight speed and And a processor configured to drive the wheel based on the angular velocity and perform feedback control by using the actual straight speed and the angular velocity of the curling robot that travels according to the driving of the wheel, wherein the processor performs the curling robot through the sensor. Measure at least one of the rotation angle and the distance between the curling robot and a guide installed around the curling robot, and further use at least one of the measured rotation angle and distance for the feedback control.

여기에서, 상기 프로세서는 주행 중인 상기 컬링 로봇의 회전 각도를 실시간으로 측정하여 상기 컬링 로봇의 각속도를 산출하고, 상기 산출된 각속도가 0이 아닌 경우, 상기 컬링 로봇을 회전 각도 및 각속도가 0이 될 때까지 제1 방향으로 회전시키며, 상기 제1 방향은, 상기 산출된 각속도가 0이 아닌 시점에서 상기 컬링 로봇이 회전된 방향과 반대 방향일 수 있다.Here, the processor calculates the angular velocity of the curling robot by measuring the rotation angle of the curling robot in real time in real time, and if the calculated angular velocity is not zero, the rotation angle and the angular velocity of the curling robot will be zero. Rotate in a first direction until the first direction may be opposite to the direction in which the curling robot is rotated when the calculated angular velocity is not zero.

또한, 상기 프로세서는 상기 회전 각도가 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시키고, 상기 제1 방향으로의 회전에 따라 상기 컬링 로봇이 기설정된 각도만큼 회전되면 상기 컬링 로봇을 상기 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시키며, 상기 기설정된 각도는 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점에서 상기 컬링 로봇이 회전된 각도이고, 상기 기설정된 시점은 상기 회전 각도가 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 상기 제2 방향으로 회전시키는 동안의 상기 컬링 로봇의 각속도의 변화량이 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점부터 상기 회전 각도 및 각속도가 0이 되는 시점까지 상기 컬링 로봇의 각속도의 변화량과 같아지는 시점일 수 있다.The processor may further rotate the curling robot in the first direction while the rotation angle is 0, and rotate the curling robot by a predetermined angle according to the rotation in the first direction. Rotates to a predetermined time point in a second direction opposite to the first direction, wherein the predetermined angle is an angle at which the curling robot is rotated when the curling robot is first rotated in the first direction. The view point is the amount of change in the angular velocity of the curling robot while the curling robot is further rotated in the first direction after the rotation angle is 0, and the rotational direction is changed in the second direction. The angle of the curling robot from the time of the first rotation in the first direction to the time of the rotation angle and the angular velocity becomes zero Equal to the degrees of variation may be a time at which.

한편, 상기 프로세서는 주행 중인 상기 컬링 로봇과 상기 가이드 사이의 거리를 실시간으로 측정하여 시간에 따른 거리 변화율을 산출하고, 상기 산출된 거리 변화율이 0이 아닌 경우, 상기 컬링 로봇을 거리 변화율이 0이 될 때까지 제1 방향으로 회전시키며, 상기 제1 방향은 상기 산출된 거리 변화율이 0이 아닌 시점에서 상기 컬링 로봇이 회전된 방향과 반대 방향일 수 있다.On the other hand, the processor measures the distance between the curling robot and the guide in real time to calculate the distance change rate over time, and if the calculated distance change rate is not 0, the curling robot has a distance change rate of 0 The first direction may be rotated in a first direction, and the first direction may be opposite to the direction in which the curling robot is rotated when the calculated distance change rate is not zero.

여기에서, 상기 프로세서는 상기 거리 변화율이 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시키고, 상기 제1 방향으로의 회전에 따라 상기 컬링 로봇과 상기 가이드 사이의 거리가 기설정된 거리가 되면 상기 컬링 로봇을 상기 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시키며, 상기 기설정된 거리는 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점에서 상기 컬링 로봇과 상기 가이드 사이의 거리이고, 상기 기설정된 시점은 상기 거리 변화율이 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 상기 제2 방향으로 회전시키는 동안의 상기 컬링 로봇의 거리 변화율의 변화량이 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점부터 상기 거리 변화율이 0이 되는 시점까지 상기 컬링 로봇의 거리 변화율의 변화량과 같아지는 시점일 수 있다.Here, the processor further rotates the curling robot in the first direction while the distance change rate is 0, and the distance between the curling robot and the guide is preset according to the rotation in the first direction. When the curling robot is rotated to a predetermined time point in a second direction opposite to the first direction, the predetermined distance is between the curling robot and the guide at the time of first rotating the curling robot in the first direction. The predetermined time point is a distance change rate of the curling robot while the curling robot is further rotated in the first direction while the distance change rate is 0, and then the rotation direction is changed to rotate in the second direction. The rate of change of the distance is 0 since the amount of change of the curling robot is first rotated in the first direction. It may be a time point equal to the change amount of the distance change rate of the curling robot until this time.

한편, 본 발명의 일 실시 예에 따른 센서를 구비한 컬링 로봇의 주행 제어 방법은 상기 컬링 로봇의 직진 속도 및 각속도가 입력되면, 상기 입력된 직진 속도와 각속도에 기초하여 상기 바퀴를 구동하는 단계, 상기 바퀴의 구동에 따라 주행하는 상기 컬링 로봇의 실제 직진 속도 및 각속도를 이용하여 피드백 제어를 수행하는 단계를 포함하고, 상기 피드백 제어를 수행하는 단계는 상기 센서를 통해 상기 컬링 로봇의 회전 각도 및 상기 컬링 로봇과 상기 컬링 로봇 주변에 설치된 가이드 간의 거리 중 적어도 하나를 측정하고, 상기 측정된 회전 각도 및 거리 중 적어도 하나를 상기 피드백 제어에 추가로 이용한다.On the other hand, the driving control method of the curling robot with a sensor according to an embodiment of the present invention, if the straight speed and the angular velocity of the curling robot is input, driving the wheel based on the input straight speed and angular velocity, And performing feedback control by using the actual straight speed and the angular velocity of the curling robot traveling according to the driving of the wheel, and the performing of the feedback control may include the rotation angle and the rotation angle of the curling robot through the sensor. At least one of a distance between a curling robot and a guide installed around the curling robot is measured, and at least one of the measured rotation angle and the distance is further used for the feedback control.

여기에서, 상기 피드백 제어를 수행하는 단계는 주행 중인 상기 컬링 로봇의 회전 각도를 실시간으로 측정하여 상기 컬링 로봇의 각속도를 산출하고, 상기 산출된 각속도가 0이 아닌 경우, 상기 컬링 로봇을 회전 각도 및 각속도가 0이 될 때까지 제1 방향으로 회전시키며, 상기 제1 방향은 상기 산출된 각속도가 0이 아닌 시점에서 상기 컬링 로봇이 회전된 방향과 반대 방향일 수 있다.Here, the step of performing the feedback control is to measure the rotation angle of the curling robot while driving in real time to calculate the angular velocity of the curling robot, if the calculated angular velocity is not 0, the curling robot and the rotation angle and It rotates in a first direction until the angular velocity becomes zero, and the first direction may be opposite to the direction in which the curling robot is rotated when the calculated angular velocity is not zero.

또한, 상기 피드백 제어를 수행하는 단계는 상기 회전 각도가 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시키고, 상기 제1 방향으로의 회전에 따라 상기 컬링 로봇이 기설정된 각도만큼 회전되면 상기 컬링 로봇을 상기 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시키며, 상기 기설정된 각도는 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점에서 상기 컬링 로봇이 회전된 각도이고, 상기 기설정된 시점은 상기 회전 각도가 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 상기 제2 방향으로 회전시키는 동안의 상기 컬링 로봇의 각속도의 변화량이 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점부터 상기 회전 각도 및 각속도가 0이 되는 시점까지 상기 컬링 로봇의 각속도의 변화량과 같아지는 시점일 수있다.In the performing of the feedback control, the curling robot may be further rotated in the first direction while the rotation angle is 0, and the curling robot is rotated by a predetermined angle according to the rotation in the first direction. The curling robot is rotated to a predetermined time point in a second direction opposite to the first direction, and the preset angle is an angle at which the curling robot is rotated at the time of first rotating the curling robot in the first direction. The predetermined time point is the amount of change in the angular velocity of the curling robot while the curling robot is further rotated in the first direction and the rotational direction is changed in the second direction while the rotation angle is 0. From the time when the curling robot is first rotated in the first direction to the time when the rotation angle and angular velocity become zero. It may be a time that is equal to the amount of change in angular velocity of the robot group curling.

한편, 상기 피드백 제어를 수행하는 단계는 주행 중인 상기 컬링 로봇과 상기 가이드 사이의 거리를 실시간으로 측정하여 시간에 따른 거리 변화율을 산출하고, 상기 산출된 거리 변화율이 0이 아닌 경우, 상기 컬링 로봇을 거리 변화율이 0이 될 때까지 제1 방향으로 회전시키며, 상기 제1 방향은, 상기 산출된 거리 변화율이 0이 아닌 시점에서 상기 컬링 로봇이 회전된 방향과 반대 방향일 수 있다.In the performing of the feedback control, the distance between the curling robot and the guide while driving is measured in real time to calculate a distance change rate according to time, and when the calculated distance change rate is not 0, the curling robot is operated. The first direction may be rotated in a first direction until the distance change rate becomes zero, and the first direction may be opposite to the direction in which the curling robot is rotated when the calculated distance change rate is not zero.

여기에서, 상기 피드백 제어를 수행하는 단계는 상기 거리 변화율이 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시키고, 상기 제1 방향으로의 회전에 따라 상기 컬링 로봇과 상기 가이드 사이의 거리가 기설정된 거리가 되면 상기 컬링 로봇을 상기 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시키며, 상기 기설정된 거리는 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점에서 상기 컬링 로봇과 상기 가이드 사이의 거리이고, 상기 기설정된 시점은 상기 거리 변화율이 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 상기 제2 방향으로 회전시키는 동안의 상기 컬링 로봇의 거리 변화율의 변화량이 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점부터 상기 거리 변화율이 0이 되는 시점까지 상기 컬링 로봇의 거리 변화율의 변화량과 같아지는 시점일 수 있다.The performing of the feedback control may further include rotating the curling robot in the first direction while the distance change rate is 0, and between the curling robot and the guide according to the rotation in the first direction. When the distance reaches a predetermined distance, the curling robot is rotated to a predetermined time point in a second direction opposite to the first direction, and the preset distance is the curling time when the curling robot is first rotated in the first direction. The predetermined time is the distance between the robot and the guide, wherein the predetermined time is the rotation of the curling robot further in the first direction in the state of the distance change rate is 0 and the rotation direction is changed while rotating in the second direction From the time when the amount of change in the distance change rate of the curling robot first rotates the curling robot in the first direction And the time rate of change is a group distance that is 0 can be a time at which the amount of change in the distance equal to the rate of change of said curling robot.

이상과 같은 본 발명의 다양한 실시 예에 따르면, 컬링 로봇의 회전 각도 및 컬링 로봇과 가이드 사이의 거리를 이용하여 컬링 로봇의 직진 주행을 제어할 수 있다는 점에서, 큰 비용 소모 없이 기존에 비해 향상된 직진 주행 성능을 제공할 수 있게 된다.According to various embodiments of the present disclosure as described above, since the straight driving of the curling robot can be controlled by using the rotation angle of the curling robot and the distance between the curling robot and the guide, the straightness improved compared to the existing without significant cost. It is possible to provide driving performance.

도 1은 본 발명의 일 실시 예에 따른 컬링 로봇을 설명하기 위한 도면,
도 2는 본 발명의 일 실시 예에 따른 컬링 로봇의 구성을 설명하기 위한 블록도,
도 3 및 도 4는 본 발명의 일 실시 예에 따른 컬링 로봇의 주행을 제어하는 방법을 설명하기 위한 도면들,
도 5는 본 발명의 일 실시 예에 따라 컬링 로봇의 회전 각도를 산출하는 방법을 설명하기 위한 도면들,
도 6은 본 발명의 일 실시 예에 따른 컬링 로봇의 회전 각도에 기초하여 컬링 로봇의 직진 주행을 제어하는 방법을 설명하기 위한 도면들,
도 7은 본 발명의 일 실시 예에 따른 컬링 로봇과 가이드 사이의 거리에 기초하여 컬링 로봇의 직진 주행을 제어하는 방법을 설명하기 위한 도면들,
도 8은 본 발명의 일 실시 예에 따른 컬링 로봇의 세부 구성을 설명하기 위한 블록도, 그리고
도 9는 본 발명의 일 실시 예에 따른 컬링 로봇의 주행 제어 방법을 설명하기 위한 흐름도이다.
1 is a view for explaining a curling robot according to an embodiment of the present invention,
2 is a block diagram for explaining the configuration of a curling robot according to an embodiment of the present invention;
3 and 4 are views for explaining a method of controlling the running of the curling robot according to an embodiment of the present invention,
5 is a view for explaining a method of calculating the rotation angle of the curling robot according to an embodiment of the present invention,
6 is a view for explaining a method for controlling the straight running of the curling robot based on the rotation angle of the curling robot according to an embodiment of the present invention,
7 is a view for explaining a method for controlling the straight running of the curling robot based on the distance between the curling robot and the guide according to an embodiment of the present invention,
8 is a block diagram illustrating a detailed configuration of a curling robot according to an embodiment of the present invention;
9 is a flowchart illustrating a driving control method of a curling robot according to an exemplary embodiment.

본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. The embodiments may be variously modified and may have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the scope to the specific embodiments, it should be understood to include all transformations, equivalents, and substitutes included in the scope of the disclosed spirit and technology. In describing the embodiments, when it is determined that the detailed description of the related known technology may obscure the gist, the detailed description thereof will be omitted.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are only used to distinguish one component from another.

본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다." 또는 "구성되다." 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the scope. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, "includes." Or "made up." And the like are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described in the specification, and that one or more other features or numbers, step, action, component, part, or It should be understood that they do not preclude the presence or possibility of adding these in advance.

실시 예에 있어 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.In an embodiment, the module or unit performs at least one function or operation, and may be implemented by hardware or software or a combination of hardware and software. In addition, a plurality of modules or a plurality of units may be integrated into at least one module except for a module or a unit that needs to be implemented with specific hardware, and may be implemented as at least one processor (not shown). Can be.

이하에서, 첨부된 도면을 이용하여 본 개시에 대하여 구체적으로 설명한다.Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시 예에 따른 컬링 로봇을 설명하기 위한 도면이다.1 is a view for explaining a curling robot according to an embodiment of the present invention.

도 1을 참조하면, 컬링 로봇(100)은 컬링 경기를 위해, 스톤(10)을 투구하는 기능을 수행할 수 있다. Referring to FIG. 1, the curling robot 100 may perform a function of throwing the stone 10 for a curling match.

구체적으로, 컬링 로봇(100)은 스톤(10)을 잡고, 출발선에서부터 주행을 시작하여 호그 라인에 도착하기 이전에 잡고 있던 스톤(10)을 놓아, 빙판 위에서 스톤(10)을 미끄러뜨려 반대편의 하우스 안에 스톤(10)을 위치시킬 수 있다. Specifically, the curling robot 100 grabs the stone 10, releases the stone 10 held before starting the journey from the starting line and arrives at the hog line, and slides the stone 10 on the ice to the opposite side. The stone 10 can be placed in the house.

이와 같이, 컬링 로봇(100)은 주행을 통해 스톤(10)을 투구한다는 점에서, 컬링 로봇(100)에는 바퀴가 구비되어 있다.As described above, the curling robot 100 pitches the stone 10 through driving, and the curling robot 100 is provided with wheels.

예를 들어, 도 1과 같이, 바퀴는 2 개의 전륜(111, 112)과 1 개의 후륜(113)으로 구성될 수 있으며, 컬링 로봇(100)은 2 개의 전륜(111, 112)을 구동하여 주행할 수 있다.For example, as shown in FIG. 1, the wheel may include two front wheels 111 and 112 and one rear wheel 113, and the curling robot 100 drives two front wheels 111 and 112 to drive. can do.

한편, 스톤(10)을 더욱 정확히 하우스 안에 넣기 위해서는, 스톤(10)을 놓기 전까지 컬링 로봇(100)이 직진으로 주행하는 것은 무엇보다 중요하다.On the other hand, in order to more accurately put the stone 10 in the house, it is important that the curling robot 100 travels straight before the stone 10 is released.

이에 따라, 본 발명의 다양한 실시 예에 따르면, 다양한 센서를 이용하여 컬링 로봇(100)이 직진 주행이 가능하도록 제어하는데, 이하에서 보다 구체적으로 설명하도록 한다.Accordingly, according to various embodiments of the present disclosure, the curling robot 100 may be controlled to travel straight by using various sensors, which will be described in detail below.

도 2는 본 발명의 일 실시 예에 따른 컬링 로봇의 구성을 설명하기 위한 블록도이다.2 is a block diagram illustrating a configuration of a curling robot according to an embodiment of the present invention.

도 2를 참조하면, 컬링 로봇(100)은 바퀴(110), 센서(120) 및 프로세서(130)를 포함한다.Referring to FIG. 2, the curling robot 100 includes a wheel 110, a sensor 120, and a processor 130.

바퀴(110)는 컬링 로봇(100)의 주행을 위해, 컬링 로봇(100)의 본체에 마련될 수 있다.The wheel 110 may be provided in the main body of the curling robot 100 to drive the curling robot 100.

이 경우, 도 1과 같이, 바퀴(110)는 본체의 앞 부분의 좌측에 마련된 좌측 바퀴(111) 및 우측에 마련된 우측 바퀴(112)를 포함할 수 있다. 또한, 바퀴(110)는 본체의 뒷 부분에 마련된 뒷바퀴(113)를 더 포함할 수 있다.In this case, as shown in FIG. 1, the wheel 110 may include a left wheel 111 provided at the left side of the front portion of the main body and a right wheel 112 provided at the right side. In addition, the wheel 110 may further include a rear wheel 113 provided at the rear of the body.

이때, 좌측 바퀴(111) 및 우측 바퀴(112)는 고정적으로 설치되는 반면, 뒷바퀴(113)는 뒷바퀴(113)가 회전하는 회전축을 기준으로 수직한 방향의 축을 중심으로 회전 가능하도록 설치될 수 있다.In this case, the left wheel 111 and the right wheel 112 may be fixedly installed, while the rear wheel 113 may be installed to be rotatable about an axis in a vertical direction with respect to the rotating shaft in which the rear wheel 113 rotates. .

이에 따라, 좌측 바퀴(111) 및 우측 바퀴(112)의 구동에 의해 컬링 로봇(100)이 좌측 방향(즉, 반시계 방향)으로 회전하거나 선회하는 경우, 뒷바퀴(113)는 축을 기준으로 반시계 방향으로 회전될 수 있다. 또한, 좌측 바퀴(111) 및 우측 바퀴(112)의 구동에 의해 컬링 로봇(100)이 우측 방향(즉, 시계 방향)으로 회전하거나 선회하는 경우, 뒷바퀴(113)는 축을 기준으로 시계 방향으로 회전될 수 있다.Accordingly, when the curling robot 100 rotates or turns in the left direction (that is, counterclockwise) by the driving of the left wheel 111 and the right wheel 112, the rear wheel 113 counterclockwise with respect to the axis. Direction can be rotated. In addition, when the curling robot 100 rotates or turns in the right direction (ie, clockwise) by driving the left wheel 111 and the right wheel 112, the rear wheel 113 rotates clockwise with respect to the axis. Can be.

센서(120)는 컬링 로봇(100) 내의 정보 및 컬링 로봇(100)의 주변 정보 중 적어도 하나를 센싱하기 위한 하나 이상의 센서를 포함할 수 있다.The sensor 120 may include one or more sensors for sensing at least one of information in the curling robot 100 and surrounding information of the curling robot 100.

구체적으로, 센서(120)는 자이로 센서를 포함하며, 자이로 센서를 통해 컬링 로봇(100)의 각속도를 측정할 수 있다. In detail, the sensor 120 may include a gyro sensor and measure an angular velocity of the curling robot 100 through the gyro sensor.

또한, 센서(120)는 바퀴(110)에 설치된 엔코더를 포함하며, 엔코더를 통해 바퀴(110)의 회전 각도를 측정할 수 있다. In addition, the sensor 120 may include an encoder installed in the wheel 110 and may measure a rotation angle of the wheel 110 through the encoder.

또한, 센서(120)는 거리 측정 센서를 포함하며, 거리 측정 센서를 통해 컬링 로봇(100)과 컬링 로봇(100) 주변에 설치된 가이드 간의 거리를 측정할 수 있다. In addition, the sensor 120 may include a distance measuring sensor and may measure a distance between the curling robot 100 and a guide installed around the curling robot 100 through the distance measuring sensor.

여기에서, 가이드는 실제 컬링 경기를 할 때, 경기가 진행되는 빙판 면을 나타내는 시트(sheet)의 외곽에 위치한 가장자리 선(lateral line) 또는 그 바깥 쪽에 세워지는 펜스(fence)를 의미한다. Here, the guide means a fence that is erected on or outside the lateral line located on the outer side of the sheet representing the ice surface on which the game is played in the actual curling race.

이 경우, 거리 측정 센서는 가이드로 초음파 등을 송신하기 위한 송신부와 가이드로부터 반사되는 반사파를 수신하기 위한 수신부를 포함할 수 있으며, 초음파를 송신한 후 가이드로부터의 반사파가 수신되기까지 걸리는 시간을 통해 컬링 로봇(100)과 가이드 간의 거리를 측정할 수 있다. 다만, 거리 측정 센서는 초음파를 이용하는 방법 이외에도 다양한 방식을 통해 컬링 로봇(100)과 가이드 사이의 거리를 측정할 수 있음은 물론이다.In this case, the distance measuring sensor may include a transmitter for transmitting an ultrasonic wave to the guide and a receiver for receiving the reflected wave reflected from the guide, and after transmitting the ultrasonic wave, it takes time to receive the reflected wave from the guide. The distance between the curling robot 100 and the guide may be measured. However, the distance measuring sensor may measure the distance between the curling robot 100 and the guide through various methods in addition to using the ultrasonic wave.

프로세서(130)는 컬링 로봇(100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(130)는 운영 체제 또는 응용 프로그램을 구동하여 프로세서(130)에 연결된 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 또한, 프로세서(130)는 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다.The processor 130 controls the overall operation of the curling robot 100. For example, the processor 130 may drive an operating system or an application program to control hardware or software components connected to the processor 130, and may perform various data processing and operations. In addition, the processor 130 may load and process instructions or data received from at least one of the other components into the volatile memory, and store various data in the nonvolatile memory.

이를 위해, 프로세서(130)는 해당 동작을 수행하기 위한 전용 프로세서(예, 임베디드 프로세서) 또는 메모리 디바이스에 저장된 하나 이상의 소프트웨어 프로그램을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)로 구현될 수 있다.To this end, the processor 130 may execute a dedicated processor (eg, an embedded processor) or one or more software programs stored in a memory device to perform the corresponding operations, thereby performing a generic operation. (Eg, CPU or application processor).

먼저, 프로세서(130)는 바퀴(110)를 구동하여, 컬링 로봇(100)의 직진, 회전 및 선회를 제어할 수 있다.First, the processor 130 may drive the wheel 110 to control the straightening, rotation, and turning of the curling robot 100.

이를 위해, 프로세서(130)는 좌측 바퀴(111) 및 우측 바퀴(112)를 각각 구동할 수 있다.To this end, the processor 130 may drive the left wheel 111 and the right wheel 112, respectively.

예를 들어, 프로세서(130)는 컬링 로봇(100)을 직진으로 주행시키고자 할 때, 좌측 바퀴(111) 및 우측 바퀴(112)를 정방향으로 같은 속도로 구동할 수 있다. For example, when the processor 130 intends to drive the curling robot 100 in a straight line, the processor 130 may drive the left wheel 111 and the right wheel 112 at the same speed in the forward direction.

또한, 프로세서(130)는 컬링 로봇(100)을 회전시키고 할 때, 좌측 바퀴(111) 및 우측 바퀴(112)를 서로 다른 방향으로 같은 속도로 구동할 수 있다. 즉, 프로세서(130)는 컬링 로봇(100)을 좌측 방향으로 회전시키고자 할 때, 좌측 바퀴(111)는 역방향으로 구동하고, 우측 바퀴(112)를 정방향으로 구동하고, 컬링 로봇(100)을 우측 방향으로 회전시키고자 할 때, 좌측 바퀴(111)는 정방향으로 구동하고, 우측 바퀴(112)를 역방향으로 구동할 수 있다.In addition, when the curling robot 100 is rotated, the processor 130 may drive the left wheel 111 and the right wheel 112 at the same speed in different directions. That is, when the processor 130 tries to rotate the curling robot 100 in the left direction, the left wheel 111 is driven in the reverse direction, the right wheel 112 is driven in the forward direction, and the curling robot 100 is driven. When rotating in the right direction, the left wheel 111 may be driven in the forward direction, the right wheel 112 may be driven in the reverse direction.

또한, 프로세서(130)는 컬링 로봇(100)을 선회시키고자 할 때, 좌측 바퀴(111) 및 우측 바퀴(112)를 같은 방향으로 서로 다른 속도로 구동할 수 있다. 즉, 프로세서(130)는 컬링 로봇(100)을 좌측 방향으로 선회시키고자 할 때, 좌측 바퀴(111) 및 우측 바퀴(112)를 정방향으로 구동하되, 좌측 바퀴(111) 보다 우측 바퀴(112)를 상대적으로 더 빠른 속도로 구동할 수 있고, 컬링 로봇(100)을 우측 방향으로 선회시키고자 할 때, 좌측 바퀴(111) 및 우측 바퀴(112)를 정방향으로 구동하되, 우측 바퀴(112) 보다 좌측 바퀴(111)를 상대적으로 더 빠른 속도로 구동할 수 있다.In addition, when turning the curling robot 100, the processor 130 may drive the left wheel 111 and the right wheel 112 at different speeds in the same direction. That is, the processor 130 drives the left wheel 111 and the right wheel 112 in the forward direction when turning the curling robot 100 in the left direction, but the right wheel 112 rather than the left wheel 111. Can be driven at a relatively higher speed, and when driving the curling robot 100 in the right direction, the left wheel 111 and the right wheel 112 are driven in the forward direction, but the right wheel 112 is operated. The left wheel 111 can be driven at a relatively higher speed.

이와 같은 컬링 로봇(100)의 주행을 위해, 프로세서(130)는 바퀴(110)의 구동 속도를 산출하고, 산출된 구동 속도에 따라 바퀴(110)를 구동할 수 있다. In order to drive the curling robot 100 as described above, the processor 130 may calculate the driving speed of the wheel 110 and drive the wheel 110 according to the calculated driving speed.

이를 위해, 바퀴(110)의 속도를 도출하기 위한 모듈은 컬링 로봇(100)의 메모리(미도시)에 저장되어 있을 수 있고, 프로세서(130)는 해당 모듈을 실행하여 컬링 로봇(100)의 바퀴(110)의 속도를 산출할 수 있다.To this end, a module for deriving the speed of the wheel 110 may be stored in a memory (not shown) of the curling robot 100, and the processor 130 may execute the module to execute the wheel of the curling robot 100. The speed of 110 can be calculated.

여기에서, 컬링 로봇(100)의 속도를 도출하기 위한 알고리즘은 도 3a와 같이 나타내어질 수 있다.Here, the algorithm for deriving the speed of the curling robot 100 can be represented as shown in Figure 3a.

프로세서(130)는 컬링 로봇(100)의 직진 속도 및 각속도가 입력되면, 입력된 직진 속도와 각속도에 기초하여 바퀴(110)의 구동 속도를 산출할 수 있다. 여기에서, 컬링 로봇(100)의 직진 속도와 각속도는 컬링 로봇(100)을 제어하기 위한 시스템으로부터 입력될 수 있다. When the straight speed and the angular velocity of the curling robot 100 are input, the processor 130 may calculate the driving speed of the wheel 110 based on the input straight speed and the angular velocity. Here, the straight velocity and the angular velocity of the curling robot 100 may be input from a system for controlling the curling robot 100.

구체적으로, 도 3a와 같이, 프로세서(130)는 컬링 로봇(100)의 직진 주행 및 방향 전환을 위한 좌표변환 행렬 A를 이용하여, 입력된 직진 속도와 각속도에 기초하여 바퀴(110)의 구동 속도를 산출할 수 있다.Specifically, as shown in FIG. 3A, the processor 130 uses the coordinate transformation matrix A for straight traveling and direction change of the curling robot 100 to drive the speed of the wheel 110 based on the input straight speed and the angular speed. Can be calculated.

여기에서, A는

Figure 112017100539594-pat00001
와 같은 행렬일 수 있다. Where A is
Figure 112017100539594-pat00001
It can be a matrix such as

즉, 프로세서(130)는 입력된 직진 속도

Figure 112017100539594-pat00002
와 각속도
Figure 112017100539594-pat00003
를 좌표변환 행렬 A의 역행렬 A-1에 적용하여, 좌측 바퀴(111)의 구동 속도 vL 및 우측 바퀴(112)의 구동 속도 vR을 각각 산출할 수 있다.That is, the processor 130 is input straight speed
Figure 112017100539594-pat00002
And angular velocity
Figure 112017100539594-pat00003
May be applied to the inverse matrix A −1 of the coordinate transformation matrix A to calculate the driving speed v L of the left wheel 111 and the driving speed v R of the right wheel 112, respectively.

그리고, 프로세서(130)는 산출된 구동 속도 vL,vR을 갖도록 좌측 바퀴(111) 및 우측 바퀴(112)를 구동하여, 컬링 로봇(100)을 주행시킬 수 있다.In addition, the processor 130 may drive the curling robot 100 by driving the left wheel 111 and the right wheel 112 to have the calculated driving speeds v L and v R.

예를 들어, 도 3b 및 도 3c와 같이, 컬링 로봇(100)이 직진으로 주행하기 위한 직진 모드에서는,

Figure 112017100539594-pat00004
=1,
Figure 112017100539594-pat00005
=0이 입력되어, vL=vR이 되고, 이에 따라, 컬링 로봇(100)은 직진 주행을 할 수 있다.For example, as shown in FIGS. 3B and 3C, in the straight mode for the curling robot 100 to travel straight,
Figure 112017100539594-pat00004
= 1,
Figure 112017100539594-pat00005
Since = 0 is input and v L = v R , the curling robot 100 can travel straight.

다른 예로, 도 3b 및 도 3c와 같이, 컬링 로봇(100)을 회전시키는 회전 모드에서 컬링 로봇(100)을 좌측 방향으로 회전시키기 위해서는,

Figure 112017100539594-pat00006
=0,
Figure 112017100539594-pat00007
=1이 입력되어, vR=-vL이 되고, 이에 따라, 컬링 로봇(100)은 좌측 방향으로 회전할 수 있다.As another example, in order to rotate the curling robot 100 in the left direction in a rotation mode in which the curling robot 100 is rotated, as shown in FIGS. 3B and 3C.
Figure 112017100539594-pat00006
= 0,
Figure 112017100539594-pat00007
= 1 is input, and v R = -v L , whereby the curling robot 100 may rotate in the left direction.

다른 예로, 도 3b 및 도 3c와 같이, 컬링 로봇(100)을 선회시키는 선회 모드에서 컬링 로봇(100)을 좌측 방향으로 선회시키기 위해서는,

Figure 112017100539594-pat00008
=1,
Figure 112017100539594-pat00009
=1이 입력되어, vR>vL이 되고, 이에 따라, 컬링 로봇(100)은 좌측 방향으로 선회할 수 있다. As another example, to rotate the curling robot 100 in the left direction in the turning mode of turning the curling robot 100 as shown in FIGS. 3B and 3C,
Figure 112017100539594-pat00008
= 1,
Figure 112017100539594-pat00009
= 1 is input, and v R > v L , whereby the curling robot 100 can turn to the left direction.

한편, 프로세서(130)는 바퀴(110)의 구동에 따라 주행 중인 컬링 로봇(100)의 직진 주행을 제어할 수 있다. On the other hand, the processor 130 may control the straight running of the curling robot 100 is running in accordance with the driving of the wheel (110).

구체적으로, 직진 주행 제어를 위해, 프로세서(130)는 컬링 로봇(100)의 직진 속도 및 각속도가 입력되면, 입력된 직진 속도와 각속도에 기초하여 바퀴(110)를 구동하고, 바퀴(110)의 구동에 따라 주행하는 컬링 로봇(100)의 실제 직진 속도 및 각속도에 기초하여 피드백 제어를 수행할 수 있다.Specifically, for the straight running control, the processor 130 drives the wheel 110 on the basis of the input straight speed and the angular velocity when the straight speed and the angular velocity of the curling robot 100 is input, The feedback control may be performed based on the actual straight speed and the angular velocity of the curling robot 100 that runs according to the driving.

여기에서, 컬링 로봇(100)의 직진 주행을 위한 알고리즘은 도 4와 같이 나타내어질 수 있다. 이 경우, 컬링 로봇(100)의 직진 주행을 위한 모듈은 컬링 로봇(100)의 메모리(미도시)에 저장되어 있을 수 있고, 프로세서(130)는 해당 모듈을 실행하여 컬링 로봇(100)의 직진 주행을 제어할 수 있다. Here, the algorithm for the straight running of the curling robot 100 can be represented as shown in FIG. In this case, the module for the straight running of the curling robot 100 may be stored in a memory (not shown) of the curling robot 100, the processor 130 executes the module to go straight to the curling robot 100 You can control the driving.

구체적으로, 도 4를 참조하면, 프로세서(130)는 입력된 직진 속도

Figure 112017100539594-pat00010
와 각속도
Figure 112017100539594-pat00011
를 좌표변환 행렬 A의 역행렬 A-1에 적용하여, 좌측 바퀴(111)의 구동 속도 vL 및 우측 바퀴(112)의 구동 속도 vR을 각각 산출할 수 있다. 그리고, 프로세서(130)는 산출된 구동 속도 vL,vR을 갖도록 좌측 바퀴(111) 및 우측 바퀴(112)를 구동하여, 컬링 로봇(100)을 주행시킬 수 있다.Specifically, referring to FIG. 4, the processor 130 enters the input straight speed.
Figure 112017100539594-pat00010
And angular velocity
Figure 112017100539594-pat00011
May be applied to the inverse matrix A −1 of the coordinate transformation matrix A to calculate the driving speed v L of the left wheel 111 and the driving speed v R of the right wheel 112, respectively. In addition, the processor 130 may drive the curling robot 100 by driving the left wheel 111 and the right wheel 112 to have the calculated driving speeds v L and v R.

이후, 프로세서(130)는 바퀴(110)의 구동에 따라 컬링 로봇(100)이 주행할 때, 구동 중인 바퀴(100)의 실제 속도를 측정할 수 있다. 즉, 프로세서(130)는 회전하는 좌측 바퀴(111) 및 우측 바퀴(112)의 실제 속도를 측정할 수 있다. 이 경우, 이미 알려진 다양한 방법을 통해 바퀴의 실제 속도를 측정할 수 있다.Thereafter, the processor 130 may measure the actual speed of the wheel 100 being driven when the curling robot 100 travels according to the driving of the wheel 110. That is, the processor 130 may measure actual speeds of the left wheel 111 and the right wheel 112 that rotate. In this case, various known methods can be used to measure the actual speed of the wheel.

그리고, 프로세서(130)는 바퀴(100)의 실제 속도를 이용하여, 컬링 로봇(100)의 실제 직진 속도 및 각속도를 산출할 수 있다. In addition, the processor 130 may calculate the actual straight speed and the angular velocity of the curling robot 100 using the actual speed of the wheel 100.

즉, 프로세서(130)는 좌측 바퀴(111)의 실제 속도 vL' 및 우측 바퀴(112)의 실제 속도 vR'을 좌표변환 행렬 A에 적용하여, 컬링 로봇(100)의 실제 직진 속도 vl과 실제 각속도 ωz를 산출할 수 있다.That is, the processor 130 applies the actual speed v L ′ of the left wheel 111 and the actual speed v R ′ of the right wheel 112 to the coordinate transformation matrix A, so that the actual straight speed v l of the curling robot 100 is applied. And the actual angular velocity ω z can be calculated.

이후, 도 4와 같이, 프로세서(130)는 산출된 실제 직진 속도 vl과 실제 각속도 ωz를 전체 시스템의 입력으로 전달하여, 컬링 로봇(100)의 직진 속도 및 각속도에 대한 피드백 제어를 수행할 수 있다. 여기에서, CFB 및 CFF는 각각 피드백 제어 및 피드 포워드 제어를 위한 게인을 조절하는 기능을 수행한다.Then, as shown in FIG. 4, the processor 130 transmits the calculated actual straight velocity v l and the actual angular velocity ω z to the input of the entire system, and performs feedback control on the straight velocity and the angular velocity of the curling robot 100. Can be. Here, C FB and C FF perform functions of adjusting gains for feedback control and feed forward control, respectively.

한편, 프로세서(130)는 실제 각속도 ωz를 YMO(Yaw Moment Observer)의 입력으로 전달하고, YMO의 출력을 통해 컬링 로봇(100)의 각속도에 대한 피드백 제어를 수행할 수 있다.Meanwhile, the processor 130 may transmit the actual angular velocity ω z to an input of a yaw moment observer (YMO), and perform feedback control on the angular velocity of the curling robot 100 through the output of the YMO.

여기에서, YMO는 전체 시스템의 출력인 실제 각속도 ωz를 입력받고, 실제 각속도 ωz와 시스템에서 입력되는 토크 사이의 차이를 통해 외부에서 작용하는 외란을 예측하기 위한 수학적 모델을 의미한다. 이때, 시스템에서 입력되는 토크는 센서(120)의 자이로 센서를 통해 측정된 각속도를 통해 결정될 수 있다.Here, YMO is a mathematical model for predicting external disturbance through the difference between the actual angular velocity ω z which is the output of the entire system and the actual angular velocity ω z and the torque input from the system. In this case, the torque input from the system may be determined through the angular velocity measured by the gyro sensor of the sensor 120.

다만, 이러한 직진 제어를 위한 알고리즘은 자이로 센서만을 이용한다는 점에서, 저가의 자이로 센서가 이용되는 경우 그 성능에 한계가 있고, 바퀴(110)와 빙판의 슬립으로 컬링 로봇(100)의 사이드 슬립이 발생하는 경우, 자이로 센서만을 이용한 직진 제어는 주행 목표 궤적의 측정이 불가능하다는 문제점이 있다.However, since the algorithm for the straight-line control uses only a gyro sensor, when the low-cost gyro sensor is used, its performance is limited, and the side slip of the curling robot 100 is reduced due to the slip of the wheel 110 and the ice. If this occurs, the linear control using only the gyro sensor has a problem that it is impossible to measure the driving target trajectory.

이에 따라, 본 발명의 다양한 실시 예에 따르면, 고가의 자이로 센서를 이용하지 않고도, 다양한 다른 센서를 통해 컬링 로봇(100)의 직진 주행을 제어할 수 있는데, 이하에서 보다 구체적으로 설명하도록 한다.Accordingly, according to various embodiments of the present disclosure, the linear driving of the curling robot 100 may be controlled through various other sensors without using an expensive gyro sensor, which will be described in detail below.

구체적으로, 프로세서(130)는 센서(120)를 통해 컬링 로봇(100)의 회전 각도 및 컬링 로봇(100)과 컬링 로봇(100) 주변에 설치된 가이드 간의 거리 중 적어도 하나를 측정하고, 측정된 회전 각도 및 거리 중 적어도 하나를 피드백 제어에 추가로 이용할 수 있다.In detail, the processor 130 measures at least one of a rotation angle of the curling robot 100 and a distance between the curling robot 100 and a guide installed around the curling robot 100 through the sensor 120, and the measured rotation. At least one of the angle and the distance may be further used for feedback control.

즉, 도 4와 같이, 프로세서(130)는 컬링 로봇(100)의 회전 각도 φ 및 컬링 로봇(100)과 가이드 사이의 거리 d를 측정하고, 이를 전체 시스템에 대한 입력으로 전달할 수 있다. 여기에서, Cgain는 피드백 제어를 위한 게인을 조절하는 조절하는 기능을 수행한다.That is, as shown in FIG. 4, the processor 130 may measure the rotation angle φ of the curling robot 100 and the distance d between the curling robot 100 and the guide, and transmit it as an input to the entire system. Here, C gain performs the function of adjusting the gain for feedback control.

이를 위해, 프로세서(130)는 엔코더 또는 거리 측정 센서를 통해 컬링 로봇(100)의 회전 각도 산출할 수 있다.To this end, the processor 130 may calculate the rotation angle of the curling robot 100 through an encoder or a distance measuring sensor.

예를 들어, 도 5a를 참조하면, 엔코더(121)는 좌측 바퀴(111) 및 우측 바퀴(112)에 각각 구비되어, 좌측 바퀴(111) 및 우측 바퀴(112)가 회전하면, 회전한 각도를 측정할 수 있다.For example, referring to FIG. 5A, the encoder 121 is provided at the left wheel 111 and the right wheel 112, respectively, and when the left wheel 111 and the right wheel 112 rotate, the rotated angle is determined. It can be measured.

여기에서, 프로세서(130)는 좌측 바퀴(111) 및 우측 바퀴(112)가 구동하여 컬링 로봇(100)이 회전되는 경우, 도 5a와 같이, 좌측 바퀴(111) 및 우측 바퀴(112)가 회전한 각도 θ 및 회전축의 길이 x를 이용하여, 컬링 로봇(100)이 회전되기 전의 회전축(10-1)과 컬링 로봇(100)이 회전된 후의 회전축(10-2)에 의해 형성되는 부채꼴의 호의 길이 l (l=θ×x/2)를 산출할 수 있다. Here, when the curling robot 100 is rotated by driving the left wheel 111 and the right wheel 112, the processor 130 rotates the left wheel 111 and the right wheel 112 as shown in FIG. 5A. Using an angle θ and the length x of the rotating shaft, a fan-shaped arc formed by the rotating shaft 10-1 before the curling robot 100 is rotated and the rotating shaft 10-2 after the curling robot 100 is rotated. The length l (l = θ × x / 2) can be calculated.

그리고, 프로세서(130)는 호의 길이 l 및 회전축의 길이 x를 이용하여, 컬링 로봇(100)이 회전된 각도 φ(φ=2×l/x)를 산출할 수 있다.The processor 130 may calculate the angle φ (φ = 2 × l / x) at which the curling robot 100 is rotated using the length l of the arc and the length x of the rotation shaft.

다른 예로, 도 5b를 참조하면, 거리 측정 센서(122)는 회전축의 중심과 가이드(500) 사이의 거리를 측정할 수 있다. As another example, referring to FIG. 5B, the distance measuring sensor 122 may measure the distance between the center of the rotation axis and the guide 500.

여기에서, 프로세서(130)는 컬링 로봇(100)이 회전되는 경우, 도 5b와 같이, 컬링 로봇(100)이 회전되기 전의 회전축(10-1)의 중심과 가이드 사이의 거리 d0 및 컬링 로봇(100)이 회전된 후의 회전축(10-2)의 중심과 가이드 사이의 거리 d1을 이용하여, 컬링 로봇(100)이 회전된 각도 φ(φ=

Figure 112017100539594-pat00012
)를 산출할 수 있다.Here, when the curling robot 100 is rotated, the processor 130, as shown in FIG. 5B, the distance d 0 between the guide and the center of the rotation axis 10-1 before the curling robot 100 is rotated and the curling robot The angle φ (φ =) at which the curling robot 100 is rotated using the distance d 1 between the center of the rotating shaft 10-2 and the guide after the 100 is rotated.
Figure 112017100539594-pat00012
) Can be calculated.

한편, 프로세서(130)는 거리 측정 센서를 통해 컬링 로봇(100)과 가이드 사이의 거리를 측정할 수도 있다.Meanwhile, the processor 130 may measure the distance between the curling robot 100 and the guide through the distance measuring sensor.

이후, 프로세서(130)는 측정된 컬링 로봇(100)의 회전 각도 및 측정된 컬링 로봇(100)과 가이드 사이의 거리를 이용하여, 컬링 로봇(100)의 직진 주행을 제어할 수 있다.Thereafter, the processor 130 may control the straight traveling of the curling robot 100 by using the measured rotation angle of the curling robot 100 and the distance between the measured curling robot 100 and the guide.

도 6은 본 발명의 일 실시 예에 따른 컬링 로봇의 회전 각도에 기초하여 컬링 로봇의 직진 주행을 제어하는 방법을 설명하기 위한 도면들이다.FIG. 6 is a diagram for describing a method of controlling a straight running of a curling robot based on a rotation angle of the curling robot according to an embodiment of the present disclosure.

도 6a 및 도 6b를 참조하면, 프로세서(130)는 주행 중인 컬링 로봇(100)의 회전 각도를 실시간으로 측정하여 컬링 로봇(100)의 각속도를 산출할 수 있다. 6A and 6B, the processor 130 may calculate an angular velocity of the curling robot 100 by measuring the rotation angle of the curling robot 100 while driving in real time.

그리고, 프로세서(130)는 산출된 각속도가 0이 아닌 경우(S610-Y), 컬링 로봇(100)을 회전 각도 및 각속도가 0이 될 때까지 제1 방향으로 회전시킬 수 있다(S620). 여기에서, 제1 방향은 산출된 각속도가 0이 아닌 시점에서 컬링 로봇(100)이 회전된 방향과 반대 방향일 수 있다.When the calculated angular velocity is not 0 (S610-Y), the processor 130 may rotate the curling robot 100 in the first direction until the rotation angle and angular velocity become 0 (S620). Here, the first direction may be opposite to the direction in which the curling robot 100 is rotated when the calculated angular velocity is not zero.

즉, 프로세서(130)는 산출된 각속도가 0이 아닌 경우 컬링 로봇(100)을 제1 방향으로 회전시키고, 실시간으로 측정되는 컬링 로봇(100)의 회전 각도가 0이고(S630-Y), 각속도가 0이 되면(S640-Y), 컬링 로봇(100)의 회전을 중지시키고(S650), 직진 주행을 하도록 컬링 로봇(100)을 제어할 수 있다.That is, when the calculated angular velocity is not 0, the processor 130 rotates the curling robot 100 in the first direction, and the rotation angle of the curling robot 100 measured in real time is 0 (S630-Y). Becomes 0 (S640-Y), the rotation of the curling robot 100 may be stopped (S650), and the curling robot 100 may be controlled to travel straight.

예를 들어, 도 6b의 step 0 내지 step 2를 참조하면, 정상적으로 주행하던 컬링 로봇(100)에 외란이 발생하면, 컬링 로봇(100)은 특정한 각도 φ1만큼 좌측 방향으로 회전하게 된다. 이에 따라, 컬링 로봇(100)의 각속도는 0이 아니게 되며, 이 경우, 프로세서(130)는 컬링 로봇(100)을 우측 방향으로 회전시킬 수 있다. 그리고, 프로세서(130)는 우측 방향으로의 회전에 따라 컬링 로봇(100)이 회전된 각도 및 각속도가 0이 되면, 컬링 로봇(100)의 회전을 중지시킬 수도 있다.For example, referring to steps 0 to 2 of FIG. 6B, when a disturbance occurs in the curling robot 100 that is normally traveling, the curling robot 100 rotates to the left by a specific angle φ 1 . Accordingly, the angular velocity of the curling robot 100 is not 0. In this case, the processor 130 may rotate the curling robot 100 in the right direction. The processor 130 may stop the rotation of the curling robot 100 when the angle and angular velocity at which the curling robot 100 is rotated according to the rotation in the right direction become zero.

이에 따라, 외란에 의해 회전되었던 컬링 로봇(100)은 다시 직진으로 주행할 수 있게 된다.Accordingly, the curling robot 100 that has been rotated by the disturbance can travel straight ahead again.

한편, 상술한 예에서는 컬링 로봇(100)의 회전 각도가 0이고, 각속도가 0인 경우를 상정하였으나, 이는 일 예에 불과하다. 즉, 프로세서(130)는 회전 각도 및 각속도가 0을 기준으로 기설정된 임계값 범위 내에 속하게 되면(즉, -α≤ 회전 각도, 각속도 ≤α)(여기에서, α는 0에 가까운 작은 수이다), 컬링 로봇(100)의 회전을 중지킬 수도 있다.On the other hand, in the above example it is assumed that the rotation angle of the curling robot 100 is 0, the angular velocity is 0, but this is only one example. In other words, the processor 130, if the rotation angle and angular velocity falls within a preset threshold range with respect to zero (i.e., -α≤ rotation angle, angular velocity ≤α) (where α is a small number close to zero). The rotation of the curling robot 100 may be stopped.

한편, 프로세서(130)는 회전이 중지되면(S650), 컬링 로봇(100)을 제1 방향으로 최초로 회전시키는 시점부터 회전 각도 및 각속도가 0이 되는 시점까지 컬링 로봇(100)의 각속도의 변화량을 산출할 수 있다(S660).On the other hand, when the rotation is stopped (S650), the processor 130 changes the angular velocity of the curling robot 100 from the time when the curling robot 100 is first rotated in the first direction to the time when the rotation angle and angular velocity become zero. It may be calculated (S660).

예를 들어, 도 6c와 같이, 프로세서(130)는 컬링 로봇(100)을 우측 방향으로 회전시키는 시점 t1부터 회전 각도 및 각속도가 0이 되는 시점 t2까지의 시간에 따른 컬링 로봇(100)의 각속도의 변화량 S1을 산출할 수 있다. For example, as illustrated in FIG. 6C, the processor 130 may curl the robot 100 according to a time from a time point t 1 of rotating the curling robot 100 to a right direction to a time point t 2 of which the rotation angle and angular velocity become zero. The variation amount S 1 of the angular velocity of can be calculated.

이후, 프로세서(130)는 회전 각도가 0인 상태에서 컬링 로봇(100)을 제1 방향으로 추가로 회전시키고(S670), 제1 방향으로의 회전에 따라 컬링 로봇(100)이 기설정된 각도만큼 회전되면(S680-Y), 컬링 로봇(100)을 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시킬 수 있다(S690, S691, S693). 그리고, 프로세서(130)는 기설정된 시점이 되면(S693-Y), 컬링 로봇(100)의 회전을 중지시키고(S695), 직진 주행을 하도록 컬링 로봇(100)을 제어할 수 있다.Thereafter, the processor 130 further rotates the curling robot 100 in the first direction in a state where the rotation angle is 0 (S670), and the curling robot 100 is rotated by a predetermined angle according to the rotation in the first direction. When it is rotated (S680-Y), the curling robot 100 may be rotated to a predetermined time point in a second direction opposite to the first direction (S690, S691, and S693). When the predetermined time is reached (S693-Y), the processor 130 may stop the rotation of the curling robot 100 (S695) and control the curling robot 100 to travel straight.

여기에서, 기설정된 각도는 컬링 로봇(100)을 제1 방향으로 최초로 회전시키는 시점에서 컬링 로봇(100)이 회전된 각도이다. Here, the predetermined angle is an angle at which the curling robot 100 is rotated when the curling robot 100 is first rotated in the first direction.

그리고, 기설정된 시점은 회전 각도가 0인 상태에서 컬링 로봇(100)을 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 제2 방향으로 회전시키는 동안의 컬링 로봇의 각속도의 변화량이 컬링 로봇을 제1 방향으로 최초로 회전시키는 시점부터 회전 각도 및 각속도가 0이 되는 시점까지 컬링 로봇(100)의 각속도의 변화량과 같아지는 시점이다.In addition, at a predetermined time point, the amount of change in the angular velocity of the curling robot during the rotation of the curling robot 100 in the first direction after the rotation angle is 0 and the rotational direction is changed in the second direction causes the curling robot to rotate. It is a point of time equal to the amount of change in the angular velocity of the curling robot 100 from the time of first rotation in the first direction to the point of time when the rotation angle and angular velocity become zero.

즉, 프로세서(130)는 외란에 의해 회전된 각도까지 컬링 로봇(100)이 제1 방향으로 회전되도록, 컬링 로봇(100)을 제1 방향으로 회전시킬 수 있다(S670, S680). That is, the processor 130 may rotate the curling robot 100 in the first direction to rotate the curling robot 100 in the first direction to an angle rotated by the disturbance (S670, S680).

다만, 이는 일 예일 뿐이고, 프로세서(130)는 외란에 의해 컬링 로봇(100)이 회전된 각도를 기준으로 기설정된 임계값 범위 내에 속할 때까지(즉, 외란에 의해 회전된 각도 -α≤ 제1 방향으로 회전된 각도 ≤외란에 의해 회전된 각도 +α)(여기에서, α는 0에 가까운 작은 수이다), 컬링 로봇(100)을 제1 방향으로 회전시킬 수도 있다.However, this is merely an example, and the processor 130 may be configured to fall within a preset threshold range based on the angle at which the curling robot 100 is rotated by the disturbance (that is, the angle rotated by the disturbance -α ≦ 1 Angle rotated in the direction ≤ angle rotated by disturbance + alpha (where α is a small number close to zero), the curling robot 100 may be rotated in the first direction.

그리고, 프로세서(130)는 컬링 로봇(100)의 회전 각도가 외란에 의해 최초로 회전된 각도가 될 때까지 컬링 로봇(100)을 제1 방향으로 회전시키고, 컬링 로봇(100)이 외란에 의해 최초로 회전된 각도까지 제1 방향으로 회전되면(S680-Y), 컬링 로봇(100)을 제2 방향으로 회전시킬 수 있다(S690).Then, the processor 130 rotates the curling robot 100 in the first direction until the rotation angle of the curling robot 100 becomes the angle rotated for the first time by the disturbance, and the curling robot 100 is first disturbed by the disturbance. When the rotation angle is rotated in the first direction until the rotated angle (S680-Y), the curling robot 100 may be rotated in the second direction (S690).

예를 들어, 도 6b의 step 3 및 step 4를 참조하면, 도 6b의 step 1과 같이, 외란에 의해 컬링 로봇(100)이 φ1만큼 좌측 방향으로 회전된 경우, 프로세서(130)는 우측 방향으로 φ1만큼 컬링 로봇(100)이 회전되도록, 컬링 로봇(100)을 우측 방향으로 회전시킬 수 있다.For example, referring to step 3 and step 4 of FIG. 6B, as in step 1 of FIG. 6B, when the curling robot 100 is rotated leftward by φ 1 due to disturbance, the processor 130 may move to the right direction. In order to rotate the curling robot 100 by φ 1 , the curling robot 100 may be rotated in the right direction.

그리고, 프로세서(130)는 컬링 로봇(100)이 우측 방향으로 φ1만큼 회전되면, 컬링 로봇(100)을 다시 좌측 방향으로 회전시킬 수 있다.When the curling robot 100 is rotated by φ 1 in the right direction, the processor 130 may rotate the curling robot 100 again in the left direction.

이후, 프로세서(130)는 회전 각도가 0인 상태에서 컬링 로봇(100)을 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 제2 방향으로 회전시키는 동안의 컬링 로봇의 각속도의 변화량을 산출한다(S691).Thereafter, the processor 130 further rotates the curling robot 100 in the first direction while the rotation angle is 0, and then calculates an amount of change in the angular velocity of the curling robot while rotating in the second direction by changing the rotation direction. (S691).

그리고, 프로세서(130)는 산출되는 변화량이 S660 단계에서 산출된 변화량과 같아지게 되면(S693), 제2 방향으로 회전되고 있는 컬링 로봇(100)의 회전을 중지시킬 수 있다.When the amount of change calculated is equal to the amount of change calculated in step S660 (S693), the processor 130 may stop the rotation of the curling robot 100 that is being rotated in the second direction.

예를 들어, 도 6c와 같이, 프로세서(130)는 회전 각도가 0인 상태에서 컬링 로봇(100)을 우측 방향으로 추가로 회전시킨 시점 t3부터의 컬링 로봇(100)의 각속도의 변화량 S2이 t1부터 t2까지의 컬링 로봇(100)의 각속도의 변화량 S1과 같아지는 시점 t4가 되면, 좌측 방향으로 회전하고 있는 컬링 로봇(100)의 회전을 중지시킬 수 있다.For example, as shown in FIG. 6C, the processor 130 changes the angular velocity S 2 of the curling robot 100 from the time point t 3 when the curling robot 100 is further rotated in the right direction while the rotation angle is zero. When the time t 4 becomes equal to the change amount S 1 of the angular velocity of the curling robot 100 from t 1 to t 2 , the rotation of the curling robot 100 rotating in the left direction can be stopped.

다만, 이는 일 예일 뿐이고, 프로세서(130)는 변화량 S2이 변화량 S1을 기준으로 기설정된 임계값 범위 내에 속하게 되면(즉, S1-α≤ S2 ≤S1+α)(여기에서, α는 0에 가까운 작은 수이다), 컬링 로봇(100)의 회전을 중지시킬 수도 있다.However, this is only an example, and the processor 130 may determine that the change amount S 2 falls within a preset threshold range based on the change amount S 1 (that is, S 1 −α ≦ S 2 ≦ S 1 + α) (here, α is a small number close to zero), the rotation of the curling robot 100 may be stopped.

이에 따라, 도 6b의 step 5와 같이, 컬링 로봇(100)은 최초 위치로 복귀하여 직진 주행할 수 있게 된다.Accordingly, as shown in step 5 of FIG. 6B, the curling robot 100 may return to the initial position and travel straight.

한편, 도 6b에서는 컬링 로봇(100)이 외란에 의해 좌측 방향으로 회전되는 것으로 도시하였으나, 이는 설명의 편의를 위한 것일 뿐이고, 컬링 로봇(100)이 외란에 의해 우측 방향으로 회전되는 경우에도, 전술한 방법을 통해 컬링 로봇(100)의 직진 주행을 제어할 수 있음은 물론이다.Meanwhile, in FIG. 6B, the curling robot 100 is shown to be rotated in the left direction by the disturbance. However, this is only for convenience of description, and the curling robot 100 may be rotated in the right direction due to the disturbance. Of course, it is possible to control the straight running of the curling robot 100 through one method.

도 7은 본 발명의 일 실시 예에 따른 컬링 로봇과 가이드 사이의 거리에 기초하여 컬링 로봇의 직진 주행을 제어하는 방법을 설명하기 위한 도면들이다.FIG. 7 is a diagram for describing a method of controlling a straight running of a curling robot based on a distance between a curling robot and a guide according to an exemplary embodiment.

도 7a 및 도 7b를 참조하면, 프로세서(130)는 주행 중인 컬링 로봇(100)과 가이드 사이의 거리를 실시간으로 측정하여 시간에 따른 거리 변화율을 산출할 수 있다. Referring to FIGS. 7A and 7B, the processor 130 may calculate a distance change rate according to time by measuring a distance between a driving curling robot 100 and a guide in real time.

그리고, 프로세서(130)는 산출된 거리 변화율이 0이 아닌 경우(S710-Y), 컬링 로봇(100)을 거리 변화율이 0이 될 때까지 제1 방향으로 회전시킬 수 있다(S720). 여기에서, 제1 방향은 산출된 거리 변화율이 0이 아닌 시점에서 컬링 로봇(100)이 회전된 방향과 반대 방향일 수 있다.When the calculated distance change rate is not 0 (S710-Y), the processor 130 may rotate the curling robot 100 in the first direction until the distance change rate becomes 0 (S720). Here, the first direction may be opposite to the direction in which the curling robot 100 is rotated when the calculated distance change rate is not zero.

즉, 프로세서(130)는 산출된 거리 변화율이 0이 아닌 경우 컬링 로봇(100)을 제1 방향으로 회전시키고, 실시간으로 측정되는 컬링 로봇(100)과 가이드 사이의 거리가 컬링 로봇(100)이 정상적으로 주행하던 상태에서의 컬링 로봇(100)과 가이드 사이의 거리보다 작고(S730-Y), 거리 변화율이 0이 되면(S740-Y), 컬링 로봇(100)의 회전을 중지시키고(S750), 직진 주행을 하도록 컬링 로봇(100)을 제어할 수 있다.That is, when the calculated distance change rate is not 0, the processor 130 rotates the curling robot 100 in the first direction, and the distance between the curling robot 100 and the guide measured in real time is the curling robot 100. When the distance is less than the distance between the curling robot 100 and the guide in the normal driving state (S730-Y), when the distance change rate is 0 (S740-Y), the rotation of the curling robot 100 is stopped (S750), The curling robot 100 may be controlled to travel straight.

예를 들어, 도 7b의 step 0 내지 step 2를 참조하면, 컬링 로봇(100)이 가이드와의 거리 d0를 유지하며, 직진으로 정상 주행을 하는 도중, 외란이 발생하면, 컬링 로봇(100)은 좌측 방향으로 회전하게 된다. 이때, 좌측 방향으로 회전된 컬링 로봇(100)과 가이드 사이의 거리는 d1이 될 수 있다. 이에 따라, 컬링 로봇(100)의 거리 변화율은 0이 아니게 되며, 이 경우, 프로세서(130)는 컬링 로봇(100)을 우측 방향으로 회전시킬 수 있다.For example, referring to step 0 to step 2 of FIG. 7B, when the curling robot 100 maintains the distance d 0 from the guide, and disturbance occurs while driving in a straight line, the curling robot 100 Rotates to the left. In this case, the distance between the curling robot 100 rotated in the left direction and the guide may be d 1 . Accordingly, the rate of change of distance of the curling robot 100 is not zero, in which case, the processor 130 may rotate the curling robot 100 in a right direction.

한편, 우측 방향으로의 회전에 따라 컬링 로봇(100)이 다시 직진으로 주행하게 되면, 컬링 로봇(100)과 가이드는 서로 평행하게 되고, 이에 따라, 컬링 로봇(100)과 가이드 사이의 거리 변화율은 0이 된다.On the other hand, when the curling robot 100 travels straight again according to the rotation in the right direction, the curling robot 100 and the guide are parallel to each other, and accordingly, the rate of change of the distance between the curling robot 100 and the guide is It becomes zero.

이와 같이, 프로세서(130)는 우측 방향으로의 회전에 따라 컬링 로봇(100)과 가이드 사이의 거리 변화율이 0이 되면, 컬링 로봇(100)의 회전을 중지시킬 수 있다.As such, when the distance change rate between the curling robot 100 and the guide becomes 0 according to the rotation in the right direction, the processor 130 may stop the rotation of the curling robot 100.

이에 따라, 외란에 의해 회전되었던 컬링 로봇(100)은 다시 직진으로 주행할 수 있게 된다.Accordingly, the curling robot 100 that has been rotated by the disturbance can travel straight ahead again.

한편, 상술한 예에서는 컬링 로봇(100)과 가이드 사이의 거리 변화율이 0인 경우를 상정하였으나, 이는 일 예에 불과하다. 즉, 프로세서(130)는 거리 변화율이 0을 기준으로 기설정된 임계값 범위 내에 속하게 되면(즉, -α≤ 거리 변화율 ≤α)(여기에서, α는 0에 가까운 작은 수이다), 컬링 로봇(100)의 회전을 중지킬 수도 있다.Meanwhile, in the above example, it is assumed that the distance change rate between the curling robot 100 and the guide is 0, but this is only an example. That is, if the rate of change of distance falls within a preset threshold range with respect to zero (that is, -α ≤ distance change rate ≤ α) (where α is a small number close to zero), the curling robot ( You can also stop the rotation of 100).

한편, 프로세서(130)는 회전이 중지되면(S750), 컬링 로봇(100)을 제1 방향으로 최초로 회전시키는 시점부터 거리 변화율이 0이 되는 시점까지 컬링 로봇(100)의 거리 변화율의 변화량을 산출할 수 있다(S760).On the other hand, when the rotation is stopped (S750), the processor 130 calculates the change amount of the distance change rate of the curling robot 100 from the time when the curling robot 100 is first rotated in the first direction to the time when the distance change rate becomes zero. It may be (S760).

예를 들어, 도 7c와 같이, 프로세서(130)는 컬링 로봇(100)을 우측 방향으로 회전시키는 시점 t1부터 거리 변화율이 0이 되는 시점 t2까지의 시간에 따른 컬링 로봇(100)의 거리 변화율의 변화량 S1을 산출할 수 있다. For example, as shown in Figure 7c, the processor 130 includes a distance of curling robot 100 according to the time from the time t 1 for rotating the curling robot 100 to the right up to the time t 2 The distance the rate of change is zero The amount of change S 1 of the rate of change can be calculated.

이후, 프로세서(130)는 거리 변화율이 0인 상태에서 컬링 로봇(100)을 제1 방향으로 추가로 회전시키고(S770), 제1 방향으로의 회전에 따라 컬링 로봇(100)이 가이드와 기설정된 거리가 되면(S780-Y), 컬링 로봇(100)을 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시킬 수 있다(S790, S791, S793). 그리고, 프로세서(130)는 기설정된 시점이 되면(S793-Y), 컬링 로봇(100)의 회전을 중지시키고(S795), 직진 주행을 하도록 컬링 로봇(100)을 제어할 수 있다.Thereafter, the processor 130 further rotates the curling robot 100 in the first direction in a state where the distance change rate is 0 (S770), and the curling robot 100 is preset with the guide according to the rotation in the first direction. When the distance is reached (S780-Y), the curling robot 100 may be rotated to a predetermined time point in a second direction opposite to the first direction (S790, S791, and S793). When the predetermined time is reached (S793 -Y), the processor 130 may stop the rotation of the curling robot 100 (S795) and control the curling robot 100 to travel straight.

여기에서, 기설정된 거리는 컬링 로봇(100)을 제1 방향으로 최초로 회전시키는 시점에서 컬링 로봇(100)과 가이드 사이의 거리이다. Here, the predetermined distance is a distance between the curling robot 100 and the guide at the time when the curling robot 100 is first rotated in the first direction.

그리고, 기설정된 시점은 거리 변화율이 0인 상태에서 컬링 로봇(100)을 상기 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 제2 방향으로 회전시키는 동안의 컬링 로봇(100)의 거리 변화율의 변화량이 컬링 로봇을 제1 방향으로 최초로 회전시키는 시점부터 거리 변화율이 0이 되는 시점까지 컬링 로봇(100)의 거리 변화율의 변화량과 같아지는 시점이다.In addition, the predetermined time point is the distance change rate of the curling robot 100 while the curling robot 100 is further rotated in the first direction and the rotation direction is changed in the second direction while the distance change rate is 0. It is a time when the amount of change is equal to the amount of change in the distance change rate of the curling robot 100 from the time when the curling robot is first rotated in the first direction to the time when the distance change rate becomes zero.

즉, 프로세서(130)는 컬링 로봇(100)과 가이드 사이의 거리가 외란에 의해 회전된 컬링 로봇(100)과 가이드 사이의 거리만큼이 될 때까지, 컬링 로봇(100)을 제1 방향으로 회전시킬 수 있다(S770, S780). That is, the processor 130 rotates the curling robot 100 in the first direction until the distance between the curling robot 100 and the guide becomes the distance between the curling robot 100 and the guide rotated by the disturbance. (S770, S780).

다만, 이는 일 예일 뿐이고, 프로세서(130)는 외란에 의해 회전된 컬링 로봇(100)과 가이드 사이의 거리를 기준으로 기설정된 임계값 범위 내에 속할 때까지(즉, 외란에 의해 회전된 컬링 로봇(100)과 가이드 사이의 거리 -α≤ 컬링 로봇(100)과 가이드 사이의 거리 ≤외란에 의해 회전된 컬링 로봇(100)과 가이드 사이의 거리 +α)(여기에서, α는 0에 가까운 작은 수이다), 컬링 로봇(100)을 제1 방향으로 회전시킬 수도 있다.However, this is merely an example, and the processor 130 may fall within a preset threshold range based on the distance between the curling robot 100 rotated by the disturbance and the guide (that is, the curling robot rotated by the disturbance). Distance between the guide 100 and the guide -α≤ distance between the curling robot 100 and the guide ≤the distance between the guide and the curling robot 100 rotated by disturbance + α, where α is a small number close to zero The curling robot 100 may be rotated in the first direction.

그리고, 프로세서(130)는 컬링 로봇(100)과 가이드 사이의 거리가 외란에 의해 회전된 컬링 로봇(100)과 가이드 사이의 거리가 될 때까지 컬링 로봇(100)을 제1 방향으로 회전시키고, 컬링 로봇(100)과 가이드 사이의 거리가 외란에 의해 회전된 컬링 로봇(100)과 가이드 사이의 거리만큼이 되면(S780-Y), 컬링 로봇(100)을 제2 방향으로 회전시킬 수 있다(S790).The processor 130 rotates the curling robot 100 in the first direction until the distance between the curling robot 100 and the guide becomes the distance between the curling robot 100 and the guide rotated by the disturbance. When the distance between the curling robot 100 and the guide is equal to the distance between the curling robot 100 and the guide rotated by the disturbance (S780-Y), the curling robot 100 may be rotated in the second direction ( S790).

예를 들어, 도 7b의 step 3 및 step 4를 참조하면, 좌측 방향으로의 회전에 따른 컬링 로봇(100)과 가이드 사이의 거리 d3가 도 7b의 step 1에서 외란에 의해 회전된 컬링 로봇(100)과 가이드 사이의 거리 d1와 같아질 때까지 컬링 로봇(100)을 우측 방향으로 회전시킬 수 있다.For example, referring to steps 3 and 4 of FIG. 7B, the curling robot 100 in which the distance d 3 between the curling robot 100 and the guide according to rotation in the left direction is rotated by disturbance in step 1 of FIG. 7B ( The curling robot 100 may be rotated to the right until the distance d 1 between the guide 100 and the guide is equal.

그리고, 프로세서(130)는 컬링 로봇(100)과 가이드 사이의 거리 d3가 d1과 같아지게 되면, 컬링 로봇(100)을 다시 좌측 방향으로 회전시킬 수 있다.When the distance d 3 between the curling robot 100 and the guide becomes equal to d 1 , the processor 130 may rotate the curling robot 100 back to the left direction.

이후, 프로세서(130)는 거리 변화율이 0인 상태에서 컬링 로봇(100)을 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 제2 방향으로 회전시키는 동안의 컬링 로봇(100)의 거리 변화율의 변화량을 산출한다(S791).Thereafter, the processor 130 further rotates the curling robot 100 in the first direction while the distance change rate is 0, and then changes the rotation direction in the second direction to change the rotational direction of the curling robot 100. The amount of change is calculated (S791).

그리고, 프로세서(130)는 산출되는 변화량이 S760 단계에서 산출된 변화량과 같아지게 되면(S793), 제2 방향으로 회전되고 있는 컬링 로봇(100)의 회전을 중지시킬 수 있다.When the amount of change calculated is equal to the amount of change calculated in step S760 (S793), the processor 130 may stop the rotation of the curling robot 100 that is being rotated in the second direction.

예를 들어, 도 7c와 같이, 프로세서(130)는 거리 변화율이 0인 상태에서 컬링 로봇(100)을 우측 방향으로 추가로 회전시킨 시점 t3부터의 컬링 로봇(100)의 거리 변화율의 변화량 S2이 t1부터 t2까지의 컬링 로봇(100)의 거리 변화율의 변화량 S1과 같아지는 시점 t4가 되면, 좌측 방향으로 회전하고 있는 컬링 로봇(100)의 회전을 중지시킬 수 있다.For example, as shown in FIG. 7C, the processor 130 changes in the distance change rate S of the curling robot 100 from the time point t 3 when the curling robot 100 is further rotated in the right direction while the distance change rate is 0. When 2 becomes the time point t 4, which is equal to the change amount S 1 of the distance change rate of the curling robot 100 from t 1 to t 2 , the rotation of the curling robot 100 rotating in the left direction can be stopped.

다만, 이는 일 예일 뿐이고, 프로세서(130)는 변화량 S2이 변화량 S1을 기준으로 기설정된 임계값 범위 내에 속하게 되면(즉, S1-α≤ S2 ≤S1+α)(여기에서, α는 0에 가까운 작은 수이다), 컬링 로봇(100)의 회전을 중지시킬 수도 있다.However, this is only an example, and the processor 130 may determine that the change amount S 2 falls within a preset threshold range based on the change amount S 1 (that is, S 1 −α ≦ S 2 ≦ S 1 + α) (here, α is a small number close to zero), the rotation of the curling robot 100 may be stopped.

이에 따라, 도 7b의 step 5와 같이, 컬링 로봇(100)은 최초 위치로 복귀하여 직진 주행할 수 있게 된다.Accordingly, as shown in step 5 of FIG. 7B, the curling robot 100 may return to the initial position and travel straight.

한편, 도 7b에서는 컬링 로봇(100)이 외란에 의해 좌측 방향으로 회전되는 것으로 도시하였으나, 이는 설명의 편의를 위한 것일 뿐이고, 컬링 로봇(100)이 외란에 의해 우측 방향으로 회전되는 경우에도, 전술한 방법을 통해 컬링 로봇(100)의 직진 주행을 제어할 수 있음은 물론이다.Meanwhile, in FIG. 7B, the curling robot 100 is rotated to the left by the disturbance. However, this is only for convenience of description, and the curling robot 100 is rotated to the right due to the disturbance. Of course, it is possible to control the straight running of the curling robot 100 through one method.

도 8은 본 발명의 일 실시 예에 따른 컬링 로봇의 세부 구성을 설명하기 위한 블록도이다.8 is a block diagram illustrating a detailed configuration of a curling robot according to an embodiment of the present invention.

도 8을 참조하면, 컬링 로봇(100)은 바퀴(110), 센서(120), 프로세서(130), 바퀴 구동부(140), 배터리(150) 및 메모리(170)를 포함할 수 있다.Referring to FIG. 8, the curling robot 100 may include a wheel 110, a sensor 120, a processor 130, a wheel driver 140, a battery 150, and a memory 170.

한편, 도 8에 도시된 컬링 로봇(100)의 구성은 일 예에 불과하므로, 반드시 전술된 블록도에 한정되는 것은 아니며, 컬링 로봇(100)의 구성의 일부가 생략 또는 변형되거나, 추가될 수도 있음은 물론이다. Meanwhile, since the configuration of the curling robot 100 shown in FIG. 8 is merely an example, the configuration of the curling robot 100 is not necessarily limited to the above-described block diagram, and a part of the configuration of the curling robot 100 may be omitted, modified, or added. Of course.

바퀴(110), 센서(120) 및 프로세서(130)에 대해서는 도 2에서 설명한 바 있다는 점에서, 구체적인 중복 설명은 생략한다. Since the wheel 110, the sensor 120, and the processor 130 have been described with reference to FIG. 2, detailed descriptions thereof will be omitted.

바퀴(110)는 컬링 로봇(100)의 본체의 앞 부분의 좌측에 마련된 좌측 바퀴(111), 본체의 앞 부분의 우측에 마련된 우측 바퀴(112), 본체의 뒷 부분에 마련된 뒷바퀴(113)를 포함할 수 있다.The wheel 110 includes a left wheel 111 provided at the left side of the front part of the main body of the curling robot 100, a right wheel 112 provided at the right side of the front part of the main body, and a rear wheel 113 provided at the rear part of the main body. It may include.

이 경우, 프로세서(130)는 바퀴 구동부(140)를 통해 좌측 바퀴(111) 및 우측 바퀴(112)의 구동을 제어할 수 있다. 이를 위해, 바퀴 구동부(140)는 좌측 바퀴(111) 및 우측 바퀴(112)에 각각 연결된 모터(미도시) 및 모터(미도시)의 구동을 제어하기 위한 모터 구동부(미도시)를 포함할 수 있다.In this case, the processor 130 may control the driving of the left wheel 111 and the right wheel 112 through the wheel driving unit 140. To this end, the wheel driver 140 may include a motor (not shown) connected to the left wheel 111 and the right wheel 112, and a motor driver (not shown) for controlling driving of the motor (not shown), respectively. have.

센서(120)는 엔코더(121), 거리 측정 센서(122) 및 자이로 센서(123)를 포함할 수 있다.The sensor 120 may include an encoder 121, a distance measuring sensor 122, and a gyro sensor 123.

배터리(150)는 컬링 로봇(100)의 각종 구성요소에 전원을 공급하는 장치로, 컬링 로봇(100)의 본체로부터 탈부착 가능하며 충전 가능한 형태로 구현될 수 있다.The battery 150 is a device for supplying power to various components of the curling robot 100, and may be implemented in a detachable and rechargeable form from the main body of the curling robot 100.

메모리(160)는 컬링 로봇(100)의 동작에 필요한 각종 모듈, 프로그램 및 데이터를 저장할 수 있다. 메모리(160)는 프로세서(130) 또는 다른 구성 요소들로부터 수신되거나 프로세서(130) 또는 다른 구성요소들에 의해 생성된 명령 또는 데이터를 저장할 수 있다.The memory 160 may store various modules, programs, and data necessary for the operation of the curling robot 100. The memory 160 may store instructions or data received from or generated by the processor 130 or other components.

이 경우, 프로세서(130)는 메모리(160)에 저장된 각종 모듈, 프로그램 및 데이터를 통해, 컬링 로봇(100)의 직진 주행을 제어하기 위한 동작을 수행할 수 있다.In this case, the processor 130 may perform an operation for controlling the straight running of the curling robot 100 through various modules, programs, and data stored in the memory 160.

한편, 메모리(160)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(160)는 프로세서(130)에 의해 액세스되며, 프로세서(130)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. The memory 160 may be implemented as a nonvolatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD). The memory 160 is accessed by the processor 130 and read / write / modify / delete / update of data by the processor 130.

도 9는 본 발명의 일 실시 예에 따른 컬링 로봇의 주행 제어 방법을 설명하기 위한 흐름도이다. 9 is a flowchart illustrating a driving control method of a curling robot according to an exemplary embodiment.

먼저, 컬링 로봇의 직진 속도 및 각속도가 입력되면, 입력된 직진 속도와 각속도에 기초하여 바퀴를 구동한다(S910).First, when the straight speed and the angular speed of the curling robot is input, the wheel is driven based on the input straight speed and the angular speed (S910).

그리고, 바퀴의 구동에 따라 주행하는 컬링 로봇의 실제 직진 속도 및 각속도를 이용하여 피드백 제어를 수행한다(S920).Then, the feedback control is performed using the actual straight speed and the angular velocity of the curling robot that runs according to the driving of the wheel (S920).

이때, 컬링 로봇에 마련된 센서를 통해 컬링 로봇의 회전 각도 및 컬링 로봇과 컬링 로봇 주변에 설치된 가이드 간의 거리 중 적어도 하나를 측정하고, 측정된 회전 각도 및 거리 중 적어도 하나를 피드백 제어에 추가로 이용한다.In this case, at least one of a rotation angle of the curling robot and a distance between the curling robot and a guide installed around the curling robot is measured using a sensor provided in the curling robot, and at least one of the measured rotation angle and the distance is further used for feedback control.

구체적으로, 주행 중인 컬링 로봇의 회전 각도를 실시간으로 측정하여 컬링 로봇의 각속도를 산출하고, 산출된 각속도가 0이 아닌 경우, 컬링 로봇을 회전 각도 및 각속도가 0이 될 때까지 제1 방향으로 회전시킬 수 있다. 여기에서, 제1 방향은 산출된 각속도가 0이 아닌 시점에서 컬링 로봇이 회전된 방향과 반대 방향일 수 있다.Specifically, the angular velocity of the curling robot is calculated by measuring the rotation angle of the driving curling robot in real time, and when the calculated angular velocity is not 0, the curling robot is rotated in the first direction until the rotation angle and the angular velocity become zero. You can. Here, the first direction may be opposite to the direction in which the curling robot is rotated when the calculated angular velocity is not zero.

그리고, 회전 각도가 0인 상태에서 컬링 로봇을 제1 방향으로 추가로 회전시키고, 제1 방향으로의 회전에 따라 컬링 로봇이 기설정된 각도만큼 회전되면 컬링 로봇을 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시킬 수 있다. If the curling robot is further rotated in the first direction while the rotation angle is 0, and the curling robot is rotated by a predetermined angle according to the rotation in the first direction, the curling robot is rotated in a direction opposite to the first direction. Direction can be rotated to a predetermined point in time.

여기에서, 기설정된 각도는 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점에서 컬링 로봇이 회전된 각도이고, 기설정된 시점은 회전 각도가 0인 상태에서 컬링 로봇을 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 제2 방향으로 회전시키는 동안의 컬링 로봇의 각속도의 변화량이 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점부터 회전 각도 및 각속도가 0이 되는 시점까지 컬링 로봇의 각속도의 변화량과 같아지는 시점일 수 있다.Here, the preset angle is an angle at which the curling robot is rotated at the time of initially rotating the curling robot in the first direction, and the preset point is an additional rotation of the curling robot in the first direction while the rotation angle is zero. The amount of change in the angular velocity of the curling robot from the first rotation of the curling robot in the first direction to the time when the rotation angle and the angular velocity becomes zero after changing the rotation direction and rotating in the second direction. It can be the same point in time.

한편, 주행 중인 컬링 로봇과 가이드 사이의 거리를 실시간으로 측정하여 시간에 따른 거리 변화율을 산출하고, 산출된 거리 변화율이 0이 아닌 경우, 컬링 로봇을 거리 변화율이 0이 될 때까지 제1 방향으로 회전시킬 수도 있다. 여기에서, 제1 방향은 산출된 거리 변화율이 0이 아닌 시점에서 컬링 로봇이 회전된 방향과 반대 방향일 수 있다.On the other hand, by measuring the distance between the running curling robot and the guide in real time to calculate the distance change rate over time, if the calculated distance change rate is not 0, the curling robot in the first direction until the distance change rate is 0 It can also be rotated. Here, the first direction may be opposite to the direction in which the curling robot is rotated when the calculated distance change rate is not zero.

그리고, 거리 변화율이 0인 상태에서 컬링 로봇을 제1 방향으로 추가로 회전시키고, 제1 방향으로의 회전에 따라 컬링 로봇과 가이드 사이의 거리가 기설정된 거리가 되면 컬링 로봇을 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시킬 수 있다. Further, when the distance change rate is 0, the curling robot is further rotated in the first direction, and when the distance between the curling robot and the guide becomes a predetermined distance according to the rotation in the first direction, the curling robot is opposite to the first direction. Direction may be rotated to a predetermined time point in the second direction.

여기에서, 기설정된 거리는 컬링 로봇을 제1 방향으로 최초로 회전시키는 시점에서 컬링 로봇과 상기 가이드 사이의 거리이고, 기설정된 시점은 거리 변화율이 0인 상태에서 컬링 로봇을 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 제2 방향으로 회전시키는 동안의 컬링 로봇의 거리 변화율의 변화량이 컬링 로봇을 제1 방향으로 최초로 회전시키는 시점부터 거리 변화율이 0이 되는 시점까지 컬링 로봇의 거리 변화율의 변화량과 같아지는 시점일 수 있다.Here, the predetermined distance is a distance between the curling robot and the guide at the time when the curling robot is first rotated in the first direction, and the preset time is the additional rotation of the curling robot in the first direction while the distance change rate is 0. The amount of change in the distance change rate of the curling robot during the rotation in the second direction after changing the rotation direction is equal to the amount of change in the rate of change in distance of the curling robot from the time when the curling robot is first rotated in the first direction until the distance change rate becomes zero. It may be the losing point.

한편, 이와 관련하여 컬링 로봇의 직진 주행을 제어하는 구체적인 방법은 상술한 바 있다.In this regard, the specific method of controlling the straight running of the curling robot has been described above.

한편, 본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.Meanwhile, various embodiments of the present disclosure may be implemented in software that includes instructions stored in a machine-readable storage media. A device capable of calling a command and operating in accordance with the called command may include an electronic device according to the disclosed embodiments (eg, the electronic device A.) When the command is executed by a processor, the processor directly In addition, under the control of the processor, other components may be used to perform a function corresponding to the instruction, and the instruction may include code generated or executed by a compiler or an interpreter. May be provided in the form of a non-transitory storage medium, where 'non-transitory' means that the storage medium does not contain a signal. It does not mean that data is stored semi-permanently or temporarily on the storage medium.

일 시예에 따르면, 본 개시에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, a method according to various embodiments of the present disclosure may be provided included in a computer program product. The computer program product may be traded between the seller and the buyer as a product. The computer program product may be distributed online in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)) or through an application store (eg Play StoreTM). In the case of an online distribution, at least a portion of the computer program product may be stored at least temporarily on a storage medium such as a server of a manufacturer, a server of an application store, or a relay server, or may be temporarily created.

다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.Each component (for example, a module or a program) according to various embodiments may be composed of a singular or plural number of objects, and some of the above-described subcomponents may be omitted, or other subcomponents may vary. It may be further included in the embodiment. Alternatively or additionally, some components (eg, modules or programs) may be integrated into one entity to perform the same or similar functions performed by each corresponding component prior to integration. According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, repeatedly, or heuristically, or at least some of the operations may be executed in a different order, omitted, or another operation may be added. Can be.

100 : 컬링 로봇 110 : 바퀴
120 : 센서 130 : 프로세서
100: curling robot 110: wheels
120: sensor 130: processor

Claims (10)

컬링 로봇에 있어서,
센서;
상기 컬링 로봇의 좌측 및 우측에 각각 마련된 바퀴; 및
상기 컬링 로봇의 직진 속도 및 각속도가 입력되면, 상기 입력된 직진 속도와 각속도에 기초하여 상기 바퀴를 구동하고, 상기 바퀴의 구동에 따라 주행하는 상기 컬링 로봇의 실제 직진 속도 및 각속도를 이용하여 외란 발생에 즉각적으로 반응하기 위한 실시간 피드백 제어를 수행하는 프로세서;를 포함하고,
상기 프로세서는,
주행 중인 상기 컬링 로봇과 가이드 사이의 거리를 실시간으로 측정하여 시간에 따른 거리 변화율을 산출하고, 상기 산출된 거리 변화율이 0이 아닌 경우, 상기 컬링 로봇과 상기 가이드 사이의 거리를 제어하기 위하여 상기 컬링 로봇을 거리 변화율이 0이 될 때까지 상기 좌측 및 우측에 각각 마련된 바퀴를 반대 방향으로 구동하여 제1 방향으로 회전시키며,
상기 제1 방향은, 상기 산출된 거리 변화율이 0이 아닌 시점에서 상기 컬링 로봇이 회전된 방향과 반대 방향이고,
상기 거리 변화율이 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시키고, 상기 제1 방향으로의 회전에 따라 상기 컬링 로봇과 상기 가이드 사이의 거리가 기설정된 거리가 되면 상기 컬링 로봇을 상기 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시키며,
상기 기설정된 거리는,
상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점에서 상기 컬링 로봇과 상기 가이드 사이의 거리이고,
상기 기설정된 시점은,
상기 거리 변화율이 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 상기 제2 방향으로 회전시키는 동안의 상기 컬링 로봇의 거리 변화율의 변화량이 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점부터 상기 거리 변화율이 0이 되는 시점까지 상기 컬링 로봇의 거리 변화율의 변화량과 같아지는 시점이고,
상기 제1 방향의 회전 및 상기 제2 방향의 회전은,
상기 좌측 및 우측에 각각 마련된 바퀴를 반대 방향으로 구동하여 회전 시키고,
상기 센서를 통해 상기 컬링 로봇의 회전 각도를 측정하고, 상기 측정된 회전 각도를 상기 피드백 제어에 추가로 이용하는, 컬링 로봇.
In the curling robot,
sensor;
Wheels provided at left and right sides of the curling robot, respectively; And
When the straight speed and the angular velocity of the curling robot are input, disturbance is generated by using the actual straight speed and the angular velocity of the curling robot that drives the wheels based on the input straight speed and the angular velocity and travels according to the driving of the wheels. A processor that performs real-time feedback control for reacting immediately to the;
The processor,
The distance between the curling robot and the guide in real time is measured in real time to calculate a distance change rate over time, and when the calculated distance change rate is not 0, the curling to control the distance between the curling robot and the guide. The robot is rotated in the first direction by driving the wheels provided on the left and right sides in the opposite direction until the distance change rate becomes 0,
The first direction is a direction opposite to the direction in which the curling robot is rotated when the calculated distance change rate is not zero,
The curling robot is further rotated in the first direction while the distance change rate is 0, and when the distance between the curling robot and the guide becomes a predetermined distance according to the rotation in the first direction, the curling robot is moved. Rotates to a predetermined time point in a second direction opposite to the first direction,
The predetermined distance is,
A distance between the curling robot and the guide when the curling robot is first rotated in the first direction,
The preset time point is
After the curling robot is further rotated in the first direction while the distance change rate is 0, the amount of change in the distance change rate of the curling robot while rotating in the second direction by changing the rotation direction is controlled by the curling robot. It is a point of time equal to the change amount of the distance change rate of the curling robot from the time of first rotation in one direction to the time point of the distance change rate becomes 0,
Rotation in the first direction and rotation in the second direction,
The wheels provided on the left and right sides are rotated by driving in opposite directions.
Measuring the rotational angle of the curling robot via the sensor and using the measured rotational angle in addition to the feedback control.
제1항에 있어서,
상기 프로세서는,
주행 중인 상기 컬링 로봇의 회전 각도를 실시간으로 측정하여 상기 컬링 로봇의 각속도를 산출하고, 상기 산출된 각속도가 0이 아닌 경우, 상기 컬링 로봇을 회전 각도 및 각속도가 0이 될 때까지 제1 방향으로 회전시키며,
상기 제1 방향은, 상기 산출된 각속도가 0이 아닌 시점에서 상기 컬링 로봇이 회전된 방향과 반대 방향인, 컬링 로봇.
The method of claim 1,
The processor,
The angular velocity of the curling robot is calculated by measuring the rotational angle of the curling robot in real time in real time. When the calculated angular velocity is not 0, the curling robot is rotated in the first direction until the rotational angle and the angular velocity become zero. Rotate,
The first direction is a curling robot, the direction opposite to the direction in which the curling robot is rotated when the calculated angular velocity is not zero.
제2항에 있어서,
상기 프로세서는,
상기 회전 각도가 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시키고, 상기 제1 방향으로의 회전에 따라 상기 컬링 로봇이 기설정된 각도만큼 회전되면 상기 컬링 로봇을 상기 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시키며,
상기 기설정된 각도는,
상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점에서 상기 컬링 로봇이 회전된 각도이고,
상기 기설정된 시점은,
상기 회전 각도가 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 상기 제2 방향으로 회전시키는 동안의 상기 컬링 로봇의 각속도의 변화량이 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점부터 상기 회전 각도 및 각속도가 0이 되는 시점까지 상기 컬링 로봇의 각속도의 변화량과 같아지는 시점인, 컬링 로봇.
The method of claim 2,
The processor,
When the curling robot is further rotated in the first direction while the rotation angle is 0, and the curling robot is rotated by a predetermined angle according to the rotation in the first direction, the curling robot is rotated with the first direction. Rotates to the predetermined point in the second direction opposite to the second direction.
The preset angle is,
The angle at which the curling robot is rotated when the curling robot is first rotated in the first direction,
The preset time point is
The amount of change in the angular velocity of the curling robot while the curling robot is further rotated in the first direction and the rotational direction is rotated in the second direction while the rotation angle is 0 is changed to the curling robot. A curling robot, which is a point of time equal to the amount of change in the angular velocity of the curling robot from the time of first rotation in the direction to the point of time when the rotation angle and angular velocity become zero.
삭제delete 삭제delete 센서, 및 좌측과 우측에 각각 마련된 바퀴를 구비한 컬링 로봇의 주행 제어 방법에 있어서,
상기 컬링 로봇의 직진 속도 및 각속도가 입력되면, 상기 입력된 직진 속도와 각속도에 기초하여 상기 바퀴를 구동하는 단계;
상기 바퀴의 구동에 따라 주행하는 상기 컬링 로봇의 실제 직진 속도 및 각속도를 이용하여 외란 발생에 즉각적으로 반응하기 위한 실시간 피드백 제어를 수행하는 단계;를 포함하고,
상기 피드백 제어를 수행하는 단계는,
주행 중인 상기 컬링 로봇과 가이드 사이의 거리를 실시간으로 측정하여 시간에 따른 거리 변화율을 산출하고, 상기 산출된 거리 변화율이 0이 아닌 경우, 상기 컬링 로봇과 가이드 사이의 거리를 제어하기 위하여 상기 컬링 로봇을 거리 변화율이 0이 될 때까지 제1 방향으로 회전시키며,
상기 제1 방향은, 상기 산출된 거리 변화율이 0이 아닌 시점에서 상기 컬링 로봇이 회전된 방향과 반대 방향이고,
상기 거리 변화율이 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시키고, 상기 제1 방향으로의 회전에 따라 상기 컬링 로봇과 가이드 사이의 거리가 기설정된 거리가 되면 상기 컬링 로봇을 상기 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시키며,
상기 기설정된 거리는,
상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점에서 상기 컬링 로봇과 가이드 사이의 거리이고,
상기 기설정된 시점은,
상기 거리 변화율이 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 상기 제2 방향으로 회전시키는 동안의 상기 컬링 로봇의 거리 변화율의 변화량이 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점부터 상기 거리 변화율이 0이 되는 시점까지 상기 컬링 로봇의 거리 변화율의 변화량과 같아지는 시점이고,
상기 제1 방향의 회전 및 상기 제2 방향의 회전은,
상기 좌측 및 우측에 각각 마련된 바퀴를 반대 방향으로 구동하여 회전 시키고,
상기 센서를 통해 상기 컬링 로봇의 회전 각도 및 상기 컬링 로봇과 상기 컬링 로봇 주변에 설치된 가이드 간의 거리 중 적어도 하나를 측정하고, 상기 측정된 회전 각도 및 거리 중 적어도 하나를 상기 피드백 제어에 추가로 이용하는, 주행 제어 방법.
In the traveling control method of the curling robot having a sensor and wheels provided on the left and right, respectively,
Driving the wheel based on the input straight speed and the angular speed when the straight speed and the angular speed of the curling robot are input;
And performing real-time feedback control for reacting immediately to the occurrence of disturbance by using the actual straight speed and the angular velocity of the curling robot that travels according to the driving of the wheel.
Performing the feedback control,
The distance between the curling robot and the guide in real time is measured in real time to calculate a distance change rate over time, and when the calculated distance change rate is not 0, the curling robot to control the distance between the curling robot and the guide. Rotate in the first direction until the rate of change of distance reaches zero,
The first direction is a direction opposite to the direction in which the curling robot is rotated when the calculated distance change rate is not zero,
The curling robot is further rotated in the first direction while the distance change rate is 0, and when the distance between the curling robot and the guide becomes a predetermined distance according to the rotation in the first direction, the curling robot is configured. Rotates to a predetermined time point in a second direction opposite to the first direction,
The predetermined distance is,
A distance between the curling robot and a guide at a time of initially rotating the curling robot in the first direction,
The preset time point is
After the curling robot is further rotated in the first direction while the distance change rate is 0, the amount of change in the distance change rate of the curling robot while rotating in the second direction by changing the rotation direction is controlled by the curling robot. It is a point of time equal to the change amount of the distance change rate of the curling robot from the time of first rotation in one direction to the time point of the distance change rate becomes 0,
Rotation in the first direction and rotation in the second direction,
The wheels provided on the left and right sides are rotated by driving in opposite directions.
Measuring at least one of a rotation angle of the curling robot and a distance between the curling robot and a guide installed around the curling robot through the sensor, and further using at least one of the measured rotation angle and the distance to the feedback control; Driving control method.
제6항에 있어서,
상기 피드백 제어를 수행하는 단계는,
주행 중인 상기 컬링 로봇의 회전 각도를 실시간으로 측정하여 상기 컬링 로봇의 각속도를 산출하고, 상기 산출된 각속도가 0이 아닌 경우, 상기 컬링 로봇을 회전 각도 및 각속도가 0이 될 때까지 제1 방향으로 회전시키며,
상기 제1 방향은, 상기 산출된 각속도가 0이 아닌 시점에서 상기 컬링 로봇이 회전된 방향과 반대 방향인, 주행 제어 방법.
The method of claim 6,
Performing the feedback control,
The angular velocity of the curling robot is calculated by measuring the rotation angle of the curling robot in real time in real time. When the calculated angular velocity is not 0, the curling robot is moved in the first direction until the rotation angle and the angular velocity become zero. Rotate,
And the first direction is a direction opposite to the direction in which the curling robot is rotated when the calculated angular velocity is not zero.
제7항에 있어서,
상기 피드백 제어를 수행하는 단계는,
상기 회전 각도가 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시키고, 상기 제1 방향으로의 회전에 따라 상기 컬링 로봇이 기설정된 각도만큼 회전되면 상기 컬링 로봇을 상기 제1 방향과 반대 방향인 제2 방향으로 기설정된 시점까지 회전시키며,
상기 기설정된 각도는,
상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점에서 상기 컬링 로봇이 회전된 각도이고,
상기 기설정된 시점은,
상기 회전 각도가 0인 상태에서 상기 컬링 로봇을 상기 제1 방향으로 추가로 회전시킨 후 회전 방향을 바꿔 상기 제2 방향으로 회전시키는 동안의 상기 컬링 로봇의 각속도의 변화량이 상기 컬링 로봇을 상기 제1 방향으로 최초로 회전시키는 시점부터 상기 회전 각도 및 각속도가 0이 되는 시점까지 상기 컬링 로봇의 각속도의 변화량과 같아지는 시점인, 주행 제어 방법.
The method of claim 7, wherein
Performing the feedback control,
When the curling robot is further rotated in the first direction while the rotation angle is 0, and the curling robot is rotated by a predetermined angle according to the rotation in the first direction, the curling robot is rotated with the first direction. Rotates to the predetermined point in the second direction opposite to the second direction.
The preset angle is,
The angle at which the curling robot is rotated when the curling robot is first rotated in the first direction,
The preset time point is
The amount of change in the angular velocity of the curling robot while the curling robot is further rotated in the first direction and the rotational direction is rotated in the second direction while the rotation angle is 0 is changed to the curling robot. And a point of time equal to the amount of change in the angular velocity of the curling robot from the time of first rotation in the direction to the point of time at which the rotation angle and angular velocity become zero.
삭제delete 삭제delete
KR1020170132819A 2017-10-12 2017-10-12 Curling robot and method for controlling a drive of the curling robot KR102025940B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170132819A KR102025940B1 (en) 2017-10-12 2017-10-12 Curling robot and method for controlling a drive of the curling robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170132819A KR102025940B1 (en) 2017-10-12 2017-10-12 Curling robot and method for controlling a drive of the curling robot

Publications (2)

Publication Number Publication Date
KR20190041345A KR20190041345A (en) 2019-04-22
KR102025940B1 true KR102025940B1 (en) 2019-11-04

Family

ID=66282981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170132819A KR102025940B1 (en) 2017-10-12 2017-10-12 Curling robot and method for controlling a drive of the curling robot

Country Status (1)

Country Link
KR (1) KR102025940B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260161A (en) * 2005-03-17 2006-09-28 Figla Co Ltd Self-propelled working robot

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895638A (en) * 1994-09-28 1996-04-12 East Japan Railway Co Travel controller for mobile working robot

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260161A (en) * 2005-03-17 2006-09-28 Figla Co Ltd Self-propelled working robot

Also Published As

Publication number Publication date
KR20190041345A (en) 2019-04-22

Similar Documents

Publication Publication Date Title
US10809726B2 (en) Sideslip compensated control method for autonomous vehicles
KR102048646B1 (en) Combined method with physical modeling and machine learning to simulate autonomous vehicle movement
CN106043302B (en) The cruise active control system and its method of vehicle
JP7121864B2 (en) Automatic driving system upgrade method, automatic driving system and in-vehicle equipment
JP6539408B2 (en) Method and system for determining road surface friction of an autonomous vehicle using learning based model predictive control
US20170088167A1 (en) Automated driving apparatus and automated driving system
US20150346723A1 (en) Vehicle trajectory planning for autonomous vehicles
US10534364B2 (en) Method and system for autonomous vehicle speed following
US20090099717A1 (en) Trajectory tracking control system and method for mobile unit
US11124228B2 (en) Driving assistance apparatus
CN108216241A (en) Determine the control characteristic of autonomous land vehicle
JP7009490B2 (en) Control-driven 3-point turn plan for self-driving vehicles
US11180160B2 (en) Spiral curve based vertical parking planner system for autonomous driving vehicles
JP7445881B2 (en) Driving support method and driving support device
CN102765422A (en) System and method for adjusting smoothness for lane centering steering control
US20120035786A1 (en) Weight Shifting System for Remote Vehicle
CN108983765A (en) Vehicle route navigation
JP2022129228A (en) Vehicle control method, vehicle control system, and vehicle
JP2009067375A (en) Steering device for vehicle
KR102025940B1 (en) Curling robot and method for controlling a drive of the curling robot
JP2007249631A (en) Polygonal line following mobile robot, and control method for polygonal line following mobile robot
CN114001739B (en) Path planning method, device, vehicle and storage medium
WO2019142276A1 (en) Driving control device, driving control method, and driving control program
JP2021502915A (en) 3-point turn plan for self-driving vehicles based on enumeration
JPS6170618A (en) Unmanned run system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right