KR20090002398A - Device of pulse command generation for position reference and sensor data acquistion of human riding robot's joint actuator and its control device and method thereof - Google Patents

Device of pulse command generation for position reference and sensor data acquistion of human riding robot's joint actuator and its control device and method thereof Download PDF

Info

Publication number
KR20090002398A
KR20090002398A KR1020070064169A KR20070064169A KR20090002398A KR 20090002398 A KR20090002398 A KR 20090002398A KR 1020070064169 A KR1020070064169 A KR 1020070064169A KR 20070064169 A KR20070064169 A KR 20070064169A KR 20090002398 A KR20090002398 A KR 20090002398A
Authority
KR
South Korea
Prior art keywords
robot
motor
joint
command
human
Prior art date
Application number
KR1020070064169A
Other languages
Korean (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 KR1020070064169A priority Critical patent/KR20090002398A/en
Publication of KR20090002398A publication Critical patent/KR20090002398A/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/081Touching devices, e.g. pressure-sensitive
    • B25J13/082Grasping-force detectors
    • B25J13/083Grasping-force detectors fitted with slippage detectors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/08Programme-controlled manipulators characterised by modular constructions
    • 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/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

Device for sensor information acquisition and pulse command generation producing the location order of the human on board type robot knuckle driver, and the control device and method using the same are provided that the rotation angle and angular velocity of AC motor in a plurality of joint driving parts are controlled. A device for sensor information acquisition and pulse command generation producing the location order of the human on board type robot knuckle driver comprises a sensor information acquisition part receiving the detection signal of the sensor(400) through the CAN(Controller Area Network) communication, a PCI(Programmable Communication Interface) interface unit(120) delivering the detected signal to a master controller(200) of robot, a digital signal processor for controlling the pulse number generated for a certain time, a motor connector(160) for transmitting the motor control signal with the motor controller(300).

Description

인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치와 이를 이용한 제어 장치 및 방법{Device of pulse command generation for position reference and sensor data acquistion of human riding robot's joint actuator and its control device and method thereof}Device of pulse command generation and position reference and sensor data acquistion of human riding robot's joint actuator and its control device and method approximately}

도 1은 인간 탑승형 이족 보행 로봇(HUBO FX-1)을 나타낸 도면. 1 is a diagram showing a human riding biped robot (HUBO FX-1).

도 2는 인간 탑승형 이족 보행 로봇의 전체 제어 시스템 개념도. 2 is a conceptual diagram of a whole control system of a human riding biped robot.

도 3은 인간 탑승형 이족 보행 로봇의 상세 시스템 구성도.3 is a detailed system configuration diagram of a human riding biped robot.

도 4는 로봇의 주제어기에 사용되는 RTX의 구조를 설명한 도면.4 is a view for explaining the structure of the RTX used in the main controller of the robot.

도 5는 인간 탑승형 이족 보행 로봇의 모션 콘트롤러의 시스템 구성도.5 is a system configuration diagram of a motion controller of a human riding biped robot.

도 6은 인간 탑승형 이족 보행 로봇의 모션 콘트롤러(Motion Controller)의 내부 구성도.6 is an internal configuration diagram of a motion controller of a human riding biped robot.

도 7은 모션 콘트롤러 내 PCI 인터페이스 칩과 DSP칩 그리고 AC 모터 칩 사이의 데이터 교환을 위한 회로도. 7 is a circuit diagram for data exchange between a PCI interface chip, a DSP chip, and an AC motor chip in a motion controller.

도 8은 PCI 인터페이스 칩(PLX)과 DSP 사이의 데이터 교환을 위한 Data 구성도. 8 is a data configuration diagram for data exchange between a PCI interface chip (PLX) and a DSP.

도 9는 PCI 인터페이스 칩(PLX)과 DSP사이의 신호 흐름도.9 is a signal flow diagram between a PCI interface chip (PLX) and a DSP.

도 10은 PCI 인터페이스 칩(PLX)과 DSP사이의 신호 시간선도.10 is a signal timeline between the PCI interface chip (PLX) and the DSP.

도 11은 초기 위치 차이에 의해 로봇의 높이가 달라지는 상황을 나타낸 도면.11 is a view showing a situation in which the height of the robot is changed by the initial position difference.

도 12는 로봇의 AC 모터 축의 위치를 나타낸 도면.12 is a view showing the position of the AC motor shaft of the robot.

도 13은 AC 모터의 Z-상을 찾는 경우의 시간 선도. Fig. 13 is a time diagram when finding the Z-phase of an AC motor.

도 14는 일정 시간 동안 DDA(Digital Differential Analyzer)에 의해 X축과 Y축에서 발생하는 펄스의 수를 나타낸 도면. 14 is a view showing the number of pulses generated in the X-axis and the Y-axis by the Digital Differential Analyzer (DDA) for a certain time.

도 15는 일정 시간 동안 DDA 알고리즘에 의해 AC 모터를 제어하기 위한 펄스 신호의 생성 과정을 보여주는 다이어그램.15 is a diagram showing a process of generating a pulse signal for controlling an AC motor by a DDA algorithm for a predetermined time.

도 16은 PCI 인터페이스 칩(PLX)와 CAN 콘트롤러 사이의 연결 관계를 나타낸 구성도.16 is a configuration diagram showing a connection relationship between a PCI interface chip (PLX) and a CAN controller.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100: 모션 콘트롤러 인터페이스 장치 100: motion controller interface device

121: PCI(PC 104+) 버스 인터페이스 칩 123: 딥 스위치 1-3121: PCI (PC 104+) bus interface chip 123: dip switch 1-3

127: OSC 2 102a, 102b: EPLD1, EPLD2 127: OSC 2 102a, 102b: EPLD1, EPLD2

111: CAN 콘트롤러 112: 포토 커플러1,2111: CAN controller 112: photo coupler 1,2

113: CAN 트랜시버 114: CAN 커넥터 113: CAN transceiver 114: CAN connector

130: 버퍼 5-8 140: DSP 130: buffer 5-8 140: DSP

141: OSC 1 150: 버퍼 1-3141: OSC 1 150: Buffer 1-3

160: AC 모터 커넥터 160: AC motor connector

본 발명은 인간 탑승형 이족 보행 로봇의 모션 콘트롤러 인터페이스 장치 및 방법에 관한 것으로, 특히 로봇의 주제어기로부터 각 관절의 각도 명령을 수신받아 DSP를 통해 각 관절의 각도 명령을 펄스 형태로 생성하고 일정 시간 동안 발생되는 펄스의 수를 조정하여 로봇의 관절 구동부의 AC모터의 회전각도 및 각속도를 제어하기 위한, 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치와 이를 이용한 제어 장치 및 방법에 관한 것이다.The present invention relates to a motion controller interface device and method for a human-ride biped walking robot, and in particular, receives an angle command of each joint from the main controller of the robot and generates an angle command of each joint in a pulse form through a DSP, and generates a predetermined time. Pulse command generation and sensor information acquisition device for controlling position and angular velocity of the AC motor of the robot joint drive unit by adjusting the number of pulses generated during An apparatus and method are provided.

최초의 휴머노이드 로봇이 개발된 이후, 2000년 아시모의 등장은 세계에 새로운 로봇의 시대를 열어주었다. 물론, 아시모 이전에도 많은 로봇들이 있었지만, 아시모는 과거 상상속에서 존재하던 사람 크기의 로봇이면서, 상당히 자연스러운 움직임을 보여주었다. 이러한 환경 속에서 많은 휴머노이드 로봇이 등장한다. 일본에서는 아시모 이외에도, HRP등이 있고, 한국에서는 KHR, 중국에서는 BHR등이 나타난다.Since the first humanoid robots were developed, the appearance of Asimo in 2000 opened a new era of robots in the world. Of course, there were many robots before Asimo, but Asimo was a human-sized robot that had existed in the imagination in the past, showing quite natural movements. Many humanoid robots emerge in this environment. In addition to Asimo in Japan, there are HRP, KHR in Korea, and BHR in China.

이족 보행 로봇 중 로봇에 인간이 탑승하여 이족보행을 하는 로봇을 인간 탑승형 이족 보행 로봇이라고 한다. 이러한 로봇의 관절 구동부는 고용량-경량의 구동기가 사용된다. Among the biped walking robots, a robot in which a person rides a biped on a robot is called a human riding biped robot. The joint drive of such a robot uses a high-capacity-lightweight driver.

이는 자동차 개발 이후, 새로운 이동 수단의 등장뿐만 아니라, 여러가지 산 업현장에서도 사용될 수 있는 가능성을 열어주었다.This has opened up the possibility of being used in various industrial sites as well as the emergence of new vehicles after the development of automobiles.

기존의 인간 탑승형 이족 보행 로봇은 일본의 도요다의 I-Foot과 와세다 대학교의 WL-15, WL-16(Waseda Leg - No. 15, No. 16), 그리고 본 출원인의 HUBO FX-1이 있다.Conventional human-ride biped robots include I-Foot of Toyota, Japan, and WL-15 and WL-16 (Waseda Leg-No. 15, No. 16) of Waseda University, and our HUBO FX-1. .

도요다의 I-Foot은 신장 2.36m, 무게 200Kg, 자유도 12개, 보행속도 1.35Km/h의 사양을 가지며, 60Kg의 사람을 태우고 이동시킬 수 있고, 새의 다리처럼 로봇 하체부 무릎 관절이 사람과 반대의 방향으로 굽혀지는 특징이 있다.Toyota's I-Foot has a height of 2.36m, a weight of 200Kg, 12 degrees of freedom, and a walking speed of 1.35Km / h. It can carry and move a 60Kg person, and the robot's lower knee joint is like a bird's leg. It is characterized by bending in the opposite direction.

와세다 대학교의 인간탑승형 로봇은 모터를 이용한 선형 구동장치를 기본으로 하여 12개의 선형 구동장치를 이용한 평행 메커니즘 형태로 최대 50Kg의 가반하중을 갖는 로봇의 다리부를 갖는다.Waseda University's human-mounted robot has a leg of a robot with a payload of up to 50Kg in the form of a parallel mechanism using 12 linear drives based on a linear drive using a motor.

HUBO FX-1은 신장 1.98m, 무게 185Kg, 자유도 12개, 보행속도 1.25Km/h의 사양을 갖고 있으며, 100Kg의 가반하중을 갖는다. 도요다의 I-Foot과는 다르게 인간과 비슷한 형태로 보행하며, 각 관절을 AC 모터와 하모닉 드라이브 감속기를 이용하여 구동한다.The HUBO FX-1 has a height of 1.98m, a weight of 185Kg, 12 degrees of freedom, a walking speed of 1.25Km / h, and a payload of 100Kg. Unlike Toyota's I-Foot, it walks like a human, and each joint is driven by an AC motor and a harmonic drive reducer.

이족 보행 휴머노이드 로봇(HUBO:Humanoid Robot)과 같이 다관절을 갖는 다기능 로봇은 그 작동에 있어 처리해야할 각종 정보가 많고 실시간으로 빠른 계산이 필요하기 때문에 PC를 정보 처리에 사용하는 경우가 일반적이다. Multifunctional robots with multi-jointed joints, such as biped walking humanoid robots (HUBO), generally use a PC for information processing because they require a lot of information to be processed in the operation and fast calculation in real time.

PC는 인간 탑승형 이족 보행 로봇과 같이 다 관절, 복합적 센서 시스템을 통합 제어하는데 있어 고속의 연산 속도, 저장장치 및 입-출력 장치의 범용성, 원격제어의 용이성 측면의 여러 장점으로 인해 일반적으로 사용되고 있는 제어 하드웨 어다. 이러한 PC의 주변기능(인터넷을 이용한 원격지 제어 및 모니터링의 용이성, 저장장치의 범용성, 기타 하드웨어를 위한 드라이버 소프트웨어의 가용성, 제어 소프트웨어 개발의 용이성 등)을 최대한 활용하기 위해서는 PC용 범용 OS인 윈도우즈를 사용한다.PCs, such as human bipedal walking robots, are commonly used for their integrated control of multi-joint, complex sensor systems due to the advantages of high computational speed, versatility of storage and input-output devices, and ease of remote control. Control hardware. To make full use of the PC's peripheral functions (easiness of remote control and monitoring using the Internet, general use of storage devices, availability of driver software for other hardware, and ease of development of control software), use Windows, a general purpose OS for PC. do.

인간 탑승형 휴머노이드 로봇은 사람의 탑승 기능을 위해 약 100kg 정도의 payload가 있더라도 충분히 구동이 가능해야 한다. 또한, 인간 탑승형 휴머노이드 로봇은 사람이 탑승할 공간도 있어야 한다. 따라서, 인간 탑승형 휴머노이드 로봇은 이러한 힘을 갖도록 하기 위해 기존의 휴머노이드 로봇과는 달리 산업 현장에서 사용되는 AC 서보 모터를 이용한다.The human riding humanoid robot should be able to fully drive even if there is a payload of about 100 kg for the human riding function. In addition, the human riding humanoid robot should have a space for people to ride. Therefore, the human riding humanoid robot uses an AC servo motor used in an industrial field unlike the conventional humanoid robot to have such a force.

종래에는 PC를 주제어기로 하여 로봇 관절 구동부의 AC 모터를 위치 제어 모드로 제어하는 인터페이스 장치가 제안되지 않았다. Conventionally, no interface device for controlling the AC motor of the robot joint drive in the position control mode using a PC as the main controller has not been proposed.

또한, AC 모터를 위치 제어 모드로 제어하는 경우 일정 시간 동안 정해진 수의 펄스를 발생시켜야 하는데, 펄스 간격을 조정하는 적절한 방식이 제안되지 않았다. In addition, when controlling the AC motor in the position control mode, a predetermined number of pulses have to be generated for a predetermined time, and an appropriate method of adjusting the pulse interval has not been proposed.

본 발명은 종래 기술의 문제점을 해결하기 위해 제안된 것으로, 인간 탑승형 이족 보행 로봇의 주제어기(PC)와 인터페이스되고, 주제어기(PC)로부터 각 관절의 각도 명령을 수신받아 DSP를 통해 각 관절의 각도 명령을 펄스 형태로 생성하고 일정 시간 동안 발생되는 펄스의 수를 조정하여 로봇의 관절 구동부의 AC모터의 회전 각도 및 각속도를 제어하기 위한, 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치와 이를 이용한 제어 장치 및 방법을 제공하는 데 그 목적이 있다.The present invention has been proposed to solve the problems of the prior art, and is interfaced with the main controller (PC) of the human-type biped walking robot, and receives the angle command of each joint from the main controller (PC) for each joint through the DSP Pulse for generating position command of the human riding robot joint driver for controlling the rotation angle and angular velocity of the AC motor of the joint drive of the robot by generating the angular command of the pulse type and adjusting the number of pulses generated for a predetermined time. An object of the present invention is to provide a command generation and sensor information acquisition device and a control device and method using the same.

본 발명의 목적을 달성하기 위하여, 본 발명은 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치로서, 복수개의 센서로부터 검출된 신호를 CAN 통신 방식으로 수신하는 센서 정보 취득부; 상기 센서 정보 취득부에 의해 수신된 복수개의 센서로부터 검출된 신호를 로봇의 주제어기로 전달하고, 상기 주제어기로부터 수신된 상기 로봇의 각 관절의 각도 제어 명령을 전달하기 위한 PCI 인터페이스부; 상기 PCI 인터페이스부로부터 상기 로봇의 각 관절의 각도 제어 명령을 수신받아 각 관절을 구동하는 모터를 제어하기 위한 모터 제어 신호로서 펄스 신호를 발생시키고 일정 시간 동안 발생되는 펄스 수를 조정하기 위한 디지털 신호처리부; 상기 디지털 신호처리부로부터 출력되는 모터 제어 신호를 각 모터 콘트롤러로 전송하기 위한 모터 커넥터를 포함한다. In order to achieve the object of the present invention, the present invention is a pulse command generation and sensor information acquisition device for generating a position command of the human-mounted robot joint driver, sensor information for receiving signals detected from a plurality of sensors in a CAN communication method Acquisition unit; A PCI interface unit for transmitting signals detected from the plurality of sensors received by the sensor information acquisition unit to a main controller of the robot, and for transmitting an angle control command of each joint of the robot received from the main controller; Digital signal processing unit for generating a pulse signal as a motor control signal for controlling the motor driving each joint by receiving the angle control command of each joint of the robot from the PCI interface unit and adjusting the number of pulses generated for a predetermined time ; And a motor connector for transmitting a motor control signal output from the digital signal processor to each motor controller.

상기 로봇의 각 관절을 구동하는 모터는 AC 모터인 것을 특징으로 한다.The motor for driving each joint of the robot is characterized in that the AC motor.

상기 디지털 신호처리부는, 상기 로봇의 주제어기로부터 상기 PCI 인터페이스부를 통해 각 관절의 각도 명령을 수신받아 일정 시간 동안 발생되어야 하는 펄스 사이의 시간격을 배분하기 위하여 DDA 알고리즘을 사용하는 것을 특징으로 한다.The digital signal processing unit receives a angular command of each joint from the main controller of the robot through the PCI interface unit and uses a DDA algorithm to distribute a time interval between pulses to be generated for a predetermined time.

상기 디지털 신호처리부의 입력 포트에는 상기 PCI 인터페이스부로부터 명령을 받는 포트와, 상기 모터 콘트롤러로부터 신호를 수신하는 포트가 포함되며, 상기 디지털 신호처리부의 출력포트에는 모터의 회전각도에 관한 펄스지령 신호 생성 포트, 모터의 회전 방향을 나타내는 방향지령 신호 생성포트가 포함되는 것을 특징으로 한다. The input port of the digital signal processing unit includes a port for receiving a command from the PCI interface unit and a port for receiving a signal from the motor controller, and the output port of the digital signal processing unit generates a pulse command signal regarding a rotation angle of the motor. And a direction command signal generating port indicating a rotation direction of the motor.

상기 로봇의 각 관절의 각도 제어 명령은, 해당 모터를 지정하기 위한 4bit의 모터 ID, 모터의 회전 방향을 정하기 위한 1 bit의 Sign 비트, 및 모터의 회전 각도를 나타내기 위한 11 bit의 Data 비트로 구성되는 것을 특징으로 한다. The angle control command of each joint of the robot consists of a 4-bit motor ID for designating the motor, a 1-bit sign bit for determining the rotation direction of the motor, and a 11-bit data bit for indicating the rotation angle of the motor. It is characterized by.

상기 복수개의 센서는, 로봇의 각 발에서 지면과의 반발력과 각 발목에 인가되는 토크를 측정하는 포스/토크 센서(force/torque sensor); 로봇이 중력 방향에 대해 기울어진 각도 및 각속도를 측정하는 관성 센서 시스템; 및 로봇의 발과 접촉한 지면의 경사도를 측정하는 경사도 센서를 포함하는 것을 특징으로 한다. The plurality of sensors may include: a force / torque sensor measuring a repulsive force against the ground and torque applied to each ankle at each foot of the robot; An inertial sensor system for measuring the angle and the angular velocity of the robot with respect to the gravity direction; And an inclination sensor for measuring an inclination of the ground in contact with the foot of the robot.

상기 포스/토크 센서는, 로봇의 각 발에 설치되고, 한 방향의 힘과 2방향의 모멘트를 측정하며, 오토-밸런싱(auto-balancing) 및 오토-널링 포인트 제어 알고리즘(auto nulling point control algorithm)을 사용하는 것을 특징으로 한다. The force / torque sensor is installed on each foot of the robot, measures the force in one direction and the moment in two directions, and auto-balancing and auto nulling point control algorithms. It characterized in that to use.

상기 관성 센서 시스템은, 로봇이 중력 방향에 대해 기울어진 정도를 측정하는 가속도계와 로봇이 기울어지는 각속도를 측정하기 위한 레이트 자이로를 포함하는 것을 특징으로 한다. The inertial sensor system is characterized in that it comprises an accelerometer for measuring the degree of inclination of the robot relative to the direction of gravity and a rate gyro for measuring the angular velocity at which the robot is inclined.

본 발명에 따른 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치는, 상기 PCI 인터페이스부의 구동 전압을 상 기 디지털 신호처리부의 구동 전압으로 하강시키기 위한 제1 버퍼부; 및 상기 디지털 신호처리부의 구동 전압을 상기 각 관절을 구동하는 모터를 제어하는 모터 콘트롤러의 구동 전압으로 상승시키기 위한 제2 버퍼부를 더 포함한다. A pulse command generation and sensor information acquisition device for generating position commands of a human-mounted robotic joint driver according to the present invention includes: a first buffer unit for lowering a drive voltage of the PCI interface unit to a drive voltage of the digital signal processor; And a second buffer unit for raising the driving voltage of the digital signal processor to a driving voltage of a motor controller that controls the motors driving the respective joints.

본 발명의 다른 목적을 달성하기 위하여, 본 발명은 인간 탑승형 로봇의 관절 구동기 제어 장치로서, 로봇의 자세 및 지면의 상태를 측정하는 복수개의 센서; 상기 복수개의 센서로부터 측정된 센서 데이타를 수신받고, 로봇 각 관절의 각도 제어 명령을 제공하기 위한 로봇의 주제어기; 및 상기 로봇의 주제어기로부터 상기 로봇의 각 관절의 각도 제어 명령을 수신받아 로봇의 각 관절의 관절 구동부를 제어하는데 필요한 펄스 신호를 생성하기 위한 모션 콘트롤러를 포함한다. In order to achieve another object of the present invention, the present invention provides a joint drive control device for a human-mounted robot, comprising: a plurality of sensors for measuring the position of the robot and the state of the ground; A main controller of the robot for receiving sensor data measured from the plurality of sensors and providing an angle control command for each joint of the robot; And a motion controller for receiving an angle control command of each joint of the robot from the main controller of the robot and generating a pulse signal required to control the joint driving unit of each joint of the robot.

상기 각 관절 구동부는 AC 모터와 AC 모터 콘트롤러를 구비하는 것을 특징으로 한다. Each joint driving unit is characterized by comprising an AC motor and an AC motor controller.

상기 모션 콘트롤러는, 상기 로봇의 주제어기로부터 상기 로봇의 각 관절의 각도 명령을 수신받아 해당하는 관절 구동부의 AC 모터를 제어하는 펄스 신호에서 일정 시간 동안 발생되어야 하는 펄스 사이의 시간격을 배분하기 위하여 DDA 알고리즘을 사용하는 것을 특징으로 한다.The motion controller receives an angle command of each joint of the robot from the main controller of the robot and distributes the time interval between pulses that should be generated for a predetermined time from a pulse signal controlling an AC motor of a corresponding joint drive unit. It is characterized by using the DDA algorithm.

본 발명의 또 다른 목적을 달성하기 위하여, 본 발명은 인간 탑승형 로봇의 관절 구동기 제어 방법으로서, (a) 복수개의 센서로부터 측정된 센서 데이타를 CAN 통신 방식으로 수신하는 단계; (b) 로봇의 주제어기(PC)가 상기 센서 데이타를 기초로 하여 로봇의 각 관절의 각도 제어 명령을 생성하는 단계; (c) 모션 콘트롤러가 상기 로봇의 각 관절의 각도 제어 명령을 수신받아 DDA 알고리즘에 의해 일정 시간 동안 발생되는 펄스의 간격을 조정하여 로봇의 각 관절을 구동하는 AC 모터를 제어하는데 필요한 모터 제어 신호를 생성하는 단계; 및 (d) 상기 모터 제어 신호를 로봇의 각 관절을 구동하는 AC 모터의 AC 모터 콘트롤러로 전송하는 단계를 포함한다. In order to achieve another object of the present invention, the present invention provides a method for controlling a joint driver of a human-mounted robot, comprising: (a) receiving sensor data measured from a plurality of sensors in a CAN communication method; (b) a main controller (PC) of the robot generating an angle control command of each joint of the robot based on the sensor data; (c) The motion controller receives the angle control command of each joint of the robot and adjusts the interval of pulses generated for a predetermined time by the DDA algorithm to provide the motor control signal necessary to control the AC motor driving each joint of the robot. Generating; And (d) transmitting the motor control signal to an AC motor controller of an AC motor that drives each joint of the robot.

이하, 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Prior to this, terms or words used in the specification and claims should not be construed as having a conventional or dictionary meaning, and the inventors should properly explain the concept of terms in order to best explain their own invention. Based on the principle that can be defined, it should be interpreted as meaning and concept corresponding to the technical idea of the present invention. Therefore, the embodiments described in the specification and the drawings shown in the drawings are only the most preferred embodiment of the present invention and do not represent all of the technical idea of the present invention, various modifications that can be replaced at the time of the present application It should be understood that there may be equivalents and variations.

도 1은 인간 탑승형 이족 보행 로봇(HUBO FX-1)을 나타낸 도면이다. 1 is a view showing a human riding biped robot (HUBO FX-1).

본 출원인이 개발한 HUBO FX-1은 사람의 탑승이 가능한 이족 보행 로봇이다. 신장은 약 139cm(의자 포함시 199cm) 무게는 약 130Kg(의자 포함시 150kg)이다. 12 자유도를 지니고 있다. 사람의 탑승이 가능하도록 약 100Kg정도의 가반 하중(payload)를 지탱할 수 있다. 관절 구동기는 AC 모터와 하모닉 드라이브를 이용하여 구동한다. HUBO FX-1의 주요 제원은 다음과 같다.The HUBO FX-1 developed by the applicant is a biped walking robot capable of human riding. Height is about 139cm (199cm with chair) and weighs about 130Kg (150kg with chair). It has 12 degrees of freedom. It can carry about 100Kg payload to allow people to ride. The joint drive is driven by an AC motor and a harmonic drive. The main specifications of the HUBO FX-1 are as follows.

Height    Height 1.393m(1.988 with chair)    1.393 m (1.988 with chair) Weight    Weight 130Kg(150Kg with chair)    130Kg (150Kg with chair) Walking Speed Walking speed 1.25 Km/h              1.25 Km / h Actuator   Actuator AC Servo motor + Harmonic Reduction Gear + Drive UnitAC Servo motor + Harmonic Reduction Gear + Drive Unit Control Unit  Control unit Main controller + sub-controller and AC servo controllerMain controller + sub-controller and AC servo controller Sensor Sensor Foot Foot 3-Axis Force-Torque Sensor and Inclinometer 3-Axis Force-Torque Sensor and Inclinometer Torso Torso Rate-Gyro and Inclinometer    Rate-Gyro and Inclinometer Power     Power External AC power(220V)    External AC power (220V) Operation    Operation Windows XP and RTX with Wireless network and joy stickWindows XP and RTX with Wireless network and joy stick DOF      DOF 12 DOF                12 DOF

도 2는 인간 탑승형 이족 보행 로봇의 전체 제어 시스템 개념도이며, 도 3은 상세 구성도이다. 2 is a conceptual diagram of the entire control system of the human riding biped robot, Figure 3 is a detailed configuration.

인간 탑승형 이족 보행 로봇의 제어 시스템은 상위에 주제어기(Main Controller)(200)가 있고, 중간 위치에 모션 콘트롤러(Motion Controller) 인터페이스 장치(100), 및 하위 부분에 AC 서보 모터 콘트롤러(300)와 복수개의 센서(400)로 구성되어 있다. The control system of the human riding biped robot has a main controller 200 at the upper side, a motion controller interface device 100 at the middle position, and an AC servo motor controller 300 at the lower portion. And a plurality of sensors 400.

인간 탑승형 이족 보행 로봇은 일반적으로 PC를 주제어기(200)로 사용한다. 주제어기(200)는 일반적인 데스크톱을 사용할 수 있지만, 소비 전력이나 크기 등을 고려하여 산업용 PC를 사용하는 것이 좋다. 주제어기(200)는 PCI bus를 이용하여, 모션 콘트롤러 인터페이스 장치(100)와 통신한다. 주제어기(200)는 Microsoft사의 Windows를 OS로 사용하여, 개발 환경을 익숙하게 하고, 여러가지 다양한 응용 프로그램(application)이 가능하도록 한다.The human riding biped robot generally uses a PC as the main controller 200. The main controller 200 may use a general desktop, but it is preferable to use an industrial PC in consideration of power consumption and size. The master controller 200 communicates with the motion controller interface device 100 using the PCI bus. The master controller 200 uses Microsoft's Windows as an OS to familiarize the development environment, and to enable various applications.

본 실시예에서, 주제어기(200)는 pentium3 933Mhz급의 성능을 지닌 컴퓨터를 사용하고, OS로 마이크로 소프트사의 Windows XP를 사용하였다. 또한, 로봇의 실시간 제어를 위해 RTX 소프트웨어를 사용하였다. In the present embodiment, the main controller 200 uses a computer having a performance of pentium 3 933Mhz, and used Microsoft's Windows XP as an OS. In addition, RTX software was used for real-time control of the robot.

도 4는 로봇의 주제어기에 사용되는 RTX의 구조를 설명한 도면이다.4 is a view for explaining the structure of the RTX used in the main controller of the robot.

RTX는 HAL Extension에 있는 RTX 스케쥴러를 이용하여 실시간 수행이 가능하도록 한다. Windows API와 RTX간의 data 교환은 RTX shared memory를 통해 이루어지기 때문에, 각종 정보들을 실시간으로 Windows application을 통해 확인이 가능하다.RTX enables real-time execution using the RTX scheduler in the HAL Extension. Since data exchange between Windows API and RTX is done through RTX shared memory, various information can be checked in real time through Windows application.

주제어기(200)는 전반적인 로봇의 제어를 담당한다. 로봇의 모션 계획을 통해 생성된 모션을 역운동학(inverse kinematics) 해석을 통해 각 축에 대한 레퍼런스를 생성하고, 각종 센서 데이타를 통해 로봇의 실시간 제어를 수행한다. The main controller 200 is in charge of controlling the overall robot. The motion generated by the robot's motion plan is generated by inverse kinematics analysis to generate a reference for each axis, and perform real-time control of the robot through various sensor data .

모션 콘트롤러 인터페이스 장치(100)는 다수의 AC 모터(310)와 AC 모터 콘트롤러(300)와 연결되며, 센서들과 CAN 케이블로 연결된다.The motion controller interface device 100 is connected to the plurality of AC motors 310 and the AC motor controller 300, and is connected to the sensors with a CAN cable.

AC 모터 콘트롤러(300)는 AC 모터(310)를 구동시키는 장치이다. 이 AC 모터 콘트롤러(310)로 모터의 위치에 해당하는 펄스(pulse)와 방향을 전달하면, 해당하는 정보에 따라서 모터의 위치를 제어하는 역할을 한다.The AC motor controller 300 is a device for driving the AC motor 310. When the AC motor controller 310 transmits a pulse and a direction corresponding to the position of the motor, the AC motor controller 310 controls the position of the motor according to the corresponding information.

AC 모터(310)는 로봇의 각 관절을 구동하는데 사용되는 구동부이다. 탑승형 로봇의 경우, 큰 힘을 필요로 하기 때문에 AC 모터를 사용하였으며, 본 실시예에서는 400W, 800W 두 종류의 모터를 사용하였다.The AC motor 310 is a drive unit used to drive each joint of the robot. In the case of the riding robot, an AC motor was used because it requires a large power, and in this embodiment, two types of motors, 400W and 800W, were used.

상기 복수개의 센서는 로봇의 각 발에서 지면과의 반발력과 각 발목에 인가되는 토크를 측정하는 포스/토크 센서(force/torque sensor); 로봇이 중력 방향에 대해 기울어진 각도 및 각속도를 측정하는 관성 센서 시스템; 및 로봇의 발과 접촉한 지면의 경사도를 측정하는 경사도 센서를 포함한다. The plurality of sensors include a force / torque sensor for measuring the repulsive force with the ground and the torque applied to each ankle at each foot of the robot; An inertial sensor system for measuring the angle and the angular velocity of the robot with respect to the gravity direction; And an inclination sensor for measuring the inclination of the ground in contact with the foot of the robot.

포스/토크 센서(Force/Torque sensor)(410)는 로봇의 자세 안정화를 위해 지면과의 반발력과 토크를 알아야하므로, 이 정보를 측정하는 장치이다.Force / Torque sensor (410) is a device for measuring this information, because it needs to know the repulsive force and torque with the ground to stabilize the attitude of the robot.

관성 센서 시스템(inertial sensor system)(420)은 로봇의 자세 안정화를 위해 로봇이 기울어진 정도를 측정한다. 이를 위해, 상기 관성 센서 시스템은 로봇이 중력 방향에 대해 기울어진 정도를 측정하는 가속도계(기울기 센서), 로봇이 기울어지는 각속도를 측정하기 위한 레이트 자이로(rate gyro)를 포함한다.An inertial sensor system 420 measures the degree to which the robot is inclined to stabilize the robot's posture. To this end, the inertial sensor system includes an accelerometer (tilt sensor) for measuring the degree of tilt of the robot relative to the direction of gravity, and a rate gyro for measuring the angular velocity at which the robot is tilted.

도 5는 인간 탑승형 이족 보행 로봇의 모션 콘트롤러의 시스템 구성도이다. 5 is a system configuration diagram of a motion controller of a human riding biped robot.

모션 콘트롤러 인터페이스 장치(100)는 PCI bus를 통해 주제어기(200)와 인터페이스를 담당하는 PCI 인터페이스부와, AC 서보 모터에 대한 위치 지령을 생성해주는 디지털 신호처리부(DSP), 그리고, 복수개의 센서(400)의 데이터를 취득하여 주제어기(200)로 전달해주는 CAN 통신부로 구성된다.The motion controller interface device 100 includes a PCI interface unit for interfacing with the main controller 200 through a PCI bus, a digital signal processor (DSP) for generating a position command for the AC servo motor, and a plurality of sensors ( It is composed of a CAN communication unit for acquiring the data of 400) and transferring it to the main controller 200.

로봇의 각 관절 구동부는 AC모터를 사용하며, AC 모터는 이를 구동-제어하기 위한 상용 AC 모터 콘트롤러를 사용한다. AC 모터 콘트롤러의 제어 모드에는 위치제어 모드, 속도제어 모드, 토크제어 모드가 있다. 로봇의 자세제어 및 관절각도 제어를 용이하게 하기 위해 AC모터 컨트롤러의 제어모드는 위치제어 모드를 사용한다. 상용 AC모터 콘트롤러의 위치제어 모드에서는 입력된 펄스의 수에 해당하는 만큼 모터의 각도를 움직이게 되는데 예를 들어 1000 펄스에 1회전을 하는 모터의 경우 1 펄스에는 1000분의 1회전(360/1000 Degree)만큼 회전하게 된다. 따라서, 일정한 시간동안 입력되는 펄스의 수를 조정함으로써 AC모터의 회전각도 및 각속도를 제어할 수 있다.Each joint drive of the robot uses an AC motor, which uses a commercially available AC motor controller to drive-control it. The control mode of AC motor controller includes position control mode, speed control mode and torque control mode. To facilitate robot posture control and joint angle control, the control mode of AC motor controller uses position control mode. In the position control mode of the commercial AC motor controller, the angle of the motor is moved as much as the number of input pulses. For example, in the case of a motor that makes one rotation at 1000 pulses, one thousandth rotation is performed at one pulse. Rotate by). Therefore, the rotation angle and the angular velocity of the AC motor can be controlled by adjusting the number of pulses input for a certain time.

