KR20090006953A - Robot design center for lay outing robot control logic - Google Patents

Robot design center for lay outing robot control logic Download PDF

Info

Publication number
KR20090006953A
KR20090006953A KR1020070070445A KR20070070445A KR20090006953A KR 20090006953 A KR20090006953 A KR 20090006953A KR 1020070070445 A KR1020070070445 A KR 1020070070445A KR 20070070445 A KR20070070445 A KR 20070070445A KR 20090006953 A KR20090006953 A KR 20090006953A
Authority
KR
South Korea
Prior art keywords
trigger signal
point
robot
control logic
input
Prior art date
Application number
KR1020070070445A
Other languages
Korean (ko)
Other versions
KR100932546B1 (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 KR1020070070445A priority Critical patent/KR100932546B1/en
Publication of KR20090006953A publication Critical patent/KR20090006953A/en
Application granted granted Critical
Publication of KR100932546B1 publication Critical patent/KR100932546B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Abstract

An integrated development tool for a robot control logic design using a block having data input/output port is provided to trigger signal input and output points in the block in the block diagram editor for designing the control logic. A DB store(300) is connected through internet by converting a developed program by using RDC(200). A user downloads a function to a library storing RDC to bring a source registered by the DB on online clip art. The desired control logic is programmed. The DB stores can implement by using the web server and bulletin board(400).

Description

로봇 제어로직 설계용 통합 소프트웨어 개발 도구{robot design center for lay outing robot control logic}Integrated software development tool for robot control logic design {robot design center for lay outing robot control logic}

본 발명은 모듈화 된 로봇 부품을 조합하여 하나의 로봇을 완성하기 위해 개발자가 사용하는 통합 개발 환경인 로봇 디자인 센터에 관한 것으로서, 보다 상세하게는 제어로직을 설계하기 위한 블록 다이어그램 에디터에 사용되는 블록에 데이터 입출력점과 트리거신호 입출력점을 구비하여 로봇 모듈에 대한 제어로직 개발이 더욱 효율적으로 이루어질 수 있도록 하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구에 관한 것이다.The present invention relates to a robot design center, which is an integrated development environment used by a developer to combine a modular robot component to complete a robot. More specifically, the present invention relates to a block used in a block diagram editor for designing a control logic. The present invention relates to an integrated software development tool for robot control logic design that has a data input / output point and a trigger signal input / output point to enable more efficient control logic development for a robot module.

종래의 전통적인 로봇 개발 절차는 로봇을 제조하는 제조업체에서 일괄적이고 총체적인 개발이 이루어지기 때문에 로봇의 제조를 위해서는 제어플랫폼의 개발에서부터 로봇 제어 소프트웨어의 개발, 그리고 사용자를 위한 작업 기술 언어의 개발까지 하나의 제조업체에서 모두 이루어진다. 이러한 일괄적인 개발 방식은 로봇 기술을 폐쇄적으로 만드는 이유가 되어 신기술의 수용에 한계를 가지게 되며, 또한 이식성이나 호환성을 기대하기 어려운 요소로 작용한다.Since conventional robot development procedures are collectively and totally developed by the manufacturer of the robot, a manufacturer can manufacture a robot from the development of a control platform to the development of a robot control software and a work description language for the user. Everything is done. This collective development method is a reason for making the robot technology closed, which limits the acceptance of new technology, and also makes it difficult to expect portability or compatibility.

반면에 로봇의 모듈이 개방성을 가질 수 있다면 모듈 개발은 개방성을 보장 하는 전문 제조업체에 의해 개발이 주도될 수 있게 되고, 뿐만 아니라 로봇의 개발에 있어서도 로봇을 독립적인 기능 모듈로 분할 개발한 후 후기 통합을 통해 로봇의 조립이 가능하다면, 기존의 로봇 제조업체 또한 개방화된 개발 한경에서 특화된 부분에 대한 개발에 집중할 수 있게 된다. 추가적으로 제조사가 상이할 수 있는 독립적인 기능 모듈의 통합을 통한 손쉬운 로봇의 조립은 다양한 소비자의 요구를 만족할 수 있는 사용자 지향적인 형태의 로봇 제작을 가능하게 함으로써 로봇 전체 시장의 확대를 기대할 수 있게 된다. 이러한 개방화를 기반으로 한 로봇의 단계별 개발 절차는 아직 개시되지 않았다.On the other hand, if the module of the robot can be open, the module development can be led by a professional manufacturer that guarantees openness.In addition, in the development of the robot, the robot can be divided into independent functional modules and then later integrated. If the robot can be assembled, existing robot manufacturers can also concentrate on developing specialized parts in the open development environment. In addition, the easy assembly of the robot through the integration of independent functional modules, which can be different by the manufacturer, can be expected to expand the entire robot market by enabling the manufacture of a user-oriented robot that can satisfy various consumer demands. The step-by-step development process for robots based on such openness has not yet been initiated.

이외에도 종래의 로봇 제어로직 설계용 통합 소프트웨어 개발 도구에 관한 발명은 다양한 방식을 통해 이루어졌으며 다양한 서비스 제공을 목적으로 한다. In addition, the invention related to the integrated software development tool for the conventional robot control logic design has been made in various ways and aims to provide various services.

하지만 종래의 로봇 소프트웨어 개발 환경 도구는 대부분 로봇이 오프라인 상태에 있을 때의 개발 환경 도구이며, 온라인상에서의 개발 환경을 지원할지라도 지역 네트워크나 일대일통신과 같은 폐쇄적인 방식을 택하였다. 모듈화 된 가정용 서비스 로봇은 모듈 단위로 시장에 선판매가 이루어지고, 후에 시스템 통합 절차가 필요하게 되는데, 기존의 오프라인 상에서의 개발 환경 또는 폐쇄적인 환경의 온라인상에서의 개발 환경은 로봇이 시장에 출시된 이후에는 소프트웨어 통합을 위한 후작업 등을 지원할 수가 없게 된다. 로봇을 이루는 기능적인 부품인 모듈의 표준화된 개발과, 모듈의 조립을 통한 로봇의 조립이라는 시스템 통합을 수행할 수 있는 개발 환경도구에 대해서는 아직 개시되지 않았다.However, most of the conventional robot software development environment tools are development environment tools when the robot is offline, and even in support of the development environment online, the closed network method such as a local network or one-to-one communication is taken. Modular home service robots are pre-sold to the market on a modular basis and later require system integration. Existing offline development environments or closed environments online development environments can There is no support for post-operation for software integration. The development environment tool that can perform system integration such as standardization of module which is a functional part of robot and assembly of robot through assembly of module has not been disclosed yet.

즉, 이기종의 독립적인 모듈의 상호 운영 환경에서 다양한 요구를 갖는 사용 자 지향적인 서비스의 창출이 가능하기 위해서는 선개발 완료 후 판매라는 기존의 단일화 된 개발 방식을 적용하는 것이 불가능하게 된다. 뿐만 아니라 독립적인 모듈의 조합에 있어서도 일반적으로 기구적 또는 전기 신호적인 조합은 표준화 된 커넥터 등을 이용하여 최종 소비자가 손쉽게 수행할 수 있으나, 소프트웨어적인 조합은 최종 소비자가 담당하기 어려운 형편이며, 또 각 기능적 모듈의 제조업체가 서로 다르기 때문에 특정 제조업체에서 이를 담당하여 소프트웨어적인 조합 작업을 수행하는 것 역시 불가능하였다.In other words, in order to create a user-oriented service having various needs in the interoperation environment of heterogeneous independent modules, it is impossible to apply the existing unified development method of pre-development and sale. In addition, in the combination of independent modules, mechanical or electrical signal combinations are generally easily performed by end consumers using standardized connectors, but software combinations are difficult for end consumers. Due to the different manufacturers of functional modules, it was also impossible for a specific manufacturer to perform the software combination.

종래 로봇 제어로직 설계용 통합 소프트웨어 개발 도구에서 그래픽 에디터로 사용되는 블록 다이어그램 에디터는 블록간에 변수 값을 전달하기 위한 출력 포트와 입력 포트를 링크로 연결하여 제어로직을 작성할 수 있도록 한다. The block diagram editor, which is used as a graphic editor in the integrated software development tool for robot control logic design, enables to create a control logic by connecting an output port and an input port for transferring variable values between blocks.

그런데, 블록다이어그램 에디터를 통해 작성되는 제어로직은 일정한 주기를 반복하여 실행이 되는데, 매 주기에 모든 블록이 수행되어야 하기 때문에 CPU의 자원을 많이 소모하게 되는 문제점이 있다. By the way, the control logic created through the block diagram editor is executed by repeating a certain cycle, which consumes a lot of CPU resources because all blocks have to be executed every cycle.

또한 블록간 인과관계를 기술할 수 없으며 조건에 따른 선택적 블록의 실행을 기술할 수 없는 단점이 있다.In addition, there is a disadvantage that cannot describe the causal relationship between blocks and cannot describe the execution of selective blocks according to conditions.

로봇 제어로직을 설계하기 위한 도구의 다른 예로는 이벤트 전달 방식의 메시지 큐와 프로세서 구조가 있는데, 이는 프로세서 간 다양한 형식의 데이터를 전달하기 어려우며 비동기 입출력에는 유리하지만 로봇과 같이 제어 알고리즘이 실시간으로 동작하며 동기가 필요한 곳에는 적합하지 않다는 문제점이 있다.Other examples of tools for designing robot control logic include event queues and processor architectures, which make it difficult to transfer data in different formats between processors and are advantageous for asynchronous I / O, but control algorithms work in real time like robots. The problem is that it is not suitable where motivation is needed.

본 발명은 전술한 점을 감안하여 안출된 것으로서, 제어로직을 설계하기 위한 블록 다이어그램 에디터에 사용되는 블록에 데이터 입출력 포트와 트리거신호 입출력점을 구비하여 로봇 모듈에 대한 제어로직 개발이 더욱 효율적으로 이루어질 수 있도록 하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구를 제공함에 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made in view of the above-mentioned point, and has a data input / output port and a trigger signal input / output point in a block used in a block diagram editor for designing a control logic. Its purpose is to provide an integrated software development tool for robot control logic design.

본 발명은 로봇 모듈에 탑재되는 제어로직을 편집하기 위한 그래픽 에디터를 구비하는 로봇 디자인 센터에 있어서, 상기 그래픽 에디터 중 블록 다이어그램 에디터에 사용되는 블록은 데이터 입력점과, 데이터 출력점, 트리거신호 입력점, 트리거신호 출력점이 구비되는 것을 특징으로 한다.The present invention provides a robot design center having a graphic editor for editing a control logic mounted on a robot module, wherein a block used in a block diagram editor among the graphic editors includes a data input point, a data output point, and a trigger signal input point. The trigger signal output point may be provided.

상기 데이터 입력점은, 블록 다이어그램 에디터에 사용되는 블록이 필요로 하는 변수의 값이 입력되는 포인트인 것을 특징으로 한다.The data input point is a point at which a value of a variable required by a block used in the block diagram editor is input.

상기 데이터 출력점은, 블록 다이어그램 에디터에 사용되는 블록이 처리한 결과를 변수의 값으로 출력하는 포인트인 것을 특징으로 한다.The data output point is a point for outputting a result of processing by a block used in the block diagram editor as a variable value.

상기 트리거 입력점은, 블록 다이어그램 에디터에 사용되는 블록이 수행되어야 할 시점을 알려주는 트리거신호가 입력되는 포인트인 것을 특징으로 한다.The trigger input point may be a point at which a trigger signal indicating a time point at which a block used in the block diagram editor is to be performed is input.

상기 트리거 출력점은, 블록 다이어그램 에디터에 사용되는 블록의 수행이 완료된 시점을 알려주는 트리거신호가 출력되는 포인트인 것을 특징으로 한다.The trigger output point may be a point at which a trigger signal indicating a time point at which execution of a block used in the block diagram editor is completed is output.

상기 트리거 입출력점은 데이터 입출력점과 무관하게 구비되는 것을 특징으 로 한다.The trigger input / output point may be provided regardless of the data input / output point.

상기 블록 다이어그램 에디터에 사용되는 블록 중 RPL 언어의 if-else 절에 해당하는 블록은, 하나의 트리거 입력점과 두 개의 트리거 출력점이 구비되도록 이루어지되, 트리거 신호는 입력 데이터가 참일 경우 하나의 트리거 출력점으로 분기하고, 입력 데이터가 거짓일 경우 다른 트리거 출력점으로 분기하도록 된 것을 특징으로 한다.Among the blocks used in the block diagram editor, the block corresponding to the if-else clause of the RPL language is configured to have one trigger input point and two trigger output points, but the trigger signal is one trigger output when the input data is true. Branching to a point, and branching to another trigger output point if the input data is false.

상기 블록 다이어그램 에디터에 사용되는 블록 중 RPL 언어의 switch-case 절에 해당하는 블록은, 하나의 트리거 입력점과 C1, C2, C3, D로 된 4 개의 트리거 출력점이 구비되도록 이루어지되, 트리거 신호는 입력 데이터에 해당하면 C1, C2, C3로 분기하고, 입력 데이터에 해당하지 않으면 D로 분기하도록 된 것을 특징으로 한다.The block corresponding to the switch-case clause of the RPL language among the blocks used in the block diagram editor is configured such that one trigger input point and four trigger output points of C1, C2, C3, and D are provided. If it corresponds to the input data, branching to C1, C2, C3, and if it does not correspond to the input data, characterized in that the branch to D.

다수의 트리거 출력점은 하나의 트리거 입력점으로의 연결이 가능하고, 하나의 트리거 출력점은 다수의 트리거 입력점으로의 연결이 불가능하도록 된 것을 특징으로 한다.Multiple trigger output points may be connected to one trigger input point, and one trigger output point may be impossible to connect to multiple trigger input points.

본 발명은 제어로직을 설계하기 위한 블록 다이어그램 에디터에 사용되는 블록에 트리거신호 입출력점을 구비하여 로봇 모듈에 대한 제어로직 개발이 더욱 효율적으로 이루어질 수 있도록 하는 효과가 있다.The present invention has an effect that the development of the control logic for the robot module can be made more efficiently by providing the trigger signal input and output points in the block used in the block diagram editor for designing the control logic.

본 발명의 블록은 데이터 입출력 포트와 트리거 신호 입출력점을 따로 가지는 것을 특징으로 하여, 데이터의 흐름과 트리거 신호의 흐름을 구분함으로 모든 블록이 동시에 수행되어 CPU의 자원을 낭비하는 경우를 줄일 수 있으며 기존의 순차적 프로그래밍 관념에서 그래픽 기반으로 제어 프로그램을 작성할 수 있기 때문에 초보자들도 쉽게 로봇 제어로직을 설계할 수 있도록 하는 효과가 있다.The block of the present invention is characterized by having a data input / output port and a trigger signal input / output point separately, and by dividing the flow of data and the flow of the trigger signal, all the blocks are performed at the same time to reduce the case of wasting CPU resources. Since the control program can be written graphically from the sequential programming concept of, it is effective for beginners to design robot control logic.

이하에서는 본 발명에서 대해서 보다 구체적으로 설명한다.Hereinafter, the present invention will be described in more detail.

본 발명에 따른 RDC(robot design center)(200)는 모듈화 된 로봇 부품을 조합하여 하나의 로봇을 완성하기 위해 개발자가 사용하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구로서, 도 1에 도시한 바와 같이 브레인 모듈, 센서 모듈, 비전 모듈, 모바일 모듈 등 다수의 모듈로 구성되는 로봇(100)에 대한 제어로직을 프로그래밍 할 수 있는 것이다. Robot design center (RDC) 200 according to the present invention is an integrated software development tool for robot control logic design used by developers to complete a single robot by combining modular robot parts, as shown in FIG. Brain logic, sensor module, vision module, it is possible to program the control logic for the robot 100 consisting of a plurality of modules, such as a mobile module.

개발자는 도 2에 도시한 바와 같이 RDC(200)를 이용하여 개발한 프로그램을 일정한 형식으로 변환하여 인터넷을 통해 연결되어 있는 DB 저장소(repository)(300)에 등록한다. 사용자는 DB 저장소(300)에 등록된 소스를 마이크로소프트사의 파워포인트(Powerpoint)의 온라인 클립아트 가져오기 기능과 같은 기능을 통해 자체 RDC(200)의 라이브러리 저장소로 다운로드하여 원하는 제어로직을 프래그래밍 할 수 있다. 여기서 상기 DB 저장소(300)는 웹 서버와 게시판(400)을 이용하여 구현할 수 있다.As illustrated in FIG. 2, the developer converts a program developed by using the RDC 200 into a predetermined format and registers it in a DB repository 300 connected through the Internet. The user can download the source registered in the DB repository 300 to the library repository of the own RDC 200 through a function such as the online clip art import function of Microsoft's PowerPoint to program the desired control logic. Can be. The DB storage 300 may be implemented using a web server and a bulletin board 400.

한편, 도 3은 일반적인 모듈화 된 로봇 시스템 구조를 나타낸 것이다. 통상 로봇 시스템은 브레인 모듈(100a), 센서 모듈(100b), 비전 모듈(100c), 모바일 모듈(100d), 통신 모듈(100e)들이 상하로 계층을 형성하여 구성되어 있으며, 이들은 정보 교환을 위해 네트워크로 연결되어 있다.Meanwhile, FIG. 3 shows a general modular robot system structure. In general, the robot system includes a brain module 100a, a sensor module 100b, a vision module 100c, a mobile module 100d, and a communication module 100e formed in layers up and down. Is connected.

상기 모듈들은 도 4에 도시한 바와 같이 가상머신(104)과 공개된 인터페이스(102)를 가진다. The modules have a virtual machine 104 and an open interface 102 as shown in FIG.

모듈 인터페이스(102)는 프라퍼티(property)와 메소드(method)로 구성되며, 외부로 공개되어 다른 모듈에서 인터페이스에 등록된 프라퍼티와 메소드를 사용하게 된다. 모듈 매니저(module manager)(106)에 구비되는 가상머신(VM : virtual machine)(104)은 모듈의 기능을 확장하기 위해 사용되며, 다양한 하드웨어 기반 플랫폼에 포팅된다. 모듈에서는 바이트코드로 컴파일 된 로봇 제어 프로그램을 실행시키기 위해서 이 가상머신(104)을 이용하게 된다.Module interface 102 is composed of properties (methods) and methods (method), and is exposed to the outside to use properties and methods registered in the interface in another module. The virtual machine (VM) 104 provided in the module manager 106 is used to extend the functionality of the module and is ported to various hardware-based platforms. The module uses this virtual machine 104 to execute a robot control program compiled with bytecode.

모듈 하단에는 모듈에서 기본적으로 지원하는 인터페이스(프라퍼티, 메소드)인 인터널(Internal) API(108)를 가진다. 인터널 API(108)는 가상머신(104)이 직접 호출하거나 외부 모듈에서 모듈 인터페이스를 통하여 호출 가능하다. 또한, 인터널 API(108)는 모듈의 기능을 수행하기 위하여 모듈에서 기본적으로 지원해야 할 기능들에 대하여 네이티브 코드(native code)로 구현된 프라퍼티와 메소드이다. At the bottom of the module, there is an Internal API 108, which is an interface (properties, methods) basically supported by the module. The internal API 108 may be called directly by the virtual machine 104 or may be called through a module interface in an external module. In addition, the internal API 108 is a property and a method implemented in native code with respect to functions to be basically supported in the module in order to perform the function of the module.

그리고 모듈(100)이 다른 모듈과 통신하기 위하여 미들웨어를 사용한다. 미들웨어는 스트리밍 계층(streaming layer)과 네트워크 적응 계층(network adaption layer)(112)로 구성된다. 각 모듈(100)간에는 네트워크 미디어(114)의 종류에 무관하게 통신가능하다. 스트리밍 계층은 네트워크 적응 계층을 이용하여 어플리케이션이 네트워크의 종류에 상관없이 원격 모듈에 존재하는 어플리케이션이 접근하기 위한 메커니즘을 제공하는 것이고, 네트워크 적응 계층은 네트워크 인터페이스 계층 에 추가된 여러 종류 네트워크 컴포넌트들을 통합하는 계층이다.The module 100 then uses the middleware to communicate with other modules. The middleware consists of a streaming layer and a network adaptation layer 112. Each module 100 can communicate with each other regardless of the type of network media 114. The streaming layer uses a network adaptation layer to provide a mechanism for an application to access an application existing in a remote module regardless of the network type. The network adaptation layer integrates various network components added to the network interface layer. Hierarchy.

RDC(200)는 윈도우 98/NT/2000/XP 등의 운영체제 환경에서 동작하는 것으로서, 사용자의 시각에 의해 보이는 대로 구분하자면 도 5와 같이 구성된다.The RDC 200 operates in an operating system environment such as Windows 98 / NT / 2000 / XP. The RDC 200 is configured as shown in FIG.

타이틀 바(202)는 윈도우 타이틀을 표시한다. 메인 메뉴(204)는 RDC(200)가 가지는 기능들에 대한 메뉴이고, 워크 스페이스(206)는 로봇 모듈 구조, 라이브러리 구조, 프로젝트 구조 등을 트리 형태로 표시한다. 메시지 로그(208)는 작업 중 발생하는 각종 메시지를 표시한다. 상태 바(210)는 RDC(200)의 현재 상태를 표시한다. 서브 윈도우 영역(212)은 사용자가 작업하기 위해 필요한 각종 윈도우를 표시한다. The title bar 202 displays the window title. The main menu 204 is a menu for functions of the RDC 200, and the workspace 206 displays a robot module structure, a library structure, a project structure, and the like in a tree form. The message log 208 displays various messages that occur during the operation. The status bar 210 displays the current state of the RDC 200. The sub window area 212 displays various windows necessary for the user to work.

상기 워크 스페이스(206)는 프로젝트 관리, 라이브러리 관리, 로봇 관리 등을 할 수 있도록 하는 것으로서, 프로젝트 관리는 로봇의 각 모듈(100)에 설치되는 프로그램을 개발하는 것이고, 라이브러리 관리는 프로그램 개발에 필요한 라이브러리를 관리하는 것이고, 로봇 관리는 로봇에 설치되는 모듈을 관리하는 것을 말한다.The workspace 206 allows project management, library management, robot management, etc., wherein project management is to develop a program installed in each module 100 of the robot, and library management is a library required for program development. To manage, the robot management refers to managing the modules installed in the robot.

서브 윈도우(212)는 사용자가 작업하기 위해 필요한 각종 윈도우를 표시하는 것으로서, 워크 스페이스(206)에서 작업을 하기 위해 선택한 메뉴들에 대해서 사용자 인터페이스가 되는 윈도우에는 로봇 모듈 컨피규레이션(configuration), 텍스트 에디터, 그래픽 에디터, 네트워크 시뮬레이터, 디버거 등이 있다.The sub-window 212 displays various windows necessary for the user to work. The window that becomes the user interface for the menus selected for the work in the workspace 206 includes a robot module configuration, a text editor, Graphic editors, network simulators, debuggers, and more.

로봇 모듈 컨피규레이션은 로봇을 구성하는 모듈들의 네트워크 연결 상태를 편집할 수 있도록 하기 위한 것이다.The robot module configuration is intended to be able to edit the network connection status of the modules that make up the robot.

모듈 인터페이스는 모듈에서 기본적으로 가지고 있는 기본 인터페이스나 VM(virtual machine)에서 실행되는 프로그램에 의해 확장된 확장 인터페이스를 말한다. 기본 인터페이스나 확장 인터페이스는 모듈 외부에서는 구분할 필요가 없다. 둘 다 같은 방식으로 읽어올 수 있다. 하나의 모듈 인터페이스에는 한 개 이상의 클래스가 존재할 수 있다. 모듈 인터페이스를 읽기 위해서는 모듈 이름과 VM No.(virtual machine 번호)를 명시하여야 한다.A module interface is an extension interface extended by a basic interface that a module has or a program that runs on a virtual machine (VM). Base or extended interfaces do not need to be distinguished outside the module. Both can be read in the same way. More than one class can exist in a module interface. To read the module interface, you need to specify the module name and VM No. (virtual machine number).

온라인상에서 로봇에 접속하여 모듈 인터페이스를 읽어오는 과정은, 로봇과 RDC를 TCP/IP 프로토콜로 연결하고, RDC에서 커넥션 버튼을 눌러 로봇과 접속하고, 로봇을 구성하는 모듈에 대한 정보를 읽어 오고, 각 모듈에서 인터페이스를 읽어 와 화면에 표시하는 것으로 이루어진다.The process of accessing the robot online and reading the module interface includes connecting the robot and the RDC with the TCP / IP protocol, connecting to the robot by pressing the connection button on the RDC, and reading information on the modules constituting the robot. It consists of reading the interface from the module and displaying it on the screen.

오프라인 상에서 로봇에 접속하여 모듈 인터페이스를 읽어오는 과정은, 모듈 개발자가 제공한 인터페이스 파일을 RDC로 가져온 후, 이를 화면에 표시하는 것으로 이루어진다.The process of reading the module interface by accessing the robot off-line consists of bringing the interface file provided by the module developer to the RDC and displaying it on the screen.

그리고 RDC(200)가 하나의 모듈을 통해 다른 모듈과 파일을 주고받으려면, 이미 모듈 간에 네트워크가 설정되어 있어야 한다. RDC(200)는 이러한 사전 제약조건 없이도 모듈과 연결되어야 하므로 각각의 모듈(100)은 RDC(200)가 연결되기 위하여 최소한 하나의 포트가 기본으로 제공하여야 한다. 즉 각 모듈(100)은 시리얼 포트와 이더넷 포트 중에서 최소한 하나는 RDC(200)를 위한 포트로 열어 놓고 있어야 한다.And in order for the RDC 200 to exchange files with another module through one module, a network must already be established between the modules. Since the RDC 200 should be connected to the module without such pre-constraints, each module 100 should be provided with at least one port by default in order for the RDC 200 to be connected. That is, each module 100 should be opened at least one of a serial port and an Ethernet port as a port for the RDC (200).

한편, 본 발명에 따른 RDC를 이용한 로봇 개발 과정은 도 6에 도시한 바와 같이 진행된다.On the other hand, the robot development process using the RDC according to the present invention proceeds as shown in FIG.

먼저 로봇을 개발하기 위해서는 먼저 새로운 프로젝트를 생성한다(S12). 이후 로봇 모듈에 접속하여 모듈의 인터페이스를 읽어 오고(S14), 필요한 라이브러리를 DB에서 다운로드 받은(S16) 후, 개발자는 프로그래밍을 시작한다(S18). First, in order to develop a robot, first create a new project (S12). After connecting to the robot module to read the interface of the module (S14), after downloading the necessary library from the DB (S16), the developer starts programming (S18).

여기서, 라이브러리 파일은 사용자가 작성한 프로그램에서 불러 쓸 수 있는 기능들을 모아 놓은 소프트웨어들이다. 이 라이브러리 파일들은 체계적인 관리가 가능하도록 여러 군의 라이브러리 군으로 나누어져 있다. 라이브러리 군 안에는 여러 소스 코드와 헤더 파일이 존재한다.Here, library files are software that collects functions that can be loaded in a program written by a user. These library files are divided into several groups of libraries for systematic management. There are several source code and header files in the library family.

이러한 라이브러리 파일은 인터넷 상의 DB에 저장되어 여러 개발자가 소스코드를 공유할 수 있도록 한다. These library files are stored in a database on the Internet, allowing multiple developers to share the source code.

프로그램 등록은 개발자가 RDC에서 개발한 라이브러리를 DB에 등록 가능한 형식으로 변환하고, 웹 브라우저를 이용하여 라이브러리를 DB에 등록한다. 프로그램 다운로드는 사용자가 DB에서 필요한 라이브러리를 검색하고, 필요한 소스를 RDC의 라이브러리 저장소로 다운로드하고, 프로젝트에 추가하여 프로그램 개발에 사용할 수 있게 된다.Program registration converts the library developed by RDC to a format that can be registered in DB, and registers the library in DB using a web browser. Program download allows users to search the required library from DB, download the required source to RDC's library repository, add it to the project, and use it for program development.

이어서, 프로그램을 작성하고 나면, 프로그램을 모듈에 다운로드하여 원하는 기능을 발휘하는지 테스트한다(S24). 이때 모듈이 접속되어 있지 않는 상태(오프라인)이면 시뮬레이션(S22)을 하게 된다. 이어서, 원하는 대로 동작하지 않는다면 소스 코드를 수정하는 과정(S26)부터 시작하여 상기한 바와 같은 과정을 반복하게 된다. Subsequently, after the program is created, the program is downloaded to the module to test whether the desired function is performed (S24). At this time, if the module is not connected (offline), the simulation (S22) is performed. Subsequently, if it does not work as desired, the process as described above is repeated starting with the process of modifying the source code (S26).

소스 에디팅 과정은 도 7에 도시한 바와 같이 텍스트 에디터와 그래픽 에디터를 통해 이루어진다.The source editing process is performed through a text editor and a graphic editor as shown in FIG.

텍스트 환경에서는 프로그램 코드를 직접 작성하므로 별다른 추가과정 없이 컴파일/링크(compile/link) 만으로 모듈에 다운로드 가능한 코드를 생성할 것이다. 하지만 그래픽 환경에서 블록을 이용하여 사용자가 작성한 도면은 프로그램 코드로 변환하는 과정이 필요하다.In a text environment, you can write the program code yourself, so you will generate code that can be downloaded to the module with only compile / link. However, drawings created by users using blocks in a graphic environment need to be converted into program code.

텍스트 에디터로 편집된 코드는 컴파일/링크되어 바이트코드로 변환된 후 가상머신에 다운로드 되게 된다. 개발자는 텍스트 에디터를 이용하여 소스코드를 편집한다. 주로 RPL 언어를 편집한다. RPL(Robot Programming Language)은 로봇을 프로그래밍 하기위한 언어로 C언어와 유사한 문법 구조를 가지고 있는데 C언어와 동일한 제어문을 사용하지만 포인터를 사용하지 않는 것을 특징으로 한다. 그리고 모듈의 인터페이스를 기술하기 위한 키워드가 추가된 것을 특징으로 한다. 텍스트 에디터는 소스 코드 편집기능 외에 디버거와 연동하게 된다.Code edited with a text editor is compiled / linked, converted to bytecode, and downloaded to the virtual machine. The developer edits the source code using a text editor. Primarily edits the RPL language. RPL (Robot Programming Language) is a language for programming robots. It has a grammatical structure similar to C language, but uses the same control statements as C language but does not use pointers. And a keyword for describing the interface of the module is added. The text editor will work with the debugger in addition to editing the source code.

그래픽 에디터로 편집된 제어로직 중 블록 다이어그램으로 이루어진 로직은 변환기에 의해 RPL로 변환되고 컴파일/링크되어 바이트코드로 변환된 후 가상머신에 다운로드 되고, 시나리오 에디터와 모션 에디터로 이루어진 로직은 XML(extension markup language)로 변환되어 로봇 모듈의 태스크 매니저(task manager)에 다운로드 되게 된다.In the control logic edited by the graphic editor, the logic of the block diagram is converted into RPL by the converter, compiled / linked, converted into bytecode, downloaded to the virtual machine, and the logic of the scenario editor and motion editor is XML (extension markup). language) and downloaded to the task manager of the robot module.

