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 PDFInfo
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/081—Touching devices, e.g. pressure-sensitive
- B25J13/082—Grasping-force detectors
- B25J13/083—Grasping-force detectors fitted with slippage detectors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/06—Control stands, e.g. consoles, switchboards
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
-
- 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/08—Programme-controlled manipulators characterised by modular constructions
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S901/00—Robots
- Y10S901/01—Mobile robot
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Manipulator (AREA)
Abstract
Description
도 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:
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.
도 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
인간 탑승형 이족 보행 로봇은 일반적으로 PC를 주제어기(200)로 사용한다. 주제어기(200)는 일반적인 데스크톱을 사용할 수 있지만, 소비 전력이나 크기 등을 고려하여 산업용 PC를 사용하는 것이 좋다. 주제어기(200)는 PCI bus를 이용하여, 모션 콘트롤러 인터페이스 장치(100)와 통신한다. 주제어기(200)는 Microsoft사의 Windows를 OS로 사용하여, 개발 환경을 익숙하게 하고, 여러가지 다양한 응용 프로그램(application)이 가능하도록 한다.The human riding biped robot generally uses a PC as the
본 실시예에서, 주제어기(200)는 pentium3 933Mhz급의 성능을 지닌 컴퓨터를 사용하고, OS로 마이크로 소프트사의 Windows XP를 사용하였다. 또한, 로봇의 실시간 제어를 위해 RTX 소프트웨어를 사용하였다. In the present embodiment, the
도 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
모션 콘트롤러 인터페이스 장치(100)는 다수의 AC 모터(310)와 AC 모터 콘트롤러(300)와 연결되며, 센서들과 CAN 케이블로 연결된다.The motion
AC 모터 콘트롤러(300)는 AC 모터(310)를 구동시키는 장치이다. 이 AC 모터 콘트롤러(310)로 모터의 위치에 해당하는 펄스(pulse)와 방향을 전달하면, 해당하는 정보에 따라서 모터의 위치를 제어하는 역할을 한다.The
AC 모터(310)는 로봇의 각 관절을 구동하는데 사용되는 구동부이다. 탑승형 로봇의 경우, 큰 힘을 필요로 하기 때문에 AC 모터를 사용하였으며, 본 실시예에서는 400W, 800W 두 종류의 모터를 사용하였다.The
상기 복수개의 센서는 로봇의 각 발에서 지면과의 반발력과 각 발목에 인가되는 토크를 측정하는 포스/토크 센서(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
도 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
로봇의 각 관절 구동부는 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
/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
로봇의 주제어기(PC)(200)는 모션 콘트롤러 인터페이스 장치(100)의 PC104+ 버스 커넥터(122)에 연결된다. PC 104+는 산업용 규격의 PCI 버스이기 때문에 PCI 인터페이스 칩(121)을 사용하여 PC104+ 버스의 인터페이스가 가능하다. The main controller (PC) 200 of the robot is connected to the PC104 +
PCI 인터페이스 칩(121)은 로봇의 주제어기(PC)(200)와 다른 장치들이 통신할 수 있도록 PCI bus에 그 장치들을 연결해주는 장치이다.The
PCI 인터페이스 칩(121)은 로봇의 주제어기(PC)(200)로부터 예를 들어 10msec의 주기로 각 모터에 대한 각도 제어 명령을 전달받고, CAN 컨트롤러(111)로부터 읽어들인 센서 데이타를 주제어기(200)로 전달한다.The
DSP(140)는 PCI 인터페이스 칩(121)으로부터 전달받은 로봇 각 관절의 각도 제어 명령에 따라 펄스(pulse)를 생성하여 AC 모터 콘트롤러로 전달한다.The
CAN 콘트롤러(111)는 포스/토크 센서(F/T sensor), 관성 센서(Inertial sensor), 경사도 센서의 데이타를 취득하여, PCI 인터페이스 칩(121)을 통해 주제어기(200)로 전달하게 된다.The
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의 입력 포트는 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
DSP(140)는 빠른 계산을 수행하기 때문에 발생되는 열을 줄이기 위해 상대적으로 낮은 전압(예:3.3V)으로 구동되며, 다른 부품들(PCI interface chip, EPLD, AC 모터 콘트롤러)은 DSP(140)보다 높은 구동 전압(예:5V)으로 동작하기 때문에, DSP(140)의 모든 입-출력 신호는 버퍼(Buffer)를 통과한다. The
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
발진기1(141)는 DSP(140)를 구동하기 위한 30Mhz 발진기이며, 발진기2(127)는 PCI 인터페이스 칩(121)을 구동하기 위한 20Mhz 발진기이다.Oscillator 1 (141) is a 30Mhz oscillator for driving the
AC 모터 커넥터(160)는 12개의 AC 모터를 제어하는데 필요한 신호(pulse0~pulse11, sign0~sign11)와 Z상(MZ0~MZ11)을 연결하는 커넥터이다. The
딥 스위치 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
도 8은 PCI 인터페이스 칩(121)과 디지털 신호처리부(140) 사이의 데이터 교환을 위한 데이타 구성도를 나타낸 것이다. 8 illustrates a data configuration diagram for data exchange between the
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
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
위치 지령을 전달하는 경우, 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
이 과정이 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
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은 초기 위치 차이에 의해 로봇의 높이가 달라지는 상황을 나타내는 도면이다. 초기 로봇의 기구적인 구성이 끝난 상태에서를 0에 가까운 상태를 유지하면, λ는 0이 된다. 항상 로봇이 이런 상태를 유지하기 위해서는 이 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 If is kept near 0, λ becomes 0. In order for the robot to stay in this state at all times, You must know the absolute position of this zero motor.
도 12는 그림은 모터 축의 위치를 나타내고 있다. 앞의 그림에서의 오차는 이다. 오차를 0으로 만들기 위해 3가지 과정이 필요하다. 먼저, 현재 위치에서 z-상이 검출되는 위치까지 α만큼 이동한다. 이후, δ만큼 이동하여, 바람직한 절대 위치(desired absolute position)로 모터 축을 위치시킨다. 하지만 이 경우에도 N회전 만큼의 오차가 있기 때문에, 모터를 N회 회전하여, 원하는 절대 위치로 이동하면, ε 값이 0이 되어 원하는 초기 위치를 구성할 수 있다.12 shows the position of the motor shaft. The error in the previous figure 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
전술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 또는 변형하여 실시할 수 있다.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)
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)
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 |
-
2007
- 2007-06-28 KR KR1020070064169A patent/KR20090002398A/en not_active Application Discontinuation
Cited By (4)
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 |
---|---|---|
US11093036B2 (en) | Tracking arm movements to generate inputs for computer systems | |
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 | |
CN106945043B (en) | Multi-arm cooperative control system of master-slave teleoperation surgical robot | |
US10705113B2 (en) | Calibration of inertial measurement units attached to arms of a user to generate inputs for computer systems | |
EP2703131A2 (en) | Robot | |
CN107053156A (en) | A kind of bionical body-sensing mechanical arm of seven freedom | |
US9014854B2 (en) | Robot and control method thereof | |
CN107804474A (en) | Carry more rotor flying robot Complete machine system design methods of redundancy mechanical arm | |
CN105824292A (en) | Robot distributed controller and control method | |
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's joint actuator and its control device and method thereof | |
Arjun et al. | An end to end tactile cyber physical system design | |
US20220088797A1 (en) | Gripper Mechanism | |
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 | |
Zhao et al. | An exoskeleton-based master device for dual-arm robot teleoperation | |
Yu et al. | Computer control system and walking pattern control for a humanoid robot | |
US20210072820A1 (en) | Sticky device to track arm movements in generating inputs for computer systems | |
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 | |
Bejczy et al. | An 8-dof dual-arm system for advanced teleoperation performance experiments | |
Liu et al. | Embedded FPGA-based control of the HIT/DLR hand | |
Lauer et al. | Transputer network controls robot axes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |