KR20230085609A - Segway Robot Based on Reinforcement Learning and Its Method for Motion Control - Google Patents

Segway Robot Based on Reinforcement Learning and Its Method for Motion Control Download PDF

Info

Publication number
KR20230085609A
KR20230085609A KR1020210173945A KR20210173945A KR20230085609A KR 20230085609 A KR20230085609 A KR 20230085609A KR 1020210173945 A KR1020210173945 A KR 1020210173945A KR 20210173945 A KR20210173945 A KR 20210173945A KR 20230085609 A KR20230085609 A KR 20230085609A
Authority
KR
South Korea
Prior art keywords
robot
segway
driving
data
state value
Prior art date
Application number
KR1020210173945A
Other languages
Korean (ko)
Other versions
KR102635657B1 (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 KR1020210173945A priority Critical patent/KR102635657B1/en
Publication of KR20230085609A publication Critical patent/KR20230085609A/en
Application granted granted Critical
Publication of KR102635657B1 publication Critical patent/KR102635657B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/087Controls for manipulators by means of sensing devices, e.g. viewing or touching devices for sensing other physical parameters, e.g. electrical or chemical properties
    • 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/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62KCYCLES; CYCLE FRAMES; CYCLE STEERING DEVICES; RIDER-OPERATED TERMINAL CONTROLS SPECIALLY ADAPTED FOR CYCLES; CYCLE AXLE SUSPENSIONS; CYCLE SIDE-CARS, FORECARS, OR THE LIKE
    • B62K11/00Motorcycles, engine-assisted cycles or motor scooters with one or two wheels
    • B62K11/007Automatic balancing machines with single main ground engaging wheel or coaxial wheels supporting a rider

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

One embodiment of the present invention provides a robot driving state control system based on reinforcement learning, the robot driving state control system comprising: a driving data collection unit which collects driving data including inertial data measured by an IMU sensor of a robot and rotation data of a motor measured by an encoder of the robot; a control logic operation unit which calculates a robot state value using the driving data obtained from the driving information collection unit and performs reinforcement learning to compare with a target robot state value; and a robot driving control unit which generates a robot control signal for controlling the driving conditions of the robot based on the robot state value obtained from the control logic operation unit.

Description

강화학습 기반의 세그웨이형 로봇 및 이의 동작 제어방법 {Segway Robot Based on Reinforcement Learning and Its Method for Motion Control}Segway Robot Based on Reinforcement Learning and Its Method for Motion Control

본 실시예는 강화학습 기반의 세그웨이형 로봇 및 이의 동작 제어방법에 관한 것으로, 보다 구체적으로 딥러닝 강화학습을 적용한 세그웨이형 로봇의 셀프 밸런싱과 자율주행을 위한 동작 제어방법에 관한 것이다.This embodiment relates to a reinforcement learning-based Segway-type robot and its motion control method, and more specifically, to a motion control method for self-balancing and autonomous driving of a Segway-type robot to which deep learning reinforcement learning is applied.

세그웨이(Segway)는 전기적 모터를 이용하여 이용자를 운송하는 운송수단으로서, 차세대 모빌리티로서 내연기관을 대체하기 위한 운송수단으로 주목받고 있다.Segway (Segway) is a means of transportation that transports users using electric motors, and is attracting attention as a means of transportation to replace internal combustion engines as next-generation mobility.

세그웨이는 종래의 사륜 구동방식의 운송수단들과 달리 한 개 또는 두 개의 바퀴를 사용하고 있으며, 모빌리티의 주행 환경의 변화에 운전자의 안전이 크게 영향을 받게 된다. 예를 들어, 무게 중심의 변화 또는 바퀴의 스핀 등으로 인해 주행조건이 변경되는 경우에, 세그웨이 스스로 학습하여 최적의 주행조건을 탐색할 필요성이 있다.Segway uses one or two wheels unlike conventional four-wheel drive vehicles, and driver safety is greatly affected by changes in the driving environment of mobility. For example, when driving conditions change due to a change in the center of gravity or spin of a wheel, there is a need to search for optimal driving conditions by self-learning.

특히, 세그웨이의 바퀴의 미끄러짐(스핀)이 발생하는 경우의 주행조건과 일반적인 상황의 주행조건의 차이가 발생하게 되므로 이러한 주행 특성을 적절하게 반영할 필요가 있다.In particular, since there is a difference between driving conditions in the case of Segway wheel slip (spin) and general driving conditions, it is necessary to appropriately reflect these driving characteristics.

종래의 세그웨이형 로봇들의 주행 과정에서는 로봇을 물리적 특성 변화-예를 들어, 질량 변화, 속도 변화, 가속도 변화 등-을 실시간으로 센싱할 수 없으므로, 로봇의 셀프 밸런싱 및 자율주행의 기초가 되는 데이터를 수집 및 업데이트할 수 없는 문제점이 있다.In the driving process of conventional Segway-type robots, changes in physical characteristics of the robots (eg, changes in mass, change in speed, change in acceleration, etc.) cannot be sensed in real time. There is a problem that cannot be collected and updated.

또한, KR 10-1816136 B1 등과 같은 종래의 세그웨이형 로봇은 질량(m)과 회전관성(I) 등의 제어 파라미터를 종합적으로 고려하지 않고, 하는 정교한 학습모델을 설계하지 못하는 한계점이 있다.In addition, conventional Segway-type robots such as KR 10-1816136 B1 have limitations in that they cannot design sophisticated learning models without comprehensively considering control parameters such as mass (m) and rotational inertia (I).

이러한 배경에서, 본 실시예의 목적은, 일 측면에서, 세그웨이형 로봇의 질량 및 회전과 관련된 파라미터들을 반영하는 강화학습 알고리즘을 적용하고, 로봇의 동작을 실시간 주행상황을 반영하여 제어할 수 있는 세그웨이형 로봇 및 이의 동작 제어방법을 제공하는 것이다.Against this background, the purpose of this embodiment is, in one aspect, a Segway-type robot capable of applying a reinforcement learning algorithm that reflects parameters related to the mass and rotation of a Segway-type robot and controlling the robot's operation by reflecting real-time driving conditions. It is to provide a robot and its motion control method.

본 실시예의 목적은, 다른 측면에서, 세그웨이형 로봇의 바퀴의 미끄러짐(스핀) 여부를 반영하여 로봇의 주행상태 및 학습을 수행할 수 있는 세그웨이형 로봇 및 이의 동작 제어방법을 제공하는 것이다.In another aspect, an object of the present embodiment is to provide a Segway-type robot and an operation control method thereof capable of performing learning and a running state of the robot by reflecting whether or not wheels of the Segway-type robot have slipped (spin).

본 실시예의 목적은, 다른 측면에서, 로봇의 주행 상태를 예측하는 딥러닝 학습 알고리즘을 적용하여 셀프밸런싱과 자율주행이 가능한 세그웨이형 로봇 및 이의 동작 제어방법을 제공하는 것이다.In another aspect, an object of the present embodiment is to provide a segway-type robot capable of self-balancing and autonomous driving by applying a deep learning learning algorithm for predicting a driving state of the robot and a method for controlling its operation.

전술한 목적을 달성하기 위하여, 본 발명의 일 실시예는, 강화학습 기반의 로봇 주행상태 제어 시스템에 있어서, 상기 로봇의 IMU 센서가 측정한 관성데이터 및 상기 로봇의 인코더가 측정한 모터의 회전데이터를 포함하는 주행데이터를 수집하는 주행데이터 수집부; 상기 주행정보 수집부에서 획득한 상기 주행데이터로 로봇상태값을 계산하고, 타겟로봇상태값와 비교하는 강화학습을 수행하는 제어로직 연산부; 및 상기 제어로직 연산부에서 획득한 상기 로봇상태값을 기초로 로봇의 주행조건을 제어하는 로봇제어신호를 생성하는 로봇주행 제어부를 포함하는, 로봇 주행상태 제어 시스템을 제공할 수 있다.In order to achieve the above object, an embodiment of the present invention, in a reinforcement learning-based robot driving state control system, inertia data measured by an IMU sensor of the robot and rotation data of a motor measured by an encoder of the robot A travel data collection unit that collects travel data including; a control logic operation unit that calculates a robot state value with the driving data obtained from the driving information collection unit and performs reinforcement learning to compare the value with a target robot state value; and a robot driving control unit generating a robot control signal for controlling a driving condition of the robot based on the robot state value acquired by the control logic operation unit.

로봇 주행상태 제어 시스템에서 상기 로봇은 세그웨이이고, 상기 관성데이터는 상기 로봇의 x축, y축, z축에 대한 각속도값과 가속도값을 포함하고, 상기 회전데이터는 상기 로봇의 바퀴별 회전각도값을 포함하고, 상기 관성데이터를 기반으로 상기 로봇의 자세를 인식하며, 상기 회전데이터를 기반으로 바퀴의 움직임을 인식할 수 있다.In the robot driving state control system, the robot is a Segway, the inertia data includes angular velocity values and acceleration values for the x-axis, y-axis, and z-axis of the robot, and the rotation data is a rotation angle value for each wheel of the robot Including, it is possible to recognize the posture of the robot based on the inertia data, and recognize the movement of the wheel based on the rotation data.

로봇 주행상태 제어 시스템에서 상기 제어로직 연산부는 상기 로봇의 직선운동 가속도값(a)를 입력값으로 두어 상기 로봇의 질량값(m) 및 회전관성값(I)을 계산하여 상기 로봇상태값을 획득할 수 있다.In the robot driving state control system, the control logic calculation unit obtains the robot state value by calculating the mass value (m) and the rotational inertia value (I) of the robot by setting the linear motion acceleration value (a) of the robot as an input value. can do.

로봇 주행상태 제어 시스템에서 상기 강화학습은 획득된 로봇상태값과 기 설정된 타겟로봇상태값의 차이값을 계산하고, 상기 차이값이 0 또는 기준 범위 이내라고 인정되는 경우에 학습을 종료하며, 상기 차이값이 기준 범위를 벗어난 경우에는 상기 로봇상태값을 업데이트할 수 있다.In the robot driving state control system, the reinforcement learning calculates the difference between the acquired robot state value and the preset target robot state value, and ends the learning when it is recognized that the difference value is 0 or within a standard range, and the difference If the value is out of the reference range, the robot state value may be updated.

로봇 주행상태 제어 시스템에서 상기 강화학습은 시뮬레이션 프로그램에 의해 수행되거나, 또는 사용자 단말기가 전달하는 로봇상태추정값을 수신하여 수행될 수 있다.In the robot driving state control system, the reinforcement learning may be performed by a simulation program or by receiving a robot state estimation value delivered by a user terminal.

로봇 주행상태 제어 시스템에서 상기 로봇상태값은 로봇의 질량, 회전관성, 기울기, 기울기변화량, 속도, 가속도, 바퀴의 토크 및 바퀴의 각속도 중 하나 이상을 포함할 수 있다.In the robot driving state control system, the robot state value may include one or more of the robot's mass, rotational inertia, inclination, tilt variation, speed, acceleration, wheel torque, and wheel angular velocity.

로봇 주행상태 제어 시스템에서 상기 제어로직 연산부는 로봇의 좌우 바퀴의 속도 합을 통해 직선운동 속도데이터를 획득하고, 로봇의 좌우 바퀴의 속도 차를 통해 회전운동 속도데이터를 획득하여 상기 로봇상태값을 추정할 수 있다.In the robot driving state control system, the control logic calculation unit obtains linear motion speed data through the sum of the speeds of the left and right wheels of the robot and obtains rotational motion speed data through the speed difference between the left and right wheels of the robot to estimate the robot state value. can do.

로봇 주행상태 제어 시스템에서 상기 제어로직 연산부가 계산한 로봇상태값에 대응되는 로봇제어신호를 모터드라이버로 전송하여 모터의 동작을 제어하는 로봇주행 제어부를 더 포함할 수 있다.The robot driving state control system may further include a robot driving control unit that controls the operation of the motor by transmitting a robot control signal corresponding to the robot state value calculated by the control logic operation unit to the motor driver.

전술한 목적을 달성하기 위하여, 본 발명의 다른 실시예는, 세그웨이의 주행상태를 판단하고 제어하는 방법에 있어서, 세그웨이의 주행데이터를 수집하는 단계; 상기 주행데이터에 기초하여 바퀴의 스핀여부를 판단하는 단계; 상기 바퀴의 스핀이 발생하지 않는 경우에 세그웨이상태값을 계산하고, 타겟세그웨이상태값과 비교하는 제어로직을 수행하는 단계; 및 상기 세그웨이상태값에 대응되도록 모터의 구동을 제어하는 단계를 포함하는, 세그웨이 주행상태 제어 방법을 제공할 수 있다.In order to achieve the above object, another embodiment of the present invention is a method for determining and controlling a driving state of a Segway, comprising: collecting driving data of the Segway; determining whether a wheel spins based on the driving data; performing control logic for calculating a Segway state value and comparing it with a target Segway state value when the spin of the wheel does not occur; and controlling driving of a motor to correspond to the Segway state value.

세그웨이 주행상태 제어 방법에서 상기 세그웨이는 주행데이터를 수집하는 센서들을 포함하고, 상기 주행데이터는 세그웨이의 각속도값과 가속도값을 포함하는 관성데이터 및 상기 세그웨이의 바퀴별 회전각도값을 포함하는 회전데이터를 포함할 수 있다.In the Segway driving state control method, the Segway includes sensors that collect driving data, and the driving data includes inertia data including angular velocity values and acceleration values of the Segway and rotation data including rotation angle values for each wheel of the Segway. can include

세그웨이 주행상태 제어 방법에서 상기 세그웨이는 상기 바퀴의 회전각 변위를 측정하는 인코더; 및 상기 인코더가 측정한 바퀴회전수와 타켓바퀴회전수를 비교하여 바퀴의 회전을 판단하는 프로세서를 더 포함할 수 있다.In the Segway driving state control method, the Segway includes an encoder for measuring rotational angular displacement of the wheel; and a processor determining the rotation of the wheel by comparing the number of rotations of the wheel measured by the encoder with the number of rotations of the target wheel.

세그웨이 주행상태 제어 방법에서 상기 바퀴의 스핀여부는 직선이동거리 및 바퀴의 회전거리를 비교하여 결정되고, 바퀴의 회전거리가 직선이동거리 보다 큰 경우 스핀이 존재하는 것으로 판단할 수 있다.In the Segway driving state control method, whether or not the wheel spins is determined by comparing the linear movement distance and the rotational distance of the wheel, and if the rotational distance of the wheel is greater than the linear movement distance, it can be determined that spin exists.

세그웨이 주행상태 제어 방법에서 상기 세그웨이는 상기 바퀴의 구동력을 제공하는 허브모터; 및 상기 허브모터의 출력데이터를 기 설정된 알고리즘에 적용하여 가속도데이터를 획득하는 프로세서를 더 포함할 수 있다.In the Segway driving state control method, the Segway includes a hub motor providing driving force to the wheels; and a processor obtaining acceleration data by applying output data of the hub motor to a predetermined algorithm.

세그웨이 주행상태 제어 방법에서 상기 세그웨이의 주행과정에서 발생하는 질량(m) 또는 회전관성(I) 변화로 외란 발생여부를 판단하는 제어 알고리즘을 수행하는 단계를 더 포함할 수 있다.The method for controlling the driving state of the Segway may further include performing a control algorithm for determining whether a disturbance occurs based on a change in mass (m) or rotational inertia (I) generated during the driving process of the Segway.

세그웨이 주행상태 제어 방법에서 상기 세그웨이상태값과 상기 타겟세그웨이상태값의 차이가 존재하는 것으로 판단된 경우, 상기 세그웨이상태값을 이터레이션(Iteration)하여 타겟세그웨이상태값으로 수렴하도록 강화학습할 수 있다.In the Segway driving state control method, when it is determined that there is a difference between the Segway state value and the target Segway state value, reinforcement learning may be performed to converge to the target Segway state value by iterating over the Segway state value.

세그웨이 주행상태 제어 방법에서 상기 세그웨이상태값에 대응되는 모터제어신호를 모터 드라이버로 전달하여 상기 바퀴의 구동을 개별적으로 제어할 수 있다.In the Segway driving state control method, driving of the wheels may be individually controlled by transmitting a motor control signal corresponding to the Segway state value to a motor driver.

이상에서 설명한 바와 같이, 본 발명의 일 실시예에 의하면, 세그웨이형 로봇의 질량 및 회전과 관련된 파라미터들을 반영하는 강화학습 알고리즘을 적용하여 실시간 주행상황을 반영하여 로봇의 동작을 제어할 수 있다.As described above, according to one embodiment of the present invention, the operation of the robot can be controlled by reflecting the real-time driving situation by applying a reinforcement learning algorithm that reflects parameters related to the mass and rotation of the Segway-type robot.

본 발명의 일 실시예에 의하면, 세그웨이형 로봇의 바퀴의 미끄러짐(스핀) 여부 및 주행상태 변화를 반영하여 로봇의 주행상태를 제어할 수 있다.According to an embodiment of the present invention, the driving state of the robot can be controlled by reflecting the slip (spin) of wheels of the Segway-type robot and changes in the driving state.

본 발명의 일 실시예에 의하면, 세그웨이형 로봇의 모델링 파라미터를 기초로 일부 파라미터를 추출 및 학습하여 셀프밸런싱 및 자율주행을 위한 프로세서의 연산량을 저감할 수 있고, 셀프밸런싱 및 자율주행을 위한 강화학습의 속도를 향상시킬 수 있다.According to an embodiment of the present invention, it is possible to reduce the amount of computation of a processor for self-balancing and autonomous driving by extracting and learning some parameters based on modeling parameters of a Segway-type robot, and reinforcement learning for self-balancing and autonomous driving. speed can be improved.

도 1은 본 발명의 일 실시예에 따른 세그웨이와 프로세서의 데이터 통신 방법을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 프로세서의 동작 순서를 설명하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 세그웨이의 동작 제어 순서를 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 세그웨이의 구성도이다.
도 5는 본 발명의 일 실시예에 따른 세그웨이의 모델링 파라미터를 설명하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 세그웨이의 모델링 파라미터의 계산방법을 설명하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 강화학습의 방법을 예시하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 세그웨이의 제어신호 생성 방법을 설명하는 순서도이다.
1 is a diagram illustrating a data communication method between a Segway and a processor according to an embodiment of the present invention.
2 is a diagram illustrating an operation sequence of a processor according to an embodiment of the present invention.
3 is a diagram for explaining an operation control sequence of a Segway according to an embodiment of the present invention.
4 is a configuration diagram of a Segway according to an embodiment of the present invention.
5 is a diagram illustrating modeling parameters of a Segway according to an embodiment of the present invention.
6 is a diagram explaining a method of calculating Segway modeling parameters according to an embodiment of the present invention.
7 is a diagram illustrating a reinforcement learning method according to an embodiment of the present invention.
8 is a flowchart illustrating a method of generating a control signal for a Segway according to an embodiment of the present invention.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의하여야 한다. 또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 그 상세한 설명을 생략한다.Hereinafter, some embodiments of the present invention will be described in detail through exemplary drawings. In adding reference numerals to the components of each drawing, it should be noted that the same components have the same numerals as much as possible even if they are displayed on different drawings. In addition, in describing the present invention, a detailed description of a related known configuration or function, which is determined to obscure the gist of the present invention, will be omitted.

또한, 본 발명의 구성요소를 설명하는데 있어서, 제1, 제2, a, b 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성요소를 다른 구성요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성요소 사이에 또 다른 구성요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In addition, in describing the components of the present invention, terms such as first, second, a, and b may be used. These terms are only used to distinguish the component from other components, and the nature, sequence, or order of the corresponding component is not limited by the term. When an element is described as being “connected,” “coupled to,” or “connected” to another element, that element is directly connected or connectable to the other element, but there is another element between the elements. It will be understood that elements may be “connected”, “coupled” or “connected”.

또한, 본 명세서상에 사용된 용어 '시스템', '서버' 등은 데이터의 저장 및 연산을 위해 클라이언트에게 네트워크를 통해 정보를 송수신하는 컴퓨터 프로그램 또는 장치로 정의될 수 있으나, 이에 제한되지 않는다.In addition, the terms 'system', 'server', etc. used in this specification may be defined as a computer program or device that transmits and receives information to and from a client through a network for data storage and calculation, but is not limited thereto.

또한, 본 명세서상에 사용된 용어 '세그웨이', '세그웨이형 로봇', '로봇'은 사용자를 운송하기 위해 구동력을 제공하는 장치로 정의될 수 있고, 필요에 따라 각 용어는 혼용되어 사용될 수 있다.In addition, the terms 'Segway', 'Segway-type robot', and 'robot' used in this specification may be defined as a device that provides a driving force to transport a user, and each term may be used interchangeably as needed. .

도 1은 본 발명의 일 실시예에 따른 세그웨이와 프로세서의 데이터 통신 방법을 나타내는 도면이다.1 is a diagram illustrating a data communication method between a Segway and a processor according to an embodiment of the present invention.

도 1을 참조하면, 일 실시예에 따른 세그웨이(10) 및 프로세서(20)는 데이터 통신을 통해 세그웨이의 동작을 제어할 수 있다.Referring to FIG. 1 , the Segway 10 and the processor 20 according to an embodiment may control the operation of the Segway through data communication.

세그웨이(10)는 하나 이상의 바퀴를 포함하는 사용자 운송을 위한 로봇일 수 있다. 예를 들어, 세그웨이(10)는 두 개의 바퀴 및 모터를 포함하고, 각 바퀴의 모터를 제어하기 위한 모터 드라이버를 포함할 수 있고, 프로세서(20)의 연산 결과에 따라 모터 드라이버의 제어신호를 송수신할 수 있다.The Segway 10 may be a robot for user transportation that includes one or more wheels. For example, the Segway 10 includes two wheels and a motor, may include a motor driver for controlling the motor of each wheel, and transmits and receives a control signal of the motor driver according to an operation result of the processor 20. can do.

세그웨이(10)는 관성데이터를 측정할 수 있는 IMU 센서(미도시), 모터의 회전 데이터를 측정할 수 있는 인코더(미도시)를 더 포함할 수 있다.The Segway 10 may further include an IMU sensor (not shown) capable of measuring inertial data and an encoder (not shown) capable of measuring rotational data of a motor.

IMU 센서(미도시)는 관성측정장치(IMU: Inertial Measurement Unit)로서, 로봇의 3개 축-예를 들어, x축, y축, z축-에 대한 각속도값과 가속도값 등의 관성데이터를 측정할 수 있다. 또한, IMU 센서는 3축 가속도와 3축 자이로 센서를 조합하여 로봇의 방향별 기울기 및 자세를 측정할 수 있다. 예를 들어, IMU 센서는 칼만 필터(Kalman filter)를 적용하여 측정값을 획득할 수 있으나, 이에 제한되지 않는다.The IMU sensor (not shown) is an inertial measurement unit (IMU), which measures inertial data such as angular velocity values and acceleration values for the three axes of the robot—for example, the x-axis, y-axis, and z-axis. can be measured In addition, the IMU sensor can measure the inclination and attitude of the robot in each direction by combining the 3-axis acceleration and 3-axis gyro sensors. For example, the IMU sensor may obtain a measurement value by applying a Kalman filter, but is not limited thereto.

인코더(미도시)는 모터의 회전수, 회전속도, 회전각도, 회전방향 등의 회전데이터를 측정할 수 있다. 또한, 인코더는 회전데이터에 기초하여 로봇의 바퀴 움직임을 측정할 수 있다. 예를 들어, 인코더는 광학식 또는 자기식 인코더 등의 다양한 방법의 측정 방법을 채택할 수 있으나, 이에 제한되지 않는다.An encoder (not shown) may measure rotational data such as the number of rotations, rotational speed, rotational angle, and rotational direction of the motor. In addition, the encoder may measure the motion of the wheel of the robot based on the rotation data. For example, the encoder may adopt various measurement methods such as an optical or magnetic encoder, but is not limited thereto.

프로세서(20)는 세그웨이(10)와 별개로 구분된 서버 등의 연산을 위한 장치일 수 있으나, 세그웨이(10)에 포함되어 세그웨이(10)의 동작을 제어하기 위한 연산을 수행하는 프로그램 및 이를 포함하는 장치일 수 있다.The processor 20 may be a device for calculation such as a server separate from the Segway 10, but includes a program included in the Segway 10 and performing calculations for controlling the operation of the Segway 10, and the same. It may be a device that

세그웨이(10)는 프로세서(20)으로 주행상태에 관한 정보를 전달(S101)할 수 있고, 프로세서(20)는 주행상태 등에 관한 정보를 수신 및 학습하고, 세그웨이(10)의 주행상태를 제어하는 제어신호를 세그웨이(10)로 전달(S102)할 수 있다.The Segway 10 may transmit information about the driving state to the processor 20 (S101), and the processor 20 receives and learns information about the driving state, etc., and controls the driving state of the Segway 10. The control signal may be transferred to the Segway 10 (S102).

프로세서(20)는 물리적인 연산장치로 구현될 수 있으나, 이에 제한되지 않고 클라우드 서버 등으로 세그웨이(10)의 주행상태 등에 관한 정보를 수신하여 계산하도록 구현될 수 있다.The processor 20 may be implemented as a physical computing device, but is not limited thereto and may be implemented to receive and calculate information about the driving state of the Segway 10 through a cloud server or the like.

도 2는 본 발명의 일 실시예에 따른 프로세서의 동작 순서를 설명하는 도면이다.2 is a diagram illustrating an operation sequence of a processor according to an embodiment of the present invention.

도 2를 참조하면, 프로세서(20)는 주행데이터 수집부(21), 제어로직 연산부(22), 로봇주행 제어부(23) 등을 포함할 수 있다. 프로세서(20)의 각 동작을 구현하는 블록은 물리적, 또는 개념적으로 구분된 블록일 수 있다.Referring to FIG. 2 , the processor 20 may include a driving data collection unit 21, a control logic operation unit 22, a robot driving control unit 23, and the like. Blocks implementing each operation of the processor 20 may be physically or conceptually separated blocks.

주행데이터 수집부(21)는 세그웨이의 주행데이터를 각 센서들로부터 수신하고, 로봇을 제어하는 로봇제어신호를 생성할 수 있다.The driving data collection unit 21 may receive driving data of the Segway from each sensor and generate a robot control signal for controlling the robot.

세그웨이의 주행데이터는 IMU 센서에서 측정한 관성데이터, 인코더에서 측정한 모터의 회전데이터 등을 포함할 수 있다.The driving data of the Segway may include inertia data measured by an IMU sensor, rotation data of a motor measured by an encoder, and the like.

제어로직 연산부(22)는 주행정보 수집부에서 획득한 주행데이터로 로봇상태값을 계산하고, 타겟로봇상태값와 비교하는 강화학습을 수행할 수 있다.The control logic operation unit 22 may calculate a robot state value using the driving data obtained from the driving information collection unit and perform reinforcement learning to compare the robot state value with the target robot state value.

로봇상태값은 로봇의 질량, 회전관성, 기울기, 기울기변화량, 속도, 가속도, 바퀴의 토크, 바퀴의 각속도 등의 로봇의 주행상태를 나타내기 위한 파라미터일 수 있다.The robot state value may be a parameter for representing a driving state of the robot, such as mass, rotational inertia, inclination, tilt variation, speed, acceleration, wheel torque, and wheel angular velocity.

예를 들어, 제어로직 연산부(22)는 로봇의 직선운동 가속도값()를 입력값으로 두고, 로봇의 질량값(m) 및 회전관성값(I)을 계산하여 로봇의 로봇상태값을 획득할 수 있다.For example, the control logic calculation unit 22 sets the linear motion acceleration value ( ) of the robot as an input value and calculates the mass value (m) and rotational inertia value (I) of the robot to obtain a robot state value of the robot. can

제어로직 연산부(22)는 기 설정된 알고리즘을 통해 로봇상태값을 획득할 수 있고, 필요에 따라서 목표로 하는 타겟로봇상태값을 획득하기 위하여 머신러닝-예를 들어, 강화학습-을 수행할 수 있다.The control logic operation unit 22 may obtain a robot state value through a preset algorithm, and may perform machine learning - for example, reinforcement learning - to obtain a target robot state value as needed. .

제어로직 연산부(22)에서 수행하는 강화학습은 획득된 로봇상태값과 기 설정된 타겟로봇상태값의 차이값을 계산하고, 차이값이 0 또는 기준 범위 이내라고 인정되는 경우에 학습을 종료할 수 있으며, 차이값이 기준 범위를 벗어난 경우에는 로봇상태값을 반복적으로 업데이트할 수 있다.Reinforcement learning performed by the control logic operation unit 22 calculates the difference between the acquired robot state value and the preset target robot state value, and ends the learning when the difference value is recognized as 0 or within the standard range. , If the difference value is out of the standard range, the robot status value can be repeatedly updated.

제어로직 연산부(22)에서 수행하는 강화학습은 시뮬레이션 프로그램에 의해 수행되거나, 또는 사용자 단말기가 전달하는 로봇상태추정값을 수신하여 수행될 수 있다. 강화학습이 수렴값에 도달하지 않는 경우이거나, 사용자가 원하는 주행조건을 반영하기 위하여 사용자 단말기에서 전달하는 주행상태값의 입력데이터를 기초로 학습을 수행함으로써, 로봇의 주행 상태의 오프셋을 조정하거나 사용자 편의성을 향상시킬 수 있게 된다.Reinforcement learning performed by the control logic operation unit 22 may be performed by a simulation program or by receiving a robot state estimation value transmitted by a user terminal. When reinforcement learning does not reach the convergence value, or by performing learning based on the input data of the driving state value transmitted from the user terminal to reflect the driving condition desired by the user, the offset of the driving state of the robot is adjusted or the user Convenience can be improved.

제어로직 연산부(22)는 로봇의 좌우 바퀴의 속도 합을 통해 직선운동 속도데이터를 획득하여 로봇상태값을 추정하거나, 로봇의 좌우 바퀴의 속도 차를 통해 회전운동 속도데이터를 획득하여 로봇상태값을 추정할 수 있다. 이 경우 기 설정된 계산식에 의해 주행상태에 관한 파라미터-예를 들어, 도 6의 로봇 직선운동 속도 및 로봇 회전운동 각속도-를 계산할 수 있다.The control logic operation unit 22 obtains linear motion speed data through the sum of the speeds of the left and right wheels of the robot to estimate a robot state value, or acquires rotational motion speed data through the speed difference between the left and right wheels of the robot to estimate the robot state value. can be estimated In this case, parameters related to the driving state—for example, the robot's linear motion speed and the robot's rotational motion angular speed of FIG. 6—can be calculated by a predetermined calculation formula.

로봇주행 제어부(24)는 제어로직 연산부에서 획득한 로봇상태값을 기초로 로봇의 주행조건을 제어할 수 있다. 제어로직 연산부(22)에서 반복 학습을 통해 획득한 로봇상태값을 업데이트 하고, 이를 기초로 로봇의 모터 등의 구성요소를 제어하기 위한 로봇제어신호를 실시간으로 변경할 수 있다.The robot driving control unit 24 may control the driving condition of the robot based on the robot state value obtained from the control logic operation unit. The control logic calculation unit 22 updates the robot state value acquired through repetitive learning, and based on this, a robot control signal for controlling components such as a motor of the robot can be changed in real time.

로봇주행 제어부(24)는 현재의 로봇상태값과 타겟로봇상태값이 일치하거나 기준이 되는 오차범위 이내에 들어온 것으로 판단되는 경우에만 로봇을 제어하는 로봇제어신호를 전달할 수 있다.The robot driving control unit 24 may transmit a robot control signal for controlling the robot only when it is determined that the current robot state value and the target robot state value match or come within a standard error range.

로봇주행 제어부(24)는 제어로직 연산부(22)가 계산한 로봇상태값에 대응되는 로봇제어신호를 모터드라이버로 전송하여 모터의 동작을 제어할 수 있다.The robot driving control unit 24 may control the operation of the motor by transmitting a robot control signal corresponding to the robot state value calculated by the control logic operation unit 22 to the motor driver.

도 3은 본 발명의 일 실시예에 따른 세그웨이의 동작 제어 순서를 설명하는 도면이다.3 is a diagram for explaining an operation control sequence of a Segway according to an embodiment of the present invention.

도 3을 참조하면, 세그웨이(10)의 동작은 프로세서(20)의 연산 결과를 입력받아 제어될 수 있다.Referring to FIG. 3 , the operation of the Segway 10 may be controlled by receiving an operation result of the processor 20 as an input.

세그웨이(10)은 IMU 센서(11), 모터 인코더(12), 모터드라이버(13), 좌측 모터(14), 우측 모터(15) 등을 포함할 수 있다.The Segway 10 may include an IMU sensor 11, a motor encoder 12, a motor driver 13, a left motor 14, a right motor 15, and the like.

IMU 센서(11)는 로봇의 3개 축에 대한 회전 각속도 값과 각 축 방향으로의 가속도 값 등을 측정하는 장치일 수 있고, 모터 인코더(12)는 세그웨이의 바퀴의 각도 기준점에 대한 회전 각도 등을 측정하는 장치일 수 있다.The IMU sensor 11 may be a device for measuring rotational angular velocity values for three axes of the robot and acceleration values in each axis direction, and the motor encoder 12 may be a device for measuring rotational angles, etc. It may be a device for measuring

세그웨이(10)는 좌우측 바퀴에 대응되는 좌측 모터(14), 우측 모터(15), 각 모터를 제어하는 모터드라이버(13) 등을 포함할 수 있다.The Segway 10 may include a left motor 14 corresponding to left and right wheels, a right motor 15, and a motor driver 13 controlling each motor.

모터드라이버(13)는 프로세서(20)로부터 로봇제어신호를 전달받아 좌우측 모터(14, 15)의 회전수, 회전속도, 회전가속도, 회전각도 등의 주행조건을 제어할 수 있다.The motor driver 13 may receive a robot control signal from the processor 20 and control driving conditions such as the number of rotations, rotational speed, rotational acceleration, and rotational angle of the left and right motors 14 and 15 .

프로세서(20)은 관성데이터 수집부(21-1), 회전데이터 수집부(21-2), 제어로직 연산부(22), 로봇상태값 추정부(23), 로봇주행 제어부(24) 등을 포함할 수 있다.The processor 20 includes an inertia data collection unit 21-1, a rotation data collection unit 21-2, a control logic operation unit 22, a robot state value estimation unit 23, a robot travel control unit 24, and the like. can do.

관성데이터 수집부(21-1)는 IMU 센서(11)가 측정한 관성데이터를 수집하여, 로봇의 기울임 등의 자세를 판단할 수 있다.The inertial data collection unit 21-1 may collect inertial data measured by the IMU sensor 11 to determine the posture of the robot, such as inclination.

회전데이터 수집부(21-2)는 모터의 인코더(12)가 측정한 회전데이터를 수집하여, 바퀴의 움직임 등을 판단할 수 있다.The rotation data collection unit 21-2 may collect rotation data measured by the encoder 12 of the motor and determine the movement of the wheel.

제어로직 연산부(22)는 관성데이터, 회전데이터 등의 주행데이터를 수집하여 로봇의 주행상태에 관한 주행상태값을 계산할 수 있다. 또한, 제어로직 연산부(22)는 시계열적인 데이터 학습을 통해 주행상태값을 업데이트하여 로봇주행 제어부(24) 로 로봇의 동작을 결정하기 위한 주행상태값을 생성할 수 있다.The control logic calculation unit 22 may collect driving data such as inertia data and rotation data to calculate a driving state value related to the driving state of the robot. In addition, the control logic operation unit 22 may update the driving state value through time-sequential data learning to generate the driving state value for determining the operation of the robot by the robot driving control unit 24 .

제어로직 연산부(22)는 기 설정된 학습 알고리즘에 의해 입력받은 주행데이터를 학습할 수 있고, 학습의 정확도를 판단하여 학습의 지속 여부를 더 결정할 수 있다.The control logic operation unit 22 may learn the input driving data according to a preset learning algorithm, and further determine whether or not to continue the learning by determining the accuracy of the learning.

제어로직 연산부(22)는 사용자가 희망하는 로봇의 주행상태에 관한 데이터인 타겟주행상태값과 현재의 로봇의 주행상태에 관한 데이터인 주행상태값을 비교하여 학습의 종료 여부를 결정할 수 있다.The control logic operation unit 22 may compare a target driving state value, which is data related to the driving state of the robot desired by the user, and a driving state value, which is data related to the current driving state of the robot, to determine whether to end the learning.

로봇상태값 추정부(23)는 모든 파라미터에 대한 연산을 수행하지 않고, 파라미터들의 우선순위 및 파라미터들의 상관관계를 고려하여 학습 순서를 결정함으로써 학습량을 감소시킬 수 있다. 예를 들어, 도 7과 같이 로봇의 IMU 센서에 의해 획득된 가속도와 타겟가속도를 우선적으로 비교하고, 모터의 인코더에 의해 획득된 각가속도와 타겟각가속도를 그 다음으로 비교할 수 있다.The robot state value estimator 23 may reduce the amount of learning by determining the learning order by considering the priority of the parameters and the correlation between the parameters without performing calculations on all the parameters. For example, as shown in FIG. 7 , the acceleration obtained by the robot's IMU sensor and the target acceleration are first compared, and the angular acceleration obtained by the motor's encoder and the target angular acceleration are then compared.

로봇상태값 추정부(23)의 파라미터 추정이 완료되지 않거나, 추정된 파라미터가 목표로하는 값과 다르다고 판단된 경우에는 제어로직 연산부(22)로 결과값을 전달하여 다시 학습을 수행할 수 있다.If the parameter estimation by the robot state value estimator 23 is not completed or it is determined that the estimated parameter is different from the target value, the resulting value may be transferred to the control logic calculator 22 to perform learning again.

로봇상태값 추정부(23)는 제어로직 연산부(22)의 하위 블록에 포함될 수 있으나, 필요에 따라 별도의 블록으로 정의되어 순차적인 데이터 연산 및 업데이트를 수행할 수 있다.The robot state value estimation unit 23 may be included in a lower block of the control logic operation unit 22, but may be defined as a separate block to sequentially perform data calculation and update as needed.

로봇주행 제어부(24)는 제어로직 연산부(22)에서 결정하여 전달하는 로봇상태값을 기초로 주행제어신호를 생성하여 모터드라이버(13)으로 전달할 수 있다. 로봇주행 제어부(24)가 제어로직 연산부(22)의 연산 결과를 기초로 주행제어신호를 생성하게 되므로, 보다 정교한 주행제어가 가능하게 된다.The robot driving control unit 24 may generate a driving control signal based on the robot state value determined and transmitted by the control logic operation unit 22 and transmit it to the motor driver 13 . Since the robot driving control unit 24 generates a driving control signal based on the calculation result of the control logic calculating unit 22, more sophisticated driving control is possible.

여기서 세그웨이(10) 및 프로세서(20)의 구성은 데이터의 수집 및 연산, 제어신호의 전달 과정을 설명하기 위해 구분한 것으로 하나의 로봇에 포함된 구성의 전부 또는 일부로서, 본 발명의 기술적 사상은 도 3에 제한되지 않는다.Here, the configuration of the Segway 10 and the processor 20 is divided to explain the process of collecting and calculating data and transmitting control signals, and is all or part of the configuration included in one robot, and the technical idea of the present invention is It is not limited to FIG. 3 .

도 4는 본 발명의 일 실시예에 따른 세그웨이의 구성도이다.4 is a configuration diagram of a Segway according to an embodiment of the present invention.

도 4를 참조하면, 세그웨이(100)은 좌측 바퀴(101), 우측 바퀴(102), 본체부(103), 손잡이부(104) 등을 포함할 수 있다.Referring to FIG. 4 , the Segway 100 may include a left wheel 101, a right wheel 102, a body part 103, a handle part 104, and the like.

세그웨이(100)의 바퀴(101, 102)의 회전 상태에 따라 세그웨이(100)의 직선운동 및 회전운동을 역학적으로 모델링하여 결정할 수 있다. According to the rotation state of the wheels 101 and 102 of the Segway 100, the linear motion and the rotational motion of the Segway 100 may be determined by dynamic modeling.

예를 들어, 세그웨이(100)의 질량중심이 본체(103)와 인접한 위치에 있는 경우에는 세그웨이(100)의 이동을 본체(103)의 이동으로 대체하거나, 무게중심의 위치를 정의하여 계산에 활용할 수 있다.For example, when the center of mass of the Segway 100 is located adjacent to the main body 103, the movement of the Segway 100 is replaced with the movement of the main body 103, or the location of the center of gravity is defined and used for calculation. can

예를 들어, 바퀴(101, 102)의 회전거리가 세그웨이(100)의 직선 이동거리와 동일한 경우에는 바퀴의 미끄러짐(스핀) 현상이 발생하지 않은 것으로 판단하고, 바퀴의 회전데이터와 세그웨이의 직선 이동거리 데이터의 상관관계를 정의할 수 있다.For example, when the rotation distance of the wheels 101 and 102 is the same as the linear movement distance of the Segway 100, it is determined that the wheel slip (spin) phenomenon has not occurred, and the rotation data of the wheels and the linear movement of the Segway are determined. Correlation of distance data can be defined.

또한, 바퀴(101, 102)의 현재 분당 회전수(RPM)가 타겟 분당 회전수(RPM)와 동일한 경우에는 바퀴의 미끄러짐(스핀) 현상이 발생하지 않은 것으로 판단하고, 바퀴의 회전데이터와 세그웨이의 직선 이동거리 데이터의 상관관계를 정의할 수 있다.In addition, if the current revolutions per minute (RPM) of the wheels 101 and 102 are the same as the target revolutions per minute (RPM), it is determined that the slip (spin) phenomenon of the wheels has not occurred, and the rotation data of the wheels and the Segway It is possible to define the correlation of straight-line travel distance data.

바퀴(101, 102)의 좌우측 속도 합 또는 속도 차를 활용하여 세그웨이(100)의 직선운동 방향의 속도 또는 회전운동 방향의 속도 등을 정의할 수 있다.The speed in the linear motion direction or the rotational motion direction of the Segway 100 may be defined by utilizing the sum of left and right speeds or the speed difference of the wheels 101 and 102 .

손잡이부(104) 또는 본체부(103)는 로봇의 기울기를 결정하기 위해 활용될 수 있다. 예를 들어, 손잡이부(104)의 기둥의 기울기를 로봇의 기울기로 정의할 수 있고, 본체부(103)의 일 평면의 기울기를 로봇의 기울기로 정의할 수 있다.The handle part 104 or the body part 103 may be utilized to determine the inclination of the robot. For example, the inclination of the pole of the handle part 104 may be defined as the inclination of the robot, and the inclination of one plane of the main body 103 may be defined as the inclination of the robot.

도 4는 세그웨이(100)의 각 구성의 간소화 방법 및 모델링 방법을 설명하기 위한 것으로, 본 발명의 기술적 사상은 이에 제한되지 않는다.4 is for explaining a simplification method and a modeling method of each configuration of the Segway 100, and the technical spirit of the present invention is not limited thereto.

도 5는 본 발명의 일 실시예에 따른 세그웨이의 모델링 파라미터를 설명하는 도면이다.5 is a diagram illustrating modeling parameters of a Segway according to an embodiment of the present invention.

도 5를 참조하면, 세그웨이(100)의 구성을 간소화하여 모델링할 수 있다.Referring to FIG. 5 , the configuration of the Segway 100 may be simplified and modeled.

세그웨이(100)의 직선운동의 속도(

Figure pat00001
), 가속도(
Figure pat00002
)를 정의할 수 있고, 회전운동의 회전각도(
Figure pat00003
), 회전각속도(
Figure pat00004
)를 운동데이터로 정의할 수 있다.The speed of linear motion of the Segway 100 (
Figure pat00001
), acceleration (
Figure pat00002
) can be defined, and the rotation angle of rotation (
Figure pat00003
), rotational angular velocity (
Figure pat00004
) can be defined as exercise data.

세그웨이(100)의 좌측바퀴(101)의 회전각도(

Figure pat00005
), 회전각속도(
Figure pat00006
), 회전관성(
Figure pat00007
), 각가속도(
Figure pat00008
) 등을 회전데이터로 정의할 수 있고, 우측바퀴(102)의 회전각도(
Figure pat00009
), 회전각속도(
Figure pat00010
), 회전관성(
Figure pat00011
), 각가속도(
Figure pat00012
) 등을 회전데이터로 정의할 수 있다.Rotation angle of the left wheel 101 of the Segway 100 (
Figure pat00005
), rotational angular velocity (
Figure pat00006
), rotational inertia (
Figure pat00007
), angular acceleration (
Figure pat00008
) can be defined as rotation data, and the rotation angle of the right wheel 102 (
Figure pat00009
), rotational angular velocity (
Figure pat00010
), rotational inertia (
Figure pat00011
), angular acceleration (
Figure pat00012
) can be defined as rotation data.

세그웨이(100)의 기울기 방향의 회전각(

Figure pat00013
), 각속도(
Figure pat00014
), 토크(
Figure pat00015
), 각가속도(
Figure pat00016
) 등을 기울기데이터로 정의할 수 있다.The rotation angle of the tilt direction of the Segway 100 (
Figure pat00013
), angular velocity (
Figure pat00014
), talk(
Figure pat00015
), angular acceleration (
Figure pat00016
) can be defined as slope data.

또한, 세그웨이(100)의 전체 질량(

Figure pat00017
), 전체 회전관성(
Figure pat00018
), 전체 각운동량(
Figure pat00019
), 본체부(103)의 일 평면에서 질량중심까지의 거리(미도시) 등을 정의하여 각 파라미터들의 계산에 활용할 수 있다.In addition, the total mass of the Segway 100 (
Figure pat00017
), total rotational inertia (
Figure pat00018
), total angular momentum (
Figure pat00019
), a distance from one plane of the main body 103 to the center of mass (not shown), etc. may be defined and used for calculating each parameter.

일 실시예에 따른 상태주행값 획득을 위해 세그웨이(100)의 기울기 파라미터는 로터리 역진자(Inverted Pendulum) 운동방정식에 대입하여 획득된 해일 수 있고, 비선형 방정식의 해는 대해서는 반복 계산 등의 학습을 통해 획득될 수 있다.In order to obtain the state driving value according to an embodiment, the inclination parameter of the Segway 100 may be a solution obtained by substituting an equation of motion of a rotary inverted pendulum, and the solution of the nonlinear equation may be obtained through learning such as repetitive calculation. can be obtained

도 6은 본 발명의 일 실시예에 따른 세그웨이의 모델링 파라미터의 계산방법을 설명하는 도면이다.6 is a diagram explaining a method of calculating Segway modeling parameters according to an embodiment of the present invention.

도 6을 참조하면, 도 5의 세그웨이 모델링 파라미터를 활용하여 로봇의 주행상태에 관한 추정값들을 계산할 수 있다.Referring to FIG. 6 , it is possible to calculate estimated values for the driving state of the robot using the Segway modeling parameters of FIG. 5 .

세그웨이의 직선운동 속도는 좌우측 바퀴의 속도 합을 이용하여 도출할 수 있다.The linear motion speed of the Segway can be derived using the sum of the velocities of the left and right wheels.

예를 들어, 로봇의 직선운동 속도(

Figure pat00020
)는 바퀴의 반지름(
Figure pat00021
)과 각 바퀴의 회전속도 평균값(
Figure pat00022
)의 곱으로 정의할 수 있으며, 로봇의 직선운동 가속도(
Figure pat00023
)는 로봇의 직선운동 속도를 시간으로 미분하여 계산할 수 있다.For example, the linear motion speed of the robot (
Figure pat00020
) is the radius of the wheel (
Figure pat00021
) and the average value of the rotational speed of each wheel (
Figure pat00022
), and the linear motion acceleration of the robot (
Figure pat00023
) can be calculated by differentiating the linear motion speed of the robot with time.

세그웨이의 회전운동 각속도는 좌우측 바퀴의 속도 차를 이용하여 도출할 수 있다.The rotational angular velocity of the Segway can be derived using the speed difference between the left and right wheels.

예를 들어, 로봇의 회전운동 각속도(

Figure pat00024
)는 각 바퀴의 회전속도의 편차(
Figure pat00025
)에 바퀴의 반지름(
Figure pat00026
)을 곱한 뒤, 바퀴 사이의 거리(
Figure pat00027
)를 나눈 값으로 정의할 수 있으며, 로봇의 회전각도는 로봇의 회전운동 각속도를 시간으로 적분하여 계산할 수 있다.For example, the rotational angular velocity of the robot (
Figure pat00024
) is the deviation of the rotational speed of each wheel (
Figure pat00025
) to the radius of the wheel (
Figure pat00026
), then the distance between the wheels (
Figure pat00027
), and the rotation angle of the robot can be calculated by integrating the rotational angular velocity of the robot with time.

도 6은 세그웨이(100)의 주행상태에 관한 파라미터의 계산 방법을 설명하기 위한 것으로, 본 발명의 기술적 사상은 이에 제한되지 않는다.6 is for explaining a method of calculating parameters related to the driving state of the Segway 100, and the technical spirit of the present invention is not limited thereto.

도 7은 본 발명의 일 실시예에 따른 강화학습의 방법을 예시하는 도면이다.7 is a diagram illustrating a reinforcement learning method according to an embodiment of the present invention.

도 7을 참조하면, 일 실시예에 따른 강화학습 및 로봇 동작제어의 방법(200)은 센서의 데이터를 수집하는 단계(S201), 로봇의 가속도를 계산하는 단계(S202), 현재가속도와 타겟가속도를 비교하는 단계(S203), 바퀴의 각속도를 계산하는 단계(S204), 현재각속도와 타겟각속도를 비교하는 단계(S205), 로봇의 질량을 계산하는 단계(S206), 로봇의 각가속도를 계산하는 단계(S207), 현재각가속도와 타겟각가속도를 비교하는 단계(S208), 각운동량과 회전관성을 계산하는 단계(S209), 제어 파라미터를 계산하는 단계(S210), 로봇의 동작을 제어하는 단계(S211) 등을 포함할 수 있다.Referring to FIG. 7 , the method 200 of reinforcement learning and robot motion control according to an embodiment includes collecting sensor data (S201), calculating robot acceleration (S202), current acceleration and target acceleration. Comparing (S203), calculating the angular velocity of the wheel (S204), comparing the current angular velocity and the target angular velocity (S205), calculating the mass of the robot (S206), calculating the angular acceleration of the robot (S207), comparing current angular acceleration and target angular acceleration (S208), calculating angular momentum and rotational inertia (S209), calculating control parameters (S210), controlling the operation of the robot (S211), etc. can include

센서의 데이터를 수집하는 단계(S201)는 로봇의 센서들에 의해 다양한 종류의 센싱값을 데이터의 형식으로 측정 및 수집하는 단계일 수 있다.The step of collecting sensor data ( S201 ) may be a step of measuring and collecting various types of sensing values in the form of data by sensors of the robot.

로봇의 가속도를 계산하는 단계(S202)는 IMU 센서의 측정값을 가속도로 결정하는 단계일 수 있다.The step of calculating the acceleration of the robot (S202) may be a step of determining the measured value of the IMU sensor as the acceleration.

현재가속도와 타겟가속도를 비교하는 단계(S203)는 계산된 현재 상태의 로봇의 가속도와 타겟가속도를 비교하는 단계일 수 있다. 만약, 현재가속도와 타겟가속도가 동일하거나 기 설정된 기준범위 내라면 곧바로 각가속도 계산 단계(S207)를 수행할 수 있다. 현재가속도와 타겟가속도가 동일하지 않거나, 기 설정된 기준범위를 벗어난 경우에는 각속도를 계산하는 단계(S204)를 수행할 수 있다.The step of comparing the current acceleration and the target acceleration (S203) may be a step of comparing the calculated acceleration of the robot in the current state with the target acceleration. If the current acceleration and the target acceleration are the same or within a preset reference range, the angular acceleration calculation step (S207) may be performed immediately. If the current acceleration and the target acceleration are not the same or out of a preset reference range, the step of calculating the angular velocity (S204) may be performed.

바퀴의 각속도를 계산하는 단계(S204)는 좌우측 바퀴/모터의 각속도를 계산하는 단계일 수 있고, 모터 인코더의 측정값을 각속도 계산에 활용할 수 있다.The step of calculating the angular velocity of the wheel (S204) may be a step of calculating the angular velocity of the left and right wheels/motors, and the measured value of the motor encoder may be used for calculating the angular velocity.

현재각속도와 타겟각속도를 비교하는 단계(S205)는 계산된 현재 상태의 로봇의 각속도와 타겟각속도를 비교하는 단계일 수 있다. 만약, 현재각속도와 타겟각속도가 동일하거나 기 설정된 기준범위 내라면 곧바로 로봇의 전체 질량 계산 단계(S206)를 수행할 수 있다. 현재각속도와 타겟각속도가 동일하지 않거나, 기 설정된 기준범위를 벗어난 경우에는 제어 파라미터를 계산하는 단계(S210)를 수행할 수 있다.Comparing the current angular velocity and the target angular velocity (S205) may be a step of comparing the calculated angular velocity of the robot in the current state with the target angular velocity. If the current angular velocity and the target angular velocity are the same or within a predetermined reference range, the total mass calculation step (S206) of the robot may be performed immediately. If the current angular velocity and the target angular velocity are not the same or out of a preset reference range, a step of calculating a control parameter (S210) may be performed.

로봇의 질량을 계산하는 단계(S206)는 뉴턴 운동법칙 등의 고전역학과 관련된 식을 기초로 로봇의 전체 질량을 계산하는 단계일 수 있다.The step of calculating the mass of the robot ( S206 ) may be a step of calculating the total mass of the robot based on an equation related to classical mechanics such as Newton's law of motion.

로봇의 각가속도를 계산하는 단계(S207)는 IMU 센서상의 각가속도 측정값을 획득 및 계산하는 단계일 수 있다.The step of calculating the angular acceleration of the robot (S207) may be a step of obtaining and calculating the angular acceleration measurement value on the IMU sensor.

현재각가속도와 타겟각가속도를 비교하는 단계(S208)는 계산된 현재 상태의 로봇의 각가속도와 타겟각가속도를 비교하는 단계일 수 있다. 만약, 현재각가속도와 타겟각가속도가 동일하거나 기 설정된 기준범위 내라면 곧바로 로봇의 제어 파라미터 계산(S210)를 수행할 수 있다. 현재각가속도와 타겟각가속도가 동일하지 않거나, 기 설정된 기준범위를 벗어난 경우에는 각운동량과 회전관성을 계산하는 단계(S209)를 수행할 수 있다.Comparing the current angular acceleration and the target angular acceleration (S208) may be a step of comparing the calculated angular acceleration of the robot in the current state with the target angular acceleration. If the current angular acceleration and the target angular acceleration are the same or within a preset reference range, the robot control parameter calculation (S210) may be performed immediately. If the current angular acceleration and the target angular acceleration are not the same or out of a predetermined reference range, a step of calculating the angular momentum and rotational inertia (S209) may be performed.

각운동량과 회전관성을 계산하는 단계(S209)는 뉴턴 운동법칙 등의 고전역학과 관련된 식을 기초로 로봇의 각운동량과 회전관성을 계산하는 단계일 수 있다. 로터리 역진자(Inverted Pendulum) 운동방정식에서 토크값을 계산하고, 이전 단계(S207)에서 획득한 각가속도를 기초로 회전관성(

Figure pat00028
)을 계산할 수 있다. 각운동량(
Figure pat00029
)은 회전관성 공식 및 평행축 정리 등을 이용하여 계산할 수 있다.The step of calculating the angular momentum and rotational inertia (S209) may be a step of calculating the angular momentum and rotational inertia of the robot based on equations related to classical mechanics such as Newton's law of motion. The torque value is calculated from the equation of motion of the rotary inverted pendulum, and the rotational inertia (
Figure pat00028
) can be calculated. Angular momentum (
Figure pat00029
) can be calculated using the rotational inertia formula and the parallel axis theorem.