이 때 일정한 시간은 미분(微分)시간의 이산(離散)적인 합으로, 만약 이 일정한 시간 안에 발생되어야 할 펄스의 수로 그 일정한 시간을 이루는 미분(微分)시간의 수가 나누어 떨어지지 않을 경우, 펄스는 그 일정한 시간 내에서 등시간격을 이룰 수 없다. 이러한 때 펄스를 최대한 등시간격에 가깝도록 발생하여 명령 사이의 각속도가 일정하도록 만들어 각도뿐만 아니라 각속도를 효과적으로 제어하도록 한다.At this time, the constant time is the discrete sum of the derivative time, and if the number of differential time which makes up the constant time is not divided by the number of pulses to be generated within this constant time, the pulse is You cannot achieve equidistant intervals within a certain time. In this case, the pulse is generated as close to equidistant interval as possible, so that the angular velocity between commands is constant so that the angular velocity as well as the angle can be effectively controlled.

도 6은 인간 탑승형 이족 보행 로봇(HUBO FX-1)의 모션 콘트롤러(Motion Controller)의 내부 구성도이며, 도 7은 모션 콘트롤러 내 PCI 인터페이스 칩과 DSP칩 그리고 AC 모터 사이의 데이타 교환을 위한 회로도이다.FIG. 6 is a diagram illustrating an internal configuration of a motion controller of the human-ride biped walking robot (HUBO FX-1), and FIG. 7 is a circuit diagram for exchanging data between a PCI interface chip, a DSP chip, and an AC motor in the motion controller. to be.

