KR101103787B1 - Robot programming system based graphic - Google Patents

Robot programming system based graphic Download PDF

Info

Publication number
KR101103787B1
KR101103787B1 KR1020090127358A KR20090127358A KR101103787B1 KR 101103787 B1 KR101103787 B1 KR 101103787B1 KR 1020090127358 A KR1020090127358 A KR 1020090127358A KR 20090127358 A KR20090127358 A KR 20090127358A KR 101103787 B1 KR101103787 B1 KR 101103787B1
Authority
KR
South Korea
Prior art keywords
block
robot
command
blocks
view
Prior art date
Application number
KR1020090127358A
Other languages
Korean (ko)
Other versions
KR20110070508A (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 KR1020090127358A priority Critical patent/KR101103787B1/en
Publication of KR20110070508A publication Critical patent/KR20110070508A/en
Application granted granted Critical
Publication of KR101103787B1 publication Critical patent/KR101103787B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

본 발명은 그래픽 기반 로봇 프로그래밍 시스템 및 컴퓨터로 판독가능한 기록매체에 관한 것으로서, 일면에 따른 그래픽 기반 로봇 프로그래밍 시스템은, 로봇의 작업을 명령하는 다수의 명령어 블록을 저장하는 블록 저장부 및 사용자의 명령에 따라 다수의 명령어 블록 중 선택된 명령어 블록을 배치하고 선택 및 배치된 명령어 블록을 링크로 연결하여 로봇의 작업을 프로그래밍하는 그래픽 인터페이스부를 포함한다.

Figure R1020090127358

로봇 프로그래밍, 그래픽 기반

The present invention relates to a graphic-based robot programming system and a computer-readable recording medium, the graphic-based robot programming system according to one aspect, the block storage unit for storing a plurality of instruction blocks for instructing the operation of the robot and the user's instructions According to the present invention, a graphic interface unit for arranging a selected command block among a plurality of command blocks and connecting the selected and arranged command blocks by a link to program a robot's work is included.

Figure R1020090127358

Robot Programming, Graphical

Description

그래픽 기반 로봇 프로그래밍 시스템{Robot programming system based graphic}Robot programming system based graphic

본 발명은 그래픽 기반 로봇 프로그래밍 시스템 및 컴퓨터로 판독가능한 기록매체에 관한 것이다.The present invention relates to a graphical robot programming system and a computer readable recording medium.

로봇의 작업을 시뮬레이션하는 기술이 개발되어 왔다. 그 중 하나가 그래픽기반 하에 로봇의 작업을 프로그래밍하고 시뮬레이션하는 것이다.Techniques have been developed to simulate the work of robots. One of them is to program and simulate the robot's work graphically.

그러나 종래에는 복잡한 텍스트 기반의 프로그래밍 언어를 사용하여 로봇의작업을 프로그래밍하고, 시뮬레이션하였다. 따라서 프로그래밍 언어에 익숙하지 않은 사용자는 로봇의 작업을 프로그래밍하고 시뮬레이션하는 과정에 많은 어려움이 있었다.However, conventionally, the robot's work is programmed and simulated using a complex text-based programming language. Therefore, users unfamiliar with programming languages have had many difficulties in programming and simulating robot tasks.

본 발명은 전술한 바와 같은 문제점을 해결하기 위하여, 그래픽 기반 하에 로봇의 작업의 프로그래밍 및 시뮬레이션을 블록 형태의 간단한 구조로 직관적으로 수행할 수 있도록 하며, 약간의 학습으로 전자공학 관련 지식이 없는 자라도 그래픽 기반의 제작 도구를 사용하여 로봇의 작업을 구성할 수 있도록 한다.In order to solve the problems described above, the present invention enables to intuitively perform the programming and simulation of the robot's work in a simple structure in the form of blocks based on the graphic, and even a person who does not have electronics-related knowledge with a little learning Use the built-in authoring tools to organize the robot's work.

본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The object of the present invention is not limited to the above-mentioned object, and other objects that are not mentioned will be clearly understood by those skilled in the art from the following description.

전술한 목적을 달성하기 위한 본 발명의 일면에 따른 그래픽 기반 로봇 프로그래밍 시스템은, 로봇의 작업을 명령하는 다수의 명령어 블록을 저장하는 블록 저장부 및 사용자의 명령에 따라, 상기 다수의 명령어 블록 중 선택된 명령어 블록을 배치하고 상기 선택 및 배치된 명령어 블록을 링크로 연결하여 상기 로봇의 작업을 프로그래밍하는 그래픽 인터페이스부를 포함한다.In accordance with an aspect of the present invention, there is provided a graphic-based robot programming system including a block storage unit for storing a plurality of command blocks for instructing a robot's work and a user's command to select a block storage unit. And a graphic interface unit for arranging a command block and connecting the selected and arranged command blocks by a link to program a task of the robot.

또한 그래픽 기반 로봇 프로그래밍 시스템은, 상기 링크로 연결된 명령어 블록들을 순차적으로 번역하는 번역기 및 상기 번역 결과에 따라 상기 로봇을 실행시키는 실행기를 더 포함할 수 있다. 여기서 그래픽 인터페이스부는 상기 실행 결과를 사용자에게 표시한다.The graphic-based robot programming system may further include a translator for sequentially translating the instruction blocks connected by the link and an executor for executing the robot according to the translation result. Here, the graphical interface displays the execution result to the user.

또한 상기 번역기는 상기 링크에 의해 둘 이상의 명령어 블록으로 분기될 때 상기 둘 이상의 명령어 블록을 다중으로 번역할 수 있다.The translator may also translate the two or more instruction blocks multiplely when branched to two or more instruction blocks by the link.

상기 실행기는 3D 기반의 시뮬레이터를 이용하여 상기 로봇을 실행시킬 수있다.The launcher may execute the robot using a 3D based simulator.

또한 상기 그래픽 인터페이스부는 상기 다수의 명령어 블록을 아이콘으로 표시하는 오브젝트뷰(object view) 및 상기 사용자의 클릭 및 드래그에 따라, 상기 오브젝트 뷰로부터 선택된 명령어 블록의 아이콘이 배치된 것과 각 배치된 명령어 블록이 상기 링크로 연결된 것을 표시하는 태스크 뷰(task view)를 포함한다.The graphic interface unit may include an object view displaying the plurality of command blocks as an icon and an icon of a command block selected from the object view according to a user's click and drag, and each of the arranged command blocks. And a task view indicating that the link is made.

여기서 상기 태스크 뷰는 상기 사용자의 명령에 따라, 상기 선택, 배치 및 연결된 상기 명령어 블록 및 링크를 삭제 또는 수정하는 것이다.Here, the task view is to delete or modify the command block and link selected, arranged and connected according to the user's command.

또한 그래픽 기반 로봇 프로그래밍 시스템은, 상기 선택 및 배치되어 명령어 블록 및 상기 링크에 의해 올바르게 연결되었는지 여부를 검증하는 오류 체크부를 더 포함할 수 있다.In addition, the graphical robot programming system may further include an error check unit for verifying whether the selection and placement is correctly connected by the instruction block and the link.

한편, 상기 다수의 명령어 블록은 프로그램의 시작과 종료를 수행하는 스타트(start) 블록과 앤드(and) 블록, 두 명령어 블록 간의 엔드(AND) 연산을 수행하는 엔드(and) 블록, 딜레이(delay)를 설정할 수 있는 설정하는 딜레이 블록, 상기 로봇의 로봇의 자세를 설정하는 포스쳐(posture) 블록, 상기 로봇의 제스쳐(gesture)를 설정하는 제스쳐 블록, 조건 판단 기능을 하는 조건(if) 블록, 프로그램 변수에 값을 쓸 수 있는 쓰기(write) 블록, 사용자에 의해 작성된 텍스트를 음성으로 읽어 주는 기능을 하는 스피치 블록, 기존에 작성된 로봇 프로그램을 불러오는 태스크 블록 및 음성 파일을 불러오는 웨이브 블록 중 적어도 하나를 포함 한다.Meanwhile, the plurality of command blocks may include a start block and an end block for starting and ending a program, an end block for performing an AND operation between two command blocks, and a delay. A delay block for setting the posture, a posture block for setting the posture of the robot of the robot, a gesture block for setting the gesture of the robot, a condition (if) block for the condition determination function, a program At least one of a write block for writing a value to a variable, a speech block for reading a text written by a user by voice, a task block for loading an existing robot program, and a wave block for loading a voice file do.

전술한 목적을 달성하기 위한 본 발명의 다른 면에 따른 그래픽 기반 로봇 프로그래밍이 가능한 소프트웨어가 저장된 컴퓨터로 판독가능한 기록매체로서, 상기 그래픽 기반 로봇 프로그래밍이 가능한 소프트웨어는 사용자의 명령에 따라, 다수의 명령어 블록 중 선택된 명령어 블록을 배치하고 상기 선택 및 배치된 명령어 블록을 링크로 연결하여 상기 로봇의 작업을 프로그래밍하는 단계, 상기 링크로 연결된 명령어 블록들을 순차적으로 번역하는 단계 및 상기 번역 결과에 따라 상기 로봇을 실행시키는 단계를 수행하는 것이다.According to another aspect of the present invention for achieving the above object is a computer-readable recording medium storing a graphics-based robot programmable software, the graphics-based robot programmable software, according to the user's instructions, a plurality of instruction blocks Arranging a selected instruction block and connecting the selected and arranged instruction blocks by a link to program a task of the robot, sequentially translating the instruction blocks connected by the link, and executing the robot according to the translation result. To perform the steps.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Specific details of other embodiments are included in the detailed description and the drawings.

본 발명에 따르면, 그래픽 기반 하에 로봇의 작업의 프로그래밍 및 시뮬레이션을 블록 형태의 간단한 구조로 수행할 수 있도록 하며, 약간의 학습으로 전자공학 관련 지식이 없는 자라도 그래픽 기반의 제작 도구를 사용하여 로봇의 작업을 구성할 보장한다.According to the present invention, it is possible to perform the programming and simulation of the robot's work in the form of a block based on the graphic base, and even a person who has no knowledge of electronic engineering with a little learning can use the robot's work using the graphic-based production tool. Ensure that it is configured.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발 명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various different forms, only the embodiments are to make the disclosure of the present invention complete, and the general knowledge in the art to which the present invention belongs It is provided to fully convey the scope of the invention to those skilled in the art, and the present invention is defined only by the scope of the claims. It is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. As used herein, “comprises” and / or “comprising” refers to the presence of one or more other components, steps, operations and / or elements. Or does not exclude additions.

도 1 내지 도 14를 참조하여 본 발명의 실시예에 따른 그래픽 기반 로봇 프로그래밍 시스템 및 컴퓨터로 판독가능한 기록매체에 대해 설명한다. 도 1은 본 발명의 실시예에 그래픽 기반 로봇 프로그래밍 시스템을 나타내는 구성도이고, 도 2 내지 도 11은 도 1의 그래픽 인터페이스부를 설명하기 위한 예시도이고, 도 12는 명령어 블록을 설명하기 위한 예시도이고, 도 13 및 도 14는 도 1의 그래픽 인터페이스부와 실행기를 설명하기 위한 예시도이다.1 to 14, a graphic-based robot programming system and a computer-readable recording medium according to an embodiment of the present invention will be described. 1 is a block diagram showing a graphical robot programming system according to an embodiment of the present invention, Figures 2 to 11 is an exemplary view for explaining the graphical interface of Figure 1, Figure 12 is an exemplary view for explaining a command block. 13 and 14 are exemplary diagrams for describing the graphic interface unit and the executor of FIG. 1.

도 1을 참조하면, 본 발명의 실시예에 따른 그래픽 기반 로봇 프로그래밍 시스템(100)은, 그래픽 인터페이스부(110)와, 블록 저장부(120)와, 번역기(130) 및 실행기(140)를 포함한다.Referring to FIG. 1, a graphic-based robot programming system 100 according to an embodiment of the present invention includes a graphic interface unit 110, a block storage unit 120, a translator 130, and an executor 140. do.

블록 저장부(120)에는 로봇의 작업을 명령하는 다수의 명령어 블록이 저장되어 있고, 그래픽 인터페이스부(110)는, 도2에 도시된 바와 같이 사용자의 명령에 따라, 블록 저장부(120)에서 다수의 명령어 블록 중 적어도 하나를 선택하여 각각을 배치하고 링크로 연결시킬 수 있다. The block storage unit 120 stores a plurality of command blocks for instructing a robot's work, and the graphic interface unit 110, in accordance with a user's command as shown in FIG. At least one of the plurality of instruction blocks may be selected to place and link with each other.

그리고 번역기(130)는 사용자의 명령에 의해 선택, 배치 및 연결된 각 명령어 블록을 번역하고, 실행기(140)는 번역된 결과를 토대로 각 명령어를 실행시킨다. 이러한 번역기(130)는 링크에 의해 둘 이상의 명령어 블록으로 분기될 때 상기 둘 이상의 명령어 블록을 다중으로 번역할 수 있다. 또한 실행기(140)는 3D 기반의 시뮬레이터를 이용하여 상기 로봇을 실행시킬 수 있다.The translator 130 translates each command block selected, arranged and connected by the user's command, and the executor 140 executes each command based on the translated result. The translator 130 may translate the two or more instruction blocks multiplely when branched to two or more instruction blocks by a link. In addition, the executor 140 may execute the robot using a 3D-based simulator.

실행기(140)의 실행에 따라, 그래픽 인터페이스부(110)는 처리 결과로서, 로봇의 작업을 그래픽으로 사용자에게 보여줄 수 있다. 즉, 로봇은 사용자가 선택, 배치하고 연결한 순서에 따라 작업을 하게 되며, 이러한 처리 결과가 그래픽 인터페이스부(110)를 통해 표시된다. 실행기(140)는 각 명령어 블록을 연결하는 링크를 따라 토큰을 증가시켜 토큰을 만난 명령어 블록을 실행할 수 있다. 일련의 명령어 블록들(파일)이 다수 존재 할 때에는 다수의 토큰을 사용하여 동시에 여러 개의 파일을 실행 할 수 있다. In response to the execution of the executor 140, the graphic interface unit 110 may display the work of the robot to the user graphically as a processing result. That is, the robot works according to the order selected, arranged and connected by the user, and the processing result is displayed through the graphic interface 110. The executor 140 may execute an instruction block that meets the token by incrementing the token along a link connecting each instruction block. When a series of command blocks (files) exist, multiple files can be executed simultaneously using multiple tokens.

한편, 선택 및 배치되어 연결된 명령어 블록 및 링크가 올바르게 연결되었는지 여부를 검증하는 오류 체크부(150)를 더 포함할 수 있다. 오류 체크부(150)는, 번역기(130) 및 실행기(140)가 각 기능을 동작하기 전에 먼저, 각 명령어 블록의 속성과 링크의 연결관계를 통해 올바르게 프로그래밍되어 있는지 여부를 체크 및 검증할 수 있다. 그리고 체크 결과를 사용자에게 그래픽 인터페이스부(110)를 통해 표시할 수 있다.On the other hand, it may further include an error check unit 150 for verifying whether the command block and the link connected and selected and arranged is correctly connected. The error checker 150 may check and verify whether the translator 130 and the executor 140 are correctly programmed through a connection relationship between an attribute of each instruction block and a link before operating each function. . The check result may be displayed to the user through the graphic interface 110.

이하에서 각각의 모듈들에 대해 좀더 구체적으로 설명한다.Hereinafter, each module will be described in more detail.

먼저 그래픽 인터페이스부(110)는 도 2에 도시된 바와 같이, 예를 들어 메뉴 및 툴바(menu & toolbar)와, 트리 뷰(tree view)와, 태스크 뷰(task view)와, 프로퍼티 뷰(property view)와, 아웃풋 뷰(output view)를 포함할 수 있다.First, as illustrated in FIG. 2, the graphical interface 110 may include, for example, menus and toolbars, a tree view, a task view, and a property view. ) And an output view.