제어 파라미터를 계산하는 단계(S210)는 전술한 로직을 통해 획득한 파라미터들을 결정하고, 학습의 종료 여부를 결정하는 단계일 수 있다.Calculating the control parameters (S210) may be a step of determining the parameters obtained through the above-described logic and determining whether to end learning.

로봇의 동작을 제어하는 단계(S211)는 확정된 파라미터들을 기초로 획득된 로봇상태값에 대응하는 로봇제어신호를 생성 및 전달하여 로봇의 동작을 제어하는 단계일 수 있다.Controlling the operation of the robot (S211) may be a step of controlling the operation of the robot by generating and transmitting a robot control signal corresponding to the obtained robot state value based on the determined parameters.

도 8은 본 발명의 일 실시예에 따른 세그웨이의 제어신호 생성 방법을 설명하는 순서도이다.8 is a flowchart illustrating a method of generating a control signal for a Segway according to an embodiment of the present invention.

도 8을 참조하면, 세그웨이의 주행상태를 판단하고 제어하는 방법(300)은 세그웨이의 주행데이터를 수집하는 단계(S301), 주행데이터에 기초하여 바퀴의 스핀여부를 판단하는 단계(S302), 세그웨이의 주행과정에서 발생하는 외란 발생여부를 판단하는 단계(S303), 세그웨이 제어로직을 수행하는 단계(S304), 세그웨이의 모터 제어신호를 생성하여 모터의 구동을 제어하는 단계(S305) 등을 포함할 수 있다. Referring to FIG. 8, the method 300 for determining and controlling the driving state of the Segway includes collecting driving data of the Segway (S301), determining whether a wheel spins based on the driving data (S302), and Determining whether a disturbance occurs during the driving process (S303), performing the Segway control logic (S304), generating a motor control signal of the Segway to control the driving of the motor (S305), etc. can