본 실시예에 따른, 인간 탑승형 이족 보행 로봇의 모션 콘트롤러(Motion Controller) 인터페이스 장치(100)는 PCI 버스 인터페이스 칩(PLX 칩)(121), PCI 인터페이스 칩 용 발진기(127), PCI 인터페이스 칩(121)과 DSP(140)를 연결하는 버스 버퍼(Buffer 5,6,7,8)(130), 펄스 발생을 위한 DSP(140), DSP용 발진기(141), DSP(140)와 AC 모터 커넥터(160)를 통해 다수의 AC 모터 콘트롤러를 연결하는 버퍼(Buffer 1,2,3,4)(150), 모션 콘트롤러 인터페이스 장치와 AC 모터 콘트롤러를 연결하는 AC 모터 커넥터(160), CAN 콘트롤러(111), 2개의 포토 커플러(112), CAN 트랜시버(113), CAN 커넥터(114)를 포함한다. According to the present embodiment, the motion controller interface device 100 of the human-ride biped walking robot includes a PCI bus interface chip (PLX chip) 121, an oscillator 127 for a PCI interface chip, and a PCI interface chip ( 121) and a bus buffer (Buffer 5, 6, 7, 8) 130 connecting the DSP 140, the DSP 140 for pulse generation, the oscillator for DSP 141, the DSP 140 and the AC motor connector. Buffers for connecting a plurality of AC motor controllers through the 160 (Buffer 1,2,3,4) (150), AC motor connector 160 for connecting the motion controller interface device and the AC motor controller, CAN controller (111) ), Two photo couplers 112, a CAN transceiver 113, and a CAN connector 114.