Menu와 Toolbar는 프로그래밍 시스템(100)으로 작성된 파일을 저장 및 불러오기, 새로 만들기를 할 수 있다. 태스크파일 뷰(TaskFile View), 웨이브파일 뷰(WaveFile View), 포스쳐파일 뷰(PostureFile View), 제스쳐파일 뷰(GestureFile View)를 통해, 이전에 프로그래밍했던 태크스파일, 이전에 저장했던 음성 등의 웨이브파일, 이전에 설정했던 제세에 관한 포스쳐파일, 이전에 설정했던 제스쳐에 관한 제스쳐파일 각각의 위치를 도 3과 같이 지정하여 사용할 수 있다. 또한 configuration 창에서 태스크파일 뷰(TaskFile View)의 크기를 지정하여 사용할 수 있다. Menus and toolbars can save, load, and create files created by the programming system 100. Through the TaskFile View, WaveFile View, PostureFile View, and GestureFile View, you can view previously programmed task files, previously saved voices, and more. The position of each of the wave file, the gesture file related to the previously set defibrillation, and the gesture file regarding the previously set gesture can be designated and used as shown in FIG. 3. You can also specify the size of the TaskFile View in the configuration window.

트리 뷰는 오브젝트 뷰(Object View)와, 태스크파일 뷰(TaskFile View), 웨이브파일 뷰(WaveFile View), 포스쳐파일 뷰(PostureFile View), 제스쳐파일 뷰(GestureFile View)를 표시한다. The tree view displays an object view, a task file view, a wave file view, a posture file view, and a gesture file view.

