[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20140134491A - 로봇 제어 방법 - Google Patents

로봇 제어 방법 Download PDF

Info

Publication number
KR20140134491A
KR20140134491A KR20130054446A KR20130054446A KR20140134491A KR 20140134491 A KR20140134491 A KR 20140134491A KR 20130054446 A KR20130054446 A KR 20130054446A KR 20130054446 A KR20130054446 A KR 20130054446A KR 20140134491 A KR20140134491 A KR 20140134491A
Authority
KR
South Korea
Prior art keywords
nodes
node
angle
movable
state vector
Prior art date
Application number
KR20130054446A
Other languages
English (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 KR20130054446A priority Critical patent/KR20140134491A/ko
Priority to US14/153,302 priority patent/US9254568B2/en
Publication of KR20140134491A publication Critical patent/KR20140134491A/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/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/1625Truss-manipulator for snake-like motion
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40299Holonic, made of similar modules, truss manipulator
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/14Arm movement, spatial
    • Y10S901/16Cartesian, three degrees of freedom

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Manipulator (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)

Abstract

팬(pan) 모션에 관여하는 n개의 제1노드 및 틸트(tilt) 모션에 관여하는 n개의 제2노드를 포함하는 플렉서블 모듈을 갖는 로봇의 제어 방법의 일 예는, 상기 플렉서블 모듈의 직진 이동거리, 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 측정하는 단계, 측정된 상기 직진 이동거리를 이용하여 상기 n개의 제1노드 각각의 상태벡터 및 상기 n개의 제2노드 각각의 상태벡터를 산출하는 단계, 산출된 상기 n개의 제1노드 각각의 상태벡터 및 상기 n개의 제2노드 각각의 상태벡터를 이용하여 상기 n개의 제1노드 각각에 대한 가동각 분배 비율 및 상기 n개의 제2노드 각각에 대한 가동각 분배 비율을 연산하는 단계 및 연산된 상기 가동각 분배 비율과 상기 측정된 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 이용하여 상기 n개의 제1노드 각각의 가동각 및 상기 n개의 제2노드 각각의 가동각을 산출하는 단계를 포함한다.

Description

로봇 제어 방법{Robot control method}
로봇 제어 방법이 개시된다. 더욱 상세하게는, 자유도가 가변적이거나 가동각이 가변적으로 제한되는 플렉서블 모듈을 갖는 로봇을 제어하는 방법이 개시된다.
플렉서블(flexible) 메커니즘은 동작 및 형태(shape) 특성으로 인해 재난지역에서 생존자를 탐색하는 구조(rescue) 로봇에서부터 내시경, 능동형 카테터(Active Catheter) 등과 같은 의료기기 및 군사용 로봇과 같은 다양한 분야에서 최근 활발히 연구되고 있다.
이러한 플렉서블(flexible) 메커니즘은 부정형, 불특정 작업환경에서 많은 제한(constraint)을 가질 수 있으며, 이에 따라 플렉서블(flexible) 메커니즘의 자유도가 크게 변하여 기존의 로봇 제어 방법으로는 유효한 제어를 할 수 없거나 한계가 발생하는 문제가 있다.
작업환경 또는 작업내용에 따라 자유도가 가변적이거나 가동각이 가변적으로 제한되는 플렉서블 모듈을 효과적으로 제어할 수 있는 로봇 제어 방법을 제공하는 것이다.
팬(pan) 모션에 관여하는 n개의 제1노드 및 틸트(tilt) 모션에 관여하는 n개의 제2노드를 포함하는 플렉서블 모듈을 갖는 로봇의 제어 방법의 일 예는, 상기 플렉서블 모듈의 직진 이동거리, 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 측정하는 단계, 측정된 상기 직진 이동거리를 이용하여 상기 n개의 제1노드 각각의 상태벡터 및 상기 n개의 제2노드 각각의 상태벡터를 산출하는 단계, 산출된 상기 n개의 제1노드 각각의 상태벡터 및 상기 n개의 제2노드 각각의 상태벡터를 이용하여 상기 n개의 제1노드 각각에 대한 가동각 분배 비율 및 상기 n개의 제2노드 각각에 대한 가동각 분배 비율을 연산하는 단계 및 연산된 상기 가동각 분배 비율과 상기 측정된 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 이용하여 상기 n개의 제1노드 각각의 가동각 및 상기 n개의 제2노드 각각의 가동각을 산출하는 단계를 포함한다.
도 1은 싱글 포트 수술 로봇의 마스터 콘솔을 도시한 도면이다.
도 2는 싱글 포트 수술 로봇의 슬레이브 장치 외관을 도시한 도면이다.
도 3은 수술 도구 어셈블리를 도시한 도면이다.
도 4는 가이드 튜브 구조를 구체적으로 도시한 도면이다.
도 5는 가이드 튜브 및 수술 도구가 트로카를 통해 환자 신체 내부로 삽입된 상태를 도시한 도면이다.
도 6은 로봇 제어 방법의 일 예를 순차적으로 도시한 흐름도이다.
도 7은 도 6의 단계 S630의 일 예를 구체적으로 도시한 흐름도이다.
본 발명의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되어지는 이하의 상세한 설명과 바람직한 실시 예들로부터 더욱 명백해질 것이다. 본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서에서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 상기 용어들에 의해 제한되는 것은 아니다.
이하, 첨부된 도면들을 참조하여 본 실시 예를 상세히 설명하기로 한다.
이후 설명에서는 싱글 포트 수술 로봇(이하, '수술 로봇'이라 함)을 예로 들어 설명할 것이나, 본 발명의 적용이 특별히 이 분야에 한정되는 것은 아니며, 예로써, 우주에서 다양한 작업을 수행하는 원격 로봇 시스템, 원격 조종에 의한 위험물 처리 로봇, 배관 청소 로봇 등 각종 산업용 서비스 로봇 시스템 분야는 물론 로봇 시스템이 아니더라도 플렉서블(flexible) 모듈의 끝단에 엔드 이펙터가 장착된 모든 플렉서블(flexible) 메커니즘에 적용 가능할 것이다.
수술 로봇은 크게 마스터 콘솔(100)과 슬레이브 장치(200)를 포함한다. 마스터 콘솔(100)은 슬레이브 장치(200)를 원격 제어하는 장치이다. 마스터 콘솔(100)은 조작자의 조작에 따라 제어신호를 생성하고, 생성된 제어신호를 슬레이브 장치(200)로 전송한다. 슬레이브 장치(200)는 마스터 콘솔(100)로부터 제어신호를 수신하고, 수신된 제어신호에 따라 동작한다.
도 1은 마스터 콘솔의 외관을 도시한 도면이다.
도 1을 참조하면, 마스터 콘솔(100)은 입력부(110L, 110R, 120L, 120R) 및 표시부(180)를 포함할 수 있다.
입력부(110L, 110R, 120L, 120R)는 슬레이브 장치(200, 도 2 참조)의 동작을 원격으로 조작하기 위한 명령을 조작자로부터 입력받는다. 도 1에서는 입력부(110L, 110R, 120L, 120R)로 두 개의 클러치 페달(110L, 110R) 및 두 개의 핸들부(120L, 120R)가 구비된 것으로 도시하고 있으나, 특별히 이에 한정되는 것은 아니며, 스위치, 버튼, 음성 인식 디바이스 등을 더 구비할 수 있다.
클러치 페달(110L, 110R)은 수술 로봇의 동작 모드를 전환하는데 사용될 수 있다. 일 예로, 왼쪽 클러치 페달(110L)이 조작된 경우에는 가이드 튜브 조작 모드를 실행하고, 오른쪽 클러치 페달(110R)이 조작된 경우에는 수술 기구 조작 모드를 실행하도록 구현할 수 있다. 이때, 가이드 튜브 조작 모드가 실행되면 조작자는 핸들부(120L, 120R)를 조작하여 가이드 튜브(213, 도 2 참조)의 위치 및 자세를 변경할 수 있다. 또한, 수술 기구 조작 모드가 실행되면 조작자는 핸들부(120L, 120R)를 조작하여 수술 도구(220, 도 2 참조)의 위치, 자세 및 동작을 변경할 수 있다.
핸들부(120L, 120R)는 슬레이브 장치(200)에 마련된 가이드 튜브(213), 수술 도구(215) 및 내시경(217) 등의 움직임을 제어하기 위한 부분이다. 본 실시 예에서 핸들부(120L, 120R)는 햅틱 디바이스로 구현될 수 있으나, 특별히 이에 한정되는 것은 아니다. 또한, 핸들부(120L, 120R)는 적어도 하나 이상의 다관절 로봇 손가락을 포함할 수 있다. 이때, 다관절 로봇 손가락은 사람의 손과 유사한 형태로 배치될 수 있으며, 도 1에 세 개의 다관절 로봇 손가락이 구비되고, 사람의 손의 엄지, 검지 및 중지에 대응되는 위치에 각각 마련된 형태를 도시하고 있다. 도 1에서는 각각의 핸들부(120L, 120R)로 세 개의 다관절 로봇 손가락이 구비된 형태를 도시하고 있으나, 다관절 로봇 손가락의 개수 및 위치가 특별히 이에 한정되는 것은 아니다.
또한, 각각의 다관절 로봇 손가락은 복수의 링크 및 복수의 관절을 포함할 수 있다. 여기에서, '관절'은 링크와 링크의 연결부위를 의미하여 적어도 1 자유도를 가질 수 있다. 이때, 자유도(Degree Of Freedom:DOF)란 정기구학(Forward Kinematics) 또는 역기구학(Inverse Kinematics)에서의 자유도를 말한다. 기구의 자유도란 기구의 독립적인 운동의 수, 또는 각 링크 간의 상대 위치의 독립된 운동을 결정하는 변수의 수를 말한다. 예를 들어, x축, y축, z축으로 이루어진 3차원 공간상의 물체는, 물체의 공간적인 위치를 결정하기 위한 3 자유도(각 축에서의 위치)와, 물체의 공간적인 자세(orientation)를 결정하기 위한 3 자유도(각 축에 대한 회전 각도) 중에서 하나 이상의 자유도를 갖는다. 구체적으로, 물체가 각각의 축을 따라 이동 가능하고, 각각의 축을 기준으로 회전 가능하다고 한다면, 이 물체는 6 자유도를 갖는 것으로 이해될 수 있다.
또한, 다관절 로봇 손가락의 각 관절에는 각 관절의 상태와 관련된 정보를 검출하기 위한 검출부가 마련될 수 있다. 이때, 검출부는 관절의 위치(즉, 관절각)를 검출하기 위한 위치 검출부, 관절의 속도를 검출하기 위한 속도 검출부를 포함할 수 있다.
또한, 다관절 로봇 손가락의 선단에는 예를 들어, 조작자의 손가락 끝을 끼울 수 있는 고리형 삽입구가 마련될 수 있다. 이에, 조작자가 삽입구에 손가락을 끼운 상태로 손가락을 움직이면 손가락의 움직임에 대응되도록 다관절 로봇 손가락이 움직이게 되고, 다관절 로봇 손가락의 각 관절에 마련된 검출부는 움직이는 관절의 상태와 관련된 정보를 검출할 수 있다. 이때, 검출부를 통해 검출된 각 관절의 위치 및 속도는 슬레이브 장치(200)의 각 관절이 추종해야할 목표 위치 및 속도에 대한 제어신호로 변환될 수 있으며, 제어신호는 네트워크를 통해 슬레이브 장치(200)로 전송될 수 있다. 여기에서, '네트워크'는 유선 네트워크, 무선 네트워크, 또는 유/무선 복합 네트워크일 수 있다.
또한, 본 실시 예에서 핸들부(120L, 120R)의 형상은 도 1과 같이 다관절 로봇 손가락 형상으로 제한되는 것은 아니며, 펜슬 형상, 스틱 형상 또는 실제 수술 도구와 동일한 형상 등일 수 있다. 또한, 도 1에서는 좌측 핸들부(120L)와 우측 핸들부(120R)가 동일한 형상으로 구현된 것으로 도시하고 있으나, 특별히 이에 한정되는 것은 아니며, 좌측 핸들부(120L)와 우측 핸들부(120R)는 각각 다른 형상으로 구현되는 것 역시 가능하다.
또한, 도 1에 도시한 바와 같이, 각각의 핸들부(120L, 120R)와 기계적으로 연결된 지지 링크(103L, 103R)가 마련될 수 있다. 지지 링크(103L, 103R)는 조작자의 손목부터 팔꿈치까지를 지지하는 역할을 할 수 있다. 이를 위해, 지지 링크(103L, 103R)는 손목 지지부(102L, 102R) 및 팔꿈치 지지부(104L, 104R)를 포함할 수 있다.
손목 지지부(102L, 102R)는 조작자의 손목과 대응되는 위치에 배치될 수 있으며, 다양한 형상을 가질 수 있다. 일 예로, 도 1에서는 고리형으로 구현된 손목 지지부(102L, 102R)를 도시하고 있다. 조작자는 이러한 손목 지지부(102L, 102R)로 손을 통과시킨 후, 손가락 끝을 핸들부(120L, 120R) 선단에 마련된 삽입구에 끼울 수 있다. 또한, 손목 지지부(102L, 102R)에는 힘/토크 검출부가 마련될 수 있으며, 힘/토크 검출부는 조작자가 핸들부(120L, 120R)에 가한 힘을 검출할 수 있다.
팔꿈치 지지부(104L, 104R)는 조작자의 팔꿈치와 대응되는 위치에 배치될 수 있으며, 도 1에 도시한 바와 같이, U자 형상을 가질 수 있으나, 특별히 이에 한정되는 것은 아니다.
이러한 손목 지지부(102L, 102R) 및 팔꿈치 지지부(104L, 104R)를 포함하는 지지 링크(103L, 103R)를 구비함으로써, 조작자의 팔을 안정된 상태로 유지할 수 있으므로, 안정된 조작을 가능하게 한다.
또한, 지지 링크(103L, 103R)와 조작자가 앉는 의자를 기계적으로 연결하는 역할을 하는 적어도 하나의 연결 링크(106L, 106R)가 마련될 수 있다. 이때, 연결 링크(106L, 106R)와 지지 링크(103L, 103R) 사이에는 관절(105L, 105R)이 마련될 수 있다. 또한, 연결 링크(106L, 106R)는 도 1과 같이 복수 개가 구비될 수 있으며, 이때, 복수의 연결 링크(106L, 106R) 각각을 연결하는 관절(107L, 107R)이 마련될 수 있다.
도 1에서는 두 개의 핸들부(120L, 120R)가 각각 지지 링크(103L, 103R) 및 연결 링크(106L, 106R)에 의해 의자에 기계적으로 연결된 상태를 도시하고 있으나, 본 실시 예에서 마스터 콘솔(100)의 구조가 특별히 이에 한정되는 것은 아니다. 예를 들어, 지지 링크(103L, 103R) 및 연결 링크(106L, 106R)는 생략될 수 있으며, 이와 같이, 지지 링크(103L, 103R) 및 연결 링크(106L, 106R)는 생략된 경우에는 각각의 핸들부(120L, 120R)는 마스터 콘솔(100)의 제어부(미도시)와 유선 통신 또는 무선 통신을 통해 데이터를 송수신하기 위한 통신부(미도시)가 추가로 마련될 수 있다.
표시부(180)는 도 1과 같이, 하나 이상의 모니터로 구성될 수 있으며, 각 모니터에 수술 시 필요한 정보들이 개별적으로 표시되도록 구현할 수 있다. 예를 들어, 표시부(180)가 도 1과 같이, 세 개의 모니터로 구성된 경우, 이중 하나의 모니터에는 내시경(217)을 통해 수집된 실제 영상, 환자의 수술 전 의료 영상을 3차원 영상으로 변환한 가상 영상 등이 표시되고, 다른 두 개의 모니터에는 각각 슬레이브 장치(200)의 동작 상태에 관한 정보 및 환자 정보 등이 표시되도록 구현할 수 있다. 다른 예로, 복수의 모니터 동일한 영상이 표시되도록 구현할 수 있으며, 이때, 각각의 모니터마다 동일한 영상이 표시될 수도 있고, 복수의 모니터 전체에 하나의 영상이 표시될 수도 있다. 또한, 모니터의 수량은 표시를 요하는 정보의 유형이나 종류 등에 따라 다양하게 결정될 수 있다. 상술한 표시부(180)는 예로써, LCD(Liquid Crystal Display), LED(Light Emitting Diode), OLED(Organic Light Emitting Diodes), PDP(Plasma Display Panel), 또는 이들의 조합으로 구현될 수 있으나, 특별히 이에 한정되는 것은 아니다.
여기에서, "환자 정보"는 환자의 상태를 나타내는 정보일 수 있으며, 예를 들어, 체온, 맥박, 호흡 및 혈압 등과 같은 생체 정보일 수 있다. 이러한 생체 정보를 마스터 콘솔(100)로 제공하기 위해 후술할 슬레이브 장치(200)는 체온 측정 모듈, 맥박 측정 모듈, 호흡 측정 모듈, 혈압 측정 모듈 등을 포함하는 생체 정보 측정 유닛을 더 포함할 수 있다. 이를 위해, 마스터 콘솔(100)은 슬레이브 장치(200)로부터 전송되는 생체 정보를 수신 및 처리하여 표시부(180)로 출력하기 위한 신호 처리부(미도시)를 더 포함할 수 있다.
도 2는 슬레이브 장치의 외관을 도시한 도면이다.
도 2를 참조하면, 슬레이브 장치(200)는 캐스터부(201), 몸체(202), 로봇 암(203 ~ 208) 및 수술 도구 어셈블리(210)를 포함할 수 있다.
캐스터부(201)는 슬레이브 장치(200)의 이동을 위한 것으로, 몸체(202) 하단에 장착될 수 있다. 캐스터부(201)는 복수의 캐스터를 포함할 수 있으며, 각각의 캐스터에는 캐스터의 동작 상태를 변경하기 위한 레버(미도시)가 마련될 수 있다. 조작자는 레버(미도시)의 위치를 조절하여 캐스터의 동작 상태를 변경할 수 있다. 이때, 캐스터의 동작 상태로는 제동, 자유이동(free swivel) 및 조향 고정(directional lock, swivel lock) 등을 포함할 수 있다.
로봇 암(203 ~ 208)은 몸체(202) 상부에 마련될 수 있다. 로봇 암(203 ~ 208)은 x, y, z축 중에서 적어도 하나의 축을 따라 수술 도구 어셈블리(210)를 이동시키거나, 적어도 하나의 축을 기준으로 수술 도구 어셈블리(210)를 회전시킬 수 있다. 또한, 수술이 진행되는 동안 수술 도구 어셈블리(210)의 위치 및 자세가 유지될 수 있도록 수술 도구 어셈블리(210)를 지지할 수 있다.
로봇 암(203 ~ 208)은 복수의 링크부(204, 206, 208) 및 복수의 관절부(203, 205, 207)를 포함할 수 있다. 구체적으로, 로봇 암(203 ~ 208)은 제1관절부(203), 제1링크부(204), 제2관절부(205), 제2링크부(206), 제3관절부(207) 및 제3링크부(208)를 포함할 수 있다.
제1링크부(204)는 제1링크 및 제1링크를 감싸는 케이싱을 포함할 수 있다. 제1링크는 직선형의 기둥 형상을 가질 수 있으며, 몸체(202)에 대하여 수직 방향으로 마련될 수 있다. 즉, 제1링크는 지면에 대하여 수직 방향일 수 있다.
제1관절부(203)는 몸체(202)와 제1링크부(204)의 연결 부위에 마련되며, x, y, z축 중에서 지정된 축을 따라 이동하는 직선형 관절(prismatic joint)로 구현될 수 있다. 이러한 제1관절부(203)는 수술 도구 어셈블리(210)의 직선 운동을 위한 부분으로, 3 자유도를 가질 수 있으나, 특별히 이에 한정되는 것은 아니다. 이를 위해, 제1관절부(203)에는 직진 구동부가 마련될 수 있으며, 직진 구동부는 특정 축을 따라 직진 운동을 안내하는 리니어 모션 가이드(Linear Motion Guide) 및 리니어 모션 가이드(Linear Motion Guide)에 구동력을 제공하는 모터를 포함할 수 있다.
제2링크부(206)는 제1링크부(204) 끝단에 배치될 수 있으며, 제2링크 및 제2링크를 감싸는 케이싱을 포함할 수 있다. 제2링크는 도 2와 같이, 곡선 형상을 가질 수 있으나, 특별히 이에 한정되는 것은 아니다.
제2관절부(205)는 제1링크부(204)와 제2링크부(206)의 연결 부위에 마련될 수 있으며, x, y, z축 중에서 지정된 축을 기준으로 회전하는 회전형 관절(revolute joint)로 구현될 수 있다. 이러한 제2관절부(205)는 수술 도구 어셈블리(210)의 회전 운동을 위한 부분으로, 2 자유도를 가질 수 있으나, 특별히 이에 한정되는 것은 아니다. 이때, 2 자유도는 구체적으로 롤(roll) 방향 회전 및 피치(pitch) 방향 회전을 포함할 수 있으나, 특별히 이에 한정되는 것은 아니다. 이를 위해, 제2관절부(205)에는 롤(roll) 구동부 및 피치(pitch) 구동부가 마련될 수 있다. 여기에서, 롤(roll) 구동부 및 피치(pitch) 구동부는 모터, 진공 펌프(vacuum pump) 및 수압 펌프(hydraulic) 등으로 구현될 수 있으나, 특별히 이에 한정되는 것은 아니다.
제3링크부(208)는 제2링크부(206) 끝단에 배치될 수 있으며, 도 2와 같이, 고리 형상의 제3링크를 포함할 수 있다. 이러한 고리형의 제3링크 상부에는 수술 도구 어셈블리(210)가 배치될 수 있다.
제3관절부(207)는 제3링크부(208)와 제2링크부(206)의 연결 부위에 마련될 수 있으며, x, y, z축 중에서 지정된 축을 기준으로 회전하는 회전형 관절(revolute joint)로 구현될 수 있다. 이러한 제3관절부(207)는 수술 도구 어셈블리(210)의 회전 운동을 위한 부분으로, 1 자유도를 가질 수 있으나, 특별히 이에 한정되는 것은 아니다. 이때, 1 자유도는 구체적으로 요(yaw) 방향 회전을 포함할 수 있으나, 특별히 이에 한정되는 것은 아니다. 이를 위해, 제3관절부(207)에는 요(yaw) 구동부가 마련될 수 있다. 여기에서, 요(yaw) 구동부는 모터, 진공 펌프(vacuum pump) 및 수압 펌프(hydraulic) 등으로 구현될 수 있으나, 특별히 이에 한정되는 것은 아니다.
도 3은 수술 도구 어셈블리를 도시한 도면이고, 도 4는 플렉서블 모듈 및 자유도를 도시한 도면이며, 도 5는 플렉서블 모듈 및 수술 도구가 트로카를 통해 환자 신체 내부로 삽입된 상태를 도시한 도면이다.
도 3을 참조하면, 수술 도구 어셈블리(210)는 원통형의 케이싱과, 케이싱 내부로 장착된 수술 도구(215), 내시경(217) 및 가이드 튜브(213)를 포함할 수 있다. 또한, 수술 도구(215), 내시경(217) 및 가이드 튜브(213)가 고정된 베이스 스테이션(211)을 포함할 수 있으며, 베이스 스테이션(211)이 제3링크부(208)에 착탈 가능하게 결합될 수 있으나, 특별히 이에 한정되는 것은 아니다.
수술 도구(215)는 샤프트 및 샤프트 끝단에 결합된 엔드 이펙터를 포함할 수 있다. 샤프트로는 통상 원통형 등의 관(管)형 부재가 사용될 수 있다. 이에 따라, 엔드 이펙터로 조작자에 의한 제어신호에 따른 구동력이 전달되도록 엔드 이펙터와 연결된 케이블이 샤프트 내로 수용될 수 있다. 엔드 이펙터는 수술 도구(215)에서 환자의 수술 부위에 실제로 작용하는 부분을 의미하는 것으로, 예를 들어, 클램프, 그래스퍼, 가위, 스태플러, 바늘 홀더, 메스, 절단 블레이드 등을 포함할 수 있으나, 특별히 이에 한정되는 것은 아니며, 수술에 필요한 공지된 도구라면 어떤 것이든 사용 가능할 것이다.
이러한 수술 도구(215) 중 조작자에 의해 선택된 적어도 하나 이상의 수술 도구(215)는 내시경(217)과 함께 플렉서블 모듈(flexible module)(213)을 통과하여 환자의 신체 내부로 삽입될 수 있다. 내시경(217)은 입체 영상을 획득하기 위한 스테레오 카메라 및 조명수단 등을 포함할 수 있으나, 특별히 이에 한정되는 것은 아니다. 이때, 카메라로는 CMOS(Complementary Metal-Oxide Semiconductor) 카메라 또는 CCD(Charge Coupled Device) 카메라 등이 사용될 수 있으나, 특별히 이에 한정되는 것은 아니다. 또한, 내시경(217)으로는 로봇 수술에서 주로 사용되는 복강경뿐 아니라, 흉강경, 관절경, 비경, 방광경, 직장경, 십이지장경, 심장경 등 다양한 수술용 내시경이 사용될 수 있다.
이와 같이, 수술 도구(215) 및 내시경(217)이 가이드 튜브(213)를 통과하여 환자의 신체 내부로 삽입된 상태를 도 5에 도시하였다. 이때, 도 5에 도시한 바와 같이, 가이드 튜브(213)는 환자 신체에 형성된 침습구에 설치된 트로카(trocar)(300)를 통과하여 환자 신체 내부로 삽입되어 수술 부위를 향하여 구부러질 수 있다. 여기에서, 트로카(trocar)(300)는 가이드 튜브(213)가 통과할 수 있는 통로를 제공하는 동시에 복강 내부에 수술 공간을 형성하기 위해 채워진 가스의 누출(leakage)을 방지하는 목적으로 침습구에 설치되는 장치를 의미한다. 이러한 트로카(300)를 설치함으로써, 가이드 튜브(213)를 복강 내부로 삽입하거나 빼낼 때 침습구 내부 둘레에 손상이 발생하는 문제 및 복강 내부로 채워진 가스 누출 문제를 해결할 수 있다.
가이드 튜브(213)는 수술 도구(215) 및 내시경(217)이 통과할 수 있는 통로를 가지며, 도 4 및 도 5에 도시한 바와 같이, 수술 도구(215) 및 내시경(217)이 수술 부위에 도달할 수 있도록 침습구에 설치된 트로카(300)로 삽입되어 수술 부위를 향하여 구부러질 수 있는 구조를 갖는다. 본 실시 예에서는 도 4와 같이, 가이드 튜브(213)는 두 개의 플렉서블 모듈(213A, 213B)을 구비하는 것으로 도시하고 있으나, 이는 하나의 실시 예에 불과하며, 하나의 플렉서블 모듈만을 구비할 수도 있고, 세 개 이상의 플렉서블 모듈을 구비하는 것 역시 가능할 것이다. 이후부터는 도 4를 참조하여, 두 개의 플렉서블 모듈(213A, 213B)을 구비한 구성을 예를 들어 설명할 것이며, 설명의 편의를 위하여 두 개의 플렉서블 모듈(213A, 213B) 중 베이스 스테이션(211)과 가까이 위치하는 플렉서블 모듈(213A)을 제1 플렉서블 모듈(213A), 제1 플렉서블 모듈(213A)과 연결되어 베이스 스테이션(211)과 멀리 위치하는 플렉서블 모듈(213B)을 제2 플렉서블 모듈(213B)이라 명명할 것이다. 또한, 베이스 스테이션(211)과 가장 가까운 위치를 '중심부'라 하고, 베이스 스테이션(211)과 가장 먼 위치를 '말단부'라 할 것이다.
도 4를 참조하면, 가이드 튜브(213)는 각각 팬(pan) 모션에 관여하는 n개의 제1노드(a, c) 및 틸트(tilt) 모션에 관여하는 n개의 제2노드(b, d)를 포함할 수 있다. 구체적으로, 가이드 튜브(213)의 제1 플렉서블 모듈(213A)은 도 4와 같이, 팬(pan) 모션에 관여하는 3개의 제1노드(a1, a2, a3) 및 틸트(tilt) 모션에 관여하는 3개의 제2노드(b1, b2, b3)를 포함하며, 제1노드(a1, a2, a3) 및 제2노드(b1, b2, b3)는 교대로 연결된 구조일 수 있다. 마찬가지로, 제2 플렉서블 모듈(213B) 역시 팬(pan) 모션에 관여하는 3개의 제1노드(c1, c2, c3) 및 틸트(tilt) 모션에 관여하는 3개의 제2노드(d1, d2, d3)를 포함하며, 제1노드(c1, c2, c3) 및 제2노드(d1, d2, d3)는 교대로 연결된 구조일 수 있다.
이때, 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3) 중 1번째 제1노드(a1)는 베이스 스테이션(211)과 가장 가까운 위치 즉, 중심부에 배치될 수 있고, 제2 플렉서블 모듈(213B)의 제2노드(d1, d2, d3) 중 3번째 제2노드(d3)가 베이스 스테이션(211)과 가장 먼 위치 즉, 말단부에 배치될 수 있으며, 이에 따라 트로카(300)에 가이드 튜브(213)를 삽입할 때에는 제2 플렉서블 모듈(213B)의 3번째 제2노드(d3)가 가장 먼저 삽입되고, 제1 플렉서블 모듈(213A)의 1번째 제1노드(a1)가 가장 마지막으로 삽입될 수 있다.
본 실시 예에서는 제1 플렉서블 모듈(213A)과 제2 플렉서블 모듈(213B)은 팬(pan) 자유도 및 틸트(tilt) 자유도를 포함하는 2 자유도를 각각 가질 수 있으며, 베이스 스테이션(211)의 직진(전진 및 후진) 자유도 및 회전 자유도를 포함하여 가이드 튜브는 최종적으로 6 자유도를 가질 수 있으나, 특별히 이에 한정되는 것은 아니며, 플렉서블 모듈의 수에 따라 자유도가 증가하거나 감소할 수 있을 것이다.
또한, 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3)와 제2노드(b1, b2, b3) 및 제2플렉서블 모듈(213B)의 제1노드(c1, c2, c3)와 제2노드(d1, d2, d3)는 각각 가동각을 가질 수 있으며, 이후부터는, 각각의 노드에 대하여 움직임이 완전히 프리(free)할 때의 가동각 상태를 '1'이라 하고, 움직임이 완전히 제한(constraint)될 때의 가동각 상태를 '0'이라 할 것이다. 여기에서, '움직임이 완전히 프리(free)할 때'는 노드의 움직임을 제한(constraint)하는 무엇인가가 전혀 없는 상태 즉, 본 실시 예에서는 노드가 트로카(300)를 완전히 통과하여 복강 내부에 위치하여 자유롭게 움직일 수 있는 상태를 의미할 수 있고, '움직임이 완전히 제한(constraint)될 때'는 노드가 트로카(300)를 통과하기 전인 상태 즉, 노드가 트로카(300)와 베이스 스테이션(211) 사이에 위치하여 전혀 움직일 수 없는 상태를 의미할 수 있다.
예를 들어, 도 5를 참조하면, 제1 플렉서블 모듈(213A)의 3 개의 제1노드(a1, a2, a3) 중 1번째 제1노드(a1) 및 2번째 제1노드(a2)는 트로카(300)와 베이스 스테이션(211) 사이에 위치하고 있으므로, 1번째 제1노드(a1) 및 2번째 제1노드(a2)는 전혀 움직일 수 없고, 이에 따라 이들의 가동각 상태는 각각 '0'일 수 있다. 마찬가지로, 제1 플렉서블 모듈(213A)의 3 개의 제2노드(b1, b2, b3) 중 1번째 제2노드(b1) 및 2번째 제2노드(b2) 역시 트로카(300)와 베이스 스테이션(211) 사이에 위치하여 전혀 움직일 수 없으므로, 1번째 제2노드(b1) 및 2번째 제2노드(b2)의 가동각 상태는 각각 '0'일 수 있다.
한편, 제1 플렉서블 모듈(213A)의 3번째 제1노드(a3)는 도 5에 도시한 바와 같이, 트로카(300)를 통과하는 중이고, 3번째 제2노드(b3)는 트로카(300)를 완전히 통과하여 환자의 복강 내부로 진입한 상태이다. 이와 같이, 트로카(300)를 통과중인 3번째 제1노드(a3)의 가동각 상태는 '0 ∼ 1' 사이에 해당할 수 있으며, 트로카(300)를 완전히 통과한 3번째 제2노드(b3)의 가동각 상태는 '1'일 수 있다. 이는, 3번째 제1노드(a3)는 움직일 수는 있으나, 움직임에 어느 정도의 제한은 있는 상태이고, 3번째 제2노드(b3)는 완전히 움직임이 자유로운 상태를 의미할 수 있다.
또한, 제2 플렉서블 모듈(213B)의 3 개의 제1노드(c1, c2, c3) 및 3 개의 제2노드(d1, d2, d3)는 도 5에 도시한 바와 같이, 모두 트로카(300)를 완전히 통과하여 복강 내부에 위치하고 있어 움직임이 완전히 프리(free)한 상태이므로, 이들 모두의 가동각 상태는 모두 '1'일 수 있다.
이와 같이, 가이드 튜브(213)의 모든 노드에 대하여 트로카(300)를 통과하기 전과, 통과하는 중 및 통과한 후의 가동각 상태를 결정할 수 있다. 즉, 가이드 튜브(213)의 각 노드에 대하여 트로카(300)에 의해 가변하는 가동각 상태를 결정하는 것이다.
일반적으로, 로봇을 이용한 수술 시 안전한 작업을 위하여 환자의 신체 내부로 진입한 수술 도구의 포즈(pose)를 정확히 추정하여 수술 도구의 동작을 제어해야하는데, 이때, 수술 도구가 통과하는 가이드 튜브의 포즈(pose)에 대한 정확한 추정도 요구된다. 그러나, 본 실시 예에서와 같은 플렉서블(flexible)한 가이드 튜브는 이동거리 즉, 삽입된 깊이에 따라 갖게 되는 자유도가 가변적으로 변할 수 있고, 가동각이 제한되는 노드가 가변적으로 변할 수 있으므로, 고정적인 자유도와 가동각을 갖는 메커니즘에 적용하는 제어 방법은 적용하기가 용이하지 않다. 따라서, 본 실시 예에서는 이러한 가변 자유도 및 가변 가동각 제한을 갖는 메커니즘에 대한 효율적인 제어 방법을 개시한다.
도 6은 로봇 제어 방법의 일 예를 순차적으로 도시한 흐름도이다.
우선, 도 6을 참조하면, 가이드 튜브(213)의 직진(전진/후진) 이동거리, 회전 각도, 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 측정한다(S610). 이때, 가이드 튜브(213)의 직진 이동거리, 회전 각도, 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 측정하는 것은 가이드 튜브(213)의 직진 운동을 발생시키는 구동부, 회전 운동을 발생시키는 구동부, 팬(pan) 모션을 발생시키는 구동부 및 틸트(tilt) 모션을 발생시키는 구동부 각각에 마련된 검출수단을 이용하여 수행될 수 있으나, 특별히 이에 한정되는 것은 아니다. 여기에서, '구동부'로는 모터가 사용될 수 있으나, 특별히 이에 한정되는 것은 아니다. 또한, '검출수단'으로는 엔코더가 사용될 수 있으나, 특별히 이에 한정되는 것은 아니다.
또한, 본 단계를 통해 측정된 팬(pan) 모션 각도의 수 및 틸트(tilt) 모션 각도의 수는 가이드 튜브에 구비되는 플렉서블 모듈의 갯 수에 따라 달라질 수 있다. 예를 들어, 도 4에 도시한 바와 같이 가이드 튜브(213)가 두 개의 플렉서블 모듈(213A, 213B)을 포함하는 경우, 측정되는 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도의 수는 각각 2 개일 수 있다. 이후부터는 설명의 편의를 위하여, 제1 플렉서블 모듈(213A)에 대한 팬(pan) 모션 각도를 제1 팬(pan) 모션 각도, 틸트(tilt) 모션 각도를 제1 틸트(tilt) 모션 각도라 하고, 제2 플렉서블 모듈(213B)에 대한 팬(pan) 모션 각도를 제2 팬(pan) 모션 각도, 틸트(tilt) 모션 각도를 제2 틸트(tilt) 모션 각도라 할 것이다.
다음, 측정된 가이드 튜브(213)의 직진 이동거리를 이용하여 제1 플렉서블 모듈(231A)의 제1노드(a1, a2, a3) 및 제2노드(b1, b2, b3)와 제2 플렉서블 모듈(231B)의 제1노드(c1, c2, c3) 및 제2노드(d1, d2, d3) 각각의 상태벡터를 산출한다(S620). 이때, 측정된 가이드 튜브(213)의 직진 이동거리를 이용하여 제1노드 각각의 상태벡터와 제2노드 각각의 상태벡터를 산출하는 것은 직진 이동거리의 선형(linear) 함수 또는 사인파(sinusoidal) 함수를 이용하여 결정될 수 있으나, 특별히 이에 한정되는 것은 아니다. 이때, 트로카(300)의 끝단 모양 즉, 가이드 튜브가 빠져나오는 출구 부분의 모양이 직선인지 또는 곡선인지에 따라 선형(linear) 함수 또는 사인파(sinusoidal) 함수를 적절하게 이용할 수 있다.
앞에서, 가이드 튜브의 각 노드에 대한 가동각 상태를 '1', '0', 또는, '0 ∼ 1' 사이의 값으로 나타내는 것에 대하여 설명하였다. 이에 따라, 도 5와 같은 상태, 예를 들어, 가이드 튜브(213)가 트로카(300)를 통해 환자 신체 내부로 삽입되고 있으며, 가이드 튜브(213) 중 제1 플렉서블 모듈(213A)의 3개의 제1노드(a1, a2, a3) 중 3번째 제1노드(a3)가 트로카(300)를 통과중인 상태에 대한 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3) 및 제2노드(b1, b2, b3)와 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 및 제2노드(d1, d2, d3) 각각의 상태벡터는 다음과 같이 n × 1 벡터 형태로 표현될 수 있다.
PP = [ 0 0 x ]^T
PT = [ 0 0 1 ]^T
DP = [ 1 1 1 ]^T
DT = [ 1 1 1 ]^T
여기에서, 'PP'는 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3)이고, 'PT'는 제1 플렉서블 모듈(213A)의 제2노드(b1, b2, b3)이며, 'DP'는 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3)이고, 'DT'는 제2 플렉서블 모듈(213B)의 제2노드(d1, d2, d3)를 나타낸다.
즉, 도 5를 참조하면, 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 및 제2노드(d1, d2, d3)는 트로카(300)를 완전히 통과하여 움직임이 완전히 프리(free)한 상태이므로, 각 노드의 가동각 상태는 '1'이 될 수 있고, 제1 플렉서블 모듈(213A)의 1번째 제1노드(a1) 및 2번째 제1노드(a2)와 1번째 제2노드(b1) 및 2번째 제2노드(b2)는 트로카(300)와 베이스 스테이션(211) 사이에 위치하여 움직임이 완전히 제한(constraint)된 상태이므로, 각 노드의 가동각 상태는'0'이 될 수 있다. 또한, 제1 플렉서블 모듈(213A)의 3번째 제1노드(a3)는 트로카(300)를 통과하는 중이므로, 가동각 상태가 '0 ~ 1' 사이의 값인 x가 될 수 있으며, 제1 플렉서블 모듈(213A)의 3번째 제2노드(b3)는 트로카(300)를 완전히 통과하여 움직임이 완전히 프리(free)한 상태이므로, 가동각 상태가 '1'이 될 수 있다.
이와 같이, 가이드 튜브(213)가 이동하는 거리 즉 환자 신체 내부로 삽입되는 깊이 변화에 따라, 각 노드의 가동각 상태는 변할 수 있다. 예를 들어, 도 5에 도시한 상태에서 조금 더 깊게 삽입되면, 제1 플렉서블 모듈(213A)의 3번째 제1노드(a3)보다 중심부 방향에 위치하는 다른 노드가 '0 ~ 1' 사이의 가동각 상태 값을 갖게 될 수 있다. 반대로, 도 5에 도시한 상태에서 조금 더 얕게 삽입되면, 제1 플렉서블 모듈(213A)의 3번째 제1노드(a3)보다 말단부 방향에 위치하는 다른 노드가 '0 ~ 1' 사이의 가동각 상태 값을 갖게 될 수 있다.
다음, 단계 S620을 통해 산출된 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3) 및 제2노드(b1, b2, b3)와 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 및 제2노드(d1, d2, d3) 각각의 상태벡터를 이용하여 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3) 및 제2노드(b1, b2, b3)와 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 및 제2노드(d1, d2, d3) 각각에 대한 가동각 분배 비율을 연산한다(S630).
상술한 바와 같이, 제1 플렉서블 모듈(213A)의 3개의 제1노드(a1, a2, a3)는 제1 플렉서블 모듈(213A)의 팬(pan) 모션에 관여하고, 3개의 제2노드(b1, b2, b3)는 제1 플렉서블 모듈(213A)의 틸트(tilt) 모션에 관여한다. 또한, 제2 플렉서블 모듈(213B)의 3개의 제1노드(c1, c2, c3)는 제2 플렉서블 모듈(213B)의 팬(pan) 모션에 관여하고, 3개의 제2노드(d1, d2, d3)는 제2 플렉서블 모듈(213B)의 틸트(tilt) 모션에 관여한다.
이에 따라, 상술한 단계 S610을 통해 측정된 제1 플렉서블 모듈(213A)의 제1 팬(pan) 모션 각도는 3개의 제1노드(a1, a2, a3) 각각의 가동각을 합한 것과 같고, 제1 틸트(tilt) 모션 각도는 3개의 제2노드(b1, b2, b3) 각각의 가동각을 합한 것과 같다. 마찬가지로, 제2 플렉서블 모듈(213B)의 제2 팬(pan) 모션 각도는 3개의 제1노드(c1, c2, c3) 각각의 가동각을 합한 것과 같고, 제2 틸트(tilt) 모션 각도는 3개의 제2노드(d1, d2, d3) 각각의 가동각을 합한 것과 같다.
이와 같이, 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도가 각각 제1노드의 각각의 가동각을 합한 것과 같고, 제2노드 각각의 가동각을 합한 것과 같으므로, 단계 S610을 통해 측정된 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 각각 제1노드의 수 및 제2노드의 수로 나누면, 제1노드 각각의 가동각과 제2노드 각각의 가동각을 산출할 수 있을 것이다. 그러나, 이는 모든 노드가 고정적으로 움직임이 완전히 프리(free)한 상태 또는 움직임이 완전히 제한(constraint)된 상태 즉, 가동각 상태가 '1' 또는'0'인 경우에만 적용할 수 있으며, 본 실시 예에서와 같이, 작업 수행내용이나 작업 환경에 따라 가변하는 자유도 및 가동각 제한을 갖는 플렉서블(flexible)한 메커니즘에서는 각 노드에 동일하게 분배되지 않을 수 있다.
이에 따라, 본 실시 예에서는 단계 S610을 통해 측정된 가이드 튜브(213)의 직진 이동거리를 이용하여 각각의 노드에 대한 가동각 상태가 '0'인지, '1'인지 또는 '0 ~ 1' 사이인지를 산출하고, 산출된 가동각 상태를 이용하여 단계 S610을 통해 측정된 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도가 각 노드로 얼마만큼 분배되는지를 연산함으로써, 모든 노드 각각에 대한 정확한 가동각을 산출한다. 이와 같이, 모든 노드 각각에 대한 정확한 가동각을 산출하고 이를 순기구학(Forward Kinematics)에 적용함으로써, 가이드 튜브(213)의 포즈(pose)를 정확하게 추정할 수 있을 것이다.
본 단계를 구체적으로 설명하면 다음과 같다.
도 7은 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3) 각각에 대한 가동각 분배 비율을 산출하는 과정을 도시한 흐름도이다. 도 7에서는 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3) 각각에 대한 가동각 분배 비율을 산출하는 과정만을 도시하고 있으나, 제1 플렉서블 모듈(213A)의 제2노드(b1, b2, b3), 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 및 제2 플렉서블 모듈(213B)의 제2노드(d1, d2, d3) 각각에 대한 가동각 분배 비율 역시, 도 7에 도시한 과정에 적용하여 산출 가능함은 자명할 것이다.
도 7을 참조하면, 먼저, 단계 S620을 통해 산출된 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3)의 상태벡터의 합이 '0'에 근접하는지를 판단한다(1). 이는, 제1 플렉서블 모듈(213A)의 모든 제1노드(a1, a2, a3)의 움직임이 완전히 제한(constraint)된 상태인지를 판단하기 위한 것으로, 설계 오차 등을 감안하여 완전히 '0'인지를 판단하지 않고, '0'에 근접하는지를 판단하도록 구현할 수 있으나, 특별히 이에 한정되는 것은 아니다. 판단 결과, 제1노드(a1, a2, a3)의 상태벡터의 합이 '0'에 근접하면 제1노드(a1, a2, a3) 각각의 움직임이 모두 완전히 제한(constraint)된 상태인 것으로 판단하고, 제1노드(a1, a2, a3) 각각의 상태벡터를 다음과 같이 모두 '0'으로 스케일링(scaling)한다(2).
PP = [ 0 0 0 ]^T
이러한 상태는 3 개의 제1노드(a1, a2, a3)가 모두 트로카(300)와 베이스 스테이션(211) 사이에 위치하여 고정된 상태임을 의미할 수 있다.
한편, 판단 결과, 제1노드(a1, a2, a3)의 상태벡터의 합이 '0'보다 임계값 이상 크면, 3번째 제1노드(a3)의 가동각 상태 값(x)이 '1'보다 작은지를 판단한다(3). 이는, 3 개의 제1노드(a1, a2, a3) 상태벡터 합이 '0'에 근접하지 않으므로, 이 중 적어도 하나 이상의 노드는 트로카(300)를 통과중이거나 또는 트로카(300)를 완전히 통과한 것으로 간주하고, 3 개의 제1노드(a1, a2, a3) 중 가장 말단부에 위치하여 트로카(300)로 가장 먼저 삽입되는 3번째 제1노드(a3)부터 트로카(300)를 통과중인지 또는 트로카(300)를 완전히 통과했는지를 판단하는 것이다. 이때, 상술한 임계값은 조작자에 의해 임의의 적절한 값으로 설정될 수 있을 것이다.
판단 결과, 3번째 제1노드(a3)의 가동각 상태 값(x)이 '1'보다 작으면, 3번째 제1노드(a3)는 트로카(300)를 통과중이고, 1번째 제1노드(a1)와 2번째 제1노드(a2)는 트로카(300)와 베이스 스테이션(211) 사이에 위치하는 것으로 간주하여 제1노드(a1, a2, a3) 각각의 상태벡터를 다음과 같이 1번째 제1노드(a1)와 2번째 제1노드(a2)는 '0'으로 스케일링(scaling)하고, 3번째 제1노드(a3)는 'x'로 스케일링(scaling)한다(4).
PP = [ 0 0 x ]^T
한편, 판단 결과, 3번째 제1노드(a3)의 가동각 상태 값(x)이 '1'보다 작지 않으면, 3번째 제1노드(a3)는 트로카(300)를 완전히 통과한 것으로 간주하고, 그 다음 순서로 트로카(300)에 삽입되는 2번째 제1노드(a2)의 가동각 상태 값(x)이 '1'보다 작은지를 판단한다(5). 판단 결과, 2번째 제1노드(a2)의 가동각 상태 값(x)이 '1'보다 작으면, 2번째 제1노드(a2)는 트로카(300)를 통과중이며, 1번째 제1노드(a1)는 트로카(300)와 베이스 스테이션(211) 사이에 위치하는 것으로 간주하여 제1노드(a1, a2, a3) 각각의 상태벡터를 다음과 같이 1번째 제1노드(a1)는 '0'으로, 2번째 제1노드(a2)는 'x'로, 3번째 제1노드(a3)는 '1'로 스케일링(scaling)한다(6).
PP = [ 0 x 1 ]^T
한편, 판단 결과, 2번째 제1노드(a2)의 가동각 상태 값(x)이 '1'보다 작지 않으면, 2번째 제1노드(a2)는 트로카(300)를 완전히 통과한 것으로 간주하고, 그 다음 순서로 트로카(300)에 삽입되는 1번째 제1노드(a1)의 가동각 상태 값(x)이 '1'보다 작은지를 판단한다(7). 판단 결과, 1번째 제1노드(a1)의 가동각 상태 값(x)이 '1'보다 작으면, 3번째 제1노드(a3)와 2번째 제1노드(a2)는 트로카(300)를 완전히 통과하였고, 1번째 제1노드(a1)는 트로카(300)를 통과중인 것으로 간주하여 제1노드(a1, a2, a3) 각각의 상태벡터를 다음과 같이 3번째 제1노드(a3)와 2번째 제1노드(a2)는 '1'로, 1번째 제1노드(a1)는 'x'로 스케일링(scaling)한다(8).
PP = [ x 1 1 ]^T
한편, 판단 결과, 1번째 제1노드(a1)의 가동각 상태 값(x)이 '1'보다 작지 않으면, 3번째 제1노드(a3)와 2번째 제1노드(a2) 및 1번째 제1노드(a1)가 모두 트로카(300)를 완전히 통과한 것으로 간주하여 제1노드(a1, a2, a3) 각각의 상태벡터를 다음과 같이 모두 '1'로 스케일링(scaling)한다(9).
PP = [ 1 1 1 ]^T
이러한 과정을 통하여 제1 플렉서블 모듈(213A)의 팬(pan) 모션에 관여하는 제1노드(a1, a2, a3)의 상태벡터를 스케일링(scaling)할 수 있으며, 제1 플렉서블 모듈(213A)의 틸트(tilt) 모션에 관여하는 제2노드(b1, b2, b3)와 제2 플렉서블 모듈(213B)의 팬(pan) 모션에 관여하는 제1노드(c1, c2, c3) 및 제2 플렉서블 모듈(213B)의 틸트(tilt) 모션에 관여하는 제2노드(d1, d2, d3) 각각의 상태벡터 역시 상술한 과정을 적용하여 스케일링(scaling)할 수 있다.
이후, 상술한 과정을 통해 스케일링(scaling)된 상태벡터를 이용하여 제1노드(a1, a2, a3) 각각의 가동각 분배 비율을 연산한다(10). 이때, 제1노드(a1, a2, a3) 각각에 대한 가동각 분배 비율은 제1노드(a1, a2, a3) 각각의 상태벡터를 제1노드(a1, a2, a3)의 상태벡터 합으로 나눈 값으로 스케일링(scaling)함으로써 연산될 수 있다.
이에 대하여 3번째 제1노드(a3)는 트로카(300)를 완전히 통과하였고, 2번째 제1노드(a2)는 트로카(300)를 통과중이며, 1번째 제1노드(a1)는 트로카(300)와 베이스 스테이션(211) 사이에 위치한 상태로 스케일링(scaling)한 상태벡터를 예로 들어 설명하면 다음과 같다.
PP = [ 0 x 1 ]^T
여기에서, 1번째 제1노드(a1)는 '0'을 '0/(x+1)'으로 스케일링(scaling)하고, 2번째 제1노드(a2)는 'x'를 'x/(x+1)'로 스케일링(scaling)하며, 3번째 제1노드(a3)은 '1'을 '1/(x+1)'로 스케일링(scaling)하는 것이다. 이때, 'x'를 '0.5'라고 가정하면, 1번째 제1노드(a1)의 가동각 분배 비율은 '0'이고, 2번째 제1노드(a2)의 가동각 분배 비율은 '0.33'이며, 3번째 제1노드(a3)의 가동각 분배 비율은 '0.66'이 될 것이다. 이와 같은 방법으로 제1 플렉서블 모듈(213A)의 제2노드(b1, b2, b3), 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 및 제2 플렉서블 모듈(213B)의 제2노드(d1, d2, d3) 각각에 대한 가동각 분배 비율을 연산할 수 있다.
다음, 도 6을 참조하면, 단계 S630을 통해 연산된 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3), 제1 플렉서블 모듈(213A)의 제2노드(b1, b2, b3), 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 및 제2 플렉서블 모듈(213B)의 제2노드(d1, d2, d3) 각각에 대한 가동각 분배 비율을 이용하여 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3), 제1 플렉서블 모듈(213A)의 제2노드(b1, b2, b3), 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 및 제2 플렉서블 모듈(213B)의 제2노드(d1, d2, d3) 각각의 가동각을 산출한다(S640).
이때, 각각의 노드에 대한 가동각은 각 노드의 가동각 분배 비율에 상술한 단계 S610을 통해 측정된 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 곱하여 산출될 수 있다. 구체적으로 설명하면 다음과 같다.
즉, 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3) 각각의 가동각은 연산된 제1노드(a1, a2, a3) 각각의 가동각 분배 비율에 상술한 단계 S610을 통해 측정된 제1 플렉서블 모듈(213A)에 대한 팬(pan) 모션 각도인 제1 팬(pan) 모션 각도를 곱함으로써 산출될 수 있고, 제1 플렉서블 모듈(213A)의 제2노드(b1, b2, b3) 각각의 가동각은 연산된 제2노드(b1, b2, b3) 각각의 가동각 분배 비율에 상술한 단계 S610을 통해 측정된 제1 플렉서블 모듈(213A)에 대한 틸트(tilt) 모션 각도인 제1 틸트(tilt) 모션 각도를 곱함으로써 산출될 수 있으며, 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 각각의 가동각은 연산된 제1노드(c1, c2, c3) 각각의 가동각 분배 비율에 상술한 단계 S610을 통해 측정된 제2 플렉서블 모듈(213B)에 대한 팬(pan) 모션 각도인 제2 팬(pan) 모션 각도를 곱함으로써 산출될 수 있고, 제2 플렉서블 모듈(213B)의 제2노드(d1, d2, d3) 각각의 가동각은 연산된 제2노드(d1, d2, d3) 각각의 가동각 분배 비율에 상술한 단계 S610을 통해 측정된 제2 플렉서블 모듈(213B)에 대한 틸트(tilt) 모션 각도인 제2 틸트(tilt) 모션 각도를 곱함으로써 산출될 수 있다.
예를 들어, 상술한 바와 같이 제1 플렉서블 모듈(213A)의 1번째 제1노드(a1)의 가동각 분배 비율은 '0'이고, 2번째 제1노드(a2)의 가동각 분배 비율은 '0.33'이며, 3번째 제1노드(a3)의 가동각 분배 비율은 '0.66'이라 하고, 단계 S610을 통해 측정된 제1 플렉서블 모듈(213A)의 제1 팬(pan) 모션 각도가 90°라고 가정하면, 제1 플렉서블 모듈(213A)의 1번째 제1노드(a1)의 가동각은 0°, 2번째 제1노드(a2)의 가동각은 29.7°, 3번째 제1노드(a3)의 가동각은 59.4°로 산출될 수 있다.
다음, 도 6을 참조하면, 상술한 단계 S640을 통해 산출된 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3), 제1 플렉서블 모듈(213A)의 제2노드(b1, b2, b3), 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 및 제2 플렉서블 모듈(213B)의 제2노드(d1, d2, d3) 각각의 가동각을 이용하여 가이드 튜브(213) 끝단의 위치를 추정한다(S650). 이때, 가이드 튜브(213) 끝단에 대한 위치 추정은 상술한 단계 S640을 통해 산출된 제1 플렉서블 모듈(213A)의 제1노드(a1, a2, a3) 및 제2노드(b1, b2, b3)와 제2 플렉서블 모듈(213B)의 제1노드(c1, c2, c3) 및 제2노드(d1, d2, d3) 각각의 가동각과 상술한 단계 S610을 통해 측정된 가이드 튜브(213)의 직진 이동거리 및 회전 각도를 순기구학(Forward Kinematics)에 대입함으로써 수행될 수 있으나, 특별히 이에 한정되는 것은 아니다. 이때, 관절각을 순기구학(Forward Kinematics)에 대입하여 위치를 추정하는 것은 당 기술분야에 이미 공지된 기술에 해당하므로, 이에 대한 상세한 설명은 생략한다.
이와 같이, 가변 자유도 및 가변 가동각 제한을 갖는 플렉서블(flexible)한 가이드 튜브(213)의 직진 이동거리가 변함에 따라 변화하는 가이드 튜브(213)에 포함된 복수의 노드 각각에 대한 가동각을 실시간으로 산출하고, 산출된 가동각을 이용하여 가이드 튜브(213) 끝단의 위치를 추정함으로써, 작업환경 또는 작업내용에 따라 플렉서블(flexible)하게 변하는 가이드 튜브(213)의 위치를 실시간으로 더욱 정확하게 추정할 수 있고, 이를 이용하여, 가이드 튜브(213)를 통과하는 수술 도구(215)의 위치 역시 실시간으로 더욱 정확하게 추정할 수 있다.
또한, 상술한 바와 같이 산출된 순기구학(Forward Kinematics)의 해는 가이드 튜브(213)의 직진 이동거리 및 회전 각도와 관련된 관절각 뿐 아니라, 스케일링(scaling)을 통해 각각의 노드에 대하여 트로카(trocar)로 인한 제한(constraint) 정도가 반영된 것이다. 이러한 순기구학(Forward Kinematics)의 해를 자코비안(Jacobian) 관계식에 적용하여 역기구학(Inverse Kinematics)의 해를 구할 수 있으므로, 더욱 정밀한 제어가 가능하다.
또한, 본 실시 예에서 가이드 튜브(213)는 직진 이동거리 즉, 삽입 깊이(insertion depth)에 따라 최소 2 자유도(DOF)에서 6 자유도(DOF)를 가질 수 있다. 이때, 가이드 튜브(213)가 얕은 깊이로 삽입되어 2 자유도(DOF)만을 갖는 경우에 6 자유도(DOF)에 대한 동작 명령을 인가하는 것은 무의미할 것이다. 따라서, 가이드 튜브(213)가 갖게 되는 자유도(DOF)에 따른 동작들에 대하여 우선순위를 설정한 후, 측정된 가이드 튜브(213)의 직진 이동거리를 이용하여 가이드 튜브(213)가 갖게 되는 자유도를 결정하고, 결정된 가이드 튜브(213)의 자유도에 대응하여 기설정된 우선순위에 따라 동작 명령을 인가함으로써, 현재의 가이드 튜브(213)가 동작할 수 없는 무의미한 명령을 인가하는 것을 방지하여 더욱 효율적으로 제어할 수 있다.
예를 들어, 가이드 튜브(213)의 자유도에 따른 동작 우선순위를 아래의 [표 1]과 같이 정할 수 있다.
가이드 튜브 자유도 동작 우선순위
2 z(insertion)/roll
3 z(insertion)/roll/x
4 z(insertion)/roll/x/y
5 z(insertion)/roll/x/y/pitch
6 z(insertion)/roll/x/y/pitch/yaw
[표 1]에서 가이드 튜브(213)의 자유도는 가이드 튜브(213)의 직진 이동거리에 따라 결정될 수 있을 것이다. [표 1]과 같이, 가이드 튜브(213)가 2 자유도(DOF)만을 가질 경우, 가이드 튜브(213)로는 직진(z) 및 롤(roll) 방향 회전과 같은 동작 명령을 우선적으로 인가하도록 구현할 수 있고, 가이드 튜브(213)의 삽입 깊이가 조금 더 증가하여 가이드 튜브(213)가 3 자유도(DOF)를 갖게 되면, 상술한 직진(z)과 롤(roll) 방향 회전에 추가로 x 방향 회전과 같은 동작 명령을 우선적으로 인가하도록 구현할 수 있다.
마찬가지로, 가이드 튜브(213)의 삽입 깊이가 조금 더 증가하여 가이드 튜브(213)가 4 자유도(DOF)를 갖게 되면, 직진(z), 롤(roll) 방향 회전 및 x 방향 회전에 추가로 y 방향 회전과 같은 동작 명령을 우선적으로 인가하도록 구현할 수 있고, 가이드 튜브(213)의 삽입 깊이가 조금 더 증가하여 가이드 튜브(213)가 5 자유도(DOF)를 갖게 되면, 직진(z), 롤(roll) 방향 회전, x 방향 회전 및 y 방향 회전에 추가로 피치(pitch) 방향 회전과 같은 동작 명령을 우선적으로 인가하도록 구현할 수 있으며, 가이드 튜브(213)의 삽입 깊이가 조금 더 증가하여 가이드 튜브(213)가 6 자유도(DOF)를 갖게 되면, 직진(z), 롤(roll) 방향 회전, x 방향 회전, y 방향 회전, 피치(pitch) 방향 회전에 추가로 요(yaw) 방향 회전과 같은 동작 명령을 우선적으로 인가하도록 구현할 수 있다.
이는, 우선순위를 정하는 하나의 실시 예에 불과하며, 가이드 튜브(213)의 자유도에 따른 동작에 대한 우선순위가 이에 한정되는 것은 아니며, 사용자의 편의에 따라 다양하게 적용 가능할 것이다.
이상 본 발명을 구체적인 실시 예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로 본 발명은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함이 명백하다.
본 발명의 단순한 변형 내지 변경은 모두 본 발명의 영역에 속하는 것으로 본 발명의 구체적인 보호 범위는 첨부된 특허청구범위에 의하여 명확해질 것이다.
100 : 마스터 콘솔
102L, 102R : 손목 지지부
103L, 103R : 지지 링크
104L, 104R : 팔꿈치 지지부
106L, 106R : 연결 링크
107L, 107R : 관절
110L, 110R : 클러치 페달
120L, 120R : 핸들부
180 : 표시부
200 : 슬레이브 장치
201 : 캐스터부
202 : 몸체
203 : 제1관절부
204 : 제1링크부
205 : 제2관절부
206 : 제2링크부
207 : 제3관절부
208 : 제3링크부
210 : 수술 도구 어셈블리
211 : 베이스 스테이션
213 : 가이드 튜브
213A, 213B : 플렉서블 모듈
215 : 수술 도구
217 : 내시경
300 : 트로카