/WR은 PCI 인터페이스 칩(121)의 write strobe 신호, /RD은 PCI 인터페이스 칩(121)의 read strobe 신호, /ADS은 PCI 인터페이스 칩(121)의 address strobe 신호, ALE은 PCI 인터페이스 칩(121)의 address latch enable 신호, /CAN_CS은 CAN 콘트롤러 선택 신호, CLK은 CAN 콘트롤러에 공급되는 clock 신호, RESET은 CAN 콘트롤러 reset 신호, INT11은 CAN 콘트롤러가 PCI bus에 걸어주는 interrupt 신호, AD8~15는 CAN 콘트롤러와 PCI bus 사이의 데이터 라인, RX는 CAN 통신의 수신 라인, TX는 CAN 통신의 발신 라인, CAN_H는 CAN 통신의 high 신호, CAN_L는 CAN 통신의 low 신호이다./ WR is a write strobe signal of the PCI interface chip 121, / RD is a read strobe signal of the PCI interface chip 121, / ADS is an address strobe signal of the PCI interface chip 121, ALE is a PCI interface chip 121 Address latch enable signal, / CAN_CS is the CAN controller selection signal, CLK is the clock signal supplied to the CAN controller, RESET is the CAN controller reset signal, INT11 is the interrupt signal that the CAN controller places on the PCI bus, and AD8 ~ 15 is the CAN controller. Data line between PCI bus, RX is the receiving line of CAN communication, TX is the sending line of CAN communication, CAN_H is the high signal of CAN communication, CAN_L is the low signal of CAN communication.

로봇의 주제어기(PC)(200)는 모션 콘트롤러 인터페이스 장치(100)의 PC104+ 버스 커넥터(122)에 연결된다. PC 104+는 산업용 규격의 PCI 버스이기 때문에 PCI 인터페이스 칩(121)을 사용하여 PC104+ 버스의 인터페이스가 가능하다. The main controller (PC) 200 of the robot is connected to the PC104 + bus connector 122 of the motion controller interface device 100. Since the PC 104+ is an industrial standard PCI bus, the PC 104+ bus can be interfaced using the PCI interface chip 121.

PCI 인터페이스 칩(121)은 로봇의 주제어기(PC)(200)와 다른 장치들이 통신할 수 있도록 PCI bus에 그 장치들을 연결해주는 장치이다.The PCI interface chip 121 is a device that connects the devices to the PCI bus so that the main controller (PC) 200 of the robot and other devices can communicate.

PCI 인터페이스 칩(121)은 로봇의 주제어기(PC)(200)로부터 예를 들어 10msec의 주기로 각 모터에 대한 각도 제어 명령을 전달받고, CAN 컨트롤러(111)로부터 읽어들인 센서 데이타를 주제어기(200)로 전달한다.The PCI interface chip 121 receives an angle control command for each motor from the robot main controller (PC) 200 at a cycle of, for example, 10 msec, and reads sensor data read from the CAN controller 111. To pass).

DSP(140)는 PCI 인터페이스 칩(121)으로부터 전달받은 로봇 각 관절의 각도 제어 명령에 따라 펄스(pulse)를 생성하여 AC 모터 콘트롤러로 전달한다.The DSP 140 generates a pulse according to the angle control command of each joint of the robot received from the PCI interface chip 121 and transmits the pulse to the AC motor controller.

CAN 콘트롤러(111)는 포스/토크 센서(F/T sensor), 관성 센서(Inertial sensor), 경사도 센서의 데이타를 취득하여, PCI 인터페이스 칩(121)을 통해 주제어기(200)로 전달하게 된다.The CAN controller 111 acquires data of a force / torque sensor, an inertial sensor, and an inclination sensor, and transmits the data to the main controller 200 through the PCI interface chip 121.

EPLD(102a, 102b)는 Electrically Programmable Logic Device의 약자로 사용자가 원하는 논리 회로를 간단한 장치만으로 구현할 수 있다. 본 실시예에서 EPLD는 장치 선택 신호들(예: /CAN_CS : CAN 콘트롤러 선택 신호)을 생성한다. EPLD (102a, 102b) is an abbreviation of Electrically Programmable Logic Device can implement a logic circuit desired by the user with a simple device only. In this embodiment, the EPLD generates device selection signals (eg, / CAN_CS: CAN controller selection signal).

