KR20130045690A - 네트워크형 엑츄에이터 모듈 제어방법 - Google Patents
네트워크형 엑츄에이터 모듈 제어방법 Download PDFInfo
- Publication number
- KR20130045690A KR20130045690A KR20110110067A KR20110110067A KR20130045690A KR 20130045690 A KR20130045690 A KR 20130045690A KR 20110110067 A KR20110110067 A KR 20110110067A KR 20110110067 A KR20110110067 A KR 20110110067A KR 20130045690 A KR20130045690 A KR 20130045690A
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- command
- module
- actuator module
- actuator
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/06—Programme-controlled manipulators characterised by multi-articulated arms
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33147—Address peripheral, controller
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33166—Rs485 bus to control several modules, motors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33176—Rs485, mpi multipoint, multidrop interface
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Manufacturing & Machinery (AREA)
- Human Computer Interaction (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Selective Calling Equipment (AREA)
- Programmable Controllers (AREA)
Abstract
본 발명은 네트워크형 엑츄에이터 모듈 제어방법에 관한 것으로, 엑츄에이터 모듈의 컨트롤테이블을 통해 제어할 값의 어드레스를 체크한 다음 ID와 어드레스를 참조하여 명령 패킷을 생성하는 단계, 생성된 명령 패킷을 통신 버스를 통해 실어 보내는 단계, 통신 버스에 실린 명령 패킷을 각 모듈들이 체크하고 그 결과 해당 모듈의 ID라면 인스트럭션과 파라미터를 체크하여 해당 모듈의 컨트롤테이블을 확인한 후 상태 패킷을 생성하는 단계, 생성된 상태 패킷을 다시 통신 버스를 통해 실어 보내는 방식으로 응답하는 단계,를 포함하는 네트워크형 엑츄에이터 모듈 제어방법에 있어서; 상기 패킷 생성단계에서 적어도 1바이트를 갖는 명령 세트가 추가되는 단계, 추가된 명령 세트에 대한 파라미터를 정의하는 단계, 추가된 명령 세트와 파라미터를 각 모듈이 인식할 수 있도록 프로그램을 이용하여 펌웨어를 업그레이드하는 단계,를 더 수행하는 것을 특징으로 하는 네트워크형 엑츄에이터 모듈 제어방법을 제공한다.
본 발명에 따르면, 명령 세트와 파라미터 정의에 따라 각 필드의 길이 제한에 따른 제약사항을 유연하게 확장하여 한 번의 패킷 명령 전송으로 다수의 엑츄에이터로부터 필요한 정보를 제한없이 읽어들일 수 있고, 또 각 엑츄에이터를 제어할 수 있어 더욱 더 정밀하고 정교하면서 정확한 제어가 가능한 효과를 얻을 수 있다.
본 발명에 따르면, 명령 세트와 파라미터 정의에 따라 각 필드의 길이 제한에 따른 제약사항을 유연하게 확장하여 한 번의 패킷 명령 전송으로 다수의 엑츄에이터로부터 필요한 정보를 제한없이 읽어들일 수 있고, 또 각 엑츄에이터를 제어할 수 있어 더욱 더 정밀하고 정교하면서 정확한 제어가 가능한 효과를 얻을 수 있다.
Description
본 발명은 네트워크형 엑츄에이터 모듈 제어방법에 관한 것으로, 보다 상세하게는 구동부, 센서부, 네트워크부, 제어부가 하나의 모듈 내에 일체형으로 구성된 엑츄에이터 모듈이 멀티드롭 방식으로 연결되어 하나의 엑츄에이터 모듈 네트워크를 구성하며, 인스트럭션 확장을 통해 새로운 명령어를 추가할 수 있고, 이와 함께 파라미터를 새롭게 규정함으로써 읽을 수 있는 어드레스의 수와 데이터의 길이를 대폭 확장시킬 수 있으며, 패킷과 패킷 사이의 빈 시간을 줄이고, 이를 통해 정보 처리(읽기와 쓰기)를 신속하고 다양하게 유지함은 물론 기존 정보와의 호환성도 유지할 수 있도록 개선된 네트워크형 엑츄에이터 모듈 제어방법에 관한 것이다.
주지된 바와 같이, 산업용 로봇에서부터 휴머노이드 로봇에 이르기까지 다양한 분야에서 사용되는 로봇에는 관절의 유연한 운동을 위하여 감속기능을 갖는 엑츄에이터를 사용하고 있다.
특히, 최근 급격히 발전하고 있는 로봇공학 기술은 기존에 산업용으로만 활용되던 로봇공학 메커니즘들이 타 산업분야로까지 접목되어 기술의 융복합이 진행되고 있는데, 이를 테면 가정용 청소로봇, 프로그래밍 교육용 로봇, 완구용 로봇, 엔터테이먼트용 로봇 등의 개발과 생산을 들 수 있다.
이러한 로봇 기술에서 구동과 관계된 엑츄에이터, 더 정확하게는 구동모터를 제어하는 것은 매우 중요한 기술이다.
예컨대, 하나의 로봇에 수개에서 수십개의 엑츄에이터가 장착된 형태의 로봇의 경우, 각각의 엑츄에이터를 정확하게 제어하는 동시에 전체 엑츄에이터를 상호연관성 있게 유기적으로 제어하기 위해서는 고도의 제어 메커니즘이 필요하다.
특히, 다수의 엑츄에이터를 하나의 중앙 제어기로 제어하는 경우, 각 엑츄에이터 마다 엑츄에이터 상태를 감지하는 센서부(즉, 엔코더 1,...,n)와 엑츄에이터에 구동 전압을 제공하기 위한 구동부(즉, 모터 1,...,n)를 포함하므로, 엑츄에이터 제어부와 구동부 사이에 4개의 배선이 필요하며 엑츄에이터 제어부(즉, 모터 제어기)와 센서부 사이에 별도로 6개 배선이 필요하게 된다.
따라서, n개의 엑츄에이터가 엑츄에이터 제어부에 연결된 경우 총 10n개의 배선이 필요하게 되므로, 로봇을 구성하는 엑츄에이터의 수가 많아질수록 배선처리의 곤란성으로 인해 로봇의 구조를 다양화하는데 제한이 많았다. 또한, 로봇의 설계변형으로 인해 엑츄에이터 수를 증감해야 할 경우, 이에 따라 엑츄에이터 제어기, 센서부, 구동부를 모두 변경해야 하는 문제점이 발생하였다.
한편, 종래에는 엑츄에이터 센서부에서 피드백될 수 있는 정보의 종류가 모터의 회전 속도와 위치 등에 한정되어 있어서, 과전류의 발생, 내부의 과열 등 엑츄에이터 동작에 문제가 발생하는 경우를 직접 파악하여 이에 대처하는 자동제어 메커니즘을 구현하기가 곤란하였다.
또한, 다수의 엑츄에이터가 각각 엑츄에이터 제어부와 직접 연결된 방식 하에서는, 다수의 엑츄에이터를 상호연관성 있게 제어하기 위해서는 복수개의 엑츄에이터가 동시에 또는 순차적으로 매우 정확하게 제어되어야 하는데, 이러한 제어 프로세스에 따른 신호처리의 부하가 모두 하나의 엑츄에이터 제어부에 집중됨으로써 다수의 엑츄에이터로 구성된 로봇의 원활한 동작을 기대하기가 어려웠다.
이를 개선하기 위해, 본 출원인은 2006.12.21.자로 특허출원 제2006-0131526호 '네트워크형 엑츄에이터 모듈'을 특허출원하여 등록번호 제0846177호로 등록받은 바 있다.
그런데, 로봇 기술은 해를 거듭할 수록 발전되고 있고, 로봇의 구동과 관련된 다양한 정보를 아주 빠른 시간에 동시에 수집하고 처리할 필요성이 대두되었다.
이에, 본 출원인이 등록받은 특허기술을 더욱 더 개량하여 보다 유연한 구동 제어가 가능하도록 한 프로토콜의 재정비 작업이 요구되었다.
본 발명은 상술한 바와 같은 종래 기술을 개량할 필요성에 의해 창출된 것으로, 명령 세트와 파라미터 정의에 따라 각 필드의 길이 제한에 따른 제약사항을 유연하게 확장하여 한 번의 패킷 명령 전송으로 다수의 엑츄에이터로부터 필요한 정보를 거의 제한없이 읽어들일 수 있고, 또 각 엑츄에이터 제어시 패킷과 패킷 간 지연시간을 없애 신속하고 정확한 제어가 가능하도록 개선된 네트워크형 엑츄에이터 모듈 제어방법을 제공함에 그 주된 목적이 있다.
본 발명은 상기한 목적을 달성하기 위한 수단으로, 엑츄에이터 모듈의 컨트롤테이블을 통해 제어할 값의 어드레스를 체크한 다음 ID와 어드레스를 참조하여 명령 패킷을 생성하는 단계, 생성된 명령 패킷을 통신 버스(Dynamixel Bus)를 통해 실어 보내는 단계, 통신 버스에 실린 명령 패킷을 각 모듈들이 체크하고 그 결과 해당 모듈의 ID라면 인스트럭션과 파라미터를 체크하여 해당 모듈의 컨트롤테이블을 확인한 후 상태 패킷을 생성하는 단계, 생성된 상태 패킷을 다시 통신 버스를 통해 실어 보내는 방식으로 응답하는 단계,를 포함하는 네트워크형 엑츄에이터 모듈 제어방법에 있어서; 상기 패킷 생성단계에서 적어도 1바이트를 갖는 명령 세트가 추가되는 단계, 추가된 명령 세트에 대한 파라미터를 정의하는 단계, 추가된 명령 세트와 파라미터를 각 모듈이 인식할 수 있도록 프로그램을 이용하여 펌웨어를 업그레이드하는 단계,를 더 수행하는 것을 특징으로 하는 네트워크형 엑츄에이터 모듈 제어방법을 제공한다.
이때, 상기 상태 패킷 생성 후 통신 버스를 통해 응답하는 단계에서, 응답하는 모듈이 복수개일 경우 각 모듈이 순서를 지켜 리턴 패킷을 응답하되, 응답할 해당 모듈 이전 단의 상태 패킷 송신 여부를 감시하여 이전 단의 상태 패킷이 송신되는 즉시 해당 모듈의 상태 패킷을 송신하도록 하여 패킷과 패킷 사이의 응답 지연을 방지하도록 한 것에도 그 특징이 있다.
본 발명에 따르면, 명령 세트와 파라미터 정의에 따라 각 필드의 길이 제한에 따른 제약사항을 유연하게 확장하여 한 번의 패킷 명령 전송으로 다수의 엑츄에이터로부터 필요한 정보를 거의 제한없이 읽어들일 수 있고, 또 각 엑츄에이터를 제어할 수 있어 더욱 더 정밀하고 정교하면서 정확한 제어가 가능한 효과를 얻을 수 있다.
도 1은 본 발명에 따른 제어방법을 설명하기 위한 네트워크형 엑츄에이터 모듈의 제어흐름을 보인 블럭도이다.
도 2는 사용자가 본 발명의 네트워크형 엑츄에이터 모듈을 제어하기 위한 시스템 구성을 보인 예시도이다.
도 3은 본 발명에 따른 제어방법을 설명하기 위한 제어테이블의 예시도이다.
도 4는 본 발명에 따른 제어시 위치 에러에 따른 출력 곡선을 도시하는 예시도이다.
도 5는 본 발명에 따른 제어방법을 설명하기 위한 엑츄에이터 모듈이 이동하고자 하는 목표위치를 보인 예시도이다.
도 6은 본 발명에 따라 사용자가 기록할 수 있는 데이터의 유효영역을 도시하는 테이블이다.
도 2는 사용자가 본 발명의 네트워크형 엑츄에이터 모듈을 제어하기 위한 시스템 구성을 보인 예시도이다.
도 3은 본 발명에 따른 제어방법을 설명하기 위한 제어테이블의 예시도이다.
도 4는 본 발명에 따른 제어시 위치 에러에 따른 출력 곡선을 도시하는 예시도이다.
도 5는 본 발명에 따른 제어방법을 설명하기 위한 엑츄에이터 모듈이 이동하고자 하는 목표위치를 보인 예시도이다.
도 6은 본 발명에 따라 사용자가 기록할 수 있는 데이터의 유효영역을 도시하는 테이블이다.
이하에서는, 첨부도면을 참고하여 본 발명에 따른 바람직한 실시예를 보다 상세하게 설명하기로 한다.
구체적인 설명에 앞서, 본 발명의 기본 구성인 엑츄에이터 모듈 자체에 대해서는 본 출원인의 등록특허 제0846177호의 상세한 설명과 도면(1도-4도)에 자세히 설명되어 있으므로 구성 자체에 대한 설명은 생략하며, 본 발명에 따른 제어방법과 관련된 부분만을 선택하여 설명하기로 한다.
아울러, 본 발명에 따른 제어방법은 같은 대역폭(Bandwidth)을 사용하면서 통신 패킷양을 줄여 시간을 줄일 수 있도록 한 것으로, 인스트럭션을 확장하여 명령어 셋을 새롭게 추가로 규정할 수 있고, 이와 함께 파라미터의 정의를 바꾸어 줌으로써 어드레스의 길이, 데이터의 길이를 확장시킬 수 있도록 한 것이다.
이를 테면, 기존에는 전부 1바이트로만 지정되어 있었기 때문에 읽을 수 있는 어드레스의 수가 255까지 밖에 안되었고, 또 데이터의 길이에 있어서도 255까지 제한적일 수 밖에 없었는데, 본 발명에서는 파라미터의 재정립을 통해 2바이트까지 지정하도록 하여 읽을 수 있는 어드레스의 수와 데이터의 길이를 기존 대비 대폭 확장시키도록 한 것이다.
다시 말해, 이하 설명되는 본 발명에 따른 확장 개념 전의 제어관계는 엑츄에이터 모듈의 컨트롤테이블을 통해 제어할 값의 어드레스를 체크한 다음 ID와 어드레스를 참조하여 명령 패킷을 생성하고, 생성된 명령 패킷을 통신 버스를 통해 실어 보내며, 이 리드 패킷을 각 모듈들이 체크하고, 체크한 결과 해당 모듈의 ID라면 인스트럭션과 파라미터를 체크하여 해당 모듈의 컨트롤테이블을 확인한 후 상태 패킷을 생성한 후 다시 통신 버스를 통해 상태 패킷을 실어 보내는 방식으로 응답하는 것을 말하고, 본 발명에 다른 확장 개념이 적용될 경우에는 이와 같은 기본적인 제어가 이루어지는 동안 패킷 생성과정에서 명령어 추가 과정, 추가된 명령어에 대한 파라미터를 정의하는 과정, 추가된 명령어와 파라미터를 각 모듈이 인식할 수 있도록 프로그램을 이용하여 펌웨어를 업그레이드하는 과정을 더 포함하게 되는데 이에 관한 사항이 후술되는 구체적인 설명에 포함되어 있으며, 이를 테면 명령세트의 테이블에 추가로 구성된 BULK_READ와 BULK_WRITE를 들 수 있다.
뿐만 아니라, 종래의 경우는 상태 패킷이 생성된 후 응답할 때 상태 패킷에 대한 응답만 보내는 방식이었지만, 본 발명에서는 순서를 지켜 상태 패킷이 응답하되 이전 단의 상태 패킷을 보냈는지 여부를 감시하여 이전 단의 상태 패킷이 리턴되는 즉시 해당 모듈의 상태 패킷을 보내도록 함으로써 패킷과 패킷 사이의 응답 지연, 다시 말해 리턴 지연시간을 없애도록 하여 시간을 단축할 수 있도록 구성한 것에도 주된 특징이 있다.
보다 구체적으로, 도 1을 참고하면, N개의 엑츄에이터 모듈이 멀티드롭 방식으로 하나의 메인 컨트롤러에 연결되어 있다.
이때, 메인 컨트롤러와 엑츄에이터 모듈은 패킷을 주고 받으며 통신한다.
여기에서, 패킷의 종류로는 메인 컨트롤러에서 엑츄에이터 모듈로 전송되는 명령 패킷과 엑츄에이터 모듈에서 메인 컨트롤러로 전송되는 상태 패킷이 있다.
그리하여, 메인 컨트롤러가 ID = N 으로 설정된 명령 패킷을 전송할 경우 여러 개의 모터 중 ID가 N인 모터만이 상태 패킷을 리턴하고 그 명령을 수행한다.
예컨대, 하나의 버스에 N개의 엑츄에이터 모듈이 연결되어 있고, 메인 컨트롤러로부터의 제어신호 즉, 명령 신호는 제어의 대상이 되는 엑츄에이터 모듈의 ID를 포함하고 있어서 해당 ID를 가진 엑츄에이터에만 작용하게 되며, 엑츄에이터의 응답은 상태 신호로서 메인 컨트롤러로 전달된다.
아울러, 도 2에 따르면, 본 발명의 엑츄에이터는 메인 컨트롤러로부터의 명령에 의해 제어되고, 메인 컨트롤러는 다시 PC, 유무선 리모콘과 같은 사용자 단말기에 연결된다.
이때, 사용자가 로봇의 동작을 제어하기 위해 각 엑츄에이터를 제어하기 위한 프로그램을 사용자 단말을 통해 입력하게 되면 사용자 단말로부터의 제어 신호는 예컨대 RS232방식의 버스를 통해 엑츄에이터 제어용 메인 컨트롤러로 전송되고, 메인 컨트롤러는 상기 제어 신호를 엑츄에이터 제어에 적합한 RS485 방식의 명령 패킷으로 변환하여 멀티드롭 방식으로 각각의 또는 전체 엑츄에이터 모듈로 전송한다.
그러면, 메인 컨트롤러에 다수의 엑츄에이터 모듈이 연결된 본 발명의 멀티드롭 방식의 네트워크에서는, 다수의 엑츄에이터 모듈 상호간 및 다수의 엑츄에이터 모듈과 메인 컨트롤러 사이의 신호전송이 간단하고 효율적인 방식으로 이루어질 수 있도록 제어 신호와 데이터 신호의 입출력 및 전송을 위한 통신 프로토콜이 지원되어야 한다.
[제어 테이블]
본 발명에 따른 엑츄에이터 모듈은 엑츄에이터 모듈을 제어하기 위한 제어 테이블을 이용한다.
상기 제어 테이블은 엑츄에이터 모듈의 상태와 구동에 관한 데이터로 구성되어 있다.
제어 테이블에 값들을 기록(Writing)함으로써 엑츄에이터 모듈을 구동시키고, 제어 테이블의 값을 판독(Reading)함으로써 엑츄에이터 모듈의 상태를 파악하게 된다.
이와 관련된 예시적인 제어 테이블은 도 3에 도시되어 있다.
도 3에 예시된 바와 같이, 상기 제어 테이블은 RAM영역과 EEPROM영역으로 구성되는데, RAM영역의 데이터는 전원이 인가될 때마다 초기값으로 설정되지만, EEPROM영역의 데이터는 설정된 값이 전원의 오프시에도 보존된다.
제어 테이블은 번지(Address), 아이템(Item), 액세스방식(Access), 초기값(Initial Value)과 같은 항목들을 포함하고 있다.
여기에서, 번지는 값을 기록, 판독하게될 메모리의 번지를 의미한다.
그리고, 아이템은 각 번지에 지정된 데이터의 종류를 의미한다.
또한, 액세스방식은 해당 아이템에 대한 기록, 판독 가능여부를 표시한다.
아울러, 초기값은 EEPROM영역의 데이터인 경우 공장 디폴트값이고 RAM영역의 데이터인 경우에는 전원 인가시 갖는 초기값을 의미한다.
이하에서는 각 번지에 지정된 데이터의 의미를 설명한다.
먼저, EEPROM영역이다.
OXOO, OXO1 : 모델 번호
OXO2 : 펌웨어 버전
OXO3 : 엑츄에이터 모듈 식별을 위한 고유번호(ID)이다. 링크된 각 엑츄에이터 모듈에는 서로다른 ID가 할당되어야 한다.
0X04 : 통신속도를 결정하는 보드율로서, 산출공식은 "Speed[BPS] = 2000000/[Address4 + 1]"이다.
예시적으로, 주요 보드율별 데이터 값은 다음과 같다.
UART(Universal Asynchronous Receiver/Transmitter, 범용 비동기화 송수신기)의 경우 보드율 오차가 3% 이내이면 통신에 지장이 없다.
0X05 : 리턴 지연 시간 즉, 명령 패킷 전송 후 상태 패킷이 리턴되기까지 걸리는 지연 시간을 의미한다.
0X06, 0X07, 0XO8, OXO9 : 동작 각도 제한. 엑츄에이터 모듈의 동작이 허용되는 각도 구간을 설정한다.
OXOB : 최대 제한 온도. 엑츄에이터 모듈의 동작 제한 온도를 의미한다.
OXOC, OXOD : 최저/최고 제한 전압. 엑츄에이터 모듈의 동작 전압 범위의 상한선과 하한선을 의미한다.
OXOE, OXOF : 최대 토크. 엑츄에이터 모듈의 최대 토크 출력값이다.
이 값을 '0'으로 설정할 경우 토크가 없는 프리런(Free Run) 상태가 된다.
최대 토크(Max Torque/Torque Limit)는 EEPROM영역(OXOE, OXOF)과 RAM영역(OX22, OX23)의 두 곳에 할당되어 있는데, 전원이 온될 때 EEPROM영역의 값이 RAM으로 복사된다.
엑츄에이터 모듈의 토크는 RAM에 위치한 값(OX22, OX23)에 의해 제한된다.
OX10 : 상태 리턴 레벨. 명령 패킷이 전송된 후 엑츄에이터 모듈이 상태 패킷을 리턴해 줄지 여부를 결정하는 것으로, 아래와 같은 값을 갖는다.
한편, 브로드캐스트 ID(OXFE)의 명령 패킷의 경우에는 상태 리턴 레벨값에 상관없이 상태 패킷이 리턴되지 않는다.
OX11 : 알람 LED. 에러가 발생했을 때 각 명령에 대한 해당 에러 비트가 1로 설정되어 있으면 LED가 깜박인다.
각 명령에 대한 해당 에러 대응표는 다음과 같다.
각 비트의 기능은 'OR'논리로 작동된다.
즉, OXO5로 설정되었을 경우 입력 전압 에러가 발생해도 LED는 깜박이며, 오버히팅 에러가 발생해도 LED는 깜박이게 된다.
에러가 발생한 후 정상상황으로 복귀하면 2초 후에 LED는 깜박임을 멈추게 된다.
OX12 : 알람 셧다운. 에러가 발생했을 때 각 명령에 대한 해당 에러 비트가 1로 설정되어 있을 경우 엑츄에이터 모듈이 토크오프 즉, 동작중지된다.
각 명령에 대한 해당 에러 대응표는 다음과 같다.
각 비트의 기능은 'OR'논리로 작동된다.
그러나 알람 LED와는 달리 에러가 발생한 후 정상 상황으로 복귀해도 토크오프 상태는 계속된다.
따라서 셧다운 상태에서 벗어나려면 토크 인에이블[0X18]을 1로 재설정해야 한다.
OX14, OX15, OX16, OX17 : 교정(Callibraion). 포텐셔미터 제품간의 편차를 보상하기 위한 데이터로서 사용자가 변경할 수 없다.
이하의 번지는 RAM영역이다.
OX18 : 토크 인에이블. 디지털 모드에서 엑츄에이터 모듈에 전원을 인가하면 토크가 발생하지 않는 프리런 상태가 된다.
이때, OX18번지에 1을 설정하면 토크 인에이블 상태로 된다.
OX19 : LED. 1로 설정되어 있으면 LED가 켜지고 0으로 설정되어 있으면 LED가 꺼진다.
OX1A, OX1B, OX1C, OX1D : 컴플라이언스 마진(compliance margin) 및 슬로프. 마진과 슬로프를 설정하여 엑츄에이터의 컴플라이언스를 조절한다. 컴플라이언스를 잘 활용하면 충격 흡수를 하는 효과를 낼 수 있다.
도 4의 위치 에러에 따른 출력 곡선에서 A, B, C, D의 길이가 컴플라이언스 값이다.
OX1E, OX1F : 목표 위치. 엑츄에이터 모듈이 이동하고자 하는 위치를 의미한다.
도 5에서 값을 최대값인 Ox3ff로 설정하면 300°로 이동한다.
OX20, OX21 : 이동 속도. 목표 위치로 이동하는 속도를 의미한다. 최대값인 Ox3ff로 설정하면 70rpm의 속도로 움직인다.
참고로, 속도가 1로 설정될 경우가 최저속이며 0으로 설정된 경우는 현재 인가 전압상에서 낼 수 있는 최대속도로 움직이게 된다. 즉, 속도제어를 하지 않는 것이다.
OX22, OX23 : 최대 토크. 엑츄에이터 모듈의 최대 토크 출력값이다. 이 값을 '0'으로 설정할 경우 토크가 없는 프리런(Free Run) 상태가 된다. 최대 토크(Max Torque/Torque Limit)는 EEPROM영역(OXOE, OXOF)과 RAM영역(OX22, OX23)의 두 곳에 할당되어 있는데, 전원이 온될 때 EEPROM영역의 값이 RAM으로 복사된다. 엑츄에이터 모듈의 토크는 RAM에 위치한 값(OX22, OX23)에 의해 제한된다.
OX24, OX25 : 현재 위치. 엑츄에이터 모듈의 현재 위치
OX26, OX27 : 현재 속도. 엑츄에이터 모듈의 현재 속도
OX28, OX29 : 현재 부하. 엑츄에이터 모듈의 현재 구동하는 부하의 크기. 아래 표에서 비트 10은 부하가 걸려있는 방향이다.
OX2A : 현재 전압. 엑츄에이터 모듈에 현재 인가되고 있는 전압. 이 값은 실제 전압의 10배이다. 즉, 10V 일 경우 100[OX64]이 읽혀진다.
OX2B : 현재 온도. 엑츄에이터 모듈 내부의 섭씨 온도.
OX2C : 등록 명령. REG_WRITE명령에 의해 명령이 등록되어 있을 때 1로 설정되고, ACTION명령에 의해 등록된 명령이 수행완료된 후에는 0으로 된다.
OX2E : 이동. 엑츄에이터 모듈이 자체 동력에 의한 이동 상태일 때 1로 설정된다.
OX2F : 로크(Lock). 1로 설정되면 0X18~0X23번지의 값만 기록할 수 있고 나머지 영역은 기록이 금지된다. 한번 로크되면 전원오프로만 해제할 수 있다.
OX30, OX31 : 펀치(Punch). 구동시에 모터에 공급되는 최소전류량. 초기값은 OX20이며 최고 0X3FF까지 설정할 수 있다.
데이터 유효영역(Range)
각 데이터들은 유효한 범위가 정해져 있다. 이를 벗어난 기록(WRITE)명령이 전송될 경우 에러가 리턴된다. 도 6의 표에 사용자가 기록할 수 있는 데이터의 길이와 범위가 정리되어 있다. 16비트 데이터는 [L]과 [H], 두 바이트로 표시된다. 이 두 바이트는 하나의 명령 패킷으로 동시에 기록되어야 한다.
[패킷 구조]
본 발명에서 이용되는 명령 패킷(INSTRUCTION PACKET)은 메인 컨트롤러가 엑츄에이터 모듈에게 동작을 지시하는 패킷으로서, 그 구조는 다음과 같다.
명령 패킷을 이루는 각 바이트들의 의미는 다음과 같다.
OXFF OXFF : 가장 선두에 위치한 두 개의 OXFF는 패킷의 시작을 알리는 신호이다.
ID : 명령 패킷에 의해 제어될 엑츄에이터 모듈의 ID이다. 엑츄에이터 모듈의 ID는 OXOO ~ OXFD 까지 254개가 가능하다.
브로드캐스팅(Broadcasting)ID : 연결되어 있는 엑츄에이터 모듈 전체를 지정하는 ID이다. ID를 OXFE로 설정한 브로드캐스팅 ID 패킷은 연결된 모든 엑츄에이터 모듈에 유효하다. 그러므로 브로드캐스팅 ID로 전달된 패킷의 경우는 상태 패킷이 리턴되지 않는다.
LENGTH(길이) : 명령 패킷의 길이로서 그 값은 "파라미터 개수[N] +2"이다.
INSTRUCTION(명령) : 엑츄에이터 모듈에게 수행하라고 지시하는 명령이다.
PARAMETER 0...N : INSTRUCTION 외에 추가 정보가 더 필요할 경우 사용된다.
CHECK SUM(체크섬) : 체크섬의 계산 방법은 다음과 같다.
CHECK SUM = ~{ID + LENGTH + INSTRUCTION + PRAMETER 1 + ... + PRAMETER N}, 체크섬으로 계산된 값이 255보다 클 경우 결과값의 하위 바이트가 CHECKSUM이다. "~"는 Not Bit 연산자이다.
본 발명에서 이용되는 상태 패킷(STATUS PACKET)은 엑츄에이터 모듈이 명령 패킷을 전송받은 후 그 응답으로 메인 컨트롤러로 리턴하는 패킷이며, 그 구조는 다음과 같다.
상태 패킷을 이루는 각 바이트의 의미는 다음과 같다.
OXFF OXFF : 가장 선두에 위치한 두 개의 OXFF는 패킷의 시작을 알리는 신호이다.
ID : 상태 패킷을 리턴하는 엑츄에이터 모듈의 ID이다. 엑츄에이터 모듈의 ID는 OXOO ~ OXFD 까지 254개가 가능하다.
LENGTH(길이) : 상태 패킷의 길이로서 그 값은 "파라미터 개수[N] +2"이다.
ERROR(에러) : 엑츄에이터 모듈의 동작 중에 발생된 에러 상태를 나타내는 것으로 각 비트별 의미는 다음 표와 같다.
PARAMETER 0...N : ERROR 외에 추가 정보가 더 필요할 경우 사용된다.
CHECK SUM(체크섬) : 체크섬의 계산 방법은 다음과 같다.
CHECK SUM = ~{ID + LENGTH + ERROR + PRAMETER 1 + ... + PRAMETER N}, 체크섬으로 계산된 값이 255 보다 클 경우 결과값의 하위 바이트가 CHECKSUM이다. "~"는 Not Bit 연산자이다.
[명령 세트]
본 발명의 엑츄에이터 모듈에서 사용되는 명령 세트에는 다음과 같은 종류가 있다. 특히, 본 발명에서는 BULK_READ와 BULK_WRITE가 더 추가되어 확장된 예를 보여 준다.
뿐만 아니라, 이러한 명령어의 확장은 BULK_READ와 BULK_WRITE를 예시적으로 설명하고 있는 것 뿐이고, 달리 정의하여 새로운 명령어를 더 추가할 수 있음은 물론이며, 그에 따른 파라미터도 새롭게 규정하여야 하고, 나아가 프로그램을 이용한 펌웨어의 업그레이드도 수반되어야 한다.
이를 통해, 기존에는 읽을 수 있는 어드레스의 수가 255개로 한정된 것임에 반해, 본 발명에 따른 확장 개념을 사용하면 그 이상으로 무수히 많이 읽을 수 있도록 확장할 수 있다. 물론 데이터의 길이도 마찬가지이다.
1. WRITE_DATA
기능 : 엑츄에이터 모듈 내부의 제어 테이블에 데이터를 기록하는 명령이다.
길이 : 기록하고자 하는 데이터가 N개일 경우, 길이는 N + 3 이다.
명령 : OXO3
파라미터1 : 데이터를 기록하는 곳의 시작 번지
파라미터2 : 기록하고자 하는 첫번째 데이터
파라미터3 : 기록하고자 하는 두번째 데이터
파라미터N+1 : 기록하고자 하는 N번째 데이터
예컨대, 연결된 엑츄에이터 모듈의 ID를 1로 설정하고 하는 경우, 제어 테이블의 번지 3에 1을 기록하는 명령을 전송하면 된다.
이를 브로드캐스팅ID(OXFE)로 전송하는 경우의 명령 패킷은 다음과 같다.
위와 같은 경우, 브로드캐스팅ID로 전송되었으므로 상태 패킷은 리턴되지 않는다.
2. READ_DATA
기능 : 엑츄에이터 모듈 내부의 제어 테이블의 데이터를 판독하는 명령
길이 : OXO4
명령 : OXO2
파라미터1 : 판독하고자 하는 데이터의 시작 번지
파라미터2 : 판독하고자 하는 데이터의 길이
예컨대. ID가 1인 엑츄에이터 모듈의 현재 내부 온도를 판독하고자 하는 경우, 제어 테이블의 번지 OX2B 값에서 1바이트를 판독하면 된다. 이 경우의 명령 패킷은 다음과 같다.
이에 대해 리턴되는 상태 패킷은 다음과 같다.
판독된 데이터 값은 OX20이며, 현재 엑츄에이터 모듈의 내부 온도가 약 32℃[OX20]임을 알 수 있다.
3. REG_WRITE
기능 : REG_WRITE명령은 WRITE_DATA명령과 유사하나 명령이 수행되는 시점이 다르다. REG_WRITE 명령 패킷이 도착하면 그 값은 버퍼에 저장되고 WRITE 동작은 대기 상태로 남아 있게 된다. 이 때, Registered Instruction[OX2C]이 1로 설정된다. 이후에 ACTION 명령 패킷이 도착하면 비로소 등록되어 있던 REG_WRITE 명령이 실행된다.
길이 : N + 3
명령 : OXO4
파라미터1 : 데이터를 기록하고자 하는 곳의 시작 번지
파라미터2 : 기록하고자 하는 첫번째 데이터
파라미터3 : 기록하고자 하는 두번째 데이터
파라미터N+1 : 기록하고자 하는 N번째 데이터
4. ACTION
기능 : REG_WRITE명령으로 등록된 WRITE 동작을 수행하라는 명령
길이 : OXO2
명령 : OXO5
파라미터 : 없음
여기서, ACTION 명령은 다수의 엑츄에이터 모듈을 동시에 정확하게 동작시켜야 하는 경우에 유용하다. 여러 개의 엑츄에이터 모듈을 명령 패킷으로 제어할 때, 맨 처음에 명령을 받는 엑츄에이터 모듈과 맨 마지막에 명령을 전달받는 엑츄에이터 모듈은 동작 시점에 약간의 시간차가 발생하게 된다. 그러나, REG_WRITE와 ACTION 명령을 사용하게 되면 이와 같은 문제가 해결된다. 한편, 두개 이상의 엑츄에이터 모듈에 ACTION 명령을 전송할 경우 브로드캐스팅ID(OXFE)를 사용해야 하는데, 이 때 상태 패킷은 리턴되지 않는다.
5. PING
기능 : PING 명령은 아무 것도 지시하지 않는다. 단지, 상태 패킷을 받고자 할 때나 특정 ID를 갖는 엑츄에이터 모듈의 존재를 확인하기 위해 사용된다.
길이 : OXO2
명령 : OXO1
파라미터 : 없음
예컨대, ID가 1인 엑츄에이터 모듈의 상태 패킷을 얻고 싶을 때 다음과 같이 PING 명령을 이용할 수 있다.
이에 대응하여 리턴되는 상태 패킷은 다음과 같다.
브로드캐스팅ID가 지정되거나 상태 리턴 레벨[OX10]이 0이더라도, PING 명령에 대해서는 상태 패킷이 리턴된다.
6. RESET
기능 : 엑츄에이터 모듈의 제어 테이블을 공장 디폴트 상태로 되돌려 놓는다.
길이 : OXO2
명령 : OXO6
파라미터 : 없음
예컨대, ID가 0인 엑츄에이터 모듈을 리셋하고자 할 경우의 명령 패킷은 다음과 같다.
위와 같은 RESET 명령에 대해 리턴되는 상태 패킷은 다음과 같다.
여기서, RESET 명령 수행 이후에는 ID가 1로 바뀌게 된다.
7. SYNC_WRITE
기능 : 한 번의 명령 패킷 전송으로 다수의 엑츄에이터 모듈을 동시에 제어하고자 할 때 사용되는 명령이다. Sync Write 명령을 사용하면 여러 개의 명령을 한번에 전달하므로 다수의 엑츄에이터 모듈을 제어할 때 통신 시간이 줄어든다. 단, 각각의 엑츄에이터 모듈에 기록하고자 하는 제어 테이블의 번지와 길이가 모두 동일해야 하며, ID는 브로드캐스팅ID로 전송되어야 한다.
ID : OXFE
길이 : [L + 1] * N + 4, 여기서 L은 엑츄에이터 모듈의 데이터 길이이며, N은 엑츄에이터 모듈의 개수이다.
명령 : OX83
파라미터1 : 데이터를 기록하고 하는 곳의 시작 번지
파라미터2 : 기록하고자 하는 데이터의 길이 [L]
파라미터3 : 첫번째 엑츄에이터 모듈의 ID
파라미터4 : 첫번째 엑츄에이터 모듈의 첫번째 데이터
파라미터5 : 첫번째 엑츄에이터 모듈의 두번째 데이터
.....
파라미터L+3 : 첫번째 엑츄에이터 모듈의 L번째 데이터
파라미터L+4 : 두번째 엑츄에이터 모듈의 ID
파라미터L+5 : 두번째 엑츄에이터 모듈의 첫번째 데이터
파라미터L+6 : 두번째 엑츄에이터 모듈의 두번째 데이터
......
파라미터2L+4 : 두번째 엑츄에이터 모듈의 L번째 데이터
......
예컨대, 4개의 엑츄에이터 모듈에 대하여 각각 아래와 같이 위치와 속도를 정한다고 하자.
ID 0 인 엑츄에이터 모듈 : OX010위치로 속도 0X150 으로 이동
ID 1 인 엑츄에이터 모듈 : OX220위치로 속도 0X360 으로 이동
ID 2 인 엑츄에이터 모듈 : OX030위치로 속도 0X170 으로 이동
ID 3 인 엑츄에이터 모듈 : OX220위치로 속도 0X380 으로 이동
이러한 동작을 지시하기 위한 명령 패킷은 다음과 같이 이루어진다.
OXFF OXFF OXFE OX18 OX83 OX1E OXO4 OXOO OX1O OXOO OX50 OX01 OX01 OX20 OX02 OX60 OX03 OX02 OX30 OX00 OX70 OX01 OX03 0X20 0X02 0X80 OX03 OX12
이 때, 브로드캐스팅ID로 전송되기 때문에 상태 패킷은 리턴되지 않는다.
8. BULK_READ
기능 : 한 번의 명령 패킷 전송으로 다수의 엑츄에이터 모듈에서 동시에 값을 읽어오고자 할 때 사용되는 명령이다.
여러 번의 READ 명령을 내리는 것에 비해 패킷의 길이가 줄어들고, 리턴 되는 상태 패킷들 사이에 유휴 시간이 줄어들어 통신 시간을 절약할 수 있다.
단, 하나의 모듈에 여러 번 읽어 오도록 사용할 수는 없다.
동일한 모듈 ID 를 여러 번 지정할 경우 가장 먼저 지정된 파라미터만 처리된다.
ID : OXFE
길이 : 3N+3
명령 : OX92
파라미터1 : OXOO
파라미터2 : 첫번째 모듈에서 읽어오려는 데이터의 길이 [L]
파라미터3 : 첫번째 모듈의 ID
파라미터4 : 첫번째 모듈에서 읽어오고자 하는 데이터의 시작 번지
....
파라미터3N+2 : N번째 모듈에서 읽어오려는 데이터의 길이 [L]
파라미터3N+3 : N번째 모듈의 ID
파라미터3N+4 : N번째 모듈에서 읽어오고자 하는 데이터의 시작 번지
....
예컨대, 2개의 엑츄에이터 모듈에 대하여 각각 아래와 같이 값을 읽어 온다고 치자.
ID 1 인 엑츄에이터 모듈 : 목표 위치 값(0x1E 에서 2바이트)을 가져 옴.
ID 2 인 엑츄에이터 모듈 : 현재 위치 값(0x24 에서 2바이트)을 가져 옴.
이러한 동작을 지시하기 위한 명령 패킷은 다음과 같이 이루어진다.
OXFF OXFF OXFE OXO9 OX92 OXOO OXO2 OXO1 OX1E OXO2 OXO2 OX24 OX1D
이 때 ID 2 인 모듈은 데이터 버스 상에 ID 1(바로 전 파라미터의 ID) 인 모듈의 상태 패킷이 전송되는 것을 감시하다가 ID 1 인 모듈의 상태 패킷이 전송 완료되는 즉시 자신의 상태 패킷을 전송하게 된다.
리턴되는 상태 패킷은 아래와 같이 된다.
OXFF OXFF OXO1 OXO4 OXOO OXOO OX8O OX7A OXFF OXFF OXO2 OXO4 OXOO OXOO OX8O OX79
각각 모듈 ID 1 과 ID 2 에서 보낸 상태 패킷이 연달아 들어오는 형식이 된다.
9. BULK_WRITE
기능 : 한 번의 명령 패킷 전송으로 다수의 엑츄에이터 모듈에서 동시에 값을 쓰고자 할 때 사용되는 명령이다.
여러 번의 WRITE 명령을 내리는 것에 비해 패킷의 길이가 줄어들고, 각 패킷들 사이에 유휴 시간이 줄어들어 통신 시간을 절약할 수 있다.
또한 하나의 모듈에 연속되지 않은 번지의 control table 에 값을 적기 위해 같은 ID 를 여러 번 지정할 수도 있다.
ID : OXFE
길이 : 가변적
명령 : OX93
파라미터1 : OXOO
파라미터2 : 첫번째 모듈에 기록하고자 하는 데이터의 길이 [L1]
파라미터3 : 첫번째 모듈의 ID
파라미터4 : 첫번째 모듈의 첫번째 데이터
파라미터5 : 첫번째 모듈의 두번째 데이터
...
파라미터L1+2*1+1 : 첫번째 엑츄에이터 모듈의 L번째 데이터
파라미터L1+2*2+0 : 두번째 모듈에 기록하고자 하는 데이터의 길이 [L2]
파라미터L1+2*2+1 : 두번째 모듈의 ID
파라미터L1+2*2+2 : 두번째 모듈의 첫번째 데이터
...
파라미터L1+L2+…+LN+2*N+1 : N번째 엑츄에이터 모듈의 L번째 데이터
...
예컨대, 2개의 엑츄에이터 모듈에 대하여 각각 아래와 같이 값을 정한다고 하자.
ID 1 인 엑츄에이터 모듈 : 0x220위치로 속도 0x360 으로 이동
ID 2 인 엑츄에이터 모듈 : CW/CCW Compliance Slope 을 0x16 으로 변경
이러한 동작을 지시하기 위한 명령 패킷은 다음과 같이 이루어진다.
OXFF OXFF OXFE OXOD OX93 OXOO OXO4 OXO1 OX2O OXO2 OX6O OXO3 OXO2 OXO2 OX1O OX1O OXB4
이때, 브로드캐스팅ID로 전송되기 때문에 상태 패킷은 리턴되지 않는다.
이와 같이, 명령 세트는 계속해서 추가될 수 있으며, 각 명령 세트에 따라 파라미터 내용이 구분되어진다.
따라서, 명령 세트와 파라미터 정의에 따라 각 필드의 길이 제한에 따른 제약사항을 유연하게 확장하는 것이 가능하다.
예를 들어, BULK_READ_2 라는 명령 세트를 0xA0 로 만들고, 파라미터를 아래와 같이 지정한다고 가정해 보자.
ID : OXFE
길이 :
명령 : OXAO
파라미터1 : 첫번째 모듈의 ID 하위 바이트
파라미터2 : 첫번째 모듈의 ID 상위 바이트
파라미터3 : 첫번째 모듈에서 읽어오고자 하는 데이터의 시작 번지 하위 바이트
파라미터4 : 첫번째 모듈에서 읽어오고자 하는 데이터의 시작 번지 상위 바이트
파라미터5 : 첫번째 모듈에서 읽어오려는 데이터의 길이 하위 바이트
파라미터6 : 첫번째 모듈에서 읽어오려는 데이터의 길이 상위 바이트
…
이러한 형태로 지정한다면, ID 및 제어 테이블의 번지, 데이터의 길이 등이 1바이트로 되어 있어 자연적으로 발생하는 제약인 최소 0 에서 최대 255 까지밖에 지정 못하는 제약사항을 확장시킬 수 있다.
Claims (2)
- 엑츄에이터 모듈의 컨트롤테이블을 통해 제어할 값의 어드레스를 체크한 다음 ID와 어드레스를 참조하여 명령 패킷을 생성하는 단계, 생성된 명령 패킷을 통신 버스(Dynamixel Bus)를 통해 실어 보내는 단계, 통신 버스에 실린 명령 패킷을 각 모듈들이 체크하고 그 결과 해당 모듈의 ID라면 인스트럭션과 파라미터를 체크하여 해당 모듈의 컨트롤테이블을 확인한 후 상태 패킷을 생성하는 단계, 생성된 상태 패킷을 다시 통신 버스를 통해 실어 보내는 방식으로 응답하는 단계,를 포함하는 네트워크형 엑츄에이터 모듈 제어방법에 있어서;
상기 패킷 생성단계에서 적어도 1바이트를 갖는 명령 세트가 추가되는 단계,
추가된 명령 세트에 대한 파라미터를 정의하는 단계,
추가된 명령 세트와 파라미터를 각 모듈이 인식할 수 있도록 프로그램을 이용하여 펌웨어를 업그레이드하는 단계,를 더 수행하는 것을 특징으로 하는 네트워크형 엑츄에이터 모듈 제어방법.
- 청구항 1에 있어서;
상기 상태 패킷 생성 후 통신 버스를 통해 응답하는 단계에서, 응답하는 모듈이 복수개일 경우 각 모듈이 순서를 지켜 리턴 패킷을 응답하되, 응답할 해당 모듈 이전 단의 상태 패킷 송신 여부를 감시하여 이전 단의 상태 패킷이 송신되는 즉시 해당 모듈의 상태 패킷을 송신하도록 하여 패킷과 패킷 사이의 응답 지연을 방지하도록 한 것을 특징으로 하는 네트워크형 엑츄에이터 모듈 제어방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20110110067A KR101300174B1 (ko) | 2011-10-26 | 2011-10-26 | 네트워크형 엑츄에이터 모듈 제어방법 |
PCT/KR2012/008905 WO2013062379A2 (ko) | 2011-10-26 | 2012-10-26 | 네트워크형 엑츄에이터 모듈 제어방법 |
US14/354,566 US9880532B2 (en) | 2011-10-26 | 2012-10-26 | Method for controlling network-type actuator module |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20110110067A KR101300174B1 (ko) | 2011-10-26 | 2011-10-26 | 네트워크형 엑츄에이터 모듈 제어방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130045690A true KR20130045690A (ko) | 2013-05-06 |
KR101300174B1 KR101300174B1 (ko) | 2013-08-26 |
Family
ID=48168736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20110110067A KR101300174B1 (ko) | 2011-10-26 | 2011-10-26 | 네트워크형 엑츄에이터 모듈 제어방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9880532B2 (ko) |
KR (1) | KR101300174B1 (ko) |
WO (1) | WO2013062379A2 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101704423B1 (ko) | 2015-10-30 | 2017-02-09 | (주)로보티즈 | 멀티드롭 통신에서의 식별자 검색 방법 |
US11841813B2 (en) | 2019-11-06 | 2023-12-12 | Robotis Co., Ltd. | System and method for efficient communication bus arbitration |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988404B (zh) * | 2016-06-30 | 2018-12-04 | 深圳市优必选科技有限公司 | 一种伺服器控制*** |
CN108737579A (zh) * | 2018-08-16 | 2018-11-02 | 上海海压特智能科技有限公司 | 网络型执行机构模块的状态数据包传送方法 |
US11005922B1 (en) * | 2020-06-12 | 2021-05-11 | Datto, Inc. | Method and system for generating reduced address dataset and method and system for using said dataset |
KR20230067273A (ko) | 2021-11-09 | 2023-05-16 | 주식회사 테솔로 | 폐쇄 루프 형성을 위한 통신 버스 중재 시스템 및 방법 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4742475A (en) * | 1984-06-19 | 1988-05-03 | Ibg International, Inc. | Environmental control system |
FI85731C (fi) * | 1989-06-01 | 1997-08-20 | Valmet Paper Machinery Inc | Reglersystem i en pappers- eller kartongmaskin |
US6169789B1 (en) * | 1996-12-16 | 2001-01-02 | Sanjay K. Rao | Intelligent keyboard system |
JP2001147706A (ja) | 1999-11-22 | 2001-05-29 | Sony Corp | アクチュエータ駆動制御方式、多軸機械装置、及びアクチュエータのための駆動制御装置 |
US6848657B2 (en) * | 2002-01-17 | 2005-02-01 | The Creative Train Company, Llc | Dynamic self-teaching train track layout learning and control system |
JP2003340773A (ja) | 2002-05-18 | 2003-12-02 | Ribasuto:Kk | ロボット制御システム |
US7024282B2 (en) * | 2002-09-26 | 2006-04-04 | Siemens Building Technologies, Inc. | Multi-node utilization of a single network variable input for computation of a single control variable at a sink node |
US8645569B2 (en) * | 2004-03-12 | 2014-02-04 | Rockwell Automation Technologies, Inc. | Juxtaposition based machine addressing |
US7386758B2 (en) * | 2005-01-13 | 2008-06-10 | Hitachi, Ltd. | Method and apparatus for reconstructing data in object-based storage arrays |
US8156232B2 (en) * | 2005-09-12 | 2012-04-10 | Rockwell Automation Technologies, Inc. | Network communications in an industrial automation environment |
KR100846177B1 (ko) * | 2006-12-21 | 2008-07-14 | (주)로보티즈 | 네트워크형 액츄에이터 모듈 |
KR101379430B1 (ko) | 2007-09-12 | 2014-03-28 | 주식회사 로보빌더 | 독립된 기능을 갖는 로봇용 액츄에이터 모듈 |
-
2011
- 2011-10-26 KR KR20110110067A patent/KR101300174B1/ko active IP Right Grant
-
2012
- 2012-10-26 WO PCT/KR2012/008905 patent/WO2013062379A2/ko active Application Filing
- 2012-10-26 US US14/354,566 patent/US9880532B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101704423B1 (ko) | 2015-10-30 | 2017-02-09 | (주)로보티즈 | 멀티드롭 통신에서의 식별자 검색 방법 |
US11841813B2 (en) | 2019-11-06 | 2023-12-12 | Robotis Co., Ltd. | System and method for efficient communication bus arbitration |
Also Published As
Publication number | Publication date |
---|---|
US9880532B2 (en) | 2018-01-30 |
WO2013062379A3 (ko) | 2013-06-20 |
KR101300174B1 (ko) | 2013-08-26 |
WO2013062379A2 (ko) | 2013-05-02 |
US20150120002A1 (en) | 2015-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101300174B1 (ko) | 네트워크형 엑츄에이터 모듈 제어방법 | |
US8060677B2 (en) | Real-time industrial ethernet ethercat communication control | |
US10040193B2 (en) | Motor control system, robot system, and communication method for motor control system | |
KR100846177B1 (ko) | 네트워크형 액츄에이터 모듈 | |
JP6349805B2 (ja) | 通信ユニット、コントローラ、制御システム、制御方法、およびプログラム | |
US9412262B2 (en) | Wireless two-way communication protocol for automated furniture accessory integration | |
RU2015141017A (ru) | Устройство управления, компоненты и мобильное сервисное устройство для hvac-системы | |
WO2015136960A1 (ja) | コントローラ | |
JP6932852B2 (ja) | データ通信方法及びヒューマンコンピュータインタラクションシステム | |
EP2233255A2 (en) | Data transformation network apparatus and robot controlling system and method using the same | |
US20210048786A1 (en) | Stage Automation System | |
US11036402B2 (en) | Control device, control method and recording medium | |
JP6894043B2 (ja) | Dsiプロトコルに基づいて自動車両におけるセンサ装置を動作させるための方法 | |
CN107015542B (zh) | 一种总线舵机及其控制装置、控制***和控制方法 | |
KR20190134285A (ko) | 컨테이너 기반의 엣지게이트웨이 및 시스템 | |
JP6797170B2 (ja) | クラウドブルートゥース装置管理システム | |
JP7276265B2 (ja) | 生産システム、上位制御装置、制御装置、通信方法、及びプログラム | |
JP2006243988A (ja) | Usbデバイス、usbシステム及びusb制御プログラム | |
KR101990399B1 (ko) | 빌딩 자동화 시스템, 그에 포함된 게이트웨이 및 게이트웨이의 동작방법 | |
US10507579B2 (en) | Control system to which control CPU is addable | |
KR101338153B1 (ko) | 디바이스 모델 기반 미들웨어 기술 | |
KR101658092B1 (ko) | 빌딩 자동화 시스템, 이에 포함된 설비 제어 장치 및 설비 제어 장치의 제어 방법 | |
CN113400314B (zh) | 一种机器人控制***及机器人控制方法 | |
JP2000047717A (ja) | プログラマブルコントロ―ラシステム | |
JPWO2022158069A5 (ja) | 通信システム、データ入力制御プログラム、および制御部 |
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: 20160830 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170828 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180808 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20191104 Year of fee payment: 7 |