首页 / 专利库 / 人工智能 / 误差反向传播算法 / 신경망을 이용하는 로봇의 자세 제어 방법 및 그 기록매체, 신경망을 이용하는 로봇의 자세 제어 장치 및 그장치를 구비한 로봇

신경망을 이용하는 로봇의 자세 제어 방법 및 그 기록매체, 신경망을 이용하는 로봇의 자세 제어 장치 및 그장치를 구비한 로봇

阅读:610发布:2021-03-17

专利汇可以提供신경망을 이용하는 로봇의 자세 제어 방법 및 그 기록매체, 신경망을 이용하는 로봇의 자세 제어 장치 및 그장치를 구비한 로봇专利检索,专利查询,专利分析的服务。并且A robot posture control method using a neural network, a recording medium thereof, a robot posture control apparatus using a neural network, and a robot having the apparatus are provided to allow the robot to stably walk even under a new environment or when a mechanical error exists. A robot posture control method using a neural network includes a step(1610) of measuring a balancing point by using the pressure applied to a pressure sensor during operation of a robot performed in accordance with a predetermined walking pattern value; a step(1620) of creating a balancing point error from the difference between the measured balance point and a pre-stored balancing point, and outputting the balancing point error to a predetermined neural network; a step(1630) of creating a joint angle adjustment value by assigning weight values of the neurons contained in the neural network to the balancing point error; a step(1640) of operating an actuator in accordance with the control signal obtained by summing the joint value adjustment value and the walking pattern value; and a step(1650) of varying the weight values by performing a back propagation algorithm in accordance with the balancing point error created during operation of the actuator.,下面是신경망을 이용하는 로봇의 자세 제어 방법 및 그 기록매체, 신경망을 이용하는 로봇의 자세 제어 장치 및 그장치를 구비한 로봇专利的具体信息内容。

  • 소정의 보행 패턴값에 따른 로봇의 동작 중 압력 센서로 인가되는 압력을 이용하여 균형점을 측정하는 단계;
    상기 측정된 균형점과 미리 저장된 균형점 사이의 차인 균형점 오차를 생성하여 소정의 신경망에 출력하는 단계;
    상기 신경망에 포함된 복수 뉴런들의 가중치들을 상기 균형점 오차에 부여하여 조인트각 조정값을 생성하는 단계;
    상기 조인트각 조정값 및 상기 보행 패턴값을 합산한 제어 신호에 따라 액추에이터를 동작시키는 단계; 및
    상기 액추에이터 동작 중 생성된 균형점 오차에 따라 역전파 알고리즘을 수행하여 상기 가중치들을 변경시키는 단계를 포함하는 신경망을 이용하는 로봇의 자세 제어 방법.
  • 제 1 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  • 소정의 보행 패턴값을 저장하는 보행패턴 테이블;
    인가되는 압력에 대응하는 전기적인 센서 신호를 생성하는 복수의 압력 센서;
    상기 센서 신호를 이용하여 균형점을 연산하는 균형점 연산부;
    상기 연산된 균형점과 미리 저장된 소정의 균형점 사이의 차인 균형점 오차를 생성하는 오차 생성부; 및
    복수 뉴런들의 가중치들을 상기 균형점 오차에 부여하여 조인트각 조정값을 생성하고 상기 조인트각 조정값 및 상기 보행 패턴값을 합산한 제어 신호에 따라 액추에이터를 동작시키고, 상기 액추에이터 동작 중 생성된 균형점 오차에 따라 역전파 알고리즘을 수행하여 상기 가중치들을 변경시키는 신경망을 포함하는 신경망을 이용하는 로봇의 자세 제어 장치.
  • 제 3 항에 있어서,
    상기 신경망은
    상기 균형점 오차를 수신하는 입력층;
    상기 입력층과 전기 회로적으로 연결되고, 복수 뉴런들의 가중치들을 상기 균형점 오차에 부여하고, 상기 가중치들을 조절하는 역전파 알고리즘을 수행하는 은닉층; 및
    상기 가중치들이 부여된 균형점 오차를 이용하여 상기 조인트각 조정값을 생성하는 출력층을 포함하는 것을 특징으로 하는 신경망을 이용하는 로봇의 자세 제어 장치.
  • 소정의 보행 패턴값을 저장하는 보행패턴 테이블;
    보행 수단의 일부에 부착되어 인가되는 압력에 대응하는 전기적인 센서 신호를 생성하는 복수의 압력 센서;
    상기 센서 신호를 이용하여 균형점을 연산하는 균형점 연산부;
    상기 연산된 균형점과 미리 저장된 소정의 균형점 사이의 차인 균형점 오차를 생성하는 오차 생성부;
    복수 뉴런들의 가중치들을 상기 균형점 오차에 부여하여 조인트각 조정값을 생성하고 상기 조인트각 조정값 및 상기 보행 패턴값을 합산한 제어 신호에 따라 액추에이터를 동작시키고, 상기 액추에이터 동작 중 생성된 균형점 오차에 따라 역전파 알고리즘을 수행하여 상기 가중치들을 변경시키는 신경망; 및
    상기 제어 신호에 따라 상기 보행 수단을 동작시키는 복수의 액추에이터를 포함하는 신경망을 이용하는 자세 제어 장치를 구비한 로봇.
  • 说明书全文

    신경망을 이용하는 로봇의 자세 제어 방법 및 그 기록 매체, 신경망을 이용하는 로봇의 자세 제어 장치 및 그 장치를 구비한 로봇 {Method for controlling pose of robot with using neural network, Recording medium thereof, Apparatus for controlling pose of robot with using neuron-network and Robot therewith}

    도 1은 본 발명이 적용되는 다층 퍼셉트론의 구조를 도시한 것이다.

    도 2는 도 1에서 하나의 뉴런 구조를 도시한 것이다.

    도 3은 도 1의 출력층 신경망 뉴런 k에 연결된 은닉층 뉴런 j를 도시한 것이다.

    도 4는 본 발명이 적용되는 로봇의 조인트 및 링크 구조의 일 예를 도시한 것이다.

    도 5는 도 4에 따라 구성한 이족 보행로봇의 일 예이다.

    도 6은 도 5의 기구 해석을 위한 좌표계 설정 과정을 도시한 것이다.

    도 7은 도 5의 시간에 따른 조인트 각도를 나타내는 그래프이다.

    도 8은 도 5의 보행 수단의 일부에 부착된 센서를 도시한 것이다.

    도 9는 도 5의 로봇을 이용하여 측정한 균형점 경로를 나타내는 그래프이다.

    도 10은 도 5의 균형점을 중심으로 로봇을 개략적으로 도시한 것이다.

    도 11은 본 발명의 일 실시예에 따른 2입력 및 2출력의 신경망의 구조를 도 시한 것이다.

    도 12는 본 발명에 따른 신경망을 이용하는 로봇의 자세 제어 장치의 블럭도이다.

    도 13은 도 12의 자세 제어 장치를 구비한 로봇의 블럭도이다.

    도 14는 도 13에서 학습에 따른 에러의 수렴 과정을 나타내는 그래프이다.

    도 15는 본 발명의 다른 실시예에 따른 시스템 구성도이다.

    도 16은 본 발명에 따른 신경망을 이용하는 로봇의 자세 제어 방법의 흐름도이다.

    도 17은 본 발명의 또다른 실시예에 따른 로봇의 평지 보행을 도시한 것이다.

    도 18은 도 17의 평지 보행에서의 균형점 경로를 나타내는 그래프이다.

    도 19는 도 17의 평지 보행에서의 균형점 오차를 나타내는 그래프이다.

    도 20은 본 발명의 또다른 실시예에 따른 로봇의 +10°의 오르막 경사면 보행을 도시한 것이다.

    도 21은 도 20의 오르막 보행에서의 균형점 경로를 나타내는 그래프이다.

    도 22는 도 20의 오르막 보행에서의 균형점 오차를 나타내는 그래프이다.

    도 23은 본 발명의 또다른 실시예에 따른 로봇의 -10°의 내리막 경사면 보행을 도시한 것이다.

    도 24는 도 23의 내리막 보행에서의 균형점 경로를 나타내는 그래프이다.

    도 25는 도 23의 내리막 보행에서의 균형점 오차를 나타내는 그래프이다.

    도 26은 본 발명의 또다른 실시예에 따른 로봇의 10°의 측방향 경사면 보행을 도시한 것이다.

    도 27은 도 26의 측방향 경사면 보행에서의 균형점 경로를 나타내는 그래프이다.

    도 28은 도 26의 측방향 경사면 보행에서의 균형점 오차를 나타내는 그래프이다.

    본 발명은 로봇 제어에 관한 것으로, 특히, 신경망을 이용하는 로봇의 자세 제어 방법 및 그 기록 매체, 신경망을 이용하는 로봇의 자세 제어 장치 및 그 장치를 구비한 로봇에 관한 것이다.

    이족 보행로봇은 인간 생활환경에 적용이 용이하며 계단이나 문턱과 같은 거친 지면에서도 이동이 가능한 장점이 있다. 1960년대 후반 Vukobratovic이 인간형 이족 보행로봇에 관한 모델링을 처음 제시한 이후, 이족 보행로봇에 관한 많은 이론적 혹은 실험적 연구들이 수행되어져 왔다. 1998년에는 일본의 혼다 사에서 인간형 이족 보행로봇 P3가 발표되었으며 이는 산업 및 인간 생활에서의 이족 보행로봇의 활용 가능성을 입증하였다. 이처럼 이족 보행로봇은 높은 자유도로 인해 다양한 일을 수행할 수 있으며, 엔터테인먼트 로봇, 인력 보조 로봇, 서비스 로봇 등 많은 분야에서 활용되고 있다. 그러나 이족 보행로봇은 높은 자유도와 직렬형 링크 구조 로 인해 안정도 해석과 제어가 어려운 점이 있으며 이는 로봇을 제작하는데 있어 난점이다.

    최근의 이족 보행로봇의 안정도를 개선하기 위한 연구는 최적 보행 패턴의 생성이나 자세 제어를 중심으로 진행되었다. 그러나 보행 패턴의 생성은 시뮬레이션에 한정되어 있기 때문에 실제 로봇에 적용하기에는 한계가 있다. 또한 동역학적인 해석에 의한 자세 제어는 로봇의 기구적인 오차를 고려하지 않기 때문에 오차가 적은 고가의 부품을 필요로 한다.

    따라서, 종래 로봇의 자세 제어 방법은 보행 자세의 안정도를 유지하기 어렵고, 기구적인 오차가 있을 경우 로봇의 안정도의 저하를 방지할 수 없으며, 이에 따른 로봇의 제작 난이도가 높고, 높은 가격의 액추에이터나 부품을 필요로 하여 로봇의 제작 기간이나 제작비용이 증가되는 문제점이 있다.

    따라서, 본 발명이 이루고자 하는 첫번째 기술적 과제는 새로운 환경이나 기구적인 오차가 있어도 안정적인 보행을 구현할 수 있으며, 로봇의 제작 난이도를 줄일 수 있고, 로봇의 제작 기간이나 제작비용을 절감할 수 있는 신경망을 이용하는 로봇의 자세 제어 방법을 제공하는데 있다.

    본 발명이 이루고자 하는 두번째 기술적 과제는 상기의 신경망을 이용하는 로봇의 자세 제어 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 있다.

    본 발명이 이루고자 하는 세번째 기술적 과제는 상기의 신경망을 이용하는 로봇의 자세 제어 방법이 적용된 신경망을 이용하는 로봇의 자세 제어 장치를 제공하는데 있다.

    본 발명이 이루고자 하는 네번째 기술적 과제는 상기의 신경망을 이용하는 로봇의 자세 제어 장치를 구비한 로봇을 제공하는데 있다.

    상기의 첫번째 기술적 과제를 달성하기 위하여, 본 발명은 소정의 보행 패턴값에 따른 로봇의 동작 중 압력 센서로 인가되는 압력을 이용하여 균형점을 측정하는 단계, 상기 측정된 균형점과 미리 저장된 균형점 사이의 차인 균형점 오차를 생성하여 소정의 신경망에 출력하는 단계, 상기 신경망에 포함된 복수 뉴런들의 가중치들을 상기 균형점 오차에 부여하여 조인트각 조정값을 생성하는 단계, 상기 조인트각 조정값 및 상기 보행 패턴값을 합산한 제어 신호에 따라 액추에이터를 동작시키는 단계 및 상기 액추에이터 동작 중 생성된 균형점 오차에 따라 역전파 알고리즘을 수행하여 상기 가중치들을 변경시키는 단계를 포함하는 신경망을 이용하는 로봇의 자세 제어 방법을 제공한다.

    상기의 두번째 기술적 과제를 달성하기 위하여, 본 발명은 상기의 신경망을 이용하는 로봇의 자세 제어 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.

    상기의 세번째 기술적 과제를 달성하기 위하여, 본 발명은 소정의 보행 패턴값을 저장하는 보행패턴 테이블, 인가되는 압력에 대응하는 전기적인 센서 신호를 생성하는 복수의 압력 센서, 상기 센서 신호를 이용하여 균형점을 연산하는 균형점 연산부, 상기 연산된 균형점과 미리 저장된 소정의 균형점 사이의 차인 균형점 오차를 생성하는 오차 생성부 및 복수 뉴런들의 가중치들을 상기 균형점 오차에 부여하여 조인트각 조정값을 생성하고 상기 조인트각 조정값 및 상기 보행 패턴값을 합산한 제어 신호에 따라 액추에이터를 동작시키고, 상기 액추에이터 동작 중 생성된 균형점 오차에 따라 역전파 알고리즘을 수행하여 상기 가중치들을 변경시키는 신경망을 포함하는 신경망을 이용하는 로봇의 자세 제어 장치를 제공한다.

    상기의 네번째 기술적 과제를 달성하기 위하여, 본 발명은 소정의 보행 패턴값을 저장하는 보행패턴 테이블, 보행 수단의 일부에 부착되어 인가되는 압력에 대응하는 전기적인 센서 신호를 생성하는 복수의 압력 센서, 상기 센서 신호를 이용하여 균형점을 연산하는 균형점 연산부, 상기 연산된 균형점과 미리 저장된 소정의 균형점 사이의 차인 균형점 오차를 생성하는 오차 생성부, 복수 뉴런들의 가중치들을 상기 균형점 오차에 부여하여 조인트각 조정값을 생성하고 상기 조인트각 조정값 및 상기 보행 패턴값을 합산한 제어 신호에 따라 액추에이터를 동작시키고, 상기 액추에이터 동작 중 생성된 균형점 오차에 따라 역전파 알고리즘을 수행하여 상기 가중치들을 변경시키는 신경망 및 상기 제어 신호에 따라 상기 보행 수단을 동작시키는 복수의 � �추에이터를 포함하는 신경망을 이용하는 자세 제어 장치를 구비한 로봇을 제공한다.

    이하에서는 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 다음에 예시하는 본 발명의 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다.

    본 발명에 이용되는 신경망은 다층 퍼셉트론으로서 입력층, 은닉층, 출력층으로 이루어진다.

    도 1은 본 발명이 적용되는 다층 퍼셉트론의 구조를 도시한 것이다. 여기서 회색의 원은 뉴런을 뜻하며 같은 열에 있는 뉴런들은 하나의 층을 이룬다.

    도 2는 도 1에서 하나의 뉴런 구조를 도시한 것이다. 각 뉴런에서는 다음의 수학식 1과 같은 연산이 수행된다.

    각 뉴런에서는 입력과 가중치를 곱한 값을 합산한 결과에 바이어스 b를 더한다. 이 값을 활성 함수인

    를 거친 결과가 그 뉴런의 출력이 된다. 이러한 과정은 같은 층 내에서는 모든 뉴런에 동시에 일어나게 되며 입력층에 가까운 층에서부터 순서대로 출력층 쪽으로 진행된다. 이러한 과정을 통해 입력으로부터 출력을 구한다.

    신경망에 어떠한 값이 입력되었을 때 원하는 출력을 얻을 수 있도록 하는 과정을 신경망의 학습이라 한다. 이러한 학습 과정은 각 뉴런 사이의 가중치의 크기를 조정하는 과정을 통해서 이루어진다. 가중치를 조정하는 가장 대표적인 알고리즘으로는 역전파 알고리즘(Back-propagation algorithm)이 있다. 역전파 알고리즘 은 신경망의 출력과 원하는 출력과의 차이를 이용해 신경망 출력의 반대 방향으로 진행하면서 가중치를 조절한다. 도 2에서와 같이 n번째 학습 과정중 출력층 뉴런 j에서의 출력

    은 수학식 2와 같다.

    여기서

    는 으로 나타낼 수 있다. 여기서 출력층 뉴런 j의 오차는 다음의 수학식 3과 같이 나타낼 수 있다.

    도 3은 도 1의 출력층 신경망 뉴런 k에 연결된 은닉층 뉴런 j를 도시한 것이다.

    출력층의 모든 뉴런의 오차의 에너지

    는 다음의 수학식 4와 같이 각 뉴런에서의 오차의 제곱의 합으로 나타낼 수 있다.

    역전파 알고리즘의 목적은 오차의 에너지를 최소화 하는데 있다. 오차의 에 너지를 최소화하기 위해 조정해야 하는 가중치 값

    은 부분적분 에 비례한다. 연쇄법칙에 의해서 이 값은 다음의 수학식 5와 같이 나타낼 수 있다.

    또한, 수학식 5의 양변을

    에 대해 미분하면 다음의 수학식 6을 얻을 수 있다.

    또한, 수학식 4의 양변을

    에 대해 미분하면 다음의 수학식 7을 얻을 수 있다.

    수학식 2의 양변을

    에 대해 미분하면 다음의 수학식 8을 얻을 수 있다.

    또한,

    를 에 대해 미분하면 다음의 수학식 9를 얻을 수 있다.

    또한, 수학식 6, 수학식 9를 수학식 5에 대입하면 다음의 수학식 10을 얻을 수 있다.

    결국 가중치의 수정값

    은 델타 규칙에 의해 다음의 수학식 11로 주어진다.

    여기서

    는 역전파 알고리즘의 학습률이다. 이 식은 다음의 수학식 12와 같이 정리하여 쓸 수 있다.

    이와 같이 쓸 수 있으며 여기서

    은 로컬 경도(local gradient)이다. 수학식 10에서 과 은 신경망의 출력을 통해 이미 얻어진 값이며 활성함수의 미분값인 또한, 활성함수를 로그 함수(logistic function)나 쌍곡 탄젠트 함수(hyperbolic tangent function)를 사용하면 신경망의 출력으로부터 쉽게 구할 수 있다. 일 예로서, 쌍곡 탄젠트 함수(hyperbolic tangent function)를 사용하면 이는 다음의 수학식 13과 같이 정의된다.

    여기서 a와 b는 상수이다. 수학식 13을

    에 대해 미분하면 다음의 수학식 14를 얻을 수 있다.

    이는 신경망의 출력

    으로부터 곧바로 구할 수 있다.

    만약 뉴런 j가 은닉층의 뉴런이라면 뉴런 j에 대한 원하는 출력이 존재하지 않으므로 출력층의 뉴런과 같은 방법으로 가중치를 조절할 수 없다. 즉, 은닉층에서의 로컬 경도(local gradient)는 다음의 수학식 15와 같이 다시 정의할 수 있다.

    여기서 부분적분

    의 값을 구하기 위해 도 3과 같이 출력층 뉴런 k에 연결된 은닉층 뉴런 j가 있다고 할 때, 다음의 수학식 16을 얻을 수 있다.

    앞에서와는 달리 출력층 뉴런의 인덱스를 j대신 k라고 하였으며 이는 j뉴런이 출력층이나 은닉층에 관계없이 일반화된 식을 이끌어내기 위함이다. 수학식 16의 양변을

    에 대해 편미분하면 다음의 수학식 17을 얻을 수 있다.

    수학식 17의

    부분에 연쇄법칙을 적용하면 다음의 식을 얻을 수 있다. 즉, 이다. 또한, 도 3에서 뉴런 k에서의 에러는 이며, 이로부터 다음의 수학식 18을 얻을 수 있다.

    또한, 도 3으로부터

    은 으로 구할 수 있다. 여기서 m은 바이어스를 제외한 뉴런 k로의 입력의 개수이다. 이 식을 에 대해 미분하면 다음의 수학식 19를 얻을 수 있다.

    수학식 19와 수학식 15를 이용하여 은닉층에서의 로컬 경도(local gradient)를 다음의 수학식 20과 같이 구할 수있다.

    이렇게 구해진 출력층과 은닉층에서의 로컬 경도(local gradient)를 이용하여 일반화된 델타 규칙은 다음의 수학식 21과 같이 쓸 수 있다.

    본 발명에서는 신경망을 이용한 제어기를 구성하고 이러한 과정을 통해 신경망을 학습하여 로봇의 자세 제어를 구현한다. 신경망은 로봇의 자세에 따른 안정도의 관계를 학습하고 이를 이용하여 로봇의 안정도를 개선하기 위해서 로봇의 자세를 어떠한 방향으로 수정해야 할지를 결정한다.

    이하에서 로봇이 이족 보행을 하는 것으로 가정한다. 즉, 보행 수단을 2개의 발로 가정한다.

    도 4는 본 발명이 적용되는 로봇의 조인트 및 링크 구조의 일 예를 도시한 것이다.

    이때, 회전축은 원통형으로 표시했으며, 링크는 굵은 선으로 표시한다. 로봇은 전체 19자유도로 구성되어 있으며, 하체는 12자유도, 상체는 7자유도로 구성되어 있다. 상체는 보행 이외의 동작을 구현하기 위해 제작하였으며 하체의 조인트만을 고려한다. 로봇의 한쪽 다리는 골반에 3자유도와 무릎의 1자유도, 발목의 2자유 도로서 전형적인 이족 보행로봇의 구조를 갖는다. 로봇의 무릎은 뒤로 구부러져 있는 형태로 일반적인 인간형 보행로봇이 아닌 조족형 보행로봇의 형태를 갖는다. 이것은 단순히 형태의 차이일 뿐 보행의 특성이나 제작의 난이도에 큰 차이는 없다.

    각 조인트의 회전축은 서로 수직관계에 있으며 이는 기구학적으로 간단하도록 하여 해석을 쉽게 하기 위함이다.

    도 5는 도 4에 따라 구성한 이족 보행로봇의 일 예이다.

    도 5에서 로봇에 사용된 액추에이터는 RC 서보모터이다. RC 서보모터는 내부에 DC 모터와 감속기어, 제어기가 내장되어 있어서 모터를 구동하기 위한 별도의 회로나 드라이버가 필요 없다. 전원과 제어 신호만 인가하면 손쉽게 구동이 가능하기 때문에 로봇의 제작 시간과 노력을 크게 줄일 수 있는 장점이 있다. 그러나 외부에서 가해지는 부하에 의해 약간의 변형이 생길 수 있으며 각도를 제어할 수는 있지만 각속도와 각 가속도를 정확히 제어할 수 없는 단점이 있다. 이러한 액추에이터 제어에서의 불확실한 특성을 보완하기 위해 로봇의 안정도를 개선하기 위한 제어가 필요하다.

    도 6은 도 5의 기구 해석을 위한 좌표계 설정 과정을 도시한 것이다.

    도 6은 제작된 로봇의 기구 해석을 위해 한쪽 다리에 대해 좌표계를 설정한 모습이다. 또한 제작된 로봇의 크기에 맞게 링크의 길이를 나타내었으며 단위는 mm이다. 또한, 도 6을 이용해 얻어낸 DH 파라미터는 아래 표 1은 제작된 로봇의 각 좌표계 사이의 DH 파라미터를 나타낸다.

    좌표계 a d
    0-1 0 -26.25 0
    1-2 90 0 0
    2-3 -90 -45 0
    3-4 0 -60 0
    4-5 0 -51 0
    5-6 90 -35.5 0

    표 1의 각 좌표계 사이의 DH 파라미터식은 표 1의 DH 파라미터를 이용해 얻어진 좌표계 사이의 변환 행렬을 나타낸다. 여기서

    는 로, 는 로 줄여서 나타낸다. 이렇게 얻어진 변환 행렬과 수치적인 방법을 이용하여 로봇의 보행 패턴을 만들어 낸다. 로봇의 보행 패턴은 시간에 따른 로봇 각 부위의 이동 경로를 설정하고 이러한 경로에 따른 조인트들의 각도값을 구함으로써 구할 수 있다. 로봇이 보행을 하기 위해서는 발을 들어 올려서 보폭만큼 앞으로 내딛는 동작 및 앞으로 내딛은 발을 뒤로 밀어서 로봇이 앞으로 나아가는 동작이 필요하다.

    이 외에도 단순히 좌우 무게중심 이동을 위한 골반과 발목의 요우(yaw)에 해당하는 조인트인

    와 은 단순한 연산에 의해 구할 수 있으므로 기구학을 사용하지 않는다.

    발을 들어 올려서 보폭만큼 앞으로 내딛는 동작에 대해, 역기구학을 이용해 발의 위치에 따른 관절의 각도를 구함으로써 로봇이 한 발을 내딛는 동안의 보행패턴을 구할 수 있다.

    로봇의 발끝이 움직이는 과정은 다음과 같다. 먼저, 가속을 하면서 발을 들어 올린다. 다음, 1/4원 모양의 궤적을 따라 등속도로 진행 방향을 정면으로 바꾼다. 다음, 등속도로 정면으로 나아간다. 다음, 1/4원 모양의 궤적을 따라 등속도로 진행 방향을 아래로 내린다. 마지막으로, 감속을 하면서 지면에 접촉한다.

    만약 발을 들어올리는 순간과 지면에 접촉하는 순간에 가속 및 감속을 하지 않으면 앞으로 내딛는 발로 땅을 찰 수 있으므로 보행이 불안정해질 수 있다. 여기서, 보폭 l과 발을 들어올리는 높이 h는 변수로 두어 사용자가 임의로 변경하여 로봇의 보행 패턴을 생성할 수 있도록 한다.

    도 6에서 설정된 골반 중심의 기준 좌표계 {0}으로 표현한 발끝의 좌표는 변환행렬을 이용하여 나타낼 수 있다. 여기서 직진 보행중

    은 0으로 고정되어 있으며, 한 발을 내딛는 과정에서는 좌우 무게중심 이동을 위한 조인트 각도인 , 은 일정한 값으로 고정되어 있다. 또한 발바닥은 항상 수평을 유지한다는 가정에 의해 발바닥의 위치와 발목의 상대적인 위치는 항상 일정하다. 즉, 한 발을 내딛는 과정에서 찾아야 할 조인트 각도는 와 이며, 는 발바닥이 수평을 유지하기 위해 와 의 값에 의해 정해진다. 또한, 발바닥의 위치가 아닌 발목의 위치를 찾음으로써 보행패턴을 구할 수 있다.

    임의의 시점에서의

    와 의 값을 찾기 위해서는 이웃하는 점 사이에서는 와 가 비슷한 값을 갖는다는 가정이 필요하다. 처음에는 로봇의 발끝의 위치가 바닥과 가장 가까운 점에 있게 된다. 이 점에서의 와 는 보행을 시작할때의 값이므로 로봇의 초기 자세로부터 이미 알고 있는 값이다. 그러므로 과 는 다음의 수학식 22에 의해 구할 수 있다.

    여기서

    는 기준좌표계 {0}으로 표현한 발목의 위치이며 는 좌표계{4}로 표현한 좌표계{5}의 원점이다. 이 값은 무릎과 발목 사이의 링크의 길이에 의해 정해지며 의 상수값을 갖는다. 는 각 좌표계간의 변환 행렬이다. 수학식 22에서 초기의 와 에 를 더한 후 발목의 위치 를 구한다. 이렇게 해서 얻어진 발목의 위치 중 다음의 위치와 가장 가까운 위치에 오는 값을 그 점에서의 조인트 각도로 선택한다. 이러한 과정을 모든 발목의 위치에 대해 수행하여 각 위치에서의 와 의 값을 구한다. 또한, 앞으로 내딪은 발을 뒤로 미는 동작 역시 같은 과정을 통해 시간에 따른 각 조인트의 각도 를 구한다.

    도 7은 도 5의 시간에 따른 조인트 각도를 나타내는 그래프이다.

    이와 같은 과정을 통해 구해진 한쪽 다리에 대한 조인트들의 각도값의 변화는 도 7과 같다. 도 7은 로봇이 두 걸음을 걷는 시간동안 한쪽 다리의 조인트들의 각도 변화를 나타낸 그래프이다. 위에서부터 순서대로 도 6에서의 조인트 {2}, {3}, {4}, {5}, {6}의 각도 변화를 나타내고 있으며 직진 보행중에는 조인트 {1}의 각도

    은 0으로 고정되어 있으므로 표시하지 않았다. 이 값들은 제작된 로봇 내의 마이크로 프로세서의 메모리에 저장되며 각 액추에이터로 보내진다. 각 액추에이터는 이 값에 해당하는 각도를 유지함으로써 로봇이 동작하고, 로봇이 보행을 한다.

    도 8은 도 5의 보행 수단의 일부에 부착된 센서를 도시한 것이다.

    압력 센서는 압력 감지 저항(FSR : force sensing resistor)과 같은 압력에 따라 저항의 크기가 변하는 소자를 이용할 수 있다. 이를 이용하면, 간단한 회로를 이용해서 압력값과 선형적으로 비례하는 출력을 얻어낼 수 있다.

    또한, 로봇의 발바닥에 압력 감지 저항을 부착하고 그 위에 충격의 완화 및 물리적인 노이즈를 제거하기 위해 쿠션을 부착할 수 있다. 쿠션은 마찰계수가 크기 때문에 쿠션 위에는 아크릴판을 붙여 수평방향의 마찰력을 제거하여 수직방향의 반력만을 측정하게 할 수 있다.

    센서의 출력값은 10비트의 A/D컨버터를 이용해 읽을 수 있다. A/D컨버터의 오차 범위는 최하 비트의 크기이다.

    도 9는 도 5의 로봇을 이용하여 측정한 균형점 경로를 나타내는 그래프이다.

    도 9에서 샘플링 주기는 50ms이다. 측정에 의해 얻어진 균형점의 경로는 매우 불규칙하며 로봇이 불안정해 질 수 있음을 알 수 있다.

    도 10은 도 5의 균형점을 중심으로 로봇을 개략적으로 도시한 것이다.

    로봇의 전체적인 동작에 영향을 받지 않고 모든 동작에서 일반화된 자세 제어가 가능하도록 로봇을 측면과 정면에 대해 각각 1자유도를 갖는 도립진자로 간략화할 수 있다.

    간략화한 로봇의 정면에서, 골반과 발목의 요우(yaw)에 해당하는 조인트인 로봇이 보행을 할 때에 좌우 무게중심 이동을 위한 조인트이다. 이는 도 6의

    와 에 해당한다. 양쪽 다리의 , , , 에 해당하는 조인트는 직진 보행시 동일한 크기의 각도로 움직이기 때문에 네 조인트에 같은 크기의 를 더해서 로봇의 x축 방향 즉, 로봇의 좌우방향으로 무게중심을 이동하여 균형점의 위치를 변화시킬 수 있다.

    간략화한 로봇의 측면에서, 골반의 피치(pitch)에 해당하는

    , 조인트는 로봇이 보행하는 동안 항상 로봇의 상체가 수직을 유지하도록 하는 특성을 갖는다. 이를 이용해 , 에 같은 크기의 를 더해서 로봇의 y축 방향 즉, 로봇의 앞뒤방향으로 무게중심을 이동하여 균형점의 위치를 변화시킬 수 있도록 한다.

    이외의 조인트들은 보행을 하는 동안 상체에 대해서 위치와 방향이 변하기 때문에 일반화된 각도 변화를 적용시킬 수 없다. 그러나 위의 조인트 각도들은 로봇이 보행하는 도중에 항상 같은 크기의 각도로 움직이거나 회전축이 일직선상에 있기 때문에 값을 변화시켜도 로봇의 동작에 큰 영향을 미치지 않으면서 균형점의 위치를 변화시킬 수 있다.

    본 발명의 일 실시예에 따른 로봇의 자세 제어 장치는 측정된 균형점의 x축 성분과 y축 성분을 입력으로 하고, 골반 조인트의 각도를 조정하기 위한 값

    와 를 출력으로 하는 2입력, 2출력의 다층 퍼셉트론을 이용할 수 있다.

    도 11은 본 발명의 일 실시예에 따른 2입력 및 2출력의 신경망의 구조를 도시한 것이다.

    이때, 은닉층의 개수는 하나이며, 은닉층에서의 뉴런의 수는 10개이다.

    도 12는 본 발명에 따른 신경망을 이용하는 로봇의 자세 제어 장치의 블럭도이다.

    사용자가 로봇의 보폭(step length)과 보행시 발을 들어올리는 높이(foot lift height)을 정하면 PC에서 로봇의 보행 패턴

    를 생성한다.

    보행패턴 테이블(1210)은 위와 같이 생성된 보행 패턴을 저장한다. 보행패턴 테이블(1210)은 로봇에 내장된 마이크로 컨트롤러 내부의 메모리일 수 있다. 보행 패턴 테이블(1210)에 저장된 보행 패턴은 복수의 액추에이터(1260)에 전송된다.

    복수의 액추에이터(1260)는 보행 패턴 및 조인트각 조정값에 따라 동작한다. 로봇은 액추에이터(1260)의 동작에 따라 동작 및 보행한다.

    복수의 압력센서(1220)는 액추에이터(1260)의 동작에 따라 로봇의 보행수단에 가해지는 압력의 변화를 측정한다. 복수의 압력센서(1220)는 인가되는 압력에 대응하는 전기적인 센서 신호를 생성한다.

    균형점 연산부(1230)는 센서 신호를 이용하여 균형점의 위치를 연산한다. 균형점 연산부(1230)에 의해 연산된 균형점의 위치와 미리 정해져 있는 이상적인 균형점의 위치와의 차이를 균형점 오차로 정의한다.

    오차 생성부(1240)는 균형점 연산부(1230)에 의해 연산된 균형점의 위치와 미리 정해져 있는 이상적인 균형점의 위치와의 차이를 연산한다.

    신경망(1250)은 균형점 오차를 이용하여 로봇의 자세를 어떠한 방향으로 수정해야 할지를 결정하여 현재 로봇의 자세를 수정한다. 이러한 자세의 수정은 균형점 에러를 이용해

    와 를 연산하고, 이 값들을 해당되는 조인트 각도에 더해줌으로써 이루어진다.

    신경망을 학습하는 과정은 다음과 같다. 이미 만들어져 있는 보행 패턴

    에 임의의 값을 가지는 , 를 빼주어 보행 패턴을 변경하고, 이렇게 변경된 보행 패턴을 로봇에 적용시킨다. 이때 측정된 균형점의 위치와 이상적인 균형점 의 차이를 신경망의 입력으로 한다. 이 입력에 대해 얻어진 신경망의 출력을 , 와 비교하여 이와 같아지도록 학습한다. , 값을 빼지 않은 즉, 이미 만들어져 있는 보행패턴을 로봇에 적용시켰을 경우 로봇의 균형점 경로가 원하는 이상적인 경로라는 가정하에 신경망을 학습한다. 이로 인해 도 10의 조인트의 각도값에 , 를 빼주었을 경우 균형점의 위치가 어떻게 변하는지를 신경망이 학습한다. 이를 통해 신경망이 균형점의 에러가 0이 되도록 하는 , 를 출력한다.

    신경망은 역전파 알고리즘을 이용하여 학습하며, 로봇이 보행을 하면서 매 샘플링 시간마다 학습을 한다. 바람직하게는, 학습 과정에서의 샘플링 시간은 학습이 완료된 과정에서의 샘플링 시간보다 느리게 할 수 있다. 이와 같이 하면 비슷한 입/출력 데이터에 대해 계속적인 학습을 할 경우에 생기는 오버피팅(overfitting)을 방지할 수 있다.

    도 13은 도 12의 자세 제어 장치를 구비한 로봇의 블럭도이다.

    보행패턴 테이블(1310)은 소정의 보행 패턴값을 저장한다.

    복수의 압력 센서(1320)는 보행 수단의 일부에 부착되어 인가되는 압력에 대응하는 전기적인 센서 신호를 생성한다. 균형점 연산부(1330)는 복수의 압력 센서(1320)에 의해 생성되는 센서 신호를 이용하여 균형점을 연산한다. 오차 생성부(1340)는 연산된 균형점과 미리 저장된 소정의 균형점 사이의 차인 균형점 오차 를 생성한다. 신경망(1350)은 복수의 뉴런들로 구성된다. 신경망(1350)은 복수 뉴런들의 가중치들을 균형점 오차에 부여하여 조인트각 조정값을 생성한다. 또한, 신경망(1350)은 복수의 액추에이터(1360) 동작 중 생성된 균형점 오차에 따라 역전파 알고리즘을 수행하여 상기 가중치들을 변경시킨다. 복수의 액추에이터(1360)는 조인트각 조정값 및 보행 패턴값을 합산한 제어 신호에 따라 동작한다. 복수의 액추에이터(1360)는 제어 신호에 따라 보행 수단을 동작시킨다.

    도 14는 도 13에서 학습 횟수에 따른 에러의 수렴 과정을 나타내는 그래프이다.

    이러한 과정을 통해 신경망이 조인트각 조정값(

    , )과 로봇의 안정도 사이의 관계를 모델링할 수 있다.

    도 15는 본 발명의 다른 실시예에 따른 시스템 구성도이다.

    하나의 마이크로 컨트롤러는 보행패턴 테이블(1510), 신경망(1550), 미리 저장된 균형점(1531), 균형점 연산부(1530), ADC(아날로그-디지털 컨버터, 1521)를 포함할 수 있다.

    마이크로 컨트롤러는 각 조인트의 액추에이터(1560)로 입력되는 제어신호를 생성하고, ADC(1521)을 이용하여 보행수단의 압력 센서(1520)로부터 들어온 값을 샘플링하며, 압력 센서(1520)의 센서 신호로부터 로봇의 균형점의 위치를 연산하고, 신경망(1550)의 학습 및 에러값으로부터 조인트각 조정값을 연산하며, PC(1570)로 센서값, 균형점의 위치값을 전송한다.

    로봇의 마이크로 컨트롤러에서 연산된 센서 값과 균형점의 위치는 RS-232 통신을 통해 PC로 전송될 수 있다. 이에 따라, 시스템 사용자가 현재 로봇의 상태를 모니터링 할 수 있다. 다음의 표 2에는 본 발명의 일 예로 제작된 이족 보행로봇의 사양이다.

    높이 325mm
    무게 1.5kg
    프로세서 40MHz, 16bit, ARM7 core
    액추에이터 RC서보모터, 토크:13kg cm
    보폭 48mm
    보행 속도 48mm/1.4sec

    도 16은 본 발명에 따른 신경망을 이용하는 로봇의 자세 제어 방법의 흐름도이다.

    먼저, 소정의 보행 패턴값에 따른 로봇의 동작 중 압력 센서로 인가되는 압력을 이용하여 균형점을 측정한다(1610 과정). 다음, 측정된 균형점과 미리 저장된 균형점 사이의 차인 균형점 오차를 생성하여 소정의 신경망에 출력한다(1620 과정). 신경망에 균형점 오차가 입력되면, 신경망에 포함된 복수 뉴런들의 가중치들을 상기 균형점 오차에 부여하여 조인트각 조정값을 생성한다(1630 과정). 다음, 조인트각 조정값 및 상기 보행 패턴값을 합산한 제어 신호에 따라 액추에이터를 동작시킨다(1640 과정). 마지막으로, 액추에이터 동작 중 생성된 균형점 오차에 따라 역전파 알고리즘을 수행하여 복수 뉴런들의 가중치들을 변경시킨다(1650 과정).

    이하에서, 수치적인 제어의 경우 신경망을 이용한 제어와 동일한 방법으로 로봇을 도립진자로 단순화하고 상체를 추가적인 링크로 가정한다. 즉 상체의 질량, 상체의 위치 및 가속도와 균형점과의 관계를 모델링한다.

    도 17은 본 발명의 또다른 실시예에 따른 로봇의 평지 보행을 도시한 것이고, 도 20은 본 발명의 또다른 실시예에 따른 로봇의 +10°의 오르막 경사면 보행을 도시한 것이며, 도 23은 본 발명의 또다른 실시예에 따른 로봇의 -10°의 내리막 경사면 보행을 도시한 것이고, 도 26은 본 발명의 또다른 실시예에 따른 로봇의 10°의 측방향 경사면 보행을 도시한 것이다.

    도 18은 도 17의 평지 보행에서의 균형점 경로를 나타내는 그래프이고, 도 22는 도 20의 오르막 보행에서의 균형점 오차를 나타내는 그래프이며, 도 25는 도 23의 내리막 보행에서의 균형점 오차를 나타내는 그래프이고, 도 28은 도 26의 측방향 경사면 보행에서의 균형점 오차를 나타내는 그래프이다.

    도 18, 도 19, 도 21, 도 22, 도 24, 도 25, 도 27 및 도 28은 제어를 하지 않았을 경우(Without control), 동역학 해석에 의한 수치적인 제어를 적용했을 경우(With numerical control), 본 발명에 따라 신경망을 이용한 제어를 적용했을 경우를 도시한다.

    도 18, 도 21, 도 24, 도 27에서 원하는 균형점의 경로(Desired ZMP)는 점선으로 표현하였으며 측정된 균형점의 경로는 실선으로 표시한다.

    로봇에 자세 제어를 적용하지 않았을 경우(Without control) 균형점의 경로가 불규칙하며 원하는 균형점의 경로(Desired ZMP)와 크게 차이가 나는 것을 알 수 있다. 본 발명에 따라 신경망을 이용해서 제어했을 경우가 수치적인 제어(With numerical control)보다 원하는 균형점 경로에 훨씬 가까움을 알 수 있다.

    도 19는 도 17의 평지 보행에서의 균형점 오차를 나타내는 그래프이고, 21은 도 20의 오르막 보행에서의 균형점 경로를 나타내는 그래프이며, 도 24는 도 23의 내리막 보행에서의 균형점 경로를 나타내는 그래프이고, 도 27은 도 26의 측방향 경사면 보행에서의 균형점 경로를 나타내는 그래프이다.

    도 19, 도 22, 도25, 도28은 보행시 시간에 대한 균형점의 오차를 x축 성분과 y축 성분으로 나누어 나타낸다. 위쪽의 그래프는 x축에 대한 균형점의 오차, 아래쪽 그래프는 y축에 대한 균형점의 오차를 나타낸다. 한 그래프 내에서 제어를 하지 않았을 경우(Without control)는 실선으로, 수치 제어에 의한 결과(With numerical control)는 점선으로, 본 발명에 따라 신경망을 이용한 제어의 결과는 x표시가 마킹된 선으로 나타낸다. 이 그래프가 0에 가까울수록 로봇의 균형점 경로는 원하는 경로에 가까우며 안정적인 보행을 한다고 할 수 있다. 또한 전체적으로 x축 방향의 오차가 y축 방향의 오차보다 크기가 큰 것을 알 수 있는데, 이는 로봇이 좌우로 무게중심을 이동하면서 균형점의 위치가 이동하는 폭이 크기 때문에 오차의 폭 또한 커지기 때문이다.

    도 19, 도 22, 도25, 도28에서 알 수 있듯이 두 가지의 자세 제어를 적용했을 경우 제어를 하지 않았을 때(Without control)보다 전체적으로 오차의 범위와 변화 정도가 줄어들었으며 수치 제어(With numerical control)에 비해 본 발명에 따라 신경망을 이용한 제어를 적용했을 경우가 더 큰 폭으로 줄어들었음을 알 수 있다.

    표 3은 제어 성능을 수치적으로 비교하기 위해서 평지와 세 종류의 경사면에 대한 균형점의 오차를 RMSE(root mean square error)값으로 나타낸다. 아래 표 3의 값을 통해 본 발명에 따라 신경망을 이용한 제어는 동역학 해석을 이용한 제어(With numerical control)에 비해 성능이 우수함을 알 수 있다.

    제어 없음 수치 제어 본 발명에 따른 신경망 제어
    평면 x축 10.7973 7.3230 2.7914
    y축 5.0807 3.2781 1.4495
    오르막(+10) x축 9.6741 7.0494 2.9514
    y축 11.7984 3.5885 1.4923
    내리막(-10) x축 13.0752 8.6287 3.5209
    y축 19.3734 10.7212 3.8024
    측면경사(10) x축 22.6197 5.6260 4.8508
    y축 9.6839 4.9707 1.4890

    이 외에도 제작된 이족 보행로봇은 외부에서 가해지는 힘에 대해 반응하여 균형을 유지할 수 있다. 즉, 정면 및 후면, 측면에서 본 발명에 따른 로봇에 힘을 가했을 경우 밸런스를 유지하기 위해서, 본 발명에 따른 로봇은 힘의 반대 방향으로 반력을 가할 수 있다.

    바람직하게는, 본 발명의 신경망을 이용하는 로봇의 자세 제어 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체에 기록하여 제공할 수 있다.

    본 발명은 소프트웨어를 통해 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.

    컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 테이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD-ROM, DVD+ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.

    본 발명은 도면에 도시된 일 실시예를 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.

    상술한 바와 같이, 본 발명에 의하면, 신경망을 이용하여 복잡하고 불확실한 특성을 갖는 로봇을 제어함으로써, 신경망 스스로 로봇의 특성을 학습하고 안정도를 개선할 수 있고, 기구적인 부분에 오차가 있어도 안정적인 보행을 구현할 수 있으며, 로봇에 대한 정확한 모델링을 필요로 하지 않고, 이로 인해 로봇의 제작 난이도를 줄일 수 있고, 낮은 가격의 액추에이터나 부품을 사용할 수 있게 되어 로봇의 제작 기간이나 제작비용을 절감할 수 있는 효과가 있다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