DSP(140)는 TMSF2811을 사용하였으며, 로봇의 각 관절을 구동하기 위한 AC 모터를 DDA(Digital Differential Analyzer) 알고리즘을 이용하여 제어하는데 필요한 펄스(pulse)를 생성한다. PCI 인터페이스 칩(121)으로는 빠른 주기의 인터럽트 수행을 하기가 어렵기 때문에 DSP(140)를 사용한다. DDA 알고리즘에 대해서는 뒤에서 상세히 설명한다. The DSP 140 uses TMSF2811 and generates pulses required to control an AC motor for driving each joint of the robot by using a digital differential analyzer (DDA) algorithm. The PCI interface chip 121 uses the DSP 140 because it is difficult to perform interrupts in a fast cycle. The DDA algorithm is described in detail later.

DSP의 입력 포트는 PCI 인터페이스 칩(121)으로부터 명령을 받는 포트(A0~15)와 AC 모터 콘트롤러(300)로부터 모터의 Z상을 나타내는 신호(MZ0~11)가 버퍼를 거친 신호인 입력포트(E2, F12~14, B12~15, D0~5)로 나눌 수 있다. 또한, DSP의 출력포트는 모터의 회전각도를 발생시키는 펄스지령 신호 생성 포트(B0~11), 회전 방향을 나타내는 방향지령 신호 생성포트(F0~11), PCI 인터페이스 칩(121)으로부터의 명령 데이터 전달 완료 신호 포트(E1)로 구성된다.The input port of the DSP is a port A0 to 15 that receives a command from the PCI interface chip 121 and an input port where a signal MZ0 to 11 representing the Z phase of the motor from the AC motor controller 300 has passed through a buffer ( E2, F12 ~ 14, B12 ~ 15, D0 ~ 5). The output port of the DSP includes pulse command signal generation ports B0 to 11 for generating the rotation angle of the motor, direction command signal generation ports F0 to 11 for indicating the rotation direction, and command data from the PCI interface chip 121. It is composed of the transfer completion signal port E1.

DSP(140)는 빠른 계산을 수행하기 때문에 발생되는 열을 줄이기 위해 상대적으로 낮은 전압(예:3.3V)으로 구동되며, 다른 부품들(PCI interface chip, EPLD, AC 모터 콘트롤러)은 DSP(140)보다 높은 구동 전압(예:5V)으로 동작하기 때문에, DSP(140)의 모든 입-출력 신호는 버퍼(Buffer)를 통과한다. The DSP 140 is driven at a relatively low voltage (e.g., 3.3V) to reduce heat generated due to fast calculations, while other components (PCI interface chip, EPLD, AC motor controller) are driven by the DSP 140. Because of operating at a higher drive voltage (eg 5V), all input-output signals of the DSP 140 pass through a buffer.

Buffer1-3는 DSP의 출력이 3.3V이고, AC 모터의 제어 레벨은 5V이기 때문에 둘 사이의 전압 레벨 조정을 위해 3.3V to 5V buffer를 사용하였다. B0~B11, F0~F11의 신호가 이 버퍼에 의해서 5V 신호로 변한다. Buffer1-3 uses 3.3V to 5V buffer to adjust the voltage level between the two because the DSP output is 3.3V and AC motor control level is 5V. The signals B0 to B11 and F0 to F11 are converted into 5V signals by this buffer.

Buffer4-8은 EPLD(102a,102b)와 DSP(140) 사이의 전압 레벨 조절용 5V to 3.3V buffer이다. 또한, AC 모터의 Z상을 DSP(140)에 전달하기 이전에 3.3V 레벨로 전압을 조정해준다. MZ0~MZ11, DATA0~DATA15 값이 이 버퍼에 의해 3.3V로 바뀌어서 DSP(104)에 전달된다.Buffer 4-8 is a 5V to 3.3V buffer for adjusting the voltage level between the EPLDs 102a and 102b and the DSP 140. In addition, the voltage is adjusted to the 3.3V level before delivering the Z phase of the AC motor to the DSP 140. The MZ0 to MZ11 and DATA0 to DATA15 values are converted to 3.3V by this buffer and transferred to the DSP 104.

발진기1(141)는 DSP(140)를 구동하기 위한 30Mhz 발진기이며, 발진기2(127)는 PCI 인터페이스 칩(121)을 구동하기 위한 20Mhz 발진기이다.Oscillator 1 (141) is a 30Mhz oscillator for driving the DSP 140, oscillator 2 (127) is a 20Mhz oscillator for driving the PCI interface chip 121.

AC 모터 커넥터(160)는 12개의 AC 모터를 제어하는데 필요한 신호(pulse0~pulse11, sign0~sign11)와 Z상(MZ0~MZ11)을 연결하는 커넥터이다. The AC motor connector 160 is a connector for connecting signals (pulse0 to pulse11, sign0 to sign11) and Z phases (MZ0 to MZ11) necessary for controlling twelve AC motors.

딥 스위치 1-3(123)은 PCI104/PCI104+의 경우 여러 개의 장치를 적층할 수 있는데, 각 장치에 대한 고유 번호 설정을 위한 것이다.Dip switches 1-3 (123) can stack multiple devices in the case of PCI104 / PCI104 +, to set a unique number for each device.

CAN 콘트롤러(111)는 CAN(Controller Area Network) 통신을 가능케 하는 장치이다. CAN 트랜시버(CAN Tranceiver)(113)는 CAN 커넥터(114)로부터 송수신되는 CAN_H, CAN_L을 처리하는 장치이다. CAN 커넥터(114)는 각 센서들과 커넥터(CAN connector)로 연결하는 기능을 제공한다.The CAN controller 111 is a device that enables controller area network (CAN) communication. The CAN transceiver 113 is a device that processes CAN_H and CAN_L transmitted and received from the CAN connector 114. The CAN connector 114 provides a function of connecting to each sensor and a connector (CAN connector).

도 8은 PCI 인터페이스 칩(121)과 디지털 신호처리부(140) 사이의 데이터 교환을 위한 데이타 구성도를 나타낸 것이다. 8 illustrates a data configuration diagram for data exchange between the PCI interface chip 121 and the digital signal processor 140.

PCI 인터페이스 칩(PLX)(121)은 100Hz로 구동하고, DSP는 50KHz로 구동하기 때문에, 둘 사이의 데이터 교환을 위해서는 규약이 필요하다. 본 실시예에서는 총 16 bit의 데이터 교환을 하고, 데이터의 형태는 다음과 같다. 즉, PCI 인터페이스 칩(PLX)과 DSP사이의 DATA를 읽고 쓰기 위한 각 포트의 16bit 데이타는 4 bit를 사용하여 해당 모터를 지정하기 위한 모터 ID, 1 bit를 사용하여 모터의 회전 방향을 정하기 위한 Sign 비트, 11 bit를 사용하여 모터의 회전 각도를 디지털 신호처리부 (104)에 전달하기 위한 데이터 필드를 포함한다. 이러한 데이타는 예를 들어 10msec 이내에 AC 모터 수만큼 전달해야 한다. 또한, start bit와 acknowledge bit가 필요하다. Since the PCI interface chip (PLX) 121 is driven at 100 Hz and the DSP is driven at 50 KHz, a protocol is required for data exchange between the two. In this embodiment, a total of 16 bits of data are exchanged, and the data format is as follows. In other words, 16bit data of each port for reading and writing data between PCI interface chip (PLX) and DSP is 4 bits using the motor ID to designate the motor and 1 bit to determine the rotation direction of the motor. And a data field for transmitting the rotation angle of the motor to the digital signal processor 104 using 11 bits. Such data must be delivered, for example, by the number of AC motors within 10 msec. In addition, a start bit and an acknowledge bit are required.

도 9는 PCI 인터페이스 칩(PLX)과 DSP사이의 신호 흐름도이다.9 is a signal flow diagram between a PCI interface chip (PLX) and a DSP.

도 9를 참조하면, start bit는 RQ(request)와 Find_Z( z- phase를 찾아라)가 있으며, 16bit의 Data[0:15]와 acknowledge bit인 RT(return)가 있다. PCI 인터페이스 칩(121)에서 DSP(140)로 보내는 start bit의 경우는 원하는 시간 동안 유지하기 위해 그림에서와 같이 EPLD를 이용하여, 래치(latch) 시켜준다.Referring to FIG. 9, start bits include RQ (request) and Find_Z (find z-phase), and 16 bits of Data [0:15] and an acknowledge bit of RT (return). The start bit sent from the PCI interface chip 121 to the DSP 140 is latched using an EPLD as shown in the figure to maintain for a desired time.

2종류의 start bit가 있는 것은, 일반적인 모터의 위치 제어와, 모터의 Z상이 검출되는 위치로 모터를 움직이는 2 종류의 제어 방법이 필요하기 때문이다.There are two types of start bits because two types of control methods for moving the motor to the position where the general motor position control and the Z phase of the motor are detected are required.

도 10은 PCI 인터페이스 칩(PLX)과 DSP사이의 신호 시간 선도이다.10 is a signal time diagram between a PCI interface chip (PLX) and a DSP.

지정된 각도 입력으로부터 모터 회전 펄스 생성을 위한 신호 발생 타이밍 다이어그램은 도 10에 명기하였다. A signal generation timing diagram for generating motor rotational pulses from the specified angle input is shown in FIG.

RQ 신호는 PCI 인터페이스 칩(PLX)(121)에서 발생시켜주는데, 이는 READY 를 ON 하고 EPLD(102a, 102b)에서 래치(Latch)하여 데이터를 보낼 준비를 한다. DATA는 RQ 신호가 셋 되어있는 동안 관절 각도 데이터를 DSP(140)에 전달하며, DSP(140)에서 데이터 읽기가 완료되면 RT 신호를 발생하여 데이터 신호를 종료하고 RQ 신호의 래치(Latch)를 리셋시킨다.DSP(140)는 읽어들인 데이터에 기반하여 모터의 회전 방향과 회전 각도를 계산하여 방향 신호와 펄스를 발생시키게 된다.The RQ signal is generated by the PCI interface chip (PLX) 121, which turns on READY and latches in the EPLDs 102a and 102b to prepare to send data. DATA transmits the joint angle data to DSP 140 while the RQ signal is set, and when the data reading is completed in DSP 140, generates an RT signal to terminate the data signal and resets the latch of the RQ signal. The DSP 140 calculates the rotation direction and the rotation angle of the motor based on the read data to generate the direction signal and the pulse.