상기 그래픽 에디터는 프로그램 개발자가 프로그램을 텍스트 형식으로 직접 편집하는 방식 외에, 마우스를 이용하여 도면을 그리듯 프로그램을 개발할 수 있도 록 한다. 그래픽 에디터에서 작성된 그림은 RPL 코드로 번역된 후, 컴파일러에 의해 컴파일 된 후 로봇의 모듈에 다운로드 되게 된다.The graphic editor allows a program developer to develop a program as if drawing a drawing using a mouse, in addition to a method of directly editing a program in a text format. Pictures created in the graphical editor are translated into RPL code, compiled by the compiler, and downloaded to the robot's module.

그래픽 에디터는 블록 에디터(block editor), 모션 에디터(motion editor), 시나리오 에디터(scenario editor)로 구분된다. 블록 에디터는 MATLAB의 Simulink와 같이 그래픽 환경에서 저 수준의 제어로직을 프로그래밍하기 위한 것이고, 모션 에디터는 로봇의 동작을 타임 차트와 같이 설계하기 위한 것이고, 시나리오 에디터는 로봇을 제어하는 시나리오를 플로우 차트와 같이 설계하기 위한 것이다.The graphical editor is divided into a block editor, a motion editor, and a scenario editor. The block editor is for programming low-level control logic in graphical environments like Simulink in MATLAB, the motion editor is for designing the robot's movements like a time chart, and the scenario editor is used to create scenarios that control the robot. It is to design together.

