KR102506496B1 - Kinetic Display Controller - Google Patents

Kinetic Display Controller Download PDF

Info

Publication number
KR102506496B1
KR102506496B1 KR1020210070271A KR20210070271A KR102506496B1 KR 102506496 B1 KR102506496 B1 KR 102506496B1 KR 1020210070271 A KR1020210070271 A KR 1020210070271A KR 20210070271 A KR20210070271 A KR 20210070271A KR 102506496 B1 KR102506496 B1 KR 102506496B1
Authority
KR
South Korea
Prior art keywords
motion data
motion
buffer
motor
controller
Prior art date
Application number
KR1020210070271A
Other languages
Korean (ko)
Other versions
KR20220161931A (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 KR1020210070271A priority Critical patent/KR102506496B1/en
Publication of KR20220161931A publication Critical patent/KR20220161931A/en
Application granted granted Critical
Publication of KR102506496B1 publication Critical patent/KR102506496B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 키네틱 디스플레이 장치의 실감성 및 시각적 유연성을 보강하기 위해 다축 동시 제어 및 연속적인 모션 수행이 가능한 키네틱 디스플레이 콘트롤러에 관한 것으로,
본 발명의 실시예에 따른 키네틱 디스플레이 콘트롤러는,
연출하고자 하는 콘텐츠에 대응하는 복수개의 모션 데이터들을 생성하고, 생성된 복수개의 모션 데이터들을 버퍼 사이즈에 맞도록 분할하는 모션 콘트롤러; 복수개의 버퍼와 RTOS(Real Time OS)를 포함하며, 상기 복수개의 버퍼 각각에, 상기 모션 콘트롤러에서 생성 분할된 모션 데이터들을 수신하고, 수신된 모션 데이터들에 따라 슬래이브를 구성하는 복수의 모터를 구동 제어하기 위한 제어 신호를 생성하는 이더캣 마스터; 모터와 상기 모터를 구동하기 위한 모터 드라이버를 포함하며, 상기 이더캣 마스터로부터 상기 제어 신호를 수신하고, 수신된 제어 신호에 따라 상기 모터를 구동하는 슬래이브;를 포함한다.
The present invention relates to a kinetic display controller capable of performing multi-axis simultaneous control and continuous motion in order to reinforce the realism and visual flexibility of a kinetic display device,
A kinetic display controller according to an embodiment of the present invention,
a motion controller that generates a plurality of pieces of motion data corresponding to content to be presented and divides the pieces of motion data to fit the size of the buffer; It includes a plurality of buffers and a Real Time OS (RTOS), receives motion data generated and divided by the motion controller in each of the plurality of buffers, and a plurality of motors constituting a slave according to the received motion data. an EtherCAT master that generates a control signal for driving control; A slave including a motor and a motor driver for driving the motor, receiving the control signal from the EtherCAT master, and driving the motor according to the received control signal.

Description

키네틱 디스플레이 콘트롤러 {Kinetic Display Controller}Kinetic Display Controller {Kinetic Display Controller}

본 발명은 키네틱 디스플레이 장치의 실감성 및 시각적 유연성을 보강하기 위해 다축 동시 제어 및 연속적인 모션 수행이 가능한 키네틱 디스플레이 콘트롤러에 관한 것이다. The present invention relates to a kinetic display controller capable of performing multi-axis simultaneous control and continuous motion in order to reinforce the sense of reality and visual flexibility of a kinetic display device.

최근, 문화 시설 및 공연 분야에서 소비자와 상호 작용이 가능한 신개념의 실감형 디지털 문화 콘텐츠 산업이 성장하고 있다. 대표적인 사례로 다축의 키네틱 모듈이 구동되면서 입체 디지털 디스플레이를 구현하는 키네틱 디스플레이 장치가 각광 받고 있다.Recently, a new concept of immersive digital cultural contents industry that can interact with consumers in the field of cultural facilities and performances is growing. As a typical example, a kinetic display device that implements a three-dimensional digital display by driving a multi-axis kinetic module is in the limelight.

이러한 키네틱 디스플레이 장치와 관련하여, 한국공개특허 10-2018-0134720호는 키넥트 기반 인터랙티브 모션을 구축하기 위한 방법을 제시하고 있으나, 실제로 각 모듈을 움직이는 제어 구조에 대해서는 개시하고 있지 않다.Regarding such a kinetic display device, Korean Patent Publication No. 10-2018-0134720 suggests a method for constructing Kinect-based interactive motion, but does not disclose a control structure for actually moving each module.

또한, 한국공개특허 10-2020-0065461호는 키네틱 센서에 의한 모터 제어 솔루션을 제시하고 있으나, point to point 방식의 간단한 모션만 구현할 수 있을 뿐, 연속적인 모션을 구현할 수 없는 문제가 있다.In addition, Korean Patent Publication No. 10-2020-0065461 suggests a motor control solution by a kinetic sensor, but there is a problem in that only simple motion of a point-to-point method can be implemented, and continuous motion cannot be implemented.

1. 한국공개특허 10-2018-0134720호1. Korean Patent Publication No. 10-2018-0134720 2. 한국공개특허 10-2020-0065461호2. Korean Patent Publication No. 10-2020-0065461

본 발명은 키네틱 디스플레이 장치의 실감성 및 시각적 유연성을 보강하기 위해 다축 동시 제어 및 연속적인 모션 수행이 가능한 키네틱 디스플레이 콘트롤러를 제공하는 것을 목적으로 한다.An object of the present invention is to provide a kinetic display controller capable of performing multi-axis simultaneous control and continuous motion in order to reinforce the sense of reality and visual flexibility of a kinetic display device.

본 발명의 실시예에 따른 키네틱 디스플레이 콘트롤러는,A kinetic display controller according to an embodiment of the present invention,

연출하고자 하는 콘텐츠에 대응하는 복수개의 모션 데이터들을 생성하고, 생성된 복수개의 모션 데이터들을 버퍼 사이즈에 맞도록 분할하는 모션 콘트롤러; 복수개의 버퍼와 RTOS(Real Time OS)를 포함하며, 상기 복수개의 버퍼 각각에, 상기 모션 콘트롤러에서 생성 분할된 모션 데이터들을 수신하고, 수신된 모션 데이터들에 따라 슬래이브를 구성하는 복수의 모터를 구동 제어하기 위한 제어 신호를 생성하는 이더캣 마스터; 모터와 상기 모터를 구동하기 위한 모터 드라이버를 포함하며, 상기 이더캣 마스터로부터 상기 제어 신호를 수신하고, 수신된 제어 신호에 따라 상기 모터를 구동하는 슬래이브;를 포함한다.a motion controller that generates a plurality of pieces of motion data corresponding to content to be presented and divides the pieces of motion data to fit the size of the buffer; It includes a plurality of buffers and a Real Time OS (RTOS), receives motion data generated and divided by the motion controller in each of the plurality of buffers, and a plurality of motors constituting a slave according to the received motion data. an EtherCAT master that generates a control signal for driving control; A slave including a motor and a motor driver for driving the motor, receiving the control signal from the EtherCAT master, and driving the motor according to the received control signal.

본 발명의 실시예에 따른 키네틱 디스플레이 콘트롤러에 있어서, 상기 모션 콘트롤러에서 생성 분할된 모션 데이터들을 일시 저장하는 공유 메모리를 더 포함하며, 상기 공유 메모리는, 상기 모션 콘트롤러의 일 구성이거나, 또는 상기 이더캣 마스터의 일 구성이거나, 또는 상기 모션 콘트롤러와 상기 이더캣 마스터 사이의 가상 공간으로 구현될 수 있다. The kinetic display controller according to an embodiment of the present invention further includes a shared memory for temporarily storing motion data generated and divided by the motion controller, wherein the shared memory is a component of the motion controller or the EtherCAT. It may be a component of the master, or may be implemented as a virtual space between the motion controller and the EtherCAT master.

본 발명의 실시예에 따른 키네틱 디스플레이 콘트롤러에 있어서, 상기 모션 콘트롤러는, 상기 복수개의 모션 데이터들을 생성하는 궤적 생성부를 포함하며, 상기 궤적 생성부는, 큐빅 스플라인 알고리즘(cubic spline algorithm)에 기반하여 상기 복수개의 모션 데이터들을 생성할 수 있다. In the kinetic display controller according to an embodiment of the present invention, the motion controller includes a trajectory generator for generating the plurality of motion data, and the trajectory generator generates the plurality of motion data based on a cubic spline algorithm. Two pieces of motion data may be generated.

본 발명의 실시예에 따른 키네틱 디스플레이 콘트롤러에 있어서, 상기 모션 콘트롤러는, 상기 큐빅 스플라인 알고리즘을 이용하여 생성된 복수개의 모션 데이터들을 n세트의 모션 데이터로 분할하는 스플리터를 포함한다.In the kinetic display controller according to an embodiment of the present invention, the motion controller includes a splitter that divides a plurality of motion data generated using the cubic spline algorithm into n sets of motion data.

본 발명의 실시예에 따른 키네틱 디스플레이 콘트롤러에 있어서, 상기 복수개의 버퍼는 큐(Queue) 구조로 구성되며, 어느 하나의 버퍼에 저장된 모션 데이터가 상기 RTOS로 전달되면 해당 버퍼는 비워진다.In the kinetic display controller according to an embodiment of the present invention, the plurality of buffers are configured in a queue structure, and when motion data stored in one buffer is transferred to the RTOS, the corresponding buffer is emptied.

기타 본 발명의 다양한 측면에 따른 구현예들의 구체적인 사항은 이하의 상세한 설명에 포함되어 있다.Other specific details of implementations according to various aspects of the present invention are included in the detailed description below.

본 발명의 실시 형태에 따르면, 모션 데이터의 누수를 방지할 수 있으므로, 다축 동시 제어 및 연속적인 모션 수행이 가능하게 된다.According to an embodiment of the present invention, since leakage of motion data can be prevented, simultaneous multi-axis control and continuous motion can be performed.

도 1은 본 발명의 일 실시예에 따른 키네틱 디스플레이 콘트롤러가 도시된 도면이다.
도 2는 본 발명에서 모션 데이터를 생성하기 위해 사용되는 큐빅 스플라인 알고리즘이 예시된 도면이다.
도 3은 궤적 생성부에서 모션 데이터를 분할하는 과정을 예시하는 도면이다.
도 4는 분할된 모션 데이터가 슬래이브의 모터 드라이버로 전달되는 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 키네틱 디스플레이 콘트롤러의 동작 결과를 설명하기 위한 도면이다.
도 6은 종래 기술에 따른 모터의 움직임을 설명하기 위한 도면이다.
1 is a diagram illustrating a kinetic display controller according to an embodiment of the present invention.
2 is a diagram illustrating a cubic spline algorithm used to generate motion data in the present invention.
3 is a diagram illustrating a process of segmenting motion data in a trajectory generator.
4 is a diagram for explaining a process of transferring divided motion data to a motor driver of a slave.
5 is a diagram for explaining an operation result of a kinetic display controller according to an embodiment of the present invention.
6 is a diagram for explaining movement of a motor according to the prior art.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예를 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can apply various transformations and have various embodiments, specific embodiments will be exemplified and described in detail in the detailed description. However, it should be understood that this is not intended to limit the present invention to specific embodiments, and includes all transformations, equivalents, and substitutes included in the spirit and scope of the present invention.

본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 발명에서, '포함하다' 또는 '가지다' 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 이하, 도면을 참조하여 본 발명의 실시예에 따른 키네틱 디스플레이 콘트롤러를 설명한다.Terms used in the present invention are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In the present invention, terms such as 'include' or 'having' are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded. Hereinafter, a kinetic display controller according to an embodiment of the present invention will be described with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른 키네틱 디스플레이 콘트롤러가 도시된 도면이고, 도 2는 본 발명에서 모션 데이터를 생성하기 위해 사용되는 큐빅 스플라인 알고리즘이 예시된 도면이며, 도 3은 궤적 생성부에서 모션 데이터를 분할하는 과정을 예시하는 도면이고, 도 4는 분할된 모션 데이터가 슬래이브의 모터 드라이버로 전달되는 과정을 설명하기 위한 도면이며, 도 5는 본 발명의 일 실시예에 따른 키네틱 디스플레이 콘트롤러의 동작 결과를 설명하기 위한 도면이고, 도 6은 종래 기술에 따른 모터의 움직임을 설명하기 위한 도면이다.1 is a diagram showing a kinetic display controller according to an embodiment of the present invention, FIG. 2 is a diagram illustrating a cubic spline algorithm used to generate motion data in the present invention, and FIG. A diagram illustrating a process of dividing motion data, FIG. 4 is a diagram for explaining a process of transmitting divided motion data to a motor driver of a slave, and FIG. 5 is a kinetic display controller according to an embodiment of the present invention. 6 is a diagram for explaining the motion of a motor according to the prior art.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 키네틱 디스플레이 콘트롤러는, 모션 콘트롤러(100), 이더캣 마스터(200, EtherCAT Master), 슬래이브(300, Slave)를 포함한다.As shown in FIG. 1 , the kinetic display controller according to an embodiment of the present invention includes a motion controller 100, an EtherCAT master 200, and a slave 300.

모션 콘트롤러(100)는 본 발명의 키네틱 디스플레이 콘트롤러의 최상위 제어기로, 연출하고자 하는 콘텐츠에 대응하는 복수개의 모션 데이터들을 생성하고 저장할 수 있으며, 키네틱 디스플레이 콘트롤러의 전체적인 움직임을 제어할 수 있다.The motion controller 100 is a top-level controller of the kinetic display controller of the present invention, and can generate and store a plurality of motion data corresponding to content to be presented, and can control the overall movement of the kinetic display controller.

모션 콘트롤러(100)는 모션 데이터들을 생성하는 궤적 생성부(110, trajectory generator)를 포함한다. The motion controller 100 includes a trajectory generator 110 that generates motion data.

궤적 생성부(110)는 큐빅 스플라인 알고리즘(cubic spline algorithm)에 기반하여 복수개의 모션 데이터들을 생성한다. 큐빅 스플라인 알고리즘은, 도 2에 예시된 바와 같은 알고리즘으로, 서로 떨어져 있는 두 점 사이를 매끄럽게 연결한다. The trajectory generating unit 110 generates a plurality of motion data based on a cubic spline algorithm. The cubic spline algorithm is an algorithm as illustrated in FIG. 2 and smoothly connects two points apart from each other.

궤적 생성부(110)는 스플리터(111, spliter)를 포함한다. 스플리터(111)는 큐빅 스플라인 알고리즘을 이용하여 생성된 복수개의 모션 데이터들을, 후술하는 복수개의 버퍼 사이즈에 맞도록 분할한다. The trajectory generator 110 includes a splitter 111. The splitter 111 divides a plurality of motion data generated using a cubic spline algorithm to fit into a plurality of buffer sizes described later.

소정 기간 동안의 모션 데이터들은 스플리터(111)에 의해 n세트의 모션 데이터(T0, T1, T2, ??Tn)로 분할될 수 있다. Motion data for a predetermined period of time may be divided into n sets of motion data (T0, T1, T2, ??Tn) by the splitter 111.

예를 들어, 도 3에 도시된 바와 같이, 궤적 생성부(110)에 의해 10초 간의 10,000개의 모션 데이터들이 생성되고, 이들 모션 데이터들은 스플리터(111)에 의해 1초 간격으로 1,000개의 모션 데이터로 분할될 수 있다. 이 경우, 10개 세트의 모션 데이터로 분할된다.For example, as shown in FIG. 3, 10,000 pieces of motion data for 10 seconds are generated by the trajectory generator 110, and these motion data are converted into 1,000 pieces of motion data at 1-second intervals by the splitter 111. can be divided In this case, it is divided into 10 sets of motion data.

이와 같이 분할된 모션 데이터는 공유 메모리(M)에 일시 저장된다. 공유 메모리(M)는 모션 콘트롤러(100)와 이더캣 마스터(200) 간의 모션 데이터 공유를 위한 저장 공간이다. 공유 메모리(M)는 모션 콘트롤러(100)의 일 구성이거나, 또는 이더캣 마스터(200)의 일 구성일 수 있다. 또는, 모션 콘트롤러(100)와 이더캣 마스터(200) 사이의 가상 공간으로 구현될 수 있다.The motion data thus divided is temporarily stored in the shared memory M. The shared memory M is a storage space for sharing motion data between the motion controller 100 and the EtherCAT master 200. The shared memory M may be one component of the motion controller 100 or one component of the EtherCAT master 200. Alternatively, it may be implemented as a virtual space between the motion controller 100 and the EtherCAT master 200.

이더캣 마스터(200)는 모션 콘트롤러(100)에서 생성된 모션 데이터를 수신하고, 수신된 모션 데이터에 따라 슬래이브(300)를 구성하는 복수의 모터를 구동 제어하기 위한 제어 신호를 생성한다.The EtherCAT master 200 receives motion data generated by the motion controller 100 and generates a control signal for driving and controlling a plurality of motors constituting the slave 300 according to the received motion data.

이더캣 마스터(200)는 복수개의 버퍼(210)와 RTOS(Real Time OS, 220)를 포함한다. 도면에서는, 2개의 버퍼인 것을 예시하나, 이에 한정되는 것은 아니다.The EtherCAT master 200 includes a plurality of buffers 210 and a Real Time OS (RTOS) 220. In the drawing, two buffers are exemplified, but are not limited thereto.

복수개의 버퍼(210)는 스플리터(111)에 의해 분할된 모션 데이터를 RTOS(220)에 전달하기 전에 임시로 저장한다. 복수개의 버퍼(210)는 큐(Queue) 구조로 구성되며, 어느 하나의 버퍼에 저장된 모션 데이터가 RTOS(220)로 전달되면 해당 버퍼(210)는 비워지게 된다.The plurality of buffers 210 temporarily store the motion data divided by the splitter 111 before transferring them to the RTOS 220 . The plurality of buffers 210 are configured in a queue structure, and when motion data stored in one buffer is transferred to the RTOS 220, the corresponding buffer 210 is emptied.

RTOS(220)는 임베디드 시스템에서 쓰이는 OS를 의미하며, 슬래이브(300)로 복수의 모터를 구동 제어하기 위한 제어 신호를 실시간으로 전달한다.The RTOS 220 means an OS used in an embedded system, and transmits a control signal for driving and controlling a plurality of motors to the slave 300 in real time.

슬래이브(300)는 모터(320)와 모터를 구동하기 위한 모터 드라이버(310)를 포함한다. 모터 드라이버(310)는 이더캣 마스터(200)의 RTOS(220)로부터 제어 신호를 수신하고, 수신된 제어 신호에 따라 모터(320)를 구동한다.The slave 300 includes a motor 320 and a motor driver 310 for driving the motor. The motor driver 310 receives a control signal from the RTOS 220 of the EtherCAT master 200 and drives the motor 320 according to the received control signal.

다음, 도 4를 참조하여 분할된 모션 데이터가 슬래이브(300)의 모터 드라이버(310)로 전달되는 과정을 설명한다. Next, with reference to FIG. 4 , a process of transferring divided motion data to the motor driver 310 of the slave 300 will be described.

궤적 생성부(110)에 의해 생성된 모션 데이터들은 스플리터(111)에 의해 n세트의 모션 데이터(T0, T1, T2, ??Tn)로 분할된다.The motion data generated by the trajectory generator 110 is divided into n sets of motion data T0 , T1 , T2 , ??Tn by the splitter 111 .

제k 세트의 모션 데이터(Tk, 0≤k≤n) 전송시, 버퍼(210)가 비어 있는 지 여부를 확인하고, 비어 있는 경우, 제k 세트의 모션 데이터를 공유 메모리(M)에 전송한다. 첫번째 세트의 모션 데이터(T0)부터 마지막 세트의 모션 데이터(Tn)는 동일 시간 분량(예를 들어, 모두 1초 분량)의 모션 데이터가 포함될 수 있다. 제k 세트를 전송한 후, 버퍼(210)가 비어 있는 지 여부를 확인하고, 비어 있는 경우, 제k+1 세트를 전송한다. 만약, 버퍼(210)가 비어 있지 않으면, 기설정된 시간 동안 전송 보류한다.When the kth set of motion data (Tk, 0≤k≤n) is transmitted, it is checked whether the buffer 210 is empty, and if it is empty, the kth set of motion data is transmitted to the shared memory (M). . The first set of motion data T0 to the last set of motion data Tn may include motion data of the same amount of time (eg, all of 1 second). After transmitting the kth set, it is checked whether the buffer 210 is empty, and if it is empty, the k+1th set is transmitted. If the buffer 210 is not empty, transmission is suspended for a predetermined time.

공유 메모리(M)에 일시 저장된 분할된 제k 세트의 모션 데이터는 복수의 버퍼(210) 중 어느 하나에 큐 구조로 순환되며, RTOS(220)가 제k 세트의 모션 데이터를 읽어들이면 해당 버퍼는 비워지게 되며, 공유 메모리(M)에 해당 버퍼가 비워졌다는 정보(Buffer empty)가 전달된다. The divided k-th set of motion data temporarily stored in the shared memory M is circulated in a queue structure in any one of the plurality of buffers 210, and when the RTOS 220 reads the k-th set of motion data, the corresponding buffer It is emptied, and information (Buffer empty) that the corresponding buffer is emptied is transmitted to the shared memory (M).

공유 메모리(M)에 Buffer empty 정보가 전달되면, 전송 보류 중인 세트의 모션 데이터가 공유 메모리(M)로 전송된다. 이와 같은 과정을, 마지막 세트(Tn)의 모션 데이터가 전송될 때까지 반복한다.When buffer empty information is transmitted to the shared memory M, the motion data of the transmission pending set is transmitted to the shared memory M. This process is repeated until the motion data of the last set Tn is transmitted.

궤적 생성부(110)에 의해 생성된 모션 데이터들을 실시간으로 공유 메모리(M)로 전달할 경우, 모션 데이터의 양은 많고, RTOS(220)의 메모리는 한정적이기 때문에, 한번에 전달되지 않을 수 있다. 이 경우, 모션 데이터의 누수가 발생할 수 있다. When the motion data generated by the trajectory generator 110 is transferred to the shared memory M in real time, the amount of motion data is large and the memory of the RTOS 220 is limited, so it may not be transferred at once. In this case, leakage of motion data may occur.

이를 방지하기 위해, 본 발명에서는 궤적 생성부(110)에 의해 생성된 모션 데이터들을 분할하고 복수개의 버퍼를 마련한 다음, 버퍼의 상황에 따라 비어 있는 버퍼로 순차적으로 전송될 수 있도록 한다. 모션 데이터의 누수를 방지할 수 있으므로, 다축 동시 제어 및 연속적인 모션 수행이 가능하게 된다.In order to prevent this, in the present invention, the motion data generated by the trajectory generator 110 are divided, a plurality of buffers are prepared, and then sequentially transmitted to the empty buffers according to buffer conditions. Since leakage of motion data can be prevented, simultaneous multi-axis control and continuous motion can be performed.

한편, 도 6은 종래 기술인 한국공개특허 10-2020-0065461호의 도 4로서,모터의 서보 드라이브는 도 6과 같이 사다리꼴 형태의 보간법을 제공하고 있는데, 이러한 사다리꼴 형태의 보간법은 목표값에 도달하면 속도가 0이 되므로, 복잡한 모션을 위해 연속적인 목표값을 주었을 때, 각 목표값에 도달할 때 끊김 현상이 발생한다.Meanwhile, FIG. 6 is FIG. 4 of Korean Patent Publication No. 10-2020-0065461, which is a prior art, and the servo drive of the motor provides a trapezoidal interpolation method as shown in FIG. becomes 0, when continuous target values are given for complex motion, a disconnection occurs when each target value is reached.

반면에, 본 발명에서는, 궤적 생성부(110)에서 큐빅 스플라인 알고리즘에 기반하여 복수개의 모션 데이터들을 생성하는데, 그 결과, 도 5에 도시된 바와 같이, 목표값(도 5에서 원으로 처리된 부분들)은 궤적의 중간 지점이 되어, 끊기지 않고 연속적으로 동작하게 된다. 따라서, 더욱 역동적이고 부드러운 동작이 가능하게 된다.On the other hand, in the present invention, the trajectory generator 110 generates a plurality of motion data based on the cubic spline algorithm, and as a result, as shown in FIG. 5, the target value (the portion circled in FIG. 5) ) becomes the midpoint of the trajectory, and operates continuously without interruption. Accordingly, a more dynamic and smooth operation is possible.