오브젝트 뷰는 도 4와 같이 사용자로 하여금 로봇의 명령어 블록을 선택할 수 있도록 한다. 오브젝트 뷰에서 명령어 블록을 더블클릭하면 테스크파일 뷰에서, 도 5와 같이 명령어 블록이 생성된다.The object view allows the user to select the instruction block of the robot as shown in FIG. 4. When the command block is double-clicked in the object view, the command block is generated as shown in FIG. 5 in the task file view.

태스크파일 뷰는, 도 6에 도시된 바와 같이, 기존에 작성된 태스크파일들을 나타낸다. 태스크파일 뷰의 태스크 파일을 더블클릭하면 태스크 명령어 블록이 생성된다.The task file view, as shown in FIG. 6, shows the previously created task files. Double-clicking a task file in the task file view creates a task command block.

웨이브파일 뷰는, 도 7과 같이, 기존에 작성된 웨이브파일을 나타낸다. 웨이 브파일 뷰의 웨이브 파일을 더블클릭하면 웨이브 명령어 블록이 생성된다.The wave file view shows a previously created wave file as shown in FIG. Double-clicking a wave file in the Wavefile view creates a wave command block.

포스쳐파일 뷰는, 도 8과 같이 기존에 작성된 제스쳐파일들을 나타낸다. 포스쳐파일 뷰의 포스쳐파일을 더블클릭하면 포스쳐 명령어 블록이 생성된다.The posture file view shows gesture files previously created as shown in FIG. 8. Double-clicking a posture file in the posture file view creates a posture command block.