상기 그래픽 에디터 중에서 블록 에디터에서 제어로직을 설계하는 단위는 블록이다. 이 블록은 입력과 출력을 가지고, 블록과 블록을 연결할 수 있도록 하고, 여러 블록이 모여 하나의 수퍼블록(Super-block)으로 표현이 가능하도록 되어 있다. Among the graphic editors, a unit for designing the control logic in the block editor is a block. This block has inputs and outputs, and blocks and blocks can be connected together, and several blocks can be expressed as a single super-block.

한편, 로봇 모듈 인터페이스는 모듈에서 사용 가능한 기능들을 외부로 알려준다. 로봇 모듈 인터페이스는 함수와 변수를 가지고, 함수와 변수는 기능별로 클래스로 묶인다.Meanwhile, the robot module interface informs the functions available in the module to the outside. The robot module interface has functions and variables, which are grouped by function.

아래는 로봇 모듈 인터페이스의 예제이다.The following is an example of the robot module interface.

(예제)(example)

iapi mobile {iapi mobile {

int position_x, position_y;int position_x, position_y;

int velocity_x, velocity_y;int velocity_x, velocity_y;

void velocity (int x, int y);void velocity (int x, int y);

void stop (void);void stop (void);

}}

iapi math {iapi math {

float sin (int t);float sin (int t);

float cos (int t);float cos (int t);

}}