Claims (15)

  1. 팬(pan) 모션에 관여하는 n개의 제1노드 및 틸트(tilt) 모션에 관여하는 n개의 제2노드를 포함하는 플렉서블 모듈을 갖는 로봇의 제어 방법으로서,
    상기 플렉서블 모듈의 직진 이동거리, 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 측정하는 단계;
    측정된 상기 직진 이동거리를 이용하여 상기 n개의 제1노드 각각의 상태벡터 및 상기 n개의 제2노드 각각의 상태벡터를 산출하는 단계;
    산출된 상기 n개의 제1노드 각각의 상태벡터 및 상기 n개의 제2노드 각각의 상태벡터를 이용하여 상기 n개의 제1노드 각각에 대한 가동각 분배 비율 및 상기 n개의 제2노드 각각에 대한 가동각 분배 비율을 연산하는 단계; 및
    연산된 상기 가동각 분배 비율과 상기 측정된 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 이용하여 상기 n개의 제1노드 각각의 가동각 및 상기 n개의 제2노드 각각의 가동각을 산출하는 단계
    를 포함하는 로봇 제어 방법.
  2. 제1항에 있어서,
    상기 플렉서블 모듈의 직진 이동거리, 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 측정하는 단계는,
    상기 플렉서블 모듈의 회전 각도를 측정하는 단계를 더 포함하는 로봇 제어 방법.
  3. 제2항에 있어서,
    상기 n개의 제1노드 각각의 가동각 및 상기 n개의 제2노드 각각의 가동각을 산출하는 단계 이후에,
    산출된 상기 n개의 제1노드 각각의 가동각 및 상기 n개의 제2노드 각각의 가동각과 상기 측정된 직진 이동거리 및 회전 각도를 이용하여 상기 플렉서블 모듈 끝단의 위치를 추정하는 단계
    를 더 포함하는 로봇 제어 방법.
  4. 제3항에 있어서,
    상기 플렉서블 모듈 끝단의 위치를 추정하는 단계는,
    상기 n개의 제1노드 각각의 가동각, 상기 n개의 제2노드 각각의 가동각, 상기 직진 이동거리 및 상기 회전 각도를 순기구학(Forward Kinematics) 함수에 적용하여 수행되는 로봇 제어 방법.
  5. 제1항에 있어서,
    상기 n개의 제1노드 각각에 대한 가동각 분배 비율 및 상기 n개의 제2노드 각각에 대한 가동각 분배 비율을 연산하는 단계는,
    상기 n개의 제1노드 각각에 대한 가동각 분배 비율을 연산하는 단계; 및
    상기 n개의 제2노드 각각에 대한 가동각 분배 비율을 연산하는 단계
    를 포함하는 로봇 제어 방법.
  6. 제5항에 있어서,
    상기 n개의 제1노드는 중심부로부터 말단부를 향하여 배치되되, 상기 중심부에는 1번째 제1노드가 위치하고, 상기 말단부에는 n번째 제1노드가 위치하는 로봇 제어 방법.
  7. 제6항에 있어서,
    상기 n개의 제1노드 각각에 대한 가동각 분배 비율을 연산하는 단계는,
    상기 n개의 제1노드 각각의 상태벡터 합이 0에 근접하는지를 판단하는 단계;
    판단 결과, 상기 상태벡터 합이 0에 근접하면 상기 n개의 제1노드 각각의 상태벡터를 모두 0으로 스케일링(scaling)하는 단계; 및
    스케일링(scaling)된 n개의 제1노드 각각의 상태벡터를 스케일링(scaling)된 상태벡터의 합으로 나누어 상기 n개의 제1노드 각각에 대한 가동각 분배 비율을 연산하는 단계
    를 포함하는 로봇 제어 방법.
  8. 제7항에 있어서,
    상기 n개의 제1노드 각각의 상태벡터 합이 0에 근접하는지를 판단하는 단계 이후에,
    판단 결과, 상기 상태벡터의 합이 0보다 임계값 이상 크면 상기 n개의 제1노드 중 상태벡터가 1보다 작은 제1노드가 있는지를 판단하는 단계;
    판단 결과, 상태벡터가 1보다 작은 제1노드가 있으면 해당 제1노드는 산출된 상태벡터로 스케일링(scaling)하고, 해당 제1노드를 기준으로 중심부 방향에 위치한 제1노드들의 상태벡터는 0으로 스케일링(scaling)하며, 해당 제1노드를 기준으로 말단부 방향에 위치한 제1노드들의 상태벡터는 1로 스케일링(scaling)하는 단계; 및
    스케일링(scaling)된 n개의 제1노드 각각의 상태벡터를 스케일링(scaling)된 상태벡터의 합으로 나누어 상기 n개의 제1노드 각각에 대한 가동각 분배 비율을 연산하는 단계
    를 포함하는 로봇 제어 방법.
  9. 제8항에 있어서,
    상기 n개의 제1노드 중 상태벡터가 1보다 작은 제1노드가 있는지를 판단하는 단계 이후에,
    판단 결과, 상태벡터가 1보다 작은 제1노드가 없으면 상기 n개의 제1노드 각각의 상태벡터를 모두 1로 스케일링(scaling)하는 단계; 및
    스케일링(scaling)된 n개의 제1노드 각각의 상태벡터를 스케일링(scaling)된 상태벡터의 합으로 나누어 상기 n개의 제1노드 각각에 대한 가동각 분배 비율을 연산하는 단계
    를 포함하는 로봇 제어 방법.
  10. 제5항에 있어서,
    상기 n개의 제2노드는 중심부로부터 말단부를 향하여 배치되되, 상기 중심부에는 1번째 제2노드가 위치하고, 상기 말단부에는 n번째 제2노드가 위치하는 로봇 제어 방법.
  11. 제10항에 있어서,
    상기 n개의 제2노드 각각에 대한 가동각 분배 비율을 연산하는 단계는,
    상기 n개의 제2노드 각각의 상태벡터 합이 0에 근접하는지를 판단하는 단계;
    판단 결과, 상기 상태벡터의 합이 0에 근접하면 상기 n개의 제2노드 각각의 상태벡터를 모두 0으로 스케일링(scaling)하는 단계; 및
    스케일링(scaling)된 n개의 제2노드 각각의 상태벡터를 스케일링(scaling)된 상태벡터의 합으로 나누어 상기 n개의 제2노드 각각에 대한 가동각 분배 비율을 연산하는 단계
    를 포함하는 로봇 제어 방법.
  12. 제11항에 있어서,
    상기 제2노드 상태벡터의 합이 0에 근접하는지를 판단하는 단계 이후에,
    판단 결과, 상기 상태벡터의 합이 0보다 임계값 이상 크면 상기 n개의 제2노드 중 상태벡터가 1보다 작은 제2노드가 있는지를 판단하는 단계;
    판단 결과, 상태벡터가 1보다 작은 제2노드가 있으면 해당 제2노드는 산출된 상태벡터로 스케일링(scaling)하고, 해당 제2노드를 기준으로 중심부 방향에 위치한 제2노드들의 상태벡터는 0으로 스케일링(scaling)하며, 해당 제2노드를 기준으로 말단부 방향에 위치한 제2노드들의 상태벡터는 1로 스케일링(scaling)하는 단계; 및
    스케일링(scaling)된 n개의 제2노드 각각의 상태벡터를 스케일링(scaling)된 상태벡터의 합으로 나누어 상기 n개의 제2노드 각각에 대한 가동각 분배 비율을 연산하는 단계
    를 포함하는 로봇 제어 방법.
  13. 제12항에 있어서,
    상기 n개의 제2노드 중 상태벡터가 1보다 작은 제2노드가 있는지를 판단하는 단계 이후에,
    판단 결과, 상태벡터가 1보다 작은 제2노드가 없으면 상기 n개의 제2노드 각각의 상태벡터를 모두 1로 스케일링(scaling)하는 단계; 및
    스케일링(scaling)된 n개의 제2노드 각각의 상태벡터를 스케일링(scaling)된 상태벡터의 합으로 나누어 상기 n개의 제2노드 각각에 대한 가동각 분배 비율을 연산하는 단계
    를 포함하는 로봇 제어 방법.
  14. 제1항에 있어서,
    상기 n개의 제1노드 각각의 가동각 및 상기 n개의 제2노드 각각의 가동각을 산출하는 단계는,
    상기 연산된 n개의 제1노드 각각의 가동각 분배 비율에 상기 측정된 팬(pan) 모션 각도를 곱하고, 상기 연산된 n개의 제1노드 각각의 가동각 분배 비율에 상기 측정된 틸트(tilt) 모션 각도를 곱하여 수행되는 로봇 제어 방법.
  15. 제1항에 있어서,
    상기 플렉서블 모듈의 직진 이동거리, 팬(pan) 모션 각도 및 틸트(tilt) 모션 각도를 측정하는 단계 이후에,
    측정된 상기 플렉서블 모듈의 직진 이동거리를 이용하여 상기 플렉서블 모듈의 자유도를 결정하는 단계; 및
    결정된 상기 플렉서블 모듈의 자유도에 따라 기설정된 동작들을 하도록 상기 플렉서블 모듈을 제어하는 단계
    를 포함하는 로봇 제어 방법.