제스쳐파일 뷰는, 도 9과 같이 기존에 작성된 제스쳐파일들을 나타낸다. 제스쳐파일 뷰의 제스쳐파일을 더블클릭하면 제스쳐 명령어 블록이 생성된다.The gesture file view shows gesture files previously created as shown in FIG. 9. Double-clicking on a gesture file in the gesture file view creates a gesture command block.

태스크 뷰는 그래픽기반 프로그래밍 시스템(100)의 메인 뷰로서, 사용자의 명령에 따라, 트리 뷰에서 선택한 명령어 블록들을 다중 선택하여 배치할 수 있으며, 선택 및 배치된 명령어 블록들을 연결해주는 링크를 삽입할 수 있고, 명령어 블록과 링크들의 수정, 삭제를 가능하게 한다. The task view is a main view of the graphical programming system 100. According to a user's command, a task view block can be selected and arranged in a tree view, and a link connecting the selected and arranged instruction blocks can be inserted. It allows you to modify and delete command blocks and links.

태스크 뷰의 명령어 블록에 대한 마우스 및 키보드 이벤트는, 예를 들어 다음과 같을 수 있다. 사용자는 마우스 왼쪽클릭으로 생성된 명령어 블록의 위치를 지정 할 수 있으며, 마우스 드래그로 다수의 명령어 블록들을 선택, 이동(배치)할 수 있다. 또한 사용자는 선택된 명령어 블록을 Delete키로 삭제가 가능하며, 포스쳐 명령어 블록, 제스쳐 명령어 블록, 웨이브 명령어 블록, 태스크 명령어 블록을 더블 클릭하여 파일들을 지정할 수 있다. Mouse and keyboard events for the instruction block of the task view may be, for example, as follows. The user can specify the location of the command block created by left clicking the mouse and select and move (place) a plurality of command blocks by dragging the mouse. In addition, the user can delete the selected command block with the Delete key, and specify files by double-clicking the posture command block, the gesture command block, the wave command block, and the task command block.