위의 예제는 도 에 도시한 바와 같이 블록으로 표현된다.The above example is represented by a block as shown in FIG.

여기서, 모듈 인터페이스의 클래스는 블록의 집합으로 표시하고, 클래스의 변수는 입출력 블록으로 표시하는데, 변수가 읽기 전용일 때는 입력블록으로, 쓰기 전용일 때는 출력 블록으로, 읽기쓰기가 다 되는 경우는 입출력을 동시에 가지는 블록으로 표시한다. 클래스의 함수는 다수의 입력과 최대 하나의 출력을 가지는 블록으로 표시하고, 함수의 인자는 블록의 입력값, 함수의 리턴값은 블록을 출력값으로 표시한다.Here, the class of the module interface is represented by a set of blocks, and the variables of the class are represented by I / O blocks.If the variable is read-only, it is an input block, and if it is write-only, an output block is used. Mark them as blocks that have the same time. Functions of the class are represented as blocks with multiple inputs and at most one output. The function arguments represent the inputs of the block and the function's return values represent the block as outputs.

로봇 모듈 인터페이스는 확장될 수 있는데, 로봇 모듈의 인터페이스는 모듈에 새로운 기능을 추가하여 확장된다. 새로운 기능을 추가하기 위하여 RPL로 소프트웨어를 작성하고 모듈의 RVM에서 동작시킨다.The robot module interface can be extended, which is extended by adding new functions to the module. To add new functionality, write software in RPL and run it on the module's RVM.