세그웨이의 주행데이터를 수집하는 단계(S301)는 세그웨이의 주행 과정에서 발생하는 데이터들을 수집하는 단계일 수 있다. 센서들을 통해 수집된 데이터들은 세그웨이의 주행상태를 정의하고 제어하기 위한 파라미터의 형태로 연산될 수 있다.The step of collecting driving data of the Segway (S301) may be a step of collecting data generated during the driving process of the Segway. Data collected through the sensors can be calculated in the form of parameters to define and control the driving state of the Segway.

주행데이터는 세그웨이의 각속도값과 가속도값을 포함하는 관성데이터, 세그웨이의 바퀴별 회전각도값을 포함하는 회전데이터 등의 다양한 데이터 세트를 포함할 수 있다. 예를 들어, 세그웨이의 바퀴에 구동력을 제공하는 모터가 허브모터인 경우, 허브 축을 기준으로 모터의 회전속도, 회전가속도 등의 데이터를 획득할 수 있다. 또한, 모터의 출력데이터를 기 설정된 알고리즘에 적용하여 별도의 변환된 데이터를 획득할 수 있다.The driving data may include various data sets, such as inertia data including angular velocity values and acceleration values of the Segway, and rotation data including rotation angle values for each wheel of the Segway. For example, if the motor providing driving force to the wheels of the Segway is a hub motor, data such as rotational speed and rotational acceleration of the motor may be obtained based on the axis of the hub. In addition, separate converted data may be obtained by applying the output data of the motor to a preset algorithm.

