KR20130122288A - 로봇의 삼차원 시뮬레이션 방법 및 시스템 - Google Patents

로봇의 삼차원 시뮬레이션 방법 및 시스템 Download PDF

Info

Publication number
KR20130122288A
KR20130122288A KR1020120045486A KR20120045486A KR20130122288A KR 20130122288 A KR20130122288 A KR 20130122288A KR 1020120045486 A KR1020120045486 A KR 1020120045486A KR 20120045486 A KR20120045486 A KR 20120045486A KR 20130122288 A KR20130122288 A KR 20130122288A
Authority
KR
South Korea
Prior art keywords
robot
code
avr
manipulator
physical property
Prior art date
Application number
KR1020120045486A
Other languages
English (en)
Other versions
KR101439929B1 (ko
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 KR1020120045486A priority Critical patent/KR101439929B1/ko
Publication of KR20130122288A publication Critical patent/KR20130122288A/ko
Application granted granted Critical
Publication of KR101439929B1 publication Critical patent/KR101439929B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1605Simulation of manipulator lay-out, design, modelling of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

본 발명에 따르면, 링크 객체와 조인트 객체의 물성값을 통해 로봇을 설계하고, 상기 로봇에 적용될 물성치의 수용 범위를 결정하며, 결정된 수용 범위내에서 다양한 물성치 변화를 사용자의 임의로 바로 적용하여 시뮬레이션할 수 있는 로봇의 3D 시뮬레이션 방법 및 시스템이 제공된다. 이에, 본 발명은 다양한 형태의 로봇 제작이 가능하고, 로봇의 제작 비용과 시간을 줄일 수 있다.

Description

로봇의 삼차원 시뮬레이션 방법 및 시스템{3D SIMULATION METHOD AND SYSTEM FOR ROBOT}
본 발명은 로봇의 3D 시뮬레이션 방법 및 시스템에 관한 것으로서, 더욱 상세하게는 로봇의 제작 비용과 시간을 줄일 수 있는 로봇의 3D 시뮬레이션 방법 및 시스템에 관한 것이다.
최근에는 산업 발전과 생활 편의의 향상을 위하여 자동화 시스템이 늘어나고 있는 추세이다. 자동화 시스템에서 가장 중요한 요소로는 로봇 기술일 것이다. 상기 로봇 기술은 인간의 움직임을 본뜬 움직임을 구현하는 기계로서, 그 중 로봇팔은 인간의 팔의 움직임을 본 뜬 움직임을 구현한 기계이다.
이러한 로봇팔의 움직임은 로봇의 관절(손목)을 전후/좌우로 회전, 회동시키는 운동이 필수적이다. 로봇팔의 손목 운동과 팔의 회전 운동은 팔이 임의의 물체를 파지(把持)할 경우 적절한 위치를 잡을 수 있도록 하는 열할을 하며, 또 파지 후 그 물체가 적절한 위치에 놓을 수 있도록 한다.
예를 들면, 로봇팔의 회전 운동은 로봇이 파지한 병을 회전시켜 그 주둥이를 컵근처로 가져가 액체를 부을 수 있도록 도와준다.
그러나, 이와 같은 로봇팔은 각종 센서와 전자 부품 및 제어 부품 등을 적용하여 설계하기 때문에 많은 제작 비용과 시간이 소비되는 문제점이 있었다. 더욱이, 개발된 로봇팔마다 각기 다른 제어 프로그램을 개발하여 테스트를 해야만 하기 때문에 이 또한 적지 않은 제작 비용과 시간이 소비되는 문제점이 있었다.
본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로서, 본 발명은 로봇팔을 포함한 로봇의 각 마디를 실제 설계하고 제작하기 전에 가상의 로봇 제작을 도와주고, 가상으로 설계된 각기 다른 로봇마다 각기 다른 제어 프로그램을 작성하여 바로 적용해 볼 수 있도록 하는 적용성이 높은 로봇의 3D 시뮬레이션 방법 및 시스템을 제공하는데 그 목적이 있다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 기능을 수행하기 위한, 본 발명의 특징은 다음과 같다.
본 발명의 일 관점에 따르면, (a) 각기 다른 로봇의 연결 부위인 링크 객체에 대한 물성값을 이용하여 가상의 3D 모델링된 로봇 마디를 생성하는 단계; (b) 상기 생성된 로봇 마디에 각기 다른 조인트 객체(관절)의 물성값을 적용하여 상기 로봇의 머니퓰레이터(manipulator)를 완성하는 단계; (c) 상기 완성된 머니퓰레이터에 역기구학(inverse kinematics)과 자코비안(jacobian) 알고리즘을 적용하여 상기 머니퓰레이터에서 수용될 범위인 토크, 회전속도, 각속도 및 선속도의 범위를 결정하는 단계; (d) 상기 수용될 범위에 기초하여 각기 다른 사용자에 의해 입력된 AVR 코드-상기 AVR 코드에는 상기 수용 범위내에 있는 토크, 회전속도, 각속도 및 선속도 값중 선택된 임의의 값들을 포함함-를 이진 코드로 해석하는 단계; 및 (e) 상기 해석된 결과에 기초하여 상기 머니퓰레이터의 각 동작을 시뮬레이션하는 단계;를 포함하는 로봇의 3D 시뮬레이션 방법이 제공된다.
여기서, 발명의 일 관점에 따른 상기 (a) 단계는 질량, 좌표(x,y,z), 회전, 각도, 회전축, 반지름 및 길이를 포함한 상기 링크 객체의 물성값을 이용하여 로봇 마디를 생성할 수 있다.
또한, 본 발명의 일 관점에 따른 상기 (b) 단계는 rpm(revolution per minute), 최대 토크(max toque) 및 회전축(roll, pitch, yaw)을 포함한 상기 관절의 물성값을 이용하여 상기 로봇의 머니퓰레이터(manipulator)를 완성할 수 있다.
또한, 본 발명의 일 관점에 따른 상기 (c) 단계는 상기 역기구학 알고리즘을 이용하여 상기 머니퓰레이터의 끝단에 해당하는 말단부의 위치와 자세가 주어질 경우, 이에 대응하는 머니퓰레이터의 각 관절의 회전 각도를 더 결정할 수 있다.
또한, 본 발명의 일 관점에 따른 상기 (d) 단계는 (d-1) 상기 AVR 코드를 Lex, Yacc 및 Winavrdml 중 어느 하나의 방식을 이용하여 이상 여부를 검사하는 단계; 및 (d-2) 상기 검사 결과가 이상이 없을 경우, 그 결과로서 상기 AVR 코드에 대응하는 레지스터 정보를 획득하는 단계;를 포함하여 이루어질 수 있다.
또한, 본 발명의 다른 일 관점에 따르면, 각기 다른 사용자에 의해 입력된 링크 객체와 조인트 객체(관절)의 물성값을 이용하여 가상의 3D 로봇의 머니퓰레이터(manipulator)를 생성하는 로봇 모델링부; 역기구학(inverse kinematics)과 자코비안(jacobian) 알고리즘을 이용하여 상기 머니퓰레이터에서 수용 가능한 관절의 토크, 회전속도, 각속도 및 선속도의 범위를 결정하는 물성치 결정부; 상기 물성치 결정부에서 결정된 수용 범위를 그래프화하여 사용자 인터페이스 환경으로 제공하는 물성치 제공부; 상기 수용 범위에 기초하여 각기 다른 사용자에 의해 입력된 AVR 코드-상기 AVR 코드에는 상기 수용 범위내에 있는 토크, 회전속도, 각속도 및 선속도 값중 선택된 임의의 값들을 포함함-를 이진 코드로 해석하는 AVR 코드 해석부; 및 상기 해석에 따라 시뮬레이션한 상기 머니퓰레이터의 움직임을 사용자 인터페이스 환경으로 제공하는 움직임 제공부;를 포함하는 로봇의 3D 시뮬레이션 시스템이 제공된다.
여기서, 본 발명의 다른 일 관점에 따른 상기 AVR 코드 해석부는, 상기 AVR 코드를 Lex, Yacc 및 Winavrdml 중 어느 하나의 방식을 이용하여 이상 여부를 검사하는 문법 검사부; 및 상기 문법 검사부에 의한 검사 결과가 이상이 없을 경우, 그 결과로서 상기 AVR 코드에 대응하는 레지스터 정보를 획득하는 레지스터 핸드링부;를 포함할 수 있다.
또한, 본 발명의 다른 일 관점에 따른 상기 AVR 코드 해석부는, 상기 머니퓰레이터의 끝점의 이동 좌표와 끝점 질량을 입력받아 재해석하고, 상기 재해석에 따라 상기 관절에 가해진 토크를 다시 구하여 시뮬레이션하고, 그 결과를 사용자 인터페이스 환경으로 제공할 수 있다.
본 발명에 의하면, 역기구학(inverse kinematics)과 자코비안(jacobian) 알고리즘을 적용하여 수용 가능한 각 관절의 각기 다른 속도들과 토크를 구할 수 있어, 다양하고 정밀한 로봇의 각 마디 제작이 가능한 효과가 달성된다.
또한, 본 발명에 의하면, 수용 가능한 관절의 속도와 토크 범위내에서 로봇의 움직임 변화를 즉시 적용할 수 있는 제어 프로그램(AVR 코드) 구동 환경을 제공하여 바로 적용해볼 수 있기 때문에 로봇의 제작 비용과 시간을 줄여주는 효과가 달성된다.
더욱이, 각기 다른 로봇에 적용될 물성치와 로봇의 움직임 변화 결과를 사용자 편의적인 GUI 환경으로 제공함으로써, 빠른 시간안에 시뮬레이션 수행이 가능하여 물성치가 다른 로봇의 제작 시간이 짧아지고, 비전문가에게도 로봇 제작을 가능하게 하는 효과가 달성된다.
도 1은 본 발명의 제1 실시예에 따른 로봇의 3D 시뮬레이션 방법(S100)을 예시적으로 나타낸 순서도이다.
도 2는 본 발명의 제1 실시예에 따른 링크 객체의 물성치 입력하기 위한 사용자 편의적인 인터페이스를 나타낸 도면이다.
도 3은 본 발명의 제1 실시예에 따라 AVR 코드 자동 생성창을 일례로 나타낸 도면이다.
도 4는 본 발명의 제2 실시예에 따른 3D 시뮬레이션 시스템(100)을 예시적으로 나타낸 도면이다.
도 5는 본 발명의 제2 실시예에 따라 각 관절에 걸리는 수용 범위인 토크를 수치적으로 계산하여 사용자 편의적인 그래프로서 나타낸 도면이다.
도 6은 본 발명의 제2 실시예에 따라 AVR 코드 편집창을 일례로 나타낸 도면이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
제1 실시예
도 1은 본 발명의 제1 실시예에 따른 로봇의 3D 시뮬레이션 방법(S100)을 예시적으로 나타낸 순서도이다.
도 1에 도시된 바와 같이, 본 발명의 제1 실시예에 따른 로봇의 3D 시뮬레이션 방법(S100)은 역기구학 및 자코비안 알고리즘을 이용하여 로봇의 움직임 변화를 인식하고, 각 로봇에 적용될 제어 프로그램의 적용성이 쉬운 3D 시뮬레이션 방법으로서, (a) 각기 다른 로봇의 링크 객체의 물성값을 이용하여 로봇 마디를 생성하는 단계(S110), (b) 로봇 마디에 각기 다른 조인트 객체(관절)의 물성값을 적용하여 머니퓰레이터를 완성하는 단계(S120), (c) 역기구학과 자코비안 알고리즘 및 뉴튼-오일러(Newton-Euler) 중 적어도 하나 이상을 이용하여 머니퓰레이터에서 구현될 토크와 속도들의 수용 범위를 결정하는 단계(S130), (d) 수용 범위에 기초하여 사용자에 의해 입력된 AVR 코드를 이진 코드로 해석하는 단계(S140) 및 (e) 해석 결과에 기초하여 상기 AVR 코드를 통한 머니퓰레이터의 각 동작을 시뮬레이션하는 단계(S150)를 포함하여 이루어진다.
각 단계에 대해 보다 구체적으로 설명하자면, 먼저 본 발명에 따른 S110 단계에서는 사용자로부터 로봇의 연결 부위인 링크 객체(link objects, 얼굴, 팔, 다리, 손 및 발 등의 각 마디(부위)를 의미함)의 물성값을 각각 입력받는다. 각기 다른 링크 객체의 물성값을 입력받기 위해서는 사용자 편의적인 인터페이스 형태로 구현되어 쉽게 링크 객체의 물성값을 입력받을 수 있다. 상기 사용자 편의적인 인터페이스는 도 2와 같이 일례로서 나타내었다.
여기서, 입력된 각기 다른 링크 객체의 물성값은 질량, 좌표(x,y,z), 회전(roll), 각도(pitch), 회전축(yaw), 반지름(radius) 및 길이(length)의 값을 포함한다. 이러한 물성값은 각기 다른 로봇을 제작하기 위한 링크 객체의 본질을 정의하고, 각기 다른 링크 객체의 움직임에 영향을 주는 요소로서 사용된다.
이와 같은 링크 객체(link objects)의 물성값이 입력되면, 본 발명에 따른 S110 단계에서는 입력된 링크 객체에 대한 물성값을 이용하여 가상의 3D 모델링된 로봇 마디를 생성하게 된다.
생성된 로봇 마디는 로봇마다 각기 다른 질량, 좌표(x,y,z), 회전, 각도, 회전축, 반지름 및 길이를 포함한 링크 객체의 물성값이 반영된 상태로 존재한다. 생성된 로봇의 마디는 사용자의 지정에 따라 복수개로 존재한다.
이후, 본 발명에 따른 S120 단계에서는 다시 사용자로부터 로봇의 마디마다 형성될 연결 부위에 해당하는 각기 다른 조인트 객체(joint objects, 예: 목관절, 손목관절, 다리관절, 허리관절, 손가락관절, 발목관절 등을 의미함)의 물성값을 입력받는다. 입력받는 각기 다른 조인트 객체의 물성값은 물론 사용자 편의적인 인터페이스에 의해 입력될 수 있다.
여기서, 입력되는 각기 다른 조인트 객체의 물성값은 실질적으로 모터의 물성값에 해당되는 것으로서, 모터의 움직임에 영향을 주는 rpm(revolution per minute), 최소/최대 토크(max toque) 및 회전축(roll, pitch, yaw)을 포함한다.
이러한 모터의 움직임을 제어하는데 필요한 물성값을 입력받게 되면, 본 발명에 따른 S120 단계에서는 입력된 각기 다른 조인트 객체(관절)의 물성값을 S110 단계에서 생성된 로봇 마디에 각각 적용하여 가상의 3D로 구현된 로봇의 머니퓰레이터(manipulator)를 완성하게 된다. 이렇케 완성된 로봇의 머니퓰레이터는 각 사용자마다 입력된 링크 객체와 조인트 객체의 물성치에 따라 각기 다름은 물론일 것이다.
이와 같이, 본 발명의 제1 실시예에 따라 S110 단계와 S120 단계가 수행 완료되면, 사용자마다 원하는 물성치가 적용된 로봇의 머니퓰레이터를 가상의 3D 시뮬레이션으로 시험해 볼 수 있는 조건이 마련된다. 이로써, 다양한 물리적인 특성을 갖는 로봇 제작이 가능하다.
이후, 본 발명에 따른 S130 단계에서는 S120 단계에 의해 완성된 머니퓰레이터에 역기구학(inverse kinematics)과 자코비안(jacobian) 뉴튼-오일러(Newton-Euler) 중 적어도 하나의 알고리즘을 적용하여 머니퓰레이터에서 수용될 범위인 토크, 회전속도, 각속도 및 선속도의 범위를 결정한다. 이때 적용되는 역기구학(inverse kinematics)과 자코비안(jacobian) 알고리즘은 링크 객체의 말단부의 직표좌표상의 위치 및 방향이 주어졌을 때 관절각들을 구하는 방식으로서, 기구학적 방정식이 초월함수로 이루어진 비선형 방정식이다.
이러한 역기구학은 토크, 회전속도, 각속도 및 선속도와 같은 수용 범위를 구하고자, 자코비안 알고리즘 또는 뉴튼-오일러(Newton-Euler)와 조합하여 실시한다. 예를 들면, 역기구학은 회전속도, 각속도 및 선속도와 같은 수용 범위를 구하고자, 상대 자코비안, 무게중심(CoM; Center of Mass) 자코비안 및 길이중심 자코비안 알고리즘을 이용하여 구할 수 있다. 또는 본 발명에 따른 역기구학은 토크와 같은 수용 범위를 구하고자, 뉴튼-오일러(Newton-Euler) 알고리즘을 이용하여 구할 수 있다.
이와같이, 적용되는 역기구학(inverse kinematics), 자코비안(jacobian) 및 뉴튼-오일러(Newton-Euler)의 알고리즘은 통상적으로 로봇틱스 기구학에서 사용되고 알고리즘인 관계로 보다 구체적인 설명은 생략한다.
다만, 완성되어진 머니플레이터는 각기 다른 로봇의 물성치들이 적용되고 있어, 역기구학(inverse kinematics), 자코비안(jacobian) 및 뉴튼-오일러(Newton-Euler)의 알고리즘을 적용하더라도 결정되어질 토크, 회전속도, 각속도 및 선속도의 수용 범위는 각기 다를 것이다. 더욱이, 본 실시예에서 적용되는 역기구학(inverse kinematics)과 자코비안(jacobian) 알고리즘은 각 마디와 관절에서 발생되어질 토크, 회전속도, 각속도 및 선속도를 구하는데 특성화되었다.
아울러, 본 발명에 따른 S130 단계에서는 통상적으로 널리 알려진 역기구학 알고리즘을 이용하여 상기 머니퓰레이터의 끝단에 해당하는 말단부의 위치와 자세가 주어질 경우, 이에 대응하는 머니퓰레이터의 각 관절의 회전 각도를 더 결정할 수 있다. 이때, 결정되는 각 관절의 회전 각도는 각기 다른 물성치가 각 머니퓰레이터에 적용되었기 때문에 다른 수용 범위를 갖고 있음은 물론일 것이다.
이후, 본 발명에 따른 S140 단계에서는 S130 단계에 의해 결정된 수용 범위로부터 선택된 수용 범위 값을 반영한 AVR 코드를 각기 다른 사용자로부터 입력받는다. 이때, 입력되는 AVR 코드에는 수용 범위내에 있는 토크, 회전속도, 각속도 및 선속도 값 중 선택된 임의의 값들이 코딩되어 있다.
이어서, 본 발명에 따른 S140 단계에서는 각기 다른 사용자에 의해 입력된 AVR 코드를 이진 코드로 해석하는 과정을 진행한다. 보다 구체적으로 설명하자면, 먼저 S140 단계에서는 AVR 코드를 Lex, Yacc 및 Winavrdml 중 어느 하나의 방식을 이용하여 이상 여부를 검사한다.
여기서 사용되는 Lex는 스캐너를 만들 수 있는 툴로서, 상기 스캐너는 AVR 코드에 대한 파일이나 텍스트의 어휘 패턴(lexical patterns)을 인식한다. Lex가 파일이나 텍스트 형식으로 입력을 받으면, Lex는 텍스트를 정규식과 대조 한 뒤에 한 번에 한 문자씩 받아서 패턴이 일치될 때까지 계속 반복된다. 이를 통해서 사용자의 AVR 코드를 Tokenizing 하게 되며 이 정보를 바탕으로 Yacc를 통해서 Parsing을 하게 된다.
따라서 토큰 자체는 언어(Lex)에서 나오고, 이들 토큰에 허용된 순서(문법)는 Yacc에서 지정된다. 이로써, Lex 및 Yacc를 통해 AVR 코드에 대한 문법 검사를 수행함으로써, AVR 코드에 대한 이상 여부가 판단될 것이다.
그러나, Lex 및 Yacc를 이용하지 않고 Winavrdml를 통해서도 AVR 코드에 대한 이상 여부를 판단할 수 있다. 이러한 이상 여부의 판단은 통상적으로 널리 알려져 있기 때문에 그 설명은 생략한다.
한편, 앞서 설명된 AVR 코드가 사용자에 의해 입력되지 않고, 사용자에 의해 레지스터 입력값이 입력되면 상기 AVR 코드가 자동적으로 생성된후 시뮬레이션 되도록 구현될 수도 있다. 이러한 AVR 코드의 자동 생성은 도 3과 같은 AVR 코드 자동 생성창을 통해 실현 가능하다. 이는 AVR 코드를 작성할 때 레지스트리 값을 기본 설정하는 코드가 존재하는데, 이 설정은 하드웨어의 스펙에 따라서 결정되어져 알고리즘을 짜서 물체를 움직이는 코드와는 다르게, 복잡한 로봇의 설정 코드를 작성하는 과정이다.
이에 따라, AVR 코드의 자동 생성 기능은 복잡한 스펙의 로봇에 대한 설정 코드의 작성에 필요한 시간을 대폭 줄여줄 수 있다. 이로 인하여, 본 발명의 일 실시예에서는 AVR 코드의 자동 생성을 통해 기본적인 설정을 자동으로 처리하고, 로봇의 움직임에 대한 AVR 코드의 작성에 집중할 수 있어, 코드 적용 시간을 단축시켜 준다.
이후, 본 발명에 따른 S140 단계에서는 AVR 코드에 대한 검사 결과가 이상이 없을 경우, AVR 코드를 이진 코드로 변환시킨 결과인 레지스터 정보를 획득한다. 즉, Yacc 문법이나, Winavrdml 처리에 의해서 해당 BNF에 맞는 영역에 C code로 변환될 수 있으며, 이를 통해 해당 사용자가 필요로 하는 AVR 코드의 실행을 위한 해당 레지스터의 정보에 알맞게 데이터를 저장하게 된다. 이를 통해, 인식 가능한 이진 코드에 해당하는 레지스터 정보를 얻게 되는 것이다.
마지막으로, 본 발명에 따른 S150 단계에서는 해석된 결과, 예컨대 최종적으로 레지스터 정보를 얻게 되면 상기 레지스터 정보에 기초하여 로봇의 머니퓰레이터의 각 동작을 시뮬레이션할 수 있다. 다시 말해, 최종적으로 획득된 레지스터 정보가 있으면, 가상의 3D 모델링으로 각기 다른 로봇의 각 움직임을 다양하게 표현할 수 있게 된다.
이상과 같이, 본 발명의 제1 실시예에 따른 로봇의 3D 시뮬레이션 방법은 로봇마다 각기 다른 물성치가 적용될 경우 그에 맞는 관절의 토크와 여러 속도에 대한 수용 범위를 구하고, 이를 토대로 각 사용자마다 원하는 다양한 물성치 변화를 주어 시뮬레이션을 실시함으로써, 로봇의 하드웨어뿐만 아니라, 로봇의 움직임에 영향을 주는 제어 프로그램을 바로 적용해 볼 수 있어, 로봇의 제작 비용과 시간을 줄여줄 수 있다.
제 2실시예
도 4는 본 발명의 제2 실시예에 따른 3D 시뮬레이션 시스템(100)을 예시적으로 나타낸 도면이다.
도 4에 도시된 바와 같이, 본 발명의 제2 실시예에 따른 3D 시뮬레이션 시스템(100)은 로봇 모델링부(110), 물성치 결정부(120), 물성치 제공부(130), AVR 코드 해석부(140), 움직임 제공부(150) 및 제어부(160)를 포함하여 이루어진다.
먼저, 본 발명에 따른 로봇 모델링부(110)는 각기 다른 사용자에 의해 입력된 링크 객체와 조인트 객체(관절)의 물성값을 이용하여 가상의 3D 로봇의 머니퓰레이터(manipulator)를 생성한다.
이를 위해, 먼저 각기 다른 사용자에 의해 입력된 링크 객체의 물성값을 입력받아 가상의 3D 모델링된 로봇 마디를 생성한다. 여기서, 링크 객체의 물성값은 질량, 좌표(x,y,z), 회전(roll), 각도(pitch), 회전축(yaw), 반지름(radius) 및 길이(length)의 값을 포함한다. 이러한 물성값은 각기 다른 로봇을 제작하기 위한 링크 객체의 본질을 정의하고, 각기 다른 링크 객체의 움직임에 영향을 주는 요소로서 사용된다.
이어서, 본 발명에 따른 로봇 모델링부(110)는 생성되어진 가상의 3D 모델링된 로봇 마디마다 각기 다른 조인트 객체(joint objects, 예: 관절)의 물성값을 사용자로부터 입력받아 적용한다. 여기서, 사용자에 의해 입력되는 각기 다른 조인트 객체의 물성값은 실질적으로 모터의 물성값에 해당되는 부분으로서, 모터의 움직임에 영향을 주는 rpm(revolution per minute), 최대 토크(max toque) 및 회전축(roll, pitch, yaw)을 포함하여 이루어진다.
이로써, 각기 다른 조인트 객체(관절)의 물성값이 로봇 마디마다 각각 적용됨으로써, 가상의 3D로 구현된 로봇의 머니퓰레이터(manipulator)가 생성될 수 있는 것이다.
다음으로, 본 발명에 따른 물성치 결정부(120)는 역기구학(inverse kinematics)과 자코비안(jacobian) 및 뉴튼-오일러(Newton-Euler) 중 적어도 하나 이상의 알고리즘을 이용하여 로봇 모델링부(110)에서 생성된 머니퓰레이터에 적용될 수용 가능한 관절의 토크, 회전속도, 각속도 및 선속도의 범위를 결정한다.
이때, 적용되는 역기구학(inverse kinematics)과 자코비안(jacobian) 알고리즘은 링크 객체의 말단부의 직표좌표 상의 위치 및 방향이 주어졌을 때 관절 각들을 구하는 방식으로서, 기구학적 방정식이 초월함수로 이루어진 비선형 방정식이다.
이러한 역기구학은 토크, 회전속도, 각속도 및 선속도와 같은 수용 범위를 구하고자, 자코비안 알고리즘 또는 뉴튼-오일러(Newton-Euler)와 조합하여 실시한다. 예를 들면, 역기구학은 회전속도, 각속도 및 선속도와 같은 수용 범위를 구하고자, 상대 자코비안, 무게중심(CoM; Center of Mass) 자코비안 및 길이중심 자코비안 알고리즘을 이용하여 구할 수 있다. 또는 본 발명에 따른 역기구학은 토크와 같은 수용 범위를 구하고자, 뉴튼-오일러(Newton-Euler) 알고리즘을 이용하여 구할 수 있다.
이와같이, 적용되는 역기구학(inverse kinematics), 자코비안(jacobian) 및 뉴튼-오일러(Newton-Euler)의 알고리즘은 통상적으로 로봇틱스 기구학에서 사용되고 알고리즘인 관계로 보다 구체적인 설명은 생략한다.
다만, 완성된 머니플레이터에는 각기 다른 로봇의 물성치들이 적용되고 있어, 역기구학(inverse kinematics), 자코비안(jacobian) 및 뉴튼-오일러(Newton-Euler)의 알고리즘을 적용하더라도 결정되어질 토크, 회전속도, 각속도 및 선속도의 수용 범위는 각기 다를 것이다.
다음으로, 본 발명에 따른 물성치 제공부(130)는 물성치 결정부(120)에서 결정된 수용 범위를 그래프화하여 사용자 인터페이스(GUI) 환경으로 제공한다. 예를 들어, 토크와 관련하여 결정되어진 수용 범위를 도 5와 같이 보여줄 수 있다.
도 5에서는 매 시간마다 각 관절에 걸리는 수용 범위인 토크를 수치적으로 계산하여 직관적으로 보여준다. 따라서 어느 시점에 한계 토크에 도달하여 로봇의 머니퓰레이터가 동작하지 못하는지 시각적으로 분석이 가능하다. 이러한 시각적인 그래프는 역기구학 및 자코비안 알고리즘의 풀이를 통하여 계산된 결과를 분석하여 알기 쉽게 보여준 결과이다. 이로써, 보다 정확한 로봇의 머니퓰레이터 설계가 가능하다.
다시, 도 4로 돌아와, 본 발명에 따른 AVR 코드 해석부(140)는 구해진 토크, 회전속도, 각속도 및 선속도와 같은 수용 범위에 기초하여 각기 다른 사용자에 의해 입력된 AVR 코드(도 6의 AVR 코드 편집창에 의해 입력되어짐)를 이진 코드로 해석한다. 여기서의 AVR 코드에는 수용 범위내에 있는 토크, 회전속도, 각속도 및 선속도 값 중 선택된 임의의 값들을 포함한 사용자에 의해 지정된 값들이 코딩되어 있다. 이때, 입력되는 AVR 코드는 도 5와 같이 사용자 편의적인 코드 편집창에 의해 작성된다. 또한, 상기 AVR 코드는 AVR 코드 자동 생성창에 의해 구현될 수 있다. 이러한 AVR 코드 자동 생성창에 의한 AVR 코드 자동 생성 기능은 앞서 도 1에서 충분히 논의되었기 때문에 그 설명은 생략하기로 한다.
이러한 본 발명에 따른 AVR 코드 해석부(140)는 AVR 코드를 이진 코드로 변환하기 위하여 문법 검사부(141) 및 레지스터 핸드링부(142)를 포함할 수 있다. 상기 문법 검사부(141)는 AVR 코드를 Lex, Yacc 및 Winavrdml 중 어느 하나의 방식을 이용하여 이상 여부를 검사한다.
여기서 사용되는 Lex는 스캐너를 만들 수 있는 툴로서, 상기 스캐너는 AVR 코드에 대한 파일이나 텍스트의 어휘 패턴(lexical patterns)을 인식한다. Lex가 파일이나 텍스트 형식으로 입력을 받으면, Lex는 텍스트를 정규식과 대조 한 뒤에 한 번에 한 문자씩 받아서 패턴이 일치될 때까지 계속 반복된다. 이를 통해서 사용자의 AVR 코드를 Tokenizing 하게 되며 이 정보를 바탕으로 Yacc를 통해서 Parsing을 하게 된다.
따라서 토큰 자체는 언어(Lex)에서 나오고, 이들 토큰에 허용된 순서(문법)는 Yacc에 지정된다. 이로써, Lex 및 Yacc를 통해 AVR 코드에 대한 문법 검사를 수행함으로써, AVR 코드에 대한 이상 여부가 판단될 수 있다. 그러나, Lex 및 Yacc를 이용하지 않고 Winavrdml를 이용하여도 AVR 코드에 대한 이상 여부를 판단할 수ㄷ 있다.
반면, 본 발명에 따른 레지스터 핸드링부(142)는 문법 검사부(141)에 의해 AVR 코드에 대한 검사 결과가 이상이 없을 경우, AVR 코드를 이진 코드로 변환시킨 결과인 레지스터 정보를 획득한다. 즉, Yacc 문법이나, Winavrdml 처리에 의해서 해당 BNF에 맞는 영역에 C code(이진 코드)로 변환될 수 있으며, 이를 통해 해당 사용자가 필요로 하는 AVR 코드의 실행을 위한 해당 레지스터의 정보에 알맞게 데이터를 저장하게 된다. 이로써, 인식 가능한 이진 코드에 해당하는 레지스터 정보를 획득할 수 있다. 이와 같이 레지스터 정보가 획득되면, 3D 모델링으로 로봇의 움직임을 표현해 줄 수 있게 된다.
더 나아가서, 본 발명에 따른 상기 AVR 코드 해석부는 머니퓰레이터의 끝점의 이동 좌표와 끝점 질량을 입력받아 재해석하고, 상기 재해석에 따라 상기 관절에 가해진 토크를 다시 구하여 시뮬레이션할 수도 있다.
다음으로, 본 발명에 따른 움직임 제공부(150)는 AVR 코드 해석부(140)에 의해 해석되거나, 재해석된 레지스터 정보를 가지고 시뮬레이션하게 되면 변화되어진 머니퓰레이터의 움직임을 확인한다. 이와 확인된 머니퓰레이트의 변화된 움직임을 사용자 인터페이스 환경 형태로 사용자에게 제공하게 된다.
마지막으로, 본 발명에 따른 제어부(160)는 로봇 모델링부(110), 물성치 결정부(120), 물성치 제공부(130), AVR 코드 해석부(140) 및 움직임 제공부(150)간의 데이터 흐름을 제어하는 기능을 수행한다. 이러한 제어부(160)의 제어에 따라 각 구성에서 고유의 기능이 수행되는 것이다.
이와 같이, 본 발명의 제2 실시예에 따른 3D 시뮬레이션 시스템(100)은 각기 다른 물성치의 수용 범위내에서 물성치 변화를 가해 시뮬레이션을 수행함으로써, 보다 정확한 로봇의 하드웨어 설계가 가능하게 되고, 예측하기 어려운 오류를 쉽게 찾아낼 수 있다. 또한, 관절(모터)의 선정이 쉽고, 제작 시간과 비용을 줄여 줄 수 있다. 더욱 나아가, 로봇의 제작을 많이 해보지 않은 초보자에게는 학습 기능으로써 테스팅(testing)이 쉬어 로봇 제작에 도움을 줄 수 있다.
한편, 본 발명의 제2 실시예에 따라 설명된 3D 시뮬레이션 시스템(100)의 각 구성은 마이크로소프트사의 윈도우 환경 또는 임베디드 시스템에 최적화된 리눅스 환경하에서 구현될 수 있다. 더욱 나아가, 스마트폰 운영체제인 ios 및 안드로이드의 운영체제에서도 구현될 수 있어, 스마트폰에서도 적용가능하다.
이상에서와 같이, 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고 다른 구체적인 형태로 실시할 수 있다는 것을 이해할 수 있을 것이다. 따라서 이상에서 기술한 실시예는 모든 면에서 예시적인 것이며 한정적이 아닌 것이다.
100 : 3D 시뮬레이션 시스템 110 : 로봇 모델링부
120 : 물성치 결정부 130 : 물성치 제공부
140 : AVR 코드 해석부 150 : 움직임 제공부
160 : 제어부

Claims (8)

  1. (a) 각기 다른 로봇의 연결 부위인 링크 객체에 대한 물성값을 이용하여 가상의 3D 모델링된 로봇 마디를 생성하는 단계;
    (b) 상기 생성된 로봇 마디에 각기 다른 조인트 객체(관절)의 물성값을 적용하여 상기 로봇의 머니퓰레이터(manipulator)를 완성하는 단계;
    (c) 상기 완성된 머니퓰레이터에 역기구학(inverse kinematics), 자코비안(jacobian) 및 뉴튼-오일러(Newton-Euler) 중 적어도 하나 이상의 알고리즘을 적용하여 상기 머니퓰레이터에서 수용될 범위인 토크, 회전속도, 각속도 및 선속도의 범위를 결정하는 단계;
    (d) 상기 수용될 범위에 기초하여 각기 다른 사용자에 의해 입력된 AVR 코드-상기 AVR 코드에는 상기 수용 범위내에 있는 토크, 회전속도, 각속도 및 선속도 값중 선택된 임의의 값들을 포함함-를 이진 코드로 해석하는 단계; 및
    (e) 상기 해석된 결과에 기초하여 상기 머니퓰레이터의 각 동작을 시뮬레이션하는 단계;
    를 포함하는 것을 특징으로 하는 로봇의 3D 시뮬레이션 방법.
  2. 제 1항에 있어서,
    상기 (a) 단계는,
    질량, 좌표(x,y,z), 회전, 각도, 회전축, 반지름 및 길이를 포함한 상기 링크 객체의 물성값을 이용하여 로봇 마디를 생성하는 것을 특징으로 하는 로봇의 3D 시뮬레이션 방법.
  3. 제 2항에 있어서,
    상기 (b) 단계는,
    rpm(revolution per minute), 최대 토크(max toque) 및 회전축(roll, pitch, yaw)을 포함한 상기 관절의 물성값을 이용하여 상기 로봇의 머니퓰레이터(manipulator)를 완성하는 것을 특징으로 하는 로봇 팔의 3D 시뮬레이션 방법.
  4. 제 1항에 있어서,
    상기 (c) 단계는,
    상기 역기구학 알고리즘을 이용하여 상기 머니퓰레이터의 끝단에 해당하는 말단부의 위치와 자세가 주어질 경우, 이에 대응하는 머니퓰레이터의 각 관절의 회전 각도를 더 결정하는 것을 특징으로 하는 로봇 팔의 3D 시뮬레이션 방법.
  5. 제 1항에 있어서,
    상기 (d) 단계는,
    (d-1) 상기 AVR 코드를 Lex, Yacc 및 Winavrdml 중 어느 하나의 방식을 이용하여 이상 여부를 검사하는 단계; 및
    (d-2) 상기 검사 결과가 이상이 없을 경우, 그 결과로서 상기 AVR 코드에 대응하는 레지스터 정보를 획득하는 단계;
    를 포함하는 것을 특징으로 하는 로봇의 3D 시뮬레이션 방법.
  6. 제 1항에 있어서,
    상기 AVR 코드는 사용자에 의해 입력되지 않고, 사용자에 의해 레지스터 입력값(설정코드가)이 입력되면 자동적으로 생성되어 시뮬레이션하는 것을 특징으로 하는 로봇의 3D 시뮬레이션 방법.
  7. 각기 다른 사용자에 의해 입력된 링크 객체와 조인트 객체(관절)의 물성값을 이용하여 가상의 3D 로봇의 머니퓰레이터(manipulator)를 생성하는 로봇 모델링부;
    역기구학(inverse kinematics), 자코비안(jacobian) 및 뉴튼-오일러(Newton-Euler) 중 적어도 하나 이상의 알고리즘을 이용하여 상기 머니퓰레이터에서 수용 가능한 관절의 토크, 회전속도, 각속도 및 선속도의 범위를 결정하는 물성치 결정부;
    상기 물성치 결정부에서 결정된 수용 범위를 그래프화하여 사용자 인터페이스 환경으로 제공하는 물성치 제공부;
    상기 수용 범위에 기초하여 각기 다른 사용자에 의해 입력된 AVR 코드-상기 AVR 코드에는 상기 수용 범위내에 있는 토크, 회전속도, 각속도 및 선속도 값중 선택된 임의의 값들을 포함함-를 이진 코드로 해석하는 AVR 코드 해석부; 및
    상기 해석에 따라 시뮬레이션한 상기 머니퓰레이터의 움직임을 사용자 인터페이스 환경으로 제공하는 움직임 제공부;
    를 포함하는 것을 특징으로 하는 로봇의 3D 시뮬레이션 시스템.
  8. 제 7항에 있어서,
    상기 AVR 코드 해석부는,
    상기 AVR 코드를 Lex, Yacc 및 Winavrdml 중 어느 하나의 방식을 이용하여 이상 여부를 검사하는 문법 검사부; 및
    상기 문법 검사부에 의한 검사 결과가 이상이 없을 경우, 그 결과로서 상기 AVR 코드에 대응하는 레지스터 정보를 획득하는 레지스터 핸드링부;
    를 포함하는 것을 특징으로 하는 로봇의 3D 시뮬레이션 시스템.
KR1020120045486A 2012-04-30 2012-04-30 로봇의 삼차원 시뮬레이션 방법 및 시스템 KR101439929B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120045486A KR101439929B1 (ko) 2012-04-30 2012-04-30 로봇의 삼차원 시뮬레이션 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120045486A KR101439929B1 (ko) 2012-04-30 2012-04-30 로봇의 삼차원 시뮬레이션 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20130122288A true KR20130122288A (ko) 2013-11-07
KR101439929B1 KR101439929B1 (ko) 2014-09-17

Family

ID=49852111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120045486A KR101439929B1 (ko) 2012-04-30 2012-04-30 로봇의 삼차원 시뮬레이션 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101439929B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562968A (zh) * 2016-06-30 2018-01-09 沈阳新松机器人自动化股份有限公司 一种足式机器人动力学建模的混合计算方法
KR102652885B1 (ko) * 2023-07-31 2024-04-02 주식회사 칼만 다자유도 로봇팔이 탑재된 수중로봇의 제어방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101627458B1 (ko) * 2015-04-01 2016-06-07 성균관대학교산학협력단 로봇 손의 구조를 위한 최적화 방법
KR101627459B1 (ko) * 2015-04-01 2016-06-07 성균관대학교산학협력단 로봇 손의 성능 지표 제공 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100588811B1 (ko) * 2004-11-10 2006-06-12 재단법인서울대학교산학협력재단 다목적 하이브리드 로봇 시스템
KR101026369B1 (ko) * 2009-08-05 2011-04-05 (주)시뮬레이션연구소 실제로봇과 가상로봇의 통합 제어시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562968A (zh) * 2016-06-30 2018-01-09 沈阳新松机器人自动化股份有限公司 一种足式机器人动力学建模的混合计算方法
KR102652885B1 (ko) * 2023-07-31 2024-04-02 주식회사 칼만 다자유도 로봇팔이 탑재된 수중로봇의 제어방법

Also Published As

Publication number Publication date
KR101439929B1 (ko) 2014-09-17

Similar Documents

Publication Publication Date Title
Garcia et al. A human-in-the-loop cyber-physical system for collaborative assembly in smart manufacturing
Neto et al. Direct off-line robot programming via a common CAD package
Bagnell et al. An integrated system for autonomous robotics manipulation
Neto et al. High‐level robot programming based on CAD: dealing with unpredictable environments
WO2011065035A1 (ja) ロボットの教示データを作成する方法およびロボット教示システム
KR101439929B1 (ko) 로봇의 삼차원 시뮬레이션 방법 및 시스템
CN111251305B (zh) 机器人力控制方法、装置、系统、机器人及存储介质
Arnay et al. Teaching kinematics with interactive schematics and 3D models
CN104321706B (zh) 模拟装置以及模拟方法
Manou et al. Off-line programming of an industrial robot in a virtual reality environment
Ho et al. Efficient closed-form solution of inverse kinematics for a specific six-DOF arm
Jen et al. VR-Based robot programming and simulation system for an industrial robot
Simonič et al. Analysis of methods for incremental policy refinement by kinesthetic guidance
WO2021195916A1 (zh) 动态手部仿真方法、装置和系统
CN103970033A (zh) 基于matlab实现机器人实体建模与叶片激光检测仿真的方法
Ariyanto et al. Development of a low cost anthropomorphic robotic hand driven by modified glove sensor and integrated with 3D animation
Turner Programming dexterous manipulation by demonstration
Das et al. GeroSim: A simulation framework for gesture driven robotic arm control using Intel RealSense
Metzner et al. Intuitive interaction with virtual commissioning of production systems for design validation
Gunawardane et al. Control of robot arm based on hand gesture using leap motion sensor technology
CN107738256A (zh) 一种手把手仿人示教机器人编程系统
Jiang et al. Flexible virtual fixture enhanced by vision and haptics for unstructured environment teleoperation
Tian et al. Nature grasping by a cable-driven under-actuated anthropomorphic robotic hand
Crammond et al. Commanding an anthropomorphic robotic hand with motion capture data
Ismail et al. Gantry robot kinematic analysis user interface based on visual basic and MATLAB

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
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: 20170626

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180620

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190702

Year of fee payment: 6