그리고 사용자는 태스크 뷰에서 각 명령어 블록들을 연결해주는 링크를 생성할 수 있다. 예를 들어, 도 10과 같이 명령어 블록의 왼쪽 화살표는 입력을, 오른쪽 화살표는 명령어 블록의 출력을 나타내므로, 사용자는 생성된 명령어들의 순서에 맞추어 입력 및 출력을 링크로 연결한다. 예컨대 명령어 블록의 출력 화살표를 클릭한 채로 드래그를 하면 링크가 생성되고, 생성된 링크를 이어 주고자 하는 다 른 명령어 블록의 입력에 넣으면, 도 11과 같이 두 블록의 링크가 생성된다. 링크도 명령어 블록과 같이 선택하고 Delete키를 누름으로써 삭제가 가능하다. You can also create links that link each block of instructions in the task view. For example, as shown in FIG. 10, the left arrow of the command block represents an input and the right arrow represents the output of the command block. Thus, the user connects the input and output to the link in the order of generated instructions. For example, when clicking and dragging an output arrow of an instruction block, a link is created, and when the input link is inserted into an input of another instruction block to be connected, the link of two blocks is generated as shown in FIG. Links can also be deleted by selecting them with the command block and pressing the Delete key.

프로퍼티 뷰는 사용자에 의해 명령어 블록의 속성을 설정할 수 있다. 태스크 뷰에 생성된 명령어 블록을 클릭하면 해당하는 속성이 프로퍼티 뷰에 표시된다. The property view can set an attribute of an instruction block by a user. When you click the command block created in the task view, the corresponding property is displayed in the property view.

아웃풋 뷰는 파일 저장시 프로그램의 오류 및 저장 성공여부를 표시한다. The output view displays the program's error in saving the file and whether the save was successful.

이하에서는 명령어 블록에 대해 설명한다.Hereinafter, the instruction block will be described.

도 12의 (a)에 도시된 명령어 블록은 프로그램의 시작을 나타내는 Start 블록이다. Start 블록은 입력 포트는 존재하지 않으며 출력 포트 한 개를 갖는다. Task Composer로 만들어진 모든 프로그램은 Start 블록으로부터 프로그램이 시작이 된다. 또한 Start 블록은 하나의 프로그램에 하나 이상 존재한다.The command block shown in FIG. 12A is a start block indicating the start of a program. The start block does not have an input port and has one output port. All programs created with Task Composer are started from the Start block. In addition, more than one Start block exists in one program.

도 12의 (b)에 도시된 명령어 블록은 End 블록이다. End 블록은 프로그램의 끝을 나타내는 블록이다. End 블록은 출력 포트를 갖지 않고, 입력 포트 한 개를 갖는다. 이러한 End 블록은 하나의 프로그램에 하나 이상 존재한다. The instruction block illustrated in FIG. 12B is an end block. End block is a block indicating the end of the program. The end block does not have an output port, but has one input port. One or more such end blocks exist in one program.

도 12의 (c)에 도시된 명령어 블록은 Delay 블록이다. Delay 블록은 주어진 시간만큼 프로그램을 지연시키는 블록이다. 이러한 Delay 블록은 입력 포트, 출력 포트 각각 한 개씩 갖는다. 프로퍼티 뷰에서 딜레이 타임을 설정할 수 있다. 예컨대 딜레이 타임은 ms단위로 설정될 수 있다. The command block illustrated in (c) of FIG. 12 is a delay block. A delay block is a block that delays a program by a given time. This delay block has one input port and one output port. You can set the delay time in the property view. For example, the delay time may be set in ms units.

도 12의 (d)에 도시된 명령어 블록은 And 블록이다. And 블록은 입력으로 들어온 모든 블록들이 모두 주어진 역할을 마칠 때까지 기다리는 블록이다. And 블록은 여러개의 입력을 가질 수 있으며, 출력 포트는 한 개를 갖는다.The instruction block shown in (d) of FIG. 12 is an And block. And blocks are blocks that wait until all the blocks coming in as input complete their given roles. And blocks can have multiple inputs, and one output port.

도 12의 (e)에 도시된 명령어 블록은 Write 블록이다. Write 블록은 해당하는 변수의 이름에 값을 지정(쓰기)한다. 만일 변수가 존재하지 않는다면 변수를 생성하고 값을 지정한다. 프로퍼티 뷰에서 변수의 이름(Name)과 값(Value)을 설정할 수 있다. Value 값은 정수로 설정된다. Write 블록은 입력, 출력 포트 각각 한 개씩 가지는 블록이다.The instruction block illustrated in FIG. 12E is a write block. The write block assigns a value to the name of the variable. If the variable doesn't exist, create it and assign it a value. You can set the Name and Value of a variable in the property view. Value is set to an integer. Write block is a block that has one input and one output port.

도 12의 (f)에 도시된 명령어 블록은 If 블록이다. If 블록은 아래에 지정된 연산자로변수의 값을 검사하는 블록이다. 프로퍼티 뷰에서 변수의 이름(Name)과 연산자(Operator), 값(Value)을 설정할 수 있다. Value값은 정수로 설정된다. The instruction block shown in FIG. 12F is an If block. The If block is a block that checks the value of a variable with the operator specified below. You can set the Name, Operator, and Value of a variable in the Property View. Value is set to an integer.

연산자(Operator)는 다음과 같은 6가지 종류가 있다.There are six types of operators:

1. 변수에 저장된 값 <  Value (LESS_THAN); 1. the value stored in the variable <Value (LESS_THAN);

2. 변수에 저장된 값 <= Value (LESS_EQUAL); 2. the value stored in the variable <= Value (LESS_EQUAL);

3. 변수에 저장된 값 > Value (GREATER_THAN); 3. the value stored in the variable> Value (GREATER_THAN);

4. 변수에 저장된 값 >= Value (GREATER_EQUAL); 4. The value stored in the variable> = Value (GREATER_EQUAL);

5. 변수에 저장된 값 == Value (EQUAL); 5. The value stored in the variable == Value (EQUAL);