KR20130054446A 2013-05-14 2013-05-14 로봇 제어 방법 KR20140134491A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130054446A KR20140134491A (ko) 2013-05-14 2013-05-14 로봇 제어 방법
US14/153,302 US9254568B2 (en) 2013-05-14 2014-01-13 Robot control methods

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130054446A KR20140134491A (ko) 2013-05-14 2013-05-14 로봇 제어 방법

Publications (1)

Publication Number Publication Date
KR20140134491A true KR20140134491A (ko) 2014-11-24

Family

ID=51896399

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130054446A KR20140134491A (ko) 2013-05-14 2013-05-14 로봇 제어 방법

Country Status (2)

Country Link
US (1) US9254568B2 (ko)
KR (1) KR20140134491A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10893913B2 (en) * 2015-12-10 2021-01-19 Covidien Lp Robotic surgical systems with independent roll, pitch, and yaw scaling
CN108908319B (zh) * 2018-07-13 2020-07-07 哈尔滨工业大学(深圳) 一种轻量化柔性机器人
CN113077492A (zh) * 2021-04-26 2021-07-06 北京华捷艾米科技有限公司 位置跟踪方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9949620B2 (en) 2006-06-13 2018-04-24 Intuitive Surgical Operations, Inc. Minimally invasive surgical system
US8903546B2 (en) * 2009-08-15 2014-12-02 Intuitive Surgical Operations, Inc. Smooth control of an articulated instrument across areas with different work space conditions
KR101707924B1 (ko) 2008-02-06 2017-02-17 인튜어티브 서지컬 오퍼레이션즈 인코포레이티드 제동 능력을 가지고 있는 체절식 기구

Also Published As

Publication number Publication date
US20140343730A1 (en) 2014-11-20
US9254568B2 (en) 2016-02-09

Similar Documents

Publication Publication Date Title
US11638999B2 (en) Synthetic representation of a surgical robot
EP2845556B1 (en) Surgical robot
KR102206198B1 (ko) 수술 로봇 시스템 및 그 제어 방법
US9532839B2 (en) Surgical robot system and method of controlling the same
US9801690B2 (en) Synthetic representation of a surgical instrument
KR102188100B1 (ko) 로봇 및 그 제어방법
KR101635339B1 (ko) 입력장치로 다축 매니퓰레이터를 정렬시키기 위한 방법
CN110279427B (zh) 图像采集装置和可操纵装置活动臂受控运动过程中的碰撞避免
US8374723B2 (en) Obtaining force information in a minimally invasive surgical procedure
US20140058564A1 (en) Visual force feedback in a minimally invasive surgical procedure
CN105073058A (zh) 用于通过在零垂直空间内进行咬合同时发生零空间移动而定位操纵器臂的系统和方法
JP2015150425A (ja) 手術ロボット用マスター装置及びその制御方法
KR20150033473A (ko) 로봇 및 그 제어방법
KR20140134491A (ko) 로봇 제어 방법

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