주행데이터에 기초하여 바퀴의 스핀여부를 판단하는 단계(S302)는 획득된 주행데이터에 기초하여 세그웨이 바퀴의 스핀 여부를 판단하는 단계일 수 있다. 세그웨이 바퀴의 스핀 여부가 발생하는 경우에는 획득된 주행데이터들의 정합성이나 상관관계가 부정확해지게 되므로, 주행 모델링의 단순화 및 정확도 향상을 위해 세그웨이 바퀴의 스핀 여부를 우선적으로 결정할 수 있다.Determining whether the wheel spins based on the driving data (S302) may be a step of determining whether the wheels of the Segway spin based on the acquired driving data. If the Segway wheels spin or not, the consistency or correlation of the acquired driving data becomes inaccurate. Therefore, to simplify driving modeling and improve accuracy, it is possible to first determine whether or not the Segway wheels spin.

세그웨이 바퀴의 스핀이 존재하지 않는다고 판단된 경우에만 파라미터 계산 및 세그웨이 주행상태값 계산을 위한 단계로 넘어갈 수 있다.Only when it is determined that the spin of the wheels of the Segway does not exist, a step for calculating parameters and calculating Segway driving state values may be performed.

일 실시예에 따른 세그웨이는 바퀴의 회전각 변위를 측정하는 엔코더, 엔코더가 측정한 바퀴회전수와 타켓바퀴회전수를 비교하여 바퀴의 회전을 판단하는 프로세서를 더 포함할 수 있다. The Segway according to an embodiment may further include an encoder for measuring rotational angular displacement of the wheel, and a processor for determining the rotation of the wheel by comparing the number of rotations of the wheel measured by the encoder with the number of rotations of the target wheel.