아래는 로봇 모듈 인터페이스가 확장된 예제이다. 기본 인터페이스를 계승하여 확장된 새로운 인터페이스를 만들어낸다.The following is an example of the extended robot module interface. Inherit the base interface to create a new extended interface.

(예제)(example)

iapi mobile_ex : mobile{iapi mobile_ex: mobile {

void goto (int x, int y);void goto (int x, int y);

}}

void goto (int x, int y)void goto (int x, int y)

{{

velocity (5,5);velocity (5,5);

while (position_x != x || position_y != y);while (position_x! = x || position_y! = y);

stop ();stop ();

}}

위의 예제는 도 9와 같은 블록으로 표현된다.The above example is represented by a block as shown in FIG.

도 9와 같은 goto 블록에서 마우스로 클릭하여 아래와 같은 소스코드로 편집하게 된다.In the goto block as shown in FIG. 9, the mouse clicks and edits the following source code.

(소소 코드 예)(Small code example)

velocity (5,5);velocity (5,5);

while (position_x != x || position_y != y);while (position_x! = x || position_y! = y);

stop ();stop ();

그리고 goto 블록을 기존의 블록들을 조합하여 만들어낼 때는 도 10과 같다. When the goto block is generated by combining existing blocks, it is shown in FIG.

본 발명에 따른 RDC의 블록 에디터에 사용되는 블록들은 그 기능 확장이 가능하다.Blocks used in the block editor of the RDC according to the present invention can be extended.