6. 변수에 저장된 값 != Value (NOT_EQUAL); 6. The value stored in the variable! = Value (NOT_EQUAL);

위에 연산에 의해 나온 값이 참이면 출력 포트중 True 포트로 다음 프로그램이 실행되며, 거짓이면 False 포트로 연결된 다음 프로그램이 실행된다. If the value obtained by the above operation is true, the next program is executed with True port among the output ports. If false, the next program connected with False port is executed.

도 12의 (g)에 도시된 명령은 TTS 블록이다. TTS 블록은 주어진 text를 음성으로 출력할 수 있는 블록이다. 프로퍼티 뷰에서 Text와 음성의 음조(Pitch), 빠르기(Speed), 크기(Volume)를 설정할 수 있다. 음조, 빠르기, 크기는 default 값을 가질 수 있다. TTS 블록은 입력, 출력 포트 각각 한 개씩 가지는 블록이다. The instruction shown in (g) of FIG. 12 is a TTS block. The TTS block is a block that can output a given text as a voice. You can set the pitch, speed, and volume of the text and voice in the Properties view. Tone, Fast, and Loudness can have default values. The TTS block is a block that has one input and one output port.

도 12의 (h)에 도시된 명령어 블록은 Task 블록이다. Task 블록은, 로봇이 특정 태스크를 수행하도록, Task Composer로 이전에 작성한 프로그램을 불러 올 수 있다. Task 블록은, 이전에 만들어진 프로그램에서 Start 블록부터 시작해 End 블록까지의 역할을 수행한다. 프로퍼티 뷰에서 기존에 작성된 태스크파일을 지정할 수 있습니다. Task 블록은 입력, 출력 포트 각각 한 개씩 가지는 블록이다. The command block illustrated in (h) of FIG. 12 is a task block. Task blocks can load previously written programs into Task Composer to allow the robot to perform specific tasks. The task block plays a role from the Start block to the End block in the previously created program. In the property view, you can specify an existing task file. Task block is a block that has one input and one output port.

도 12의 (i)에 도시된 명령어 블록은 Wave 블록이다. Wave 블록은 기존에 만들어진 웨이브파일을 불러와 실행하는 블록이다. 프로퍼티 뷰에서 기존에 작성된 웨이브파일을 지정할 수 있다. Wave 블록은 입력, 출력 포트 각각 한 개씩 갖는다. The instruction block illustrated in (i) of FIG. 12 is a wave block. Wave block is a block that loads and executes existing wave file. In the property view, you can specify an existing wave file. The Wave block has one input and one output port.

도 12의 (j)에 도시된 명령어 블록은 Posture 블록이다. Posture 블록은, 로봇이 특정 자세를 취하도록, 기존에 만들어진 포스쳐파일(txt 파일)을 불러와 실행하는 블록이다. The command block illustrated in (j) of FIG. 12 is a posture block. Posture blocks are blocks that load and execute existing posture files (txt files), so that the robot takes a certain posture.

프로퍼티 뷰에서 기존에 작성된 포스쳐파일을 지정할 수 있다. Posture 블록은 입력, 출력 포트 각각 한 개씩 갖는다. In the properties view, you can specify a post file created earlier. Posture blocks have one input and one output port.

도 12의 (k)에 도시된 명령어 블록은 Gesture 블록이다. Gesture 블록은, 로봇이 특정 제스쳐를 취하도록, 기존에 만들어진 제스쳐파일(txt 파일)을 불러와 실행하는 블록이다. Gesture 블록은 프로퍼티 뷰에서 기존에 작성된 제스쳐파일을 지정할 수 있다. 이러한 Gesture 블록은 입력, 출력 포트 각각 한 개씩 갖는다. The instruction block shown in (k) of FIG. 12 is a Gesture block. A Gesture block is a block that loads and executes a previously created gesture file (txt file) so that the robot can take a specific gesture. Gesture blocks can specify a gesture file that has been created in the property view. This Gesture block has one input and one output port.

도 12의 (l)에 도시된 명령어 블록은 WayPoint 블록이다. WayPoint 블록은다른 명령어 블록을 상호 연결하는 역할을 한다. WayPoint 블록은 입력, 출력 포트 각각 한 개씩 가지는 블록이다. The instruction block illustrated in (l) of FIG. 12 is a WayPoint block. WayPoint blocks serve to interconnect other instruction blocks. The WayPoint block is a block that has one input and one output port.

다음으로 도 13을 참조하여 실행기(140)와 그래픽 인터페이스부(110)의 동작을 좀더 구체적으로 설명한다.Next, the operation of the executor 140 and the graphic interface unit 110 will be described in more detail with reference to FIG. 13.

실행기(140)를 통해 각 명령어 블록을 실행시키면, 도 13에 도시된 바와 같이, 그래픽 인터페이스부(110)에는 시나리오 뷰(Scenario View)와, 태스크 뷰(Task View)와 로봇 뷰(Robot View)와 아웃풋 뷰(Output View)를 표시한다.When each instruction block is executed through the executor 140, as illustrated in FIG. 13, the graphical interface 110 includes a scenario view, a task view, a robot view, Display the Output View.