다른 실시예에 따른 세그웨이의 스핀 여부는 세그웨이의 직선이동거리 및 바퀴의 회전거리를 비교하여 결정되고, 바퀴의 회전거리가 직선이동거리 보다 큰 경우 스핀이 존재하는 것으로 판단할 수 있다.Whether or not the Segway spins according to another embodiment is determined by comparing the straight-line travel distance of the Segway and the rotational distance of the wheel, and when the rotational distance of the wheel is greater than the straight-line travel distance, it can be determined that spin exists.

세그웨이의 주행과정에서 발생하는 외란 발생여부를 판단하는 단계(S303)는 세그웨이의 주행과정에서 발생하는 질량(m) 또는 회전관성(I) 등의 데이터 변화값을 모니터링하여 외란 발생여부를 판단하는 단계일 수 있다. 이 과정에서 기 설정된 제어 알고리즘을 수행하거나, 기준치를 초과하는 변화값에 대해서 외란의 발생이라고 판단할 수 있다.Determining whether a disturbance occurs during the driving process of the Segway (S303) is a step of determining whether a disturbance occurs by monitoring data change values such as mass (m) or rotational inertia (I) generated during the driving process of the Segway. can be In this process, a preset control algorithm may be performed, or a change value exceeding a reference value may be determined to be the occurrence of a disturbance.