위치 지령을 전달하는 경우, RQ를 start bit로 사용한다. RQ를 start bit로 사용하는 경우, PCI 인터페이스 칩(PLX)(121)에서 RQ신호를 high로 설정하여, DATA가 유효하다는 것을 DSP(140)에 알려주면, DSP(140)는 16bit 데이타를 읽는다. 데이터를 읽고 나면, PCI 인터페이스 칩(PLX)(121)에게 RT 신호를 high로 설정하여, 정상적으로 데이터를 받았다는 것을 알려주는 것으로 일련의 과정이 끝난다. In case of transmitting position command, RQ is used as start bit. When RQ is used as a start bit, when the RQ signal is set high by the PCI interface chip (PLX) 121 to inform the DSP 140 that DATA is valid, the DSP 140 reads 16-bit data. After reading the data, a series of processes are completed by informing the PCI interface chip (PLX) 121 to set the RT signal to high, indicating that the data has been received normally.

이 과정이 1개의 모터에 데이터를 전달하는 일련의 과정이다. 제어 주기가 10msec이기 때문에 12축 모터를 제어하기 위해 10msec 동안 위의 과정을 12회 수행하여야 한다. This process is a series of processes to transmit data to one motor. Since the control cycle is 10msec, the above process should be performed 12 times for 10msec to control the 12-axis motor.

Find_Z 신호는 AC 모터의 반복도있는 원점을 찾기 위해 모터 내부의 엔코더 Z-상을 찾는 명령 신호이다. Find_Z 신호가 셋이 되면, DSP(140)에서는 모터를 등속으로 회전시키는 각도 명령을 내보낸다. 모터가 등속으로 회전시, 엔코더의 Z-상 신호는 DSP(140)에 MZ0~11핀을 통해 전달되며, DSP(140)는 Z상을 검출할 때까지 모터의 등속 회전 명령을 발생시킨다.The Find_Z signal is a command signal that finds the encoder Z-phase inside the motor to find the recursive origin of the AC motor. When the Find_Z signal is set, the DSP 140 issues an angle command for rotating the motor at a constant speed. When the motor rotates at constant speed, the Z-phase signal of the encoder is transmitted to the DSP 140 through the MZ0 to 11 pins, and the DSP 140 generates the constant-speed rotation command of the motor until it detects the Z phase.

Z-상을 찾는다는 것은 모터의 절대 위치 제어를 하는 것이다. 절대 위치를 측정하기 위해, absolute type encoder를 장착하면 되지만, 인코더 신호가 병렬로 나오는 경우는 배선(wire)이 복잡해지고, 직렬로 나오는 경우에는 이를 처리할 장치가 추가로 필요하다. Incremental encoder를 사용하는 경우, 추가로 potential meter를 장착하여 절대 위치를 알 수 있지만, 이 경우 설계상 구조가 복잡해지고, A/D 컨버터 장치가 필요하다. 이러한 이유로, z-상 검출을 통하여 incremental encoder를 통해 모터의 절대 위치 제어가 가능해진다.To find the Z-phase is to control the absolute position of the motor. In order to measure the absolute position, an absolute type encoder may be mounted. However, when the encoder signals are output in parallel, the wire becomes complicated, and when the signals are output in series, an additional device is required. When using an incremental encoder, an additional potential meter can be used to determine the absolute position, but in this case the design is complicated and requires an A / D converter device. For this reason, the absolute position control of the motor is possible through the incremental encoder through z-phase detection.

바람직한 절대 위치(desired absolute position)을 찾는 것은 로봇의 초기 시작 상태를 늘 같은 상태로 유지하기 위함이다. 실제 로봇을 구동하거나 실험을 수행하는데 있어서, 초기 상태가 같아야 실험에 대한 반복도를 높일 수 있기 때문에 이러한 과정은 굉장히 중요하다.Finding a desired absolute position is to keep the initial starting state of the robot always the same. This process is very important when driving an actual robot or performing an experiment because the initial state must be the same to increase the repeatability of the experiment.

도 11은 초기 위치 차이에 의해 로봇의 높이가 달라지는 상황을 나타내는 도면이다. 초기 로봇의 기구적인 구성이 끝난 상태에서

Figure 112007047203917-PAT00001
를 0에 가까운 상태를 유지하면, λ는 0이 된다. 항상 로봇이 이런 상태를 유지하기 위해서는
Figure 112007047203917-PAT00002
이 0이 되는 모터의 절대적 위치를 알고 있어야 한다.11 is a view showing a situation in which the height of the robot is changed by the initial position difference. With the mechanical construction of the initial robot finished
Figure 112007047203917-PAT00001
If is kept near 0, λ becomes 0. In order for the robot to stay in this state at all times,
Figure 112007047203917-PAT00002
You must know the absolute position of this zero motor.

도 12는 그림은 모터 축의 위치를 나타내고 있다. 앞의 그림에서의 오차는

Figure 112007047203917-PAT00003
이다. 오차를 0으로 만들기 위해 3가지 과정이 필요하다. 먼저, 현재 위치에서 z-상이 검출되는 위치까지 α만큼 이동한다. 이후, δ만큼 이동하여, 바람직한 절대 위치(desired absolute position)로 모터 축을 위치시킨다. 하지만 이 경우에도 N회전 만큼의 오차가 있기 때문에, 모터를 N회 회전하여, 원하는 절대 위치로 이동하면, ε 값이 0이 되어 원하는 초기 위치를 구성할 수 있다.12 shows the position of the motor shaft. The error in the previous figure
Figure 112007047203917-PAT00003
to be. Three steps are required to bring the error to zero. First, it moves by α from the current position to the position where the z-phase is detected. Then move by δ to position the motor axis in the desired absolute position. However, even in this case, since there is an error as much as N rotations, when the motor is rotated N times and moved to a desired absolute position, the value of epsilon becomes 0, so that a desired initial position can be configured.

도 13은 AC 모터의 Z-상을 찾는 경우의 시간 선도이다. Fig. 13 is a time diagram when finding the Z-phase of an AC motor.

Find_Z라는 신호가 high로 설정이 되면, 마찬가지로, 디지털 신호처리부는 data를 수신한다. 수신된 data를 통해, 어떤 모터의 Z-상을 검출하는 것인지를 확인하고, Z-상이 검출될 때까지 모터를 등속으로 회전시킨다.When the signal named Find_Z is set high, the digital signal processor receives data as well. From the received data, it is checked which motor detects the Z-phase, and the motor is rotated at constant speed until the Z-phase is detected.

도 14는 일정 시간 동안 DDA(Digital Differential Analyzer)에 의해 x축과 Y축에서 발생하는 펄스의 수를 나타낸 도면이다. FIG. 14 is a diagram illustrating the number of pulses generated on the x-axis and the y-axis by the Digital Differential Analyzer (DDA) for a predetermined time.

위치 제어 모드에서 AC 모터는 방향과 변위 량에 따른 펄스에 의해 구동된다. 따라서, 예를 들어 10msec동안 펄스를 어떻게 생성해야 하는지는 중요한 문제이다. 10msec동안 10개의 pulse가 있다면, 1 msec 동안 1개씩 펄스를 생성하면 되지만, 10msec동안 9개의 pulse가 필요하다면, 어느 시간에 펄스를 생성해야 할지가 애매해진다. 그리고, 여러 개의 모터를 제어하는 경우에는 이러한 경우에 따라서 중간 경로가 많은 차이를 보일 수 있다.In position control mode, the AC motor is driven by pulses according to direction and displacement. Thus, for example, how to generate a pulse for 10 msec is an important problem. If there are 10 pulses for 10 msec, one pulse can be generated for 1 msec, but if 9 pulses are required for 10 msec, it becomes ambiguous at what time to generate the pulse. In the case of controlling a plurality of motors, the intermediate path may show a great difference according to such a case.

(m,n) 좌표로 이동하기 위해서는 X 방향으로 m개의 펄스가 필요하고, Y방향으로는 n개의 펄스가 필요하다. 도 14는 (m,n)의 좌표로 이동하기 위해, X방향과 Y방향의 pulse가 적절히 생성된 것을 나타내고 있다. 이러한 펄스 생성을 위해 본 발명에서는 DDA(Digital Differential Analyzer) 알고리즘을 이용하여 펄스를 생성한다.In order to move to the (m, n) coordinate, m pulses are required in the X direction, and n pulses are required in the Y direction. Fig. 14 shows that pulses in the X direction and the Y direction are appropriately generated in order to move to the coordinates of (m, n). In order to generate such a pulse, the present invention generates a pulse by using a digital differential analyzer (DDA) algorithm.

도 15는 일정 시간 동안 DDA(Digital Differential Analyzer) 알고리즘에 의해 AC 모터를 제어하기 위한 펄스 신호의 생성 과정을 보여주는 다이어그램을 나타낸다. FIG. 15 is a diagram illustrating a process of generating a pulse signal for controlling an AC motor by a digital differential analyzer (DDA) algorithm for a predetermined time.

C값은 (DSP 인터럽트 주기)/(PLX로부터 명령을 받는 주기)이다. 본 실시예의 경우, 디지털 신호처리부의 인터럽트 주기는 50 kHz이고, PCI 인터페이스 칩(PLX)(121)으로부터 명령을 받는 주기는 100Hz이므로, C값은 500이 된다. P값은 10msec동안 모터가 움직여야 하는 변위량을 나타낸다. Q값은 Y값을 생성하기 위한 내부 변수이고, Qmax값은 10msec 동안 생성할 수 있는 최대의 pulse수를 의미한다. 그리고, Y값이 1씩 증가할 때마다 하나의 펄스가 생성된다. 10msec의 시간 동안 Y값은 0에서 P값이 된다. C값은 로봇의 주제어기(PC)(200)로부터 전달되는 명령 사이에 펄스를 발생하는 루프(loop)의 최대 실행 횟수로 Qmax 와 같다. 따라서, 로봇의 주제어기(PC)(200)로부터 명령이 전달되는 주기마다 루프(loop)는 C 만큼 실행된다. P는 로봇의 주제어기(PC)(200)로부터 전달된 값으로 다음 명령이 전달되기 전까지 모터에 전달될 펄스의 수이다. Qmax를 P로 나눈 값은 펄스 시간격에 해당하는 루프의 수가 된다. 만약, 이 값이 정수가 아닐 경우 펄스는 등시간격으로 발생될 수 없다. 이럴 경우 펄스를 등시간격에 가장 가까운 시간격을 갖도록 하기 위해 Qmax를 P로 나눈 값보다 Count 값이 커지는 순간 펄스를 발생하고 Qmax를 P로 나눈 나머지를 다음 루프에 고려해 준다. 이렇게 나머지를 무시하지 않고 다음 루프의 계산에 넘겨주면 나머지의 합이 P와 같거나 커지는 순간 루프 한 번을 더 실행함으로써 누적되어 있는 나머지를 해소하게 된다. 이로써 펄스 간격의 차는 최대 1 루프가 되어 등시간격에 가장 가까운 시간격을 이루게 된다.C value is (DSP Interrupt Period) / (Period to receive command from PLX). In the present embodiment, since the interrupt period of the digital signal processing unit is 50 kHz, and the period of receiving a command from the PCI interface chip (PLX) 121 is 100 Hz, the C value is 500. The P value represents the amount of displacement the motor must move for 10 msec. The Q value is an internal variable for generating the Y value, and the Qmax value is the maximum number of pulses that can be generated for 10 msec. Each time the Y value increases by one, one pulse is generated. The Y value is from 0 to P value for a time of 10 msec. The C value is equal to Qmax as the maximum number of executions of a loop that generates a pulse between commands transmitted from the main controller (PC) 200 of the robot. Therefore, a loop is executed by C every time a command is transmitted from the main controller (PC) 200 of the robot. P is a value transmitted from the main controller (PC) 200 of the robot and is the number of pulses to be transmitted to the motor before the next command is transmitted. Qmax divided by P is the number of loops corresponding to the pulse time interval. If this value is not an integer, pulses cannot be generated at equal intervals. In this case, to make the pulse closest to the isochronous interval, generate the pulse as soon as the Count value becomes larger than the Qmax divided by P, and consider the rest of the Qloop divided by P in the next loop. If you pass the calculation to the next loop without ignoring the rest, you can solve the accumulated rest by executing one more loop as soon as the sum of the rest is equal to or greater than P. As a result, the difference in pulse intervals becomes a maximum of one loop to achieve the time interval closest to the equi-time interval.