시나리오 뷰에서는 미리 설정된 파일 경로에 Task Composer로 작성된 파일들을 볼 수 있다. 시나리오 뷰에서 파일을 선택하면 태스크 뷰에 Task Composer로 작성된 프로그램을 확인 할 수 있다. 시나리오 뷰에서 파일을 선택하면 Start 버튼이 활성화 되어 로봇뷰에서, 로봇이 작성한 프로그램대로 동작하는 것을 확인 할 수 있다. In the scenario view, you can see the files created by Task Composer in the preset file path. If you select a file in the scenario view, you can see the program written in Task Composer in the task view. If you select a file in the scenario view, the Start button is activated and you can see that the robot operates according to the program you created.

태스크 뷰에서는 시나리오 뷰에서 선택된 파일을 표시한다. 또한 프로그램에 따라 로봇이 동작시 현재 실행되고 있는 명령어 블록을 도 14와 같이 확인할 수 있다. The task view displays the files selected in the scenario view. In addition, as shown in FIG. 14, the instruction block currently executed when the robot operates according to a program can be checked.

아웃풋 뷰에서는 시뮬레이션 동작의 정보, 예컨대 수행시간, 명령어 블록명을 표시한다. The output view displays the simulation operation information, such as execution time and instruction block name.

로봇 뷰에서는 기존에 만들어진 로봇에 프로그램 수행 동작을 OpenGL을 이용하여 시뮬레이션을 확인 할 수 있다. In the robot view, you can check the simulation by using OpenGL to execute the program operation on the existing robot.

한편, 전술한 내용의 그래픽 기반 로봇 프로그래밍이 가능한 소프트웨어는 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.Meanwhile, the graphic-based robot programmable software described above may be stored in a computer-readable recording medium.

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art will appreciate that the present invention can be embodied in other specific forms without changing the technical spirit or essential features of the present invention. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the claims and their equivalents should be construed as being included in the scope of the present invention.

도 1은 본 발명의 실시예에 그래픽 기반 로봇 프로그래밍 시스템을 나타내는 구성도이다.1 is a block diagram showing a graphics-based robot programming system in an embodiment of the present invention.

도 2 내지 도 11은 도 1의 그래픽 인터페이스부를 설명하기 위한 예시도이다.2 to 11 are exemplary diagrams for describing the graphic interface unit of FIG. 1.

도 12는 명령어 블록을 설명하기 위한 예시도이고, 도 13 및 도 14는 도 1의 그래픽 인터페이스부와 실행기를 설명하기 위한 예시도이다.12 is an exemplary diagram for describing an instruction block, and FIGS. 13 and 14 are exemplary diagrams for describing the graphic interface unit and the executor of FIG. 1.

Claims (9)

로봇의 작업을 명령하기 위해, 프로그램의 시작과 종료를 수행하는 스타트(start) 블록과 앤드(end) 블록을 저장하며, 두 명령어 블록 간의 앤드(AND) 연산을 수행하는 앤드 블록, 딜레이(delay)를 설정하는 딜레이 블록, 상기 로봇의 자세를 설정하는 포스쳐(posture) 블록, 상기 로봇의 제스쳐(gesture)를 설정하는 제스쳐 블록, 조건 판단 기능을 하는 조건(if) 블록, 프로그램 변수에 값을 쓸 수 있는 쓰기(write) 블록, 사용자에 의해 작성된 텍스트를 음성으로 읽어 주는 기능을 하는 스피치 블록, 기존에 작성된 로봇 프로그램을 불러오는 태스크 블록 및 음성 파일을 불러오는 웨이브 블록 중 적어도 하나의 블록을 더 저장하는 블록 저장부;In order to command the robot's work, it stores the start block and the end block to start and end the program, and the end block and delay to perform the AND operation between the two command blocks. Delay block for setting the posture, Posture block for setting the posture of the robot, Gesture block for setting the gesture of the robot, Condition (if) block for the condition determination function, write values to program variables A block for storing at least one of a write block that can be written, a speech block that reads text written by a user by voice, a task block that loads an existing robot program, and a wave block that loads a voice file Storage unit; 상기 다수의 명령어 블록을 아이콘으로 표시하는 오브젝트 뷰와, 클릭 및 드래그 명령에 따라 상기 오브젝트 뷰로부터 선택된 명령어 블록의 배치 및 각 배치된 명령어 블록의 링크 연결을 표시하는 태스크 뷰를 포함하는 그래픽 인터페이스부;A graphic interface unit including an object view displaying the plurality of command blocks as an icon, and a task view displaying an arrangement of command blocks selected from the object view according to a click and drag command and a link connection of each arranged command block; 상기 링크로 연결된 명령어 블록들을 순차적으로 번역하는 번역기; 및A translator for sequentially translating the blocks of instructions connected by the link; And 상기 번역 결과에 따라 3D 기반의 시뮬레이터를 이용하여 상기 로봇을 실행시키는 실행기;를 포함하되,And an executor for executing the robot using a 3D based simulator according to the translation result. 상기 그래픽 인터페이스부는 상기 실행기의 실행시 상기 로봇의 동작에 대한 시뮬레이션을 표시하는 로봇 뷰를 더 포함하며, 상기 링크 연결된 명령어 블록들 중 상기 로봇 뷰를 통해 표시되는 상기 로봇의 현재 동작에 해당하는 명령어 블록을 상기 태스크 뷰를 통해 강조하여 표시하는 것인 그래픽 기반 로봇 프로그래밍 시스템.The graphic interface unit may further include a robot view displaying a simulation of the operation of the robot when the executor is executed, and the command block corresponding to the current operation of the robot displayed through the robot view among the linked command blocks. To highlight and display through the task view. 제1항에 있어서,The method of claim 1, 상기 번역기는 상기 링크에 의해 둘 이상의 명령어 블록으로 분기될 때 상기 둘 이상의 명령어 블록을 다중으로 번역하는 것인 그래픽 기반 로봇 프로그래밍 시스템.And wherein the translator translates the two or more instruction blocks multiplely when branched to two or more instruction blocks by the link. 제1항에 있어서,The method of claim 1, 상기 태스크 뷰는 상기 사용자의 명령에 따라, 상기 선택, 배치 및 연결된 상기 명령어 블록 및 링크를 삭제 또는 수정하는 것인 그래픽 기반 로봇 프로그래밍 시스템.And the task view deletes or modifies the instruction blocks and links that are selected, arranged, and linked according to the user's instructions. 제1항에 있어서,The method of claim 1, 상기 선택 및 배치된 명령어 블록 및 상기 링크에 의해 올바르게 연결되었는지 여부를 검증하는 오류 체크부;An error check unit for verifying whether the selected and arranged instruction blocks are correctly connected by the link; 를 더 포함하는 것인 그래픽 기반 로봇 프로그래밍 시스템.The graphics-based robot programming system further comprising. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020090127358A 2009-12-18 2009-12-18 Robot programming system based graphic KR101103787B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090127358A KR101103787B1 (en) 2009-12-18 2009-12-18 Robot programming system based graphic

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090127358A KR101103787B1 (en) 2009-12-18 2009-12-18 Robot programming system based graphic