또한, 외란의 발생 여부의 판단 과정에서 탑승자의 무게를 제외하고, 세그웨이 자체의 무게를 기준으로 외란을 판단할 수 있다.In addition, in the process of determining whether a disturbance has occurred, the disturbance may be determined based on the weight of the Segway itself, excluding the weight of the occupant.

세그웨이 제어로직을 수행하는 단계(S304)는 바퀴의 스핀이 발생하지 않는 경우에 세그웨이상태값을 계산하고, 타겟세그웨이상태값과 비교하는 제어로직을 적용하여 데이터 학습을 수행하는 단계일 수 있다.The step of performing the Segway control logic (S304) may be a step of performing data learning by applying a control logic that calculates the Segway state value and compares it with the target Segway state value when the wheel does not spin.

필요에 따라, 세그웨이 제어로직을 수행하는 단계 이전에 세그웨이의 역학적 모델링을 수행하고, 모델링에 필요한 파라미터를 추출하는 단계를 미리 수행할 수 있다. 학습 알고리즘에 사용되는 파라미터의 수에 따라 연산 자유도가 증가하게 되므로, 기 설정된 범위 이내의 개수로 파라미터의 수를 제한할 수 있다.If necessary, the steps of performing dynamic modeling of the Segway and extracting parameters necessary for modeling may be previously performed before the step of performing the Segway control logic. Since the degree of freedom of operation increases according to the number of parameters used in the learning algorithm, the number of parameters may be limited to a number within a preset range.