인간 탑승형 이족 보행 로봇(HUBO FX-1)에서는 12 DOF이기 때문에 1축당 위치와 방향 2개의 신호가 필요하다. 따라서, 총 24개의 출력이 필요하는데, 본 연구에 사용된 DSP(TMSF2811)의 경우는 GPIO가 총 56개이기 때문에 12축의 모터 제어가 가능하다. In the human-ride biped robot (HUBO FX-1) with 12 DOF, two signals per position and direction are required. Therefore, a total of 24 outputs are required. In the case of the DSP (TMSF2811) used in this study, since there are 56 GPIOs in total, 12-axis motor control is possible.

도 16은 PCI 인터페이스 칩(PLX)과 CAN 콘트롤러 사이의 연결 관계를 나타낸 구성도이다. 16 is a diagram illustrating a connection relationship between a PCI interface chip (PLX) and a CAN controller.

EPLD(102a) 내부에는 주소 디코딩(address decoding) 기능을 하는 논리 회로가 들어있다. PCI 인터페이스 칩(PLX)(121)으로부터 CAN 통신을 위해 할당해 놓은 주소로 데이터를 보내면 EPLD(102a)에서 그 주소를 해석하여(address decoding) CAN 콘트롤러(111)의 칩 선택 신호(/CAN_CS)가 발생하고, 이 신호가 발생하면 CAN 콘트롤러(111)는 그 데이터를 유효한 데이터로 가정하고 해당하는 CAN 신호를 전송한다. CAN 콘트롤러(111)가 외부로부터 CAN 신호를 받으면, INT11 연결을 통하여 PCI 인터페이스 칩(121)으로 인터럽트 신호를 발생하고 이에 대한 응답으로 PCI 인터페이스 칩(121)은 PCI 인터럽트 신호를 발생한다. 로봇의 주제어기(PC)(200)의 인터럽트 처리 루틴(routine)에서 CAN 통신을 위해 할당된 주소에 접근하여 데이터를 읽어오는 것으로 CAN 메시지를 수신받는다.The EPLD 102a contains logic circuitry that performs address decoding. When data is sent from the PCI interface chip (PLX) 121 to an address allocated for CAN communication, the EPLD 102a interprets the address and the chip select signal (/ CAN_CS) of the CAN controller 111 is generated. When this signal is generated, the CAN controller 111 assumes the data as valid data and transmits the corresponding CAN signal. When the CAN controller 111 receives the CAN signal from the outside, the interrupt signal is generated to the PCI interface chip 121 through the INT11 connection, and in response, the PCI interface chip 121 generates the PCI interrupt signal. In the interrupt processing routine of the main controller (PC) 200 of the robot, a CAN message is received by accessing an address allocated for CAN communication and reading data.

전술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 또는 변형하여 실시할 수 있다.As described above, although described with reference to a preferred embodiment of the present invention, those skilled in the art various modifications of the present invention without departing from the spirit and scope of the invention described in the claims below Or it may be modified.

이상에서 설명한 바와 같이, 본 발명은 AC 모터를 사용하는 인간 탑승형 이족 보행 로봇의 주제어기와 인터페이스되고, 센서 데이타를 CAN 통신을 통해 주제어기로 전송하는 모션 콘트롤러 인터페이스 장치를 사용하여 주제어기로부터 각 관절의 각도 명령을 수신받아 각 관절의 각도 명령을 펄스 형태로 생성하고 일정 시 간 동안 발생되는 펄스의 수를 조정하여 로봇의 다수의 관절 구동부의 AC모터의 회전각도 및 각속도를 제어한다.As described above, the present invention is interfaced with the main controller of the human-type bipedal walking robot using the AC motor, and using the motion controller interface device for transmitting sensor data to the main controller through CAN communication, It receives the angle command and generates the angle command of each joint in the form of pulse and controls the rotation angle and angular velocity of AC motors of the joint drive of many robots by adjusting the number of pulses generated for a certain time.

또한, 본 발명에 따른 모션 콘트롤러 인터페이스 장치는 복수개의 AC 모터를 제어하고 센서 인터페이스를 할 수 있으므로, 인간탑승형 이족 보행 로봇과 같은 다축 복수개의 센서가 필요한 시스템에 적합하다. 로봇 관절의 각도명령은 AC모터를 제어할 때 PC로부터 전달된 명령으로부터 AC 모터 콘트롤러에 입력되는 펄스를 등시간격에 가장 가까운 시간격으로 발생시킴으로써 명령 사이의 각속도가 일정하도록 만들어 각도 뿐만 아니라 각속도를 효과적으로 제어하도록 한다.In addition, since the motion controller interface device according to the present invention can control a plurality of AC motors and perform a sensor interface, the motion controller interface device is suitable for a system requiring a plurality of multi-axis sensors such as a human-ride biped walking robot. When controlling the AC motor, the angle command of the robot joint generates pulses input from the command from the PC to the AC motor controller at the closest equidistant interval so that the angular velocity between the commands is constant. Take control effectively.

Claims (13)