즉, 각 블록은 데이터 입출력점 외에 트리거신호 입출력점을 가지도록 구성된다. 트리거 입력은 블록이 수행되어야 할 시점을 알려주고, 트리거 출력은 블로 그이 수행이 완료된 시점을 알려준다. 트리거 입출력은 데이터 입출력과 연결될 수 없다.That is, each block is configured to have a trigger signal input / output point in addition to the data input / output point. The trigger input tells when the block should be executed, and the trigger output tells when the blog has completed execution. Trigger I / O cannot be connected to data I / O.

여기서, 데이터 입력점은 블록 다이어그램 에디터에 사용되는 블록이 필요로 하는 변수의 값이 입력되는 포인트를 나타내고, 데이터 출력점은 블록 다이어그램 에디터에 사용되는 블록이 처리한 결과를 변수의 값으로 출력하는 포인트를 나타낸다.Here, the data input point represents a point at which the value of a variable required by the block used in the block diagram editor is input, and the data output point represents a point for outputting the result of processing by the block used in the block diagram editor as the value of the variable. Indicates.

RPL 언어와 같이 순차적 프로그래밍 방식을 블록에 적용한 것인데, 이를 위해서는 RPL의 제어문(if, switch/case. for, do, while)에 대한 블록에서의 표현방식을 고려해야 한다.Like the RPL language, the sequential programming method is applied to a block. To do this, the expression in the block for RPL control statements (if, switch / case.for, do, while) must be considered.

도 11은 트리거신호 입출력을 가지는 블록의 일반적인 형태를 나타낸 것이다. 11 shows a general form of a block having a trigger signal input and output.

분기를 위한 블록은 아래와 같이 표시한다.The block for branching is displayed as follows.

첫째, RPL 언어의 if-else 절에 해당하는 블록은 도 12에 나타낸 바와 같이 표현된다. 여기서, 입력 데이터가 참일 경우 트리거 신호가 T로 분기하고, 입력 데이터가 거짓일 경우 트리거 신호가 F로 분기한다.First, the block corresponding to the if-else clause of the RPL language is represented as shown in FIG. Here, the trigger signal branches to T if the input data is true, and the trigger signal branches to F if the input data is false.