이상, 본 발명의 일 실시예에 대하여 설명하였으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 특허청구범위에 기재된 본 발명의 사상으로부터 벗어나지 않는 범위 내에서, 구성 요소의 부가, 변경, 삭제 또는 추가 등에 의해 본 발명을 다양하게 수정 및 변경시킬 수 있을 것이며, 이 또한 본 발명의 권리범위 내에 포함된다고 할 것이다.Although one embodiment of the present invention has been described above, those skilled in the art can add, change, delete, or add components within the scope not departing from the spirit of the present invention described in the claims. The present invention can be variously modified and changed by the like, and this will also be said to be included within the scope of the present invention.

100 : 모션 콘트롤러 110 : 궤적 생성부
111 : 스플리터 200 : 이더캣 마스터
210 : 버퍼 220 : RTOS
300 : 슬래이브 310 : 모터 드라이버
320 : 모터
100: motion controller 110: trajectory generator
111: Splitter 200: EtherCAT Master
210: buffer 220: RTOS
300: slave 310: motor driver
320: motor

Claims (5)

연출하고자 하는 콘텐츠에 대응하는 복수개의 모션 데이터들을 생성하고, 생성된 복수개의 모션 데이터들을 버퍼 사이즈에 맞도록 분할하는 모션 콘트롤러;
상기 모션 콘트롤러에서 생성 분할된 모션 데이터들을 일시 저장하는 공유 메모리;
복수개의 버퍼와 RTOS(Real Time OS)를 포함하며, 상기 복수개의 버퍼 각각에, 상기 모션 콘트롤러에서 생성 분할된 모션 데이터들을 수신하고, 수신된 모션 데이터들에 따라 슬래이브를 구성하는 복수의 모터를 구동 제어하기 위한 제어 신호를 생성하는 이더캣 마스터;
모터와 상기 모터를 구동하기 위한 모터 드라이버를 포함하며, 상기 이더캣 마스터로부터 상기 제어 신호를 수신하고, 수신된 제어 신호에 따라 상기 모터를 구동하는 슬래이브;를 포함하며,
상기 모션 콘트롤러는,
큐빅 스플라인 알고리즘(cubic spline algorithm)에 기반하여 상기 복수개의 모션 데이터들을 생성하는 궤적 생성부를 포함하고,
상기 복수개의 모션 데이터들은 스플리터에 의해 동일 시간 분량의 모션 데이터를 포함하는 n세트의 모션 데이터로 분할되며,
제k 세트의 모션 데이터(Tk, 0≤k≤n) 전송시, 상기 버퍼가 비어 있는 지 여부를 확인하고, 비어 있는 경우 상기 제k 세트의 모션 데이터를 상기 공유 메모리에 전송하고, 상기 버퍼가 비어 있지 않으면, 기설정된 시간 동안 전송을 보류하며,
상기 공유 메모리에 일시 저장된 상기 제k 세트의 모션 데이터는 상기 복수의 버퍼 중 어느 하나에 큐 구조로 순환되며, 상기 RTOS가 상기 제k 세트의 모션 데이터를 읽어들이면 해당 버퍼는 비워지게 되며, 상기 공유 메모리에는 해당 버퍼가 비워졌다는 정보(Buffer empty)가 전달되고,
상기 공유 메모리에 상기 Buffer empty 정보가 전달되면, 전송 보류 중인 세트의 모션 데이터가 상기 공유 메모리로 전송되는,
것을 특징으로 하는 키네틱 디스플레이 콘트롤러.
a motion controller that generates a plurality of pieces of motion data corresponding to content to be presented and divides the pieces of motion data to fit the size of the buffer;
a shared memory temporarily storing motion data generated and divided by the motion controller;
It includes a plurality of buffers and a Real Time OS (RTOS), receives motion data generated and divided by the motion controller in each of the plurality of buffers, and a plurality of motors constituting a slave according to the received motion data. an EtherCAT master that generates a control signal for driving control;
A slave including a motor and a motor driver for driving the motor, receiving the control signal from the EtherCAT master, and driving the motor according to the received control signal;
The motion controller,
A trajectory generating unit generating the plurality of motion data based on a cubic spline algorithm;
The plurality of motion data is divided by a splitter into n sets of motion data including motion data for the same amount of time,
When the kth set of motion data (Tk, 0≤k≤n) is transmitted, it is checked whether the buffer is empty, and if it is empty, the kth set of motion data is transmitted to the shared memory, and the buffer is If not empty, hold transmission for a preset amount of time;
The k th set of motion data temporarily stored in the shared memory is circulated in one of the plurality of buffers in a queue structure, and when the RTOS reads the k th set of motion data, the corresponding buffer is emptied. Information that the corresponding buffer has been emptied (Buffer empty) is transmitted to the memory.
When the Buffer empty information is transmitted to the shared memory, motion data of a transmission pending set is transmitted to the shared memory.
A kinetic display controller, characterized in that.
삭제delete 삭제delete 삭제delete 삭제delete
KR1020210070271A 2021-05-31 2021-05-31 Kinetic Display Controller KR102506496B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210070271A KR102506496B1 (en) 2021-05-31 2021-05-31 Kinetic Display Controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210070271A KR102506496B1 (en) 2021-05-31 2021-05-31 Kinetic Display Controller