인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치로서, A pulse command generation and sensor information acquisition device for generating a position command of a human riding robot joint driver, 복수개의 센서로부터 검출된 신호를 CAN 통신 방식으로 수신하는 센서 정보 취득부; A sensor information acquisition unit configured to receive signals detected from a plurality of sensors in a CAN communication method; 상기 센서 정보 취득부에 의해 수신된 복수개의 센서로부터 검출된 신호를 로봇의 주제어기로 전달하고, 상기 주제어기로부터 수신된 상기 로봇의 각 관절의 각도 제어 명령을 전달하기 위한 PCI 인터페이스부; A PCI interface unit for transmitting signals detected from the plurality of sensors received by the sensor information acquisition unit to a main controller of the robot, and for transmitting an angle control command of each joint of the robot received from the main controller; 상기 PCI 인터페이스부로부터 상기 로봇의 각 관절의 각도 제어 명령을 수신받아 각 관절을 구동하는 모터를 제어하기 위한 모터 제어 신호로서 펄스 신호를 발생시키고 일정 시간 동안 발생되는 펄스 수를 조정하기 위한 디지털 신호처리부; Digital signal processing unit for generating a pulse signal as a motor control signal for controlling the motor driving each joint by receiving the angle control command of each joint of the robot from the PCI interface unit and adjusting the number of pulses generated for a predetermined time ; 상기 디지털 신호처리부로부터 출력되는 모터 제어 신호를 각 모터 콘트롤러로 전송하기 위한 모터 커넥터; A motor connector for transmitting a motor control signal output from the digital signal processor to each motor controller; 를 포함하는 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치.Pulse command generation and sensor information acquisition device for generating a position command of the human-type robot joint driver including a. 제 1 항에 있어서, The method of claim 1, 상기 로봇의 각 관절을 구동하는 모터는 AC 모터인 것을 특징으로 하는 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치.The motor for driving each joint of the robot is an AC motor, pulse command generation and sensor information acquisition device for generating a position command of the human-type robot joint driver. 제 1 항에 있어서, The method of claim 1, 상기 디지털 신호처리부는, The digital signal processing unit, 상기 로봇의 주제어기로부터 상기 PCI 인터페이스부를 통해 각 관절의 각도 명령을 수신받아 일정 시간 동안 발생되어야 하는 펄스 사이의 시간격을 배분하기 위하여 DDA 알고리즘을 사용하는 것을 특징으로 하는 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치.In order to distribute the time interval between the pulses that should be generated for a predetermined time by receiving the angle command of each joint from the main controller of the robot through the PCI interface unit of the human riding robot joint driver, characterized in that Pulse command generation and sensor information acquisition device for position command generation. 제 1 항에 있어서, The method of claim 1, 상기 디지털 신호처리부의 입력 포트에는 상기 PCI 인터페이스부로부터 명령을 받는 포트와, 상기 모터 콘트롤러로부터 신호를 수신하는 포트가 포함되며, The input port of the digital signal processing unit includes a port for receiving a command from the PCI interface unit, a port for receiving a signal from the motor controller, 상기 디지털 신호처리부의 출력포트에는 모터의 회전각도에 관한 펄스지령 신호 생성 포트, 모터의 회전 방향을 나타내는 방향지령 신호 생성포트가 포함되는 것을 특징으로 하는 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치.The output port of the digital signal processor includes a pulse command signal generation port for a rotation angle of the motor, and a direction command signal generation port for indicating a rotation direction of the motor. Pulse command generation and sensor information acquisition device. 제 1 항에 있어서, The method of claim 1, 상기 로봇의 각 관절의 각도 제어 명령은 The angle control command of each joint of the robot 해당 모터를 지정하기 위한 4bit의 모터 ID, 모터의 회전 방향을 정하기 위 한 1 bit의 Sign 비트, 및 모터의 회전 각도를 나타내기 위한 11 bit의 Data 비트로 구성되는 것을 특징으로 하는 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치.Human-type robot joint comprising 4 bits of motor ID to designate the motor, 1 bits of sign bit to determine the rotation direction of the motor, and 11 bits of data bit to indicate the rotation angle of the motor. Pulse command generation and sensor information acquisition device for generating position command of the driver. 제 1 항에 있어서, The method of claim 1, 상기 복수개의 센서는 The plurality of sensors 로봇의 각 발에서 지면과의 반발력과 각 발목에 인가되는 토크를 측정하는 포스/토크 센서(force/torque sensor);A force / torque sensor for measuring the repulsive force against the ground and the torque applied to each ankle at each foot of the robot; 로봇이 중력 방향에 대해 기울어진 각도 및 각속도를 측정하는 관성 센서 시스템; 및 An inertial sensor system for measuring the angle and the angular velocity of the robot with respect to the gravity direction; And 로봇의 발과 접촉한 지면의 경사도를 측정하는 경사도 센서를 포함하는 것을 특징으로 하는 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치. Pulse command generation and sensor information acquisition device for generating a position command of the human-type robotic joint drive, characterized in that it comprises an inclination sensor for measuring the inclination of the ground in contact with the foot of the robot. 제 6 항에 있어서,The method of claim 6, 상기 포스/토크 센서는, The force / torque sensor, 로봇의 각 발에 설치되고, 한 방향의 힘과 2방향의 모멘트를 측정하며, 오토-밸런싱(auto-balancing) 및 오토-널링 포인트 제어 알고리즘(auto nulling point control algorithm)을 사용하는 것을 특징으로 하는 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치.It is installed on each foot of the robot and measures the force in one direction and the moment in two directions, and uses auto-balancing and auto nulling point control algorithms. Pulse command generation and sensor information acquisition device for generating position command of the human-type robotic joint driver. 제 6 항에 있어서, The method of claim 6, 상기 관성 센서 시스템은, The inertial sensor system, 로봇이 중력 방향에 대해 기울어진 정도를 측정하는 가속도계와 로봇이 기울어지는 각속도를 측정하기 위한 레이트 자이로를 포함하는 것을 특징으로 하는 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치. Pulse command generation and sensor information for generating position command of the human-mounted robot joint driver, comprising an accelerometer for measuring the degree of tilt of the robot relative to the direction of gravity and a rate gyro for measuring the angular velocity of tilting of the robot Acquisition device. 제 1 항에 있어서, The method of claim 1, 상기 PCI 인터페이스부의 구동 전압을 상기 디지털 신호처리부의 구동 전압으로 하강시키기 위한 제1 버퍼부; 및A first buffer unit for lowering a driving voltage of the PCI interface unit to a driving voltage of the digital signal processing unit; And 상기 디지털 신호처리부의 구동 전압을 상기 각 관절을 구동하는 모터를 제어하는 모터 콘트롤러의 구동 전압으로 상승시키기 위한 제2 버퍼부; A second buffer unit for raising the driving voltage of the digital signal processing unit to a driving voltage of a motor controller controlling the motors driving the respective joints; 를 더 포함하는 인간 탑승형 로봇 관절 구동기의 위치 지령 생성을 위한 펄스 명령 발생 및 센서 정보 취득 장치. Pulse command generation and sensor information acquisition device for generating a position command of the human riding robot joint driver further comprising. 인간 탑승형 로봇의 관절 구동기 제어 장치로서, As a joint driver control device of a human riding robot, 로봇의 자세 및 지면의 상태를 측정하는 복수개의 센서; A plurality of sensors for measuring the position of the robot and the state of the ground; 상기 복수개의 센서로부터 측정된 센서 데이타를 수신받고, 로봇 각 관절의 각도 제어 명령을 제공하기 위한 로봇의 주제어기; 및 A main controller of the robot for receiving sensor data measured from the plurality of sensors and providing an angle control command for each joint of the robot; And 상기 로봇의 주제어기로부터 상기 로봇의 각 관절의 각도 제어 명령을 수신받아 로봇의 각 관절의 관절 구동부를 제어하는데 필요한 펄스 신호를 생성하기 위한 모션 콘트롤러; A motion controller configured to receive an angle control command of each joint of the robot from the main controller of the robot and generate a pulse signal required to control the joint driving unit of each joint of the robot; 를 포함하는 인간 탑승형 로봇의 관절 구동기 제어 장치.Joint driver control device for a human riding robot comprising a. 제 10 항에 있어서, The method of claim 10, 상기 각 관절 구동부는 AC 모터와 AC 모터 콘트롤러를 구비하는 것을 특징으로 하는 인간 탑승형 로봇의 관절 구동기 제어 장치.The joint drive control apparatus of the human riding robot, characterized in that each of the joint drive unit has an AC motor and an AC motor controller. 제 10 항에 있어서, The method of claim 10, 상기 모션 콘트롤러는, The motion controller, 상기 로봇의 주제어기로부터 상기 로봇의 각 관절의 각도 명령을 수신받아 해당하는 관절 구동부의 AC 모터를 제어하는 펄스 신호에서 일정 시간 동안 발생되어야 하는 펄스 사이의 시간격을 배분하기 위하여 DDA 알고리즘을 사용하는 것을 특징으로 하는 인간 탑승형 로봇의 관절 구동기 제어 장치.Receiving the angle command of each joint of the robot from the main controller of the robot and using the DDA algorithm to distribute the time interval between the pulses to be generated for a predetermined time from the pulse signal for controlling the AC motor of the corresponding joint drive unit Joint driver control apparatus for a human riding robot, characterized in that. 인간 탑승형 로봇의 관절 구동기 제어 방법으로서, As a method of controlling a joint driver of a human riding robot, (a) 복수개의 센서로부터 측정된 센서 데이타를 CAN 통신 방식으로 수신하는 단계; (a) receiving sensor data measured from a plurality of sensors in a CAN communication scheme; (b) 로봇의 주제어기(PC)가 상기 센서 데이타를 기초로 하여 로봇의 각 관절 의 각도 제어 명령을 생성하는 단계; (b) a main controller (PC) of the robot generating an angle control command of each joint of the robot based on the sensor data; (c) 모션 콘트롤러가 상기 로봇의 각 관절의 각도 제어 명령을 수신받아 DDA 알고리즘에 의해 일정 시간 동안 발생되는 펄스의 간격을 조정하여 로봇의 각 관절을 구동하는 AC 모터를 제어하는데 필요한 모터 제어 신호를 생성하는 단계; 및(c) The motion controller receives the angle control command of each joint of the robot and adjusts the interval of pulses generated for a predetermined time by the DDA algorithm to provide the motor control signal necessary to control the AC motor driving each joint of the robot. Generating; And (d) 상기 모터 제어 신호를 로봇의 각 관절을 구동하는 AC 모터의 AC 모터 콘트롤러로 전송하는 단계; (d) transmitting the motor control signal to an AC motor controller of an AC motor that drives each joint of the robot; 를 포함하는 인간 탑승형 로봇의 관절 구동기 제어 방법.Joint driver control method of a human riding robot comprising a.
KR1020070064169A 2007-06-28 2007-06-28 Device of pulse command generation for position reference and sensor data acquistion of human riding robot's joint actuator and its control device and method thereof KR20090002398A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070064169A KR20090002398A (en) 2007-06-28 2007-06-28 Device of pulse command generation for position reference and sensor data acquistion of human riding robot's joint actuator and its control device and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070064169A KR20090002398A (en) 2007-06-28 2007-06-28 Device of pulse command generation for position reference and sensor data acquistion of human riding robot's joint actuator and its control device and method thereof

Publications (1)

Publication Number Publication Date
KR20090002398A true KR20090002398A (en) 2009-01-09

Family

ID=40485396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070064169A KR20090002398A (en) 2007-06-28 2007-06-28 Device of pulse command generation for position reference and sensor data acquistion of human riding robot's joint actuator and its control device and method thereof

Country Status (1)

Country Link
KR (1) KR20090002398A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012102442A1 (en) * 2011-01-28 2012-08-02 (주)로보티즈 Pc-based module-type humanoid robot platform
CN108919732A (en) * 2018-10-18 2018-11-30 大鹏高科(武汉)智能装备有限公司 A kind of control cabinet executing driving applied to robot
CN113726226A (en) * 2021-08-03 2021-11-30 九江精密测试技术研究所 Combined control system of combined rotary table

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012102442A1 (en) * 2011-01-28 2012-08-02 (주)로보티즈 Pc-based module-type humanoid robot platform
CN108919732A (en) * 2018-10-18 2018-11-30 大鹏高科(武汉)智能装备有限公司 A kind of control cabinet executing driving applied to robot
CN113726226A (en) * 2021-08-03 2021-11-30 九江精密测试技术研究所 Combined control system of combined rotary table
CN113726226B (en) * 2021-08-03 2024-05-17 九江精密测试技术研究所 Combined control system of combined turntable

Similar Documents

Publication Publication Date Title
CN108874119B (en) System and method for tracking arm movement to generate input for a computer system
Carignan et al. Development of an exoskeleton haptic interface for virtual task training
JP6343559B2 (en) Robot with variable stiffness joint and calculation method of optimized stiffness
US8751041B2 (en) Method to generate humanlike motion of humanoid robot
Liu et al. The modular multisensory DLR-HIT-Hand: hardware and software architecture
US10705113B2 (en) Calibration of inertial measurement units attached to arms of a user to generate inputs for computer systems
CN106945043B (en) Multi-arm cooperative control system of master-slave teleoperation surgical robot
CN107053156B (en) Seven-degree-of-freedom bionic somatosensory mechanical arm
EP2703131A2 (en) Robot
US9014854B2 (en) Robot and control method thereof
CN107804474A (en) Carry more rotor flying robot Complete machine system design methods of redundancy mechanical arm
JP2013526418A (en) Method for controlling an automated work cell
Wei et al. FPGA based hardware architecture for HIT/DLR hand
KR20090002398A (en) Device of pulse command generation for position reference and sensor data acquistion of human riding robot&#39;s joint actuator and its control device and method thereof
Arjun et al. An end to end tactile cyber physical system design
CN206578829U (en) A kind of bionical body-sensing mechanical arm of seven freedom
Parvin et al. Human-Machine Interface (HMI) Robotic Arm Controlled by Gyroscopically Acceleration
CN111152260A (en) Joint corner auxiliary measurement system and method for serial rotary joint mechanical arm
Zhao et al. An exoskeleton-based master device for dual-arm robot teleoperation
US20220088797A1 (en) Gripper Mechanism
US20210072820A1 (en) Sticky device to track arm movements in generating inputs for computer systems
KR20080114197A (en) Position computation apparatus of wearable robot arm using human force input and wearable robot arm having the same and position moving method of robot arm using the same
Wang et al. Design and implementation of a 6-DOF robot control system based on CAN fieldbus
CN112643678A (en) Mechanical arm, control device thereof, control system of mechanical arm and control method
Liu et al. Embedded FPGA-based control of the HIT/DLR hand

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application