둘째, RPL 언어의 switch-case 절에 해당하는 블록은 도 13에 나타낸 바와 같이 표현된다. 여기서, 입력 데이터에 해당하는 경우(C1, C2, C3)로 트리거 신호가 분기하고, 입력 데이터에 해당하는 경우가 없으면 트리거 신호가 D로 분기한다.Second, the block corresponding to the switch-case clause of the RPL language is represented as shown in FIG. Here, the trigger signal branches to the input data (C1, C2, C3), and if there is no case to correspond to the input data, the trigger signal branches to D.

셋째, RPL 언어의 for, do, while 절에 해당하는 블록은 상기한 if-else 절 블록을 이용하여 순환루프에 해당하는 블록을 만들어 낸다. 특히 for 문에 대한 사 용 예를 도 14에 나타내었다. Third, the block corresponding to the for, do, and while clauses of the RPL language generates a block corresponding to the loop using the above if-else clause block. In particular, the use of the for statement is shown in FIG.

그리고 트리거 신호의 연결은 데이터 입출력 점과 혼용해서 사용할 수 없다. 즉, 다수의 트리거 출력점이 하나의 트리거 입력점으로 연결되는 것은 가능하나, 하나의 트리거 출력점이 다수의 트리거 입력점으로 연결되는 것은 불가능하다.In addition, the trigger signal connection cannot be used mixed with the data input / output points. That is, although a plurality of trigger output points may be connected to one trigger input point, it is impossible to connect one trigger output point to a plurality of trigger input points.

도 15의 (a) 내지 (e)는 다수의 입출력점을 가지는 블록에 있어서 트리거 신호의 연결 예를 나타낸 것으로서, 도 15의 (a)와 (c)는 가능하지만, 도 15의 (b), (d), (e)는 불가능한 경우를 예시하여 나타낸 것이다. 15 (a) to 15 (e) show examples of connection of trigger signals in a block having a plurality of input / output points. FIGS. 15 (a) and 15 (c) are possible, but FIGS. (d) and (e) exemplify cases where it is impossible.

당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양하게 변경 및 수정이 가능하다는 것을 알 수 있을 것이다. Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit of the present invention.

따라서 본 발명의 기술적 범위는 실시 예에 기재된 내용으로 한정되는 것이 아니라 청구범위 및 그와 균등한 것들에 의하여 정해져야 한다. Therefore, the technical scope of the present invention should not be limited to the contents described in the embodiments, but should be defined by the claims and their equivalents.

도 1은 본 발명에 따른 통합 소프트웨어 개발 도구를 이용한 로봇 개발 시스템의 구성도.1 is a block diagram of a robot development system using an integrated software development tool according to the present invention.

도 2는 인터넷상의 DB 저장소를 공유하여 제어로직을 설계하는 과정을 설명하기 위한 도면.2 is a view for explaining a process of designing a control logic by sharing a DB storage on the Internet.

도 3은 모듈화된 로봇의 구조를 나타낸 도면.3 shows the structure of a modular robot.

도 4는 도 3에 도시한 모듈 인터페이스와 포트의 상세구성을 나타낸 도면.4 is a diagram showing the detailed configuration of the module interface and port shown in FIG.

도 5는 본 발명에 따른 통합 소프트웨어 개발 도구의 사용자 인터페이스 화면을 나타낸 도면.5 illustrates a user interface screen of the integrated software development tool according to the present invention.

도 6은 로봇 개발 절차를 설명하기 위한 도면.6 is a view for explaining a robot development procedure.

도 7은 소스 에디팅 과정을 설명하기 위한 도면.7 is a view for explaining a source editing process.

도 8은 로봇 모듈 인터페이스 예제에 대한 블록을 나타낸 도면.8 shows a block for an example robot module interface.

도 9는 로봇 모듈 인터페이스 예제에 대한 확장 블록을 나타낸 도면.9 illustrates an extension block for an example robot module interface.

도 10은 종래 goto 블록을 나타낸 도면.10 is a view showing a conventional goto block.

도 11은 본 발명에 따른 트리거 입출력 가지는 블록을 나타낸 도면.11 is a block diagram showing a trigger input and output according to the present invention.

도 12는 본 발명에 따른 if-else 절에 해당하는 블록을 나타낸 도면.12 illustrates a block corresponding to an if-else clause in accordance with the present invention.

도 13은 본 발명에 따른 switch-case 절에 해당하는 블록을 나타낸 도면.13 illustrates a block corresponding to a switch-case clause according to the present invention.

도 14는 본 발명에 따른 for 문에 해당하는 블록의 예를 나타낸 도면.14 shows an example of a block corresponding to a for statement in accordance with the present invention.

도 15는 본 발명에 따른 트리거 입출력을 가지는 블록에서 트리거신호의 연결 예를 나타낸 도면.15 is a view showing an example of connection of a trigger signal in a block having a trigger input and output according to the present invention.

Claims (10)