Publications (2)

Publication Number Publication Date
KR20220161931A KR20220161931A (en) 2022-12-07
KR102506496B1 true KR102506496B1 (en) 2023-03-03

Family

ID=84440956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210070271A KR102506496B1 (en) 2021-05-31 2021-05-31 Kinetic Display Controller

Country Status (1)

Country Link
KR (1) KR102506496B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242728A (en) 2007-03-27 2008-10-09 Fanuc Ltd Motor control system
JP2015041294A (en) 2013-08-22 2015-03-02 ファナック株式会社 Motor control system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180134720A (en) 2017-06-11 2018-12-19 김동우 The kinetic media installation physically representing human motions
KR102126270B1 (en) * 2017-08-28 2020-06-24 (주)이노시뮬레이션 Motion Buffer Control Method of Real-Time Motion Simulation System
KR101991772B1 (en) * 2017-10-24 2019-06-21 (주)플레이솔루션 Experience system of virtual reality contents based on motion simulator
KR102046918B1 (en) * 2018-02-19 2019-11-20 동서대학교 산학협력단 Motion Input Device Using Survomotorsand Motoin Input Method thereof
KR20190101541A (en) * 2018-02-23 2019-09-02 엘에스산전 주식회사 Motion control apparatus
KR102145506B1 (en) 2018-11-30 2020-08-18 (주)이지위드 Motor control module and method, kinetic art apparatus having the motor control module

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242728A (en) 2007-03-27 2008-10-09 Fanuc Ltd Motor control system
JP2015041294A (en) 2013-08-22 2015-03-02 ファナック株式会社 Motor control system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
권오흥 외. 실감 입체 형상 생성을 위한 카멜레온형 핀아트 장치 개발. 방송공학회 논문지 제25권 제4호. 2020.7.*