제어로직은 사용자의 입력 목표치에 대응하는 타겟세그웨이상태값과 현재 상태의 세그웨이상태값을 비교하고, 설정된 순서에 따라 파라미터들을 계산하는 단계일 수 있다.The control logic may be a step of comparing a target Segway state value corresponding to a user's input target value with a current Segway state value, and calculating parameters according to a set order.

제어로직은 데이터 정확도 향상을 위해 파라미터들의 업데이트를 반복적으로 수행할 수 있고, 기 설정된 목표 편차 또는 목표 비율에 도달할 때까지 학습을 반복할 수 있다.The control logic may repeatedly update parameters to improve data accuracy, and may repeat learning until a predetermined target deviation or target ratio is reached.

또한, 제어로직은 세그웨이상태값과 타겟세그웨이상태값의 차이가 존재하는 것으로 판단된 경우, 세그웨이상태값을 이터레이션(Iteration) 방식으로 반복 계산하여 타겟세그웨이상태값으로 수렴하도록 강화학습할 수 있다. 예를 들어, 획득된 출력값의 전부 또는 일부가 입력데이터로 활용되는 순환 방식의 이터레이션을 수행할 수 있다.In addition, when it is determined that there is a difference between the Segway state value and the target Segway state value, the control logic may perform reinforcement learning to converge to the target Segway state value by repeatedly calculating the Segway state value in an iteration method. For example, a circular iteration may be performed in which all or part of the acquired output values are used as input data.

세그웨이의 모터 제어신호를 생성하여 모터의 구동을 제어하는 단계(S305)는 세그웨이 모터 제어신호에 따라 모터의 구동을 동시에 또는 이시에 제어하는 단계일 수 있다. 세그웨이의 운동 상태-예를 들어, 직선운동 또는 회전운동-에 따라 모터의 구동은 독립적으로 제어될 수 있다.The step of controlling driving of the motor by generating a motor control signal of the Segway (S305) may be a step of simultaneously or simultaneously controlling the driving of the motor according to the Segway motor control signal. Depending on the motion state of the Segway (for example, linear motion or rotational motion), driving of the motor may be independently controlled.

위와 같은 방법을 통해 세그웨이의 동작 과정에서 필요한 방향, 속도 등의 파라미터를 일정하게 유지하는 셀프밸런싱 기능을 수행할 수 있고, 탑승자의 지속적인 조작 없이 자율적으로 파라미터를 업데이트하여 세그웨이 동작을 제어하는 자율주행 기능을 구현할 수 있다.Through the above method, it is possible to perform a self-balancing function that keeps parameters such as direction and speed constant during the operation of the Segway, and an autonomous driving function that controls the operation of the Segway by autonomously updating the parameters without continuous manipulation by the rider. can be implemented.

본 발명의 기술적 사상에 따른 세그웨이 주행상태 제어 방법(300)은 도 8의 순서 및 단계에 제한되지 않고, 각 단계의 순서 중 일부는 생략되거나, 각 단계의 순서는 변경될 수 있다.The Segway driving state control method 300 according to the technical concept of the present invention is not limited to the order and steps of FIG. 8, and some of the order of each step may be omitted or the order of each step may be changed.

Claims (16)