Publications (2)

Publication Number Publication Date
KR20110070508A KR20110070508A (en) 2011-06-24
KR101103787B1 true KR101103787B1 (en) 2012-01-10

Family

ID=44402002

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090127358A KR101103787B1 (en) 2009-12-18 2009-12-18 Robot programming system based graphic

Country Status (1)

Country Link
KR (1) KR101103787B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101448278B1 (en) * 2013-02-18 2014-10-07 주식회사 케이티 Method for matching control command about robot and video of robot, control apparatus
KR101640451B1 (en) * 2015-04-26 2016-07-25 주식회사 셈웨어 Formular programming language based simulator having gui interface and simulator executing method using the same
KR102012073B1 (en) * 2017-02-03 2019-08-19 두산로보틱스 주식회사 Method and Apparatus for Programming Robot based on Skill
CN107240334A (en) * 2017-05-23 2017-10-10 梦孚(上海)教育科技有限公司 One kind programming learning system and its method
KR102298423B1 (en) * 2020-11-03 2021-09-06 주식회사 아이오테드 Apparatus for simulating coding program
KR102595525B1 (en) * 2021-07-30 2023-10-30 주식회사 이엘사이언스 Method for running user-written program using icons

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020061186A (en) * 2001-01-15 2002-07-24 주식회사 보스텍 A study system for the control, design and application of robot
KR20030092762A (en) * 2002-05-31 2003-12-06 (주)하늘아이 Frame robot and a device for programming a control program thereof with icons
KR20070061326A (en) * 2005-12-09 2007-06-13 한국전자통신연구원 Method for supporting robot application programming and programming tool for the same
KR100746156B1 (en) * 2006-12-28 2007-08-03 주식회사 이디 Robot training kit and robot education system using the kit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020061186A (en) * 2001-01-15 2002-07-24 주식회사 보스텍 A study system for the control, design and application of robot
KR20030092762A (en) * 2002-05-31 2003-12-06 (주)하늘아이 Frame robot and a device for programming a control program thereof with icons
KR20070061326A (en) * 2005-12-09 2007-06-13 한국전자통신연구원 Method for supporting robot application programming and programming tool for the same
KR100746156B1 (en) * 2006-12-28 2007-08-03 주식회사 이디 Robot training kit and robot education system using the kit

Also Published As

Publication number Publication date
KR20110070508A (en) 2011-06-24

Similar Documents

Publication Publication Date Title
US9754059B2 (en) Graphical design verification environment generator
US8046735B1 (en) Transforming graphical objects in a graphical modeling environment
KR101103787B1 (en) Robot programming system based graphic
JP2765969B2 (en) Schematic data-driven program development support system
CN108351764B (en) Data processing method and system
US8458648B2 (en) Graphical modelization of user interfaces for data intensive applications
US8589874B2 (en) Visual interface to represent scripted behaviors
US9952837B1 (en) Reusable component in a modeling environment
JPH02272645A (en) Method for supporting program debugging
EP1836565A1 (en) Dynamic generation of formatted user interfaces in software environments
Silva et al. Analysis of WIMP and post WIMP interactive systems based on formal specification
US9170783B1 (en) Class creation assistant for textual programming languages
JP3535354B2 (en) Stall detection display device and method
KR20140045101A (en) Three-dimensional modeling method using parametric data
CN117215556A (en) Modularized page rapid construction method, system, equipment and medium
Swearngin et al. Easing the generation of predictive human performance models from legacy systems
EP3528126B1 (en) Representing a test execution of a software application using extended reality
JP4127318B2 (en) Program generation method and apparatus
Caffiau et al. Generating interactive applications from task models: A hard challenge
US11822773B2 (en) Systems and methods for generating and utilizing an interactive causal loop diagram using a causal loop designer
JP2003076545A (en) Program development assisting device
KR101940719B1 (en) Task graph construct apparatus and method of conversational processing system based on task graph
JP3966355B2 (en) Program generation method and apparatus
JPH1185835A (en) Drawing apparatus
KR20090058621A (en) Graphical expression apparatus for system requirement

Legal Events

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

Payment date: 20170105

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170803

Year of fee payment: 18