로봇 모듈에 탑재되는 제어로직을 편집하기 위한 그래픽 에디터를 구비하는 로봇 디자인 센터에 있어서,A robot design center having a graphic editor for editing control logic mounted on a robot module, 상기 그래픽 에디터 중 블록 다이어그램 에디터에 사용되는 블록은 데이터 입력점, 데이터 출력점, 트리거신호 입력점, 트리거신호 출력점이 구비되는 것을 특징으로 하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구.Blocks used in the block diagram editor of the graphical editor is a data input point, data output point, trigger signal input point, the trigger signal output point is characterized in that the integrated software development tool for robot control logic design. 제 1항에 있어서,The method of claim 1, 상기 블록간의 연결은 데이터 출력점과 데이터 입력점을 연결하기 위한 데이터 링크, 트리거신호 출력점과 트리거신호 입력점을 연결하기 위한 이벤트 링크로서 이루어지는 것을 특징으로 하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구.And the connection between the blocks is made as a data link for connecting a data output point and a data input point, and as an event link for connecting a trigger signal output point and a trigger signal input point. 제 2항에 있어서,The method of claim 2, 상기 데이터 입력점은, 블록 다이어그램 에디터에 사용되는 블록이 필요로 하는 변수의 값이 입력되는 포인트인 것을 특징으로 하는 로보세 제어로직 설계용 통합 소프트웨어 개발 도구.And the data entry point is a point at which a value of a variable required by a block used in the block diagram editor is input. 제 2항에 있어서,The method of claim 2, 상기 데이터 출력점은, 블록 다이어그램 에디터에 사용되는 블록이 처리한 결과를 변수의 값으로 출력하는 포인트인 것을 특징으로 하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구.And the data output point is a point for outputting a result of processing by a block used in the block diagram editor as a value of a variable. 제 2항에 있어서,The method of claim 2, 상기 트리거신호 입력점은, 블록 다이어그램 에디터에 사용되는 블록이 수행되어야 할 시점을 알려주는 트리거신호가 입력되는 포인트인 것을 특징으로 하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구.The trigger signal input point is an integrated software development tool for robot control logic design, characterized in that the trigger signal input point that tells when the block to be used in the block diagram editor is to be input. 제 2항에 있어서,The method of claim 2, 상기 트리거신호 출력점은, 블록 다이어그램 에디터에 사용되는 블록의 수행이 완료된 시점을 알려주는 트리거신호가 출력되는 포인트인 것을 특징으로 하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구.The trigger signal output point is an integrated software development tool for robot control logic design, characterized in that the trigger signal indicating the point at which the execution of the block used in the block diagram editor is output. 제 2항 내지 제 6항 중 어느 한 항에 있어서,The method according to any one of claims 2 to 6, 상기 트리거신호 입출력점과 데이터 입출력점은 서로 무관하게 구비되는 것을 특징으로 하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구.The trigger signal input / output points and data input / output points are integrated software development tools for robot control logic design, characterized in that provided independently of each other. 제 7항에 있어서,The method of claim 7, wherein 상기 블록 다이어그램 에디터에 사용되는 블록 중 RPL 언어의 if-else 절에 해당하는 블록은, 하나의 트리거신호 입력점과 두 개의 트리거신호 출력점이 구비되도록 이루어지되, 트리거신호는 입력 데이터가 참일 경우 하나의 트리거신호 출력점으로 분기하고, 입력 데이터가 거짓일 경우 다른 하나의 트리거신호 출력점으로 분기하도록 된 것을 특징으로 하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구.Among the blocks used in the block diagram editor, a block corresponding to the if-else clause of the RPL language is configured to have one trigger signal input point and two trigger signal output points, but the trigger signal is one if the input data is true. An integrated software development tool for robot control logic design, characterized in that it branches to a trigger signal output point and branches to another trigger signal output point if the input data is false. 제 7항에 있어서,The method of claim 7, wherein 상기 블록 다이어그램 에디터에 사용되는 블록 중 RPL 언어의 switch-case 절에 해당하는 블록은, 하나의 트리거신호 입력점과 C1, C2, C3, D로 된 4 개의 트리거신호 출력점이 구비되도록 이루어지되, 트리거신호는 입력 데이터에 해당하면 C1, C2, C3로 분기하고, 입력 데이터에 해당하지 않으면 D로 분기하도록 된 것을 특징으로 하는 로봇 제어로직 설계용 통합 소프트웨어 개발 도구.The block corresponding to the switch-case clause of the RPL language among the blocks used in the block diagram editor is configured such that one trigger signal input point and four trigger signal output points of C1, C2, C3, and D are provided. The signal is branched to C1, C2, C3 if the input data corresponds, and branched to D if the input data does not correspond, the integrated software development tool for robot control logic design. 제 7항에 있어서, The method of claim 7, wherein 다수의 트리거신호 출력점은 하나의 트리거신호 입력점으로의 연결이 가능하고, 하나의 트리거신호 출력점은 다수의 트리거신호 입력점으로의 연결이 불가능하도록 된 것을 특징으로 로봇 제어로직 설계용 통합 소프트웨어 개발 도구.Multiple trigger signal output points can be connected to one trigger signal input point, and one trigger signal output point can not be connected to multiple trigger signal input points. Development tools.
KR1020070070445A 2007-07-13 2007-07-13 Computer-readable recording medium recording integrated software development program for robot control logic design KR100932546B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070070445A KR100932546B1 (en) 2007-07-13 2007-07-13 Computer-readable recording medium recording integrated software development program for robot control logic design

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070070445A KR100932546B1 (en) 2007-07-13 2007-07-13 Computer-readable recording medium recording integrated software development program for robot control logic design

Publications (2)

Publication Number Publication Date
KR20090006953A true KR20090006953A (en) 2009-01-16
KR100932546B1 KR100932546B1 (en) 2009-12-17

Family

ID=40487963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070070445A KR100932546B1 (en) 2007-07-13 2007-07-13 Computer-readable recording medium recording integrated software development program for robot control logic design

Country Status (1)

Country Link
KR (1) KR100932546B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3720954B2 (en) 1997-07-07 2005-11-30 ダイハツ工業株式会社 Seam welding machine electrode ring height measuring device
JP3084012B2 (en) 1998-05-27 2000-09-04 株式会社デンノー Control device and method of creating control program therefor
JP4122652B2 (en) * 1999-09-27 2008-07-23 松下電器産業株式会社 Robot control device

Also Published As

Publication number Publication date
KR100932546B1 (en) 2009-12-17

Similar Documents

Publication Publication Date Title
CN108885545B (en) Tools and methods for real-time dataflow programming languages
US6564368B1 (en) System and method for visual application development without programming
US6965800B2 (en) System of measurements experts and method for generating high-performance measurements software drivers
US6173438B1 (en) Embedded graphical programming system
Perchat et al. Component based framework to create mobile cross-platform applications
Schneider Components, Scripts, and Glue: A conceptual framework for software composition
Carlson et al. SaveCCM: An analysable component model for real-time systems
Doucet et al. Introspection in system-level language frameworks: meta-level vs. integrated
Luer et al. Composition environments for deployable software components
Jansen Learning TypeScript
Gutiérrez et al. Progress in robocomp
KR100932546B1 (en) Computer-readable recording medium recording integrated software development program for robot control logic design
Tunc et al. Web-based integrated development environment for event-driven applications
Vernon D3. 2 Software Engineering Standards Manual
Aslam Creating a microservice generator for GO-based microservices: An industrial case study
Lopes et al. TPS development using the Microsoft. NET Framework
Rinaldi Implementation of a software interface layer between a model-based-design tool and embedded graphic frameworks.
Song A general model for component-based software
Galasso Visual approach to design and development of event-based software for industrial applications
Ludin Learn BlackBerry 10 App Development: A Cascades-Driven Approach
Wood D-1 through DAT
Groher et al. Designing features as pluggable collaborations
BORDONI ALMA MATER STUDIORUM UNIVERSITA DEGLI STUDI DI BOLOGNA
Cavarra et al. Mapping UML into Abstract State Machines: A Framework to Simulate UML Models.
Kersten et al. 12" Collision with the Penguin”: SuperCollider on Linux

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121011

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140610

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150713

Year of fee payment: 6

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20151113

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161201

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170803

Year of fee payment: 18