Also Published As

Publication number Publication date
KR20220161931A (en) 2022-12-07

Similar Documents

Publication Publication Date Title
CN103294439A (en) Image updating method, and system and device implementing image updating method
JP7310465B2 (en) Synchronous control device, synchronous control system, synchronous control method, and simulation device
JPH04219859A (en) Harware distributor which distributes series-instruction-stream data to parallel processors
CN104999812B (en) A kind of laser marking machine control method and device
CN109551485A (en) Motion control method, device and system and storage medium
US4956787A (en) Elimination work simulator apparatus
KR102506496B1 (en) Kinetic Display Controller
JP2019061523A (en) Information processing unit, information processing method, and program
JP2021100350A (en) Distributed motor control system, motor control device, and distributed motor control method
CN113021329B (en) Robot motion control method and device, readable storage medium and robot
JP2007073008A (en) Positioning apparatus
JP2735209B2 (en) Numerical control unit
US5581735A (en) System for supplying unit image data to requesting users from multiple storage devices based on directory information and token queues identifying the requester and data
WO2020179581A1 (en) Control device and software deployment method
US20130342549A1 (en) Apparatus and method for processing rendering data
JPH0890468A (en) Teaching device for robot
CN103577254A (en) Arithmetic processing apparatus and method for high speed processing of application
KR102493472B1 (en) Kinetic Display Device
CN111324086A (en) Numerical controller
JP4261886B2 (en) Information processing apparatus and information processing method
WO2020137522A1 (en) Synchronization control device, synchronization control system, synchronization control method, and simulation device
CN105468045B (en) The support control method and support of mobile terminal
JP6571377B2 (en) Expansion unit, programmable logic controller and control method thereof
US20230362440A1 (en) An In-Browser, Multi-Player 3D Robotic Simulator
US20240094736A1 (en) Robot navigation in dependence on gesture(s) of human(s) in environment with robot

Legal Events

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