강화학습 기반의 세그웨이형 로봇 주행상태 제어 시스템에 있어서,
상기 로봇의 IMU 센서가 측정한 관성데이터 및 상기 로봇의 인코더가 측정한 모터의 회전데이터를 포함하는 주행데이터를 수집하는 주행데이터 수집부;
상기 주행정보 수집부에서 획득한 상기 주행데이터로 로봇상태값을 계산하고, 타겟로봇상태값와 비교하는 강화학습을 수행하는 제어로직 연산부; 및
상기 제어로직 연산부에서 획득한 상기 로봇상태값을 기초로 로봇의 주행조건을 제어하는 로봇제어신호를 생성하는 로봇주행 제어부를 포함하는, 로봇 주행상태 제어 시스템.
In the reinforcement learning-based Segway-type robot driving state control system,
a travel data collection unit that collects travel data including inertia data measured by an IMU sensor of the robot and rotation data of a motor measured by an encoder of the robot;
a control logic operation unit that calculates a robot state value with the driving data obtained from the driving information collection unit and performs reinforcement learning to compare the value with a target robot state value; and
and a robot driving control unit generating a robot control signal for controlling a driving condition of the robot based on the robot state value obtained from the control logic operation unit.
제1항에 있어서,
상기 로봇은 세그웨이이고, 상기 관성데이터는 상기 로봇의 x축, y축, z축에 대한 각속도값과 가속도값을 포함하고, 상기 회전데이터는 상기 로봇의 바퀴별 회전각도값을 포함하고,
상기 관성데이터를 기반으로 상기 로봇의 자세를 인식하며, 상기 회전데이터를 기반으로 바퀴의 움직임을 인식하는, 로봇 주행상태 제어 시스템.
According to claim 1,
The robot is a Segway, the inertial data includes angular velocity values and acceleration values with respect to the x-axis, y-axis, and z-axis of the robot, and the rotation data includes rotation angle values for each wheel of the robot;
A robot driving state control system for recognizing a posture of the robot based on the inertia data and recognizing a movement of a wheel based on the rotation data.
제2항에 있어서,
상기 제어로직 연산부는 상기 로봇의 직선운동 가속도값(a)를 입력값으로 두어 상기 로봇의 질량값(m) 및 회전관성값(I)을 계산하여 상기 로봇상태값을 획득하는, 로봇 주행상태 제어 시스템.
According to claim 2,
The control logic calculator calculates the mass value (m) and rotational inertia value (I) of the robot by taking the linear motion acceleration value (a) of the robot as an input value to obtain the robot state value. system.
제1항에 있어서,
상기 강화학습은 획득된 로봇상태값과 기 설정된 타겟로봇상태값의 차이값을 계산하고, 상기 차이값이 0 또는 기준 범위 이내라고 인정되는 경우에 학습을 종료하며, 상기 차이값이 기준 범위를 벗어난 경우에는 상기 로봇상태값을 업데이트하는, 로봇 주행상태 제어 시스템.
According to claim 1,
The reinforcement learning calculates the difference between the acquired robot state value and the preset target robot state value, and ends the learning when the difference value is recognized as 0 or within a reference range, and the difference value is outside the reference range. In this case, the robot driving state control system updates the robot state value.
제1항에 있어서,
상기 강화학습은 시뮬레이션 프로그램에 의해 수행되거나, 또는 사용자 단말기가 전달하는 로봇상태추정값을 수신하여 수행되는, 로봇 주행상태 제어 시스템.
According to claim 1,
The reinforcement learning is performed by a simulation program or by receiving a robot state estimation value transmitted by a user terminal, the robot driving state control system.
제1항에 있어서,
상기 로봇상태값은 로봇의 질량, 회전관성, 기울기, 기울기변화량, 속도, 가속도, 바퀴의 토크 및 바퀴의 각속도 중 하나 이상을 포함하는, 로봇 주행상태 제어 시스템.
According to claim 1,
The robot state value includes at least one of mass, rotational inertia, inclination, tilt variation, speed, acceleration, torque of wheels, and angular velocity of wheels of the robot.
제1항에 있어서,
상기 제어로직 연산부는 로봇의 좌우 바퀴의 속도 합을 통해 직선운동 속도데이터를 획득하고, 로봇의 좌우 바퀴의 속도 차를 통해 회전운동 속도데이터를 획득하여 상기 로봇상태값을 추정하는, 로봇 주행상태 제어 시스템.
According to claim 1,
The control logic calculation unit obtains linear motion speed data through the sum of the speeds of the left and right wheels of the robot, obtains rotational motion speed data through the speed difference between the left and right wheels of the robot, and estimates the robot state value. system.
제1항에 있어서,
상기 제어로직 연산부가 계산한 로봇상태값에 대응되는 로봇제어신호를 모터드라이버로 전송하여 모터의 동작을 제어하는 로봇주행 제어부를 더 포함하는, 로봇 주행상태 제어 시스템.
According to claim 1,
The robot driving state control system further comprising a robot driving control unit for controlling the operation of the motor by transmitting a robot control signal corresponding to the robot state value calculated by the control logic operation unit to the motor driver.
세그웨이의 주행상태를 판단하고 제어하는 방법에 있어서,
세그웨이의 주행데이터를 수집하는 단계;
상기 주행데이터에 기초하여 바퀴의 스핀여부를 판단하는 단계;
상기 바퀴의 스핀이 발생하지 않는 경우에 세그웨이상태값을 계산하고, 타겟세그웨이상태값과 비교하는 제어로직을 수행하는 단계; 및
상기 세그웨이상태값에 대응되도록 모터의 구동을 제어하는 단계를 포함하는, 세그웨이 주행상태 제어 방법.
In the method for determining and controlling the driving state of the Segway,
Collecting driving data of the Segway;
determining whether a wheel spins based on the driving data;
performing control logic for calculating a Segway state value and comparing it with a target Segway state value when the spin of the wheel does not occur; and
and controlling driving of a motor to correspond to the Segway state value.
제9항에 있어서,
상기 세그웨이는 주행데이터를 수집하는 센서들을 포함하고,
상기 주행데이터는 세그웨이의 각속도값과 가속도값을 포함하는 관성데이터 및 상기 세그웨이의 바퀴별 회전각도값을 포함하는 회전데이터를 포함하는, 세그웨이 주행상태 제어 방법.
According to claim 9,
The Segway includes sensors that collect driving data,
The driving data includes inertia data including angular velocity values and acceleration values of the Segway and rotation data including rotation angle values for each wheel of the Segway.
제9항에 있어서,
상기 세그웨이는 상기 바퀴의 회전각 변위를 측정하는 인코더; 및
상기 인코더가 측정한 바퀴회전수와 타켓바퀴회전수를 비교하여 바퀴의 회전을 판단하는 프로세서를 더 포함하는, 세그웨이 주행상태 제어 방법.
According to claim 9,
The Segway includes an encoder for measuring rotational angular displacement of the wheel; and
The Segway driving state control method further comprises a processor for determining the rotation of the wheel by comparing the number of wheel rotations measured by the encoder with the number of target wheel rotations.
제9항에 있어서,
상기 바퀴의 스핀여부는 직선이동거리 및 바퀴의 회전거리를 비교하여 결정되고, 바퀴의 회전거리가 직선이동거리 보다 큰 경우 스핀이 존재하는 것으로 판단하는, 세그웨이 주행상태 제어 방법.
According to claim 9,
Whether or not the wheel spins is determined by comparing the linear movement distance and the rotational distance of the wheel, and determining that spin exists when the rotational distance of the wheel is greater than the linear movement distance.
제9항에 있어서,
상기 세그웨이는 상기 바퀴의 구동력을 제공하는 허브모터; 및
상기 허브모터의 출력데이터를 기 설정된 알고리즘에 적용하여 가속도데이터를 획득하는 프로세서를 더 포함하는, 세그웨이 주행상태 제어 방법.
According to claim 9,
The Segway includes a hub motor providing driving force to the wheels; and
The Segway driving state control method further comprises a processor for obtaining acceleration data by applying output data of the hub motor to a preset algorithm.
제9항에 있어서,
상기 세그웨이의 주행과정에서 발생하는 질량(m) 또는 회전관성(I) 변화로 외란 발생여부를 판단하는 제어 알고리즘을 수행하는 단계를 더 포함하는, 세그웨이 주행상태 제어 방법.
According to claim 9,
The Segway driving state control method further comprising the step of performing a control algorithm for determining whether a disturbance occurs based on a change in mass (m) or rotational inertia (I) generated during the driving process of the Segway.
제9항에 있어서,
상기 세그웨이상태값과 상기 타겟세그웨이상태값의 차이가 존재하는 것으로 판단된 경우, 상기 세그웨이상태값을 이터레이션(Iteration)하여 타겟세그웨이상태값으로 수렴하도록 강화학습하는, 세그웨이 주행상태 제어 방법.
According to claim 9,
When it is determined that there is a difference between the Segway state value and the target Segway state value, reinforcement learning is performed to converge to the target Segway state value by iterating over the Segway state value.
제9항에 있어서,
상기 세그웨이상태값에 대응되는 모터제어신호를 모터 드라이버로 전달하여 상기 바퀴의 구동을 개별적으로 제어하는, 세그웨이 주행상태 제어 방법.
According to claim 9,
The Segway driving state control method of individually controlling driving of the wheels by transmitting a motor control signal corresponding to the Segway state value to a motor driver.
KR1020210173945A 2021-12-07 2021-12-07 Segway Robot Based on Reinforcement Learning and Its Method for Motion Control KR102635657B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210173945A KR102635657B1 (en) 2021-12-07 2021-12-07 Segway Robot Based on Reinforcement Learning and Its Method for Motion Control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210173945A KR102635657B1 (en) 2021-12-07 2021-12-07 Segway Robot Based on Reinforcement Learning and Its Method for Motion Control

Publications (2)

Publication Number Publication Date
KR20230085609A true KR20230085609A (en) 2023-06-14
KR102635657B1 KR102635657B1 (en) 2024-02-08

Family

ID=86745087

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210173945A KR102635657B1 (en) 2021-12-07 2021-12-07 Segway Robot Based on Reinforcement Learning and Its Method for Motion Control

Country Status (1)

Country Link
KR (1) KR102635657B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118170035A (en) * 2024-05-16 2024-06-11 南昌大学 Self-balancing robot design method and system based on deep learning

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100772915B1 (en) * 2006-07-05 2007-11-05 삼성전자주식회사 Apparatus and method for correcting bias of gyroscope on a moving robot

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100772915B1 (en) * 2006-07-05 2007-11-05 삼성전자주식회사 Apparatus and method for correcting bias of gyroscope on a moving robot

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Design of an anti-slip control system of a Segway RMP 50 omni platform,R.J. (Robin) Lieftink,2017.07.31.,UNIVERSITY OF TWENTE STUDENT THESES* *
Reinforcement Learning for Position Control Problem of a Mobile Robot, Gonzalo Farias et al.,2020.08.19.,IEEE Access ( Volume: 8)* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118170035A (en) * 2024-05-16 2024-06-11 南昌大学 Self-balancing robot design method and system based on deep learning

Also Published As

Publication number Publication date
KR102635657B1 (en) 2024-02-08

Similar Documents

Publication Publication Date Title
JP4170284B2 (en) Method and system for estimating moving direction of moving object
Nawawi et al. Real-time control of a two-wheeled inverted pendulum mobile robot
EP2856273B1 (en) Pose estimation
JP2020536014A (en) Systems and methods for controlling the vehicle
KR102279362B1 (en) Wind measurement using a multicopter
JP2007086076A (en) Correction method and correcting apparatus of gyroscope sensor
KR20150006592A (en) Mobile robot having function estimating friction coefficient and method of estimating the same
CN108121334A (en) A kind of self-balance robot motion control method and device
KR102635657B1 (en) Segway Robot Based on Reinforcement Learning and Its Method for Motion Control
KR101226767B1 (en) System and Method for localizationing of Autonomous Vehicle
JP7053087B1 (en) Mobile behavior information acquisition method, mobile behavior information acquisition device and program
Bazhenov et al. Software for the mobile robot spatial orientation system
CN103391871B (en) For the method and apparatus determining the obliquity of vehicle
CN112577512A (en) State quantity error determination method based on wheel speed fusion and vehicle-mounted terminal
Zunaidi et al. Positioning system for 4-wheel mobile robot: encoder, gyro and accelerometer data fusion with error model method
CN115826583A (en) Automatic driving vehicle formation method based on point cloud map
Çoçoli et al. A comparative analysis of sensor fusion algorithms for miniature imu measurements
CN115727871A (en) Track quality detection method and device, electronic equipment and storage medium
KR20230123060A (en) Robot monitoring apparatus and robot monitoring method
Baranek et al. Model-based attitude estimation for multicopters
CN112632803A (en) Tracking control method and device, electronic equipment and storage medium
Marques et al. Autonomous robot for mapping using ultrasonic sensors
CN106842927B (en) Control parameter adjusting method and device and double-wheel self-balancing robot
KR20070033248A (en) Gyro sensor calibration method and device
Lamon 3D position tracking for all-terrain robots

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant