KR20130063230A - 보행 로봇 및 그 제어 방법 - Google Patents

보행 로봇 및 그 제어 방법 Download PDF

Info

Publication number
KR20130063230A
KR20130063230A KR1020110129645A KR20110129645A KR20130063230A KR 20130063230 A KR20130063230 A KR 20130063230A KR 1020110129645 A KR1020110129645 A KR 1020110129645A KR 20110129645 A KR20110129645 A KR 20110129645A KR 20130063230 A KR20130063230 A KR 20130063230A
Authority
KR
South Korea
Prior art keywords
swing
torque
axis
joint
foot
Prior art date
Application number
KR1020110129645A
Other languages
English (en)
Inventor
이민형
박재호
노경식
이주석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110129645A priority Critical patent/KR20130063230A/ko
Priority to US13/693,565 priority patent/US20130144439A1/en
Priority to JP2012266653A priority patent/JP2013119158A/ja
Publication of KR20130063230A publication Critical patent/KR20130063230A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D57/00Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
    • B62D57/02Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
    • B62D57/032Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
    • 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/085Force or torque sensors

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Manipulator (AREA)

Abstract

본 발명은 보행 로봇 및 그 제어 방법에 관한 것으로, 스윙 다리의 착지 시 미끄러짐을 방지할 수 있는 보행 로봇 및 그 제어 방법에 관한 것이다. 본 발명의 일 실시예에 따른 보행 로봇 제어 방법은 복수의 다리의 동작 상태에 따라 상기 복수의 다리에 마련된 복수의 관절부 별로 상기 로봇이 보행하는데 필요한 목표 각도 궤적을 생성하는 단계; 상기 복수의 다리에 마련된 복수의 관절부 별로 상기 목표 각도 궤적을 추종하는 토크를 계산하는 단계; 상기 복수의 다리 중에서 스윙 다리와 연결된 스윙 발에 미끄러짐이 발생하였는지를 판단하는 단계; 상기 판단 결과에 따라, 상기 스윙 발에서 감지된 속도에 근거하여 상기 스윙 다리의 각 관절부에 제공할 최종 토크를 계산하는 단계; 및 상기 계산된 최종 토크를 상기 스윙 다리의 각 관절부에 제공하는 단계를 포함한다.
본 발명에 따르면 스윙 발의 착지 시 미끄러짐 발생 여부를 감지하고, 감지 결과에 따라 스윙 다리의 각 관절에 가해지는 토크를 제한함으로써, 보행 로봇의 안정적인 보행을 실현할 수 있다.

Description

보행 로봇 및 그 제어 방법{Walking robot and control method for thereof}
본 발명은 보행 로봇 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 스윙 발의 착지 시 미끄러짐을 방지할 수 있는 보행 로봇 및 그 제어 방법에 관한 것이다.
인간과 유사한 관절 체계를 가지고 인간의 작업 및 생활 공간에서 인간과 공존하며 보행하는 로봇의 연구 개발이 활발하게 진행되고 있다. 보행 로봇은 이족 또는 3족 이상의 복수의 다리를 가지는 다족 보행 로봇으로 구성되며, 안정적인 보행을 위해 각 관절에 위치한 전기 모터, 유압 모터 등의 액츄에이터를 구동해야 한다. 액츄에이터의 구동 방식은 각 관절의 지령(command) 각도, 즉 지령(command) 위치를 주고 그것을 추종 제어하는 위치 기반의 ZMP(Zero Moment Point) 제어 방식과, 각 관절의 지령(command) 토크를 주고 그것을 추종 제어하는 토크 기반의 FSM(Finite State Machine) 제어 방식을 들 수 있다.
ZMP 제어 방식은 ZMP 구속 조건, 즉 ZMP가 지지하는 다리로 이루어진 지지다각형 내의 안전 영역(한발로 지지하고 있을 경우에는 그 발의 영역, 양발로 지지하고 있을 경우에는 양발의 영역을 포함하는 convex polygon 내에서 안전을 고려하여 작게 설정한 영역을 의미한다)에 존재해야 한다는 조건을 만족하도록 보행 방향, 보행 폭, 보행 속도 등을 미리 설정하고, 이 설정에 대응하는 각 다리의 보행 패턴을 생성하며, 그 보행 패턴에 따라 각 다리의 보행 궤적을 계산한다. 또한 계산된 보행 궤적의 역기구학(Inverse Kinematics) 계산을 통해 각 다리의 관절의 각도를 계산하고, 각 관절의 현재 각도와 목표 각도에 기초하여 각 관절의 목표 제어 값을 계산한다. 또한 매 제어시간마다 각각의 다리가 계산된 보행 궤적을 추종하도록 하는 서보 제어(servo control)를 통해 구현된다. 즉, 보행 시 각 다리의 위치가 보행 패턴에 따른 보행 궤적을 정확히 추종하는지 검출하고, 각 다리가 보행 궤적을 이탈하면 모터의 토크를 조절하여 각 다리가 보행 궤적을 정확히 추종하도록 제어하여 보행하는 방식이다.
그러나 ZMP 제어 방식은 위치 기반의 제어 방법이기 때문에 정확한 위치 제어가 가능한 반면, ZMP를 제어하기 위해 각 관절의 정확한 각도 제어를 수행해야 하므로 높은 서보 게인을 필요로 한다. 이로 인해 높은 전류를 필요로 하기 때문에 에너지 효율이 낮고 관절의 강성이 커서 주위 환경에 큰 충격을 줄 수 있다. 또한 각 관절의 각도를 계산하기 위해선 기구학적 특이점(Kinematic Singularity)을 피해야 하므로 보행 중 무릎을 항상 굽힌 자세를 유지하게 되어 인간과 다른 부자연스러운 보행을 하게 된다.
이에 반해, FSM 제어 방식은 매 제어 시간마다 위치를 추종하여 보행하는 방식이 아니라 로봇의 각 동작 상태(State)를 미리 정의해 두고(Finite State), 보행 시 각 동작 상태(State)를 참조하여 각 관절의 목표 토크를 계산하고 이를 추종하도록 제어하여 보행하는 방식으로, 보행 중 각 관절의 토크를 제어하므로 낮은 서보 게인이 가능하여 에너지 효율이 높고 강성이 낮아서 주위 환경에 대해 안전하다. 또한 기구학적 특이점(Kinematic Singularity)을 피할 필요가 없으므로 인간과 같이 무릎을 편 상태의 자연스러운 보행이 가능하다.
그러나, FSM 제어 방식은 미리 정의된 동작 상태(State)에 의존하여 로봇의 보행을 제어하므로 보행 제어가 부적절하여 로봇이 균형을 잃을 수 있다. 따라서 보행 동작과 관계 없이 로봇의 균형을 잡기 위한 별도의 밸런싱(Balancing) 동작을 하게 된다. 로봇의 밸런싱 동작을 위해 안정적인 균형을 구현할 수 있는 지령 토크를 구해야 하는데, 지령 토크를 구하기 위해서는 매우 복잡한 동적 방정식(Dynamics Equation)을 풀어야 하므로 현재까지 6자유도 관절 구조의 다리를 가진 로봇에서 구현되지 못하였다.
본 발명이 해결하고자 하는 과제는 스윙 발의 착지 시 미끄러짐이 발생하더라도 안정적인 보행이 가능한 보행 로봇 및 그 제어 방법을 제공하는 것이다.
그러나 본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 달성하기 위하여 본 발명의 일 실시예에 따른 보행 로봇의 제어 방법은 복수의 다리의 동작 상태에 따라 상기 복수의 다리에 마련된 복수의 관절부 별로 상기 로봇이 보행하는데 필요한 목표 각도 궤적을 생성하는 단계; 상기 복수의 다리에 마련된 복수의 관절부 별로 상기 목표 각도 궤적을 추종하는 토크를 계산하는 단계; 상기 복수의 다리 중에서 스윙 다리와 연결된 스윙 발에 미끄러짐이 발생하였는지를 판단하는 단계; 상기 판단 결과에 따라, 상기 스윙 발에서 감지된 속도에 근거하여 상기 스윙 다리의 각 관절부에 제공할 최종 토크를 계산하는 단계; 및 상기 계산된 최종 토크를 상기 스윙 다리의 각 관절부에 제공하는 단계를 포함한다.
상기 스윙 발에 미끄러짐이 발생하지 않은 경우, 상기 계산된 토크를 상기 복수의 다리에 마련된 복수의 관절부에 각각 제공하는 단계를 더 포함한다.
상기 토크를 계산하는 단계는 상기 복수의 다리에 마련된 복수의 관절부 별로 롤 방향의 토크, 피치 방향의 토크, 및 요 방향의 토크 중 적어도 하나를 계산하는 단계를 포함한다.
상기 스윙 발에 미끄러짐이 발생하였는지를 판단하는 단계는 상기 스윙 발에서 감지된 하중과 사전 설정된 기준 하중을 비교하고, 상기 스윙 발에서 감지된 속도와 사전 설정된 기준 속도를 비교하는 단계; 및 상기 비교 결과에 따라 상기 스윙 발이 미끄러진 방향을 판단하는 단계를 포함한다.
상기 스윙 발이 미끄러진 방향을 판단하는 단계는 상기 스윙 발에서 감지된 Z축 방향의 하중이 Z축에 대한 기준 하중보다 작고, 상기 스윙 발에서 감지된 X축 방향의 하중이 X축에 대한 기준 하중보다 작으며, 상기 스윙 발에서 감지된 X축 방향의 속도가 X축에 대한 기준 속도보다 큰 경우, 상기 스윙 발이 피치 방향으로 미끄러진 것이라 판단하는 단계를 포함한다.
상기 최종 토크를 계산하는 단계는 상기 스윙 발이 피치 방향으로 미끄러진 경우, 상기 스윙 다리의 각 관절부로 제공할 피치 방향의 최종 토크를 계산하는 단계를 포함한다.
상기 스윙 다리의 각 관절부로 제공할 피치 방향의 최종 토크(Final_τpitch)는 상기 스윙 다리의 각 관절부로 제공할 피치 방향의 토크(τpitch)에, 상기 스윙 발에서 감지된 X축 방향의 속도(Velx)에 대한 상기 X축에 대한 기준 속도(Vx)의 비율(Vx/Velx)을 곱한 값인 것을 특징으로 한다.
상기 스윙 발이 미끄러진 방향을 판단하는 단계는 상기 스윙 발에서 감지된 Z축 방향의 하중이 Z축에 대한 기준 하중보다 작고, 상기 스윙 발에서 감지된 Y축 방향의 하중이 Y축에 대한 기준 하중보다 작으며, 상기 스윙 발에서 감지된 Y축 방향의 속도가 Y축에 대한 기준 속도보다 큰 경우, 상기 스윙 발이 롤 방향으로 미끄러진 것이라 판단하는 단계를 포함한다.
상기 최종 토크를 계산하는 단계는 상기 스윙 발이 롤 방향으로 미끄러진 경우, 상기 스윙 다리의 각 관절부로 제공할 롤 방향의 최종 토크를 계산하는 단계를 포함한다.
상기 스윙 다리의 각 관절부로 제공할 롤 방향의 최종 토크(Final_τroll)는 상기 스윙 다리의 각 관절부로 제공할 롤 방향의 토크(τroll)에, 상기 스윙 발에서 감지된 Y축 방향의 속도(Vely)에 대한 상기 Y축에 대한 기준 속도(Vy)의 비율(Vy/Vely)을 곱한 값인 것을 특징으로 한다.
상기 과제를 달성하기 위하여 본 발명의 일 실시예에 따른 보행 로봇은 복수의 다리의 동작 상태에 따라 상기 복수의 다리에 마련된 복수의 관절부 별로 상기 로봇이 보행하는데 필요한 목표 각도 궤적을 생성하는 목표 각도 궤적 생성부; 상기 복수의 다리에 마련된 복수의 관절부 별로 상기 목표 각도 궤적을 추종하는 토크를 계산하는 토크 계산부; 상기 복수의 다리 중에서 스윙 다리와 연결된 스윙 발에 미끄러짐이 발생하였는지를 판단하는 보행 상태 판단부; 상기 판단 결과에 따라, 상기 스윙 발에서 감지된 속도에 근거하여 상기 스윙 다리의 각 관절부에 제공할 최종 토크를 계산하는 토크 계산부; 및 상기 계산된 최종 토크를 상기 스윙 다리의 각 관절부에 제공하는 제어부를 포함한다.
상기 제어부는 상기 스윙 발에 미끄러짐이 발생하지 않은 경우, 상기 계산된 토크를 상기 복수의 다리에 마련된 복수의 관절부에 각각 제공하는 제어부를 더 포함한다.
상기 토크 계산부는 상기 복수의 다리에 마련된 복수의 관절부 별로 롤 방향의 토크, 피치 방향의 토크, 및 요 방향의 토크 중 적어도 하나를 계산한다.
상기 보행 상태 판단부는 상기 스윙 발에서 감지된 하중과 사전 설정된 기준 하중을 비교하고, 상기 스윙 발에서 감지된 속도와 사전 설정된 기준 속도를 비교하여, 상기 스윙 발이 미끄러진 방향을 판단한다.
상기 보행 상태 판단부는 상기 스윙 발에서 감지된 Z축 방향의 하중이 Z축에 대한 기준 하중보다 작고, 상기 스윙 발에서 감지된 X축 방향의 하중이 X축에 대한 기준 하중보다 작으며, 상기 스윙 발에서 감지된 X축 방향의 속도가 X축에 대한 기준 속도보다 큰 경우, 상기 스윙 발이 피치 방향으로 미끄러진 것이라 판단한다.
상기 토크 계산부는 상기 스윙 발이 피치 방향으로 미끄러진 경우, 상기 스윙 다리의 각 관절부로 제공할 피치 방향의 최종 토크를 계산한다.
상기 스윙 다리의 각 관절부로 제공할 피치 방향의 최종 토크(Final_τpitch)는 상기 스윙 다리의 각 관절부로 제공할 피치 방향의 토크(τpitch)에, 상기 스윙 발에서 감지된 X축 방향의 속도(Velx)에 대한 상기 X축에 대한 기준 속도(Vx)의 비율(Vx/Velx)을 곱한 값인 것을 특징으로 한다.
상기 보행 상태 판단부는 상기 스윙 발에서 감지된 Z축 방향의 하중이 Z축에 대한 기준 하중보다 작고, 상기 스윙 발에서 감지된 Y축 방향의 하중이 Y축에 대한 기준 하중보다 작으며, 상기 스윙 발에서 감지된 Y축 방향의 속도가 Y축에 대한 기준 속도보다 큰 경우, 상기 스윙 발이 롤 방향으로 미끄러진 것이라 판단한다.
상기 토크 계산부는 상기 스윙 발이 롤 방향으로 미끄러진 경우, 상기 스윙 다리의 각 관절부로 제공할 롤 방향의 최종 토크를 계산한다.
상기 스윙 다리의 각 관절부로 제공할 롤 방향의 최종 토크(Final_τroll)는 상기 스윙 다리의 각 관절부로 제공할 롤 방향의 토크(τroll)에, 상기 스윙 발에서 감지된 Y축 방향의 속도(Vely)에 대한 상기 Y축에 대한 기준 속도(Vy)의 비율(Vy/Vely)을 곱한 값인 것을 특징으로 한다.
본 발명에 의한 보행 로봇 및 그 제어 방법에 따르면 다음과 같은 효과가 있다.
스윙 발의 착지 시 미끄러짐 발생 여부를 감지하고, 감지 결과에 따라 스윙 다리의 관절에 가해지는 토크를 제한함으로써, 보행 로봇의 안정적인 보행을 실현할 수 있다.
또한, 본 발명은 FSM 제어 및 토크 서보 제어 기반의 보행을 수행함으로써 낮은 서보 게인으로 보행이 가능하며 에너지 소비를 줄일 수 있다.
또한, 낮은 서보 게인은 각 관절의 저강성을 가지게 하므로 주위 환경과의 충돌시 충격을 감소시킬 수 있다.
또한, 무릎 펴기 보행이 가능한 인간형 보행을 구현하여 로봇의 인간 친화성을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 보행 로봇의 외관 구성도이다.
도 2는 도 1에 도시된 보행 로봇의 주요 관절 구조를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 보행 로봇의 제어 블럭도이다.
도 4는 고관절부의 회전각도 측정을 설명하기 위한 도면이다.
도 5는 무릎 관절부의 회전각도 측정을 설명하기 위한 도면이다.
도 6은 발목 관절부의 회전각도 측정을 설명하기 위한 도면이다.
도 7은 FSM 기반 보행 시, 보행 로봇의 동작 상태와 각 동작 상태의 제어 동작을 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 보행 로봇 제어 개념을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 보행 로봇 제어 방법을 도시한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예에 의한 보행 로봇 및 그 제어 방법에 대해 설명한다. 도면에서 동일한 도면 부호는 동일한 구성 요소를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 보행 로봇의 외관 구성도이다.
도 1에 도시한 바와 같이, 보행 로봇(100)은 상체와 하체로 이루어진다. 상체는 머리(110), 목(120), 몸통(130), 팔(140R, 140L), 손(150R, 150L)으로 이루어지며, 하체는 복수의 다리(160R, 160L) 및 발(170R, 170L)로 이루어진다.
보행 로봇(100)의 상체는 머리(110)와, 머리(110)의 하부에 목(120)을 통해 연결된 몸통(130)과, 몸통(130)의 상부 양측에 연결된 두 개의 팔(140R, 140L)과, 이 두 개의 팔(140R, 140L)의 말단에 각각 연결된 손(150R, 150L)으로 이루어진다.
보행 로봇(100)의 하체는 상체의 몸통(130) 하부 양측에 연결된 두 개의 다리(160R, 160L)와, 두 개의 다리(160R, 160L) 말단에 각각 연결된 발(170R, 170L)로 이루어진다.
여기서 머리(110), 두 개의 팔(140L, 140R), 두 개의 손(150L, 150R), 두 개의 다리(160L, 160R), 두 개의 발(170L, 170R)은 각각 관절을 통해 일정 수준의 자유도를 갖는다.
도 1에 도시된 참조 부호에서 "R"은 보행 로봇(100)의 우측(Right)을 나타내고, "L"는 보행 로봇(100)의 좌측(Left)을 나타낸다. 그리고 COG(Center Of Gravity)는 보행 로봇(100)의 무게 중심을 나타낸다.
도 2는 도 1에 도시된 보행 로봇의 주요 관절 구조를 나타낸 도면이다.
머리(110)에는 주위의 영상을 획득하는 카메라(111)와, 사용자 음성을 검출하는 마이크로폰(112)이 구비된다. 머리(110)는 목(120)를 통해 몸통(130)과 연결된다.
목(120)은 복수의 회전 관절(121, 122, 123)을 포함한다. 구체적으로, 목 관절부(120)는 요우 방향(yaw, Z축 회전)의 회전 관절(121), 피치 방향(pitch, Y축 회전)의 회전 관절(122) 및 롤 방향(roll, X축 회전)의 회전 관절(123)을 포함하여 3 자유도를 가진다. 여기서 목 관절부(120)의 회전 관절(121, 122, 123)은 머리 회전용 모터(미도시)와 각각 연결된다.
몸통(130)의 양 측에는 두 개의 팔(140L, 140R)을 연결하는 어깨 관절부(131)가 각각 마련되어 있고, 가슴과 허리 사이에는 가슴이 허리에 대해 회전할 수 있도록 요우(Yaw) 방향의 회전 관절부(132)가 마련되어 있다.
또한 몸통(130)에는 기울기 감지부(221)가 설치된다. 기울기 감지부는 예를 들어, 포즈 센서(pose sensor)를 포함할 수 있다. 기울기 감지부(221)는 연직축에 대한 상체(101)와 두 다리(160L, 160R)의 기울기인 경사 각도와 그 각속도를 검출하여 자세 정보를 발생시킨다. 기울기 감지부(221)는 몸통(130)뿐만 아니라 두 다리(160L, 160R)에 설치될 수도 있다.
보행 로봇(100)의 두 개의 팔(140L, 140R)은 각각 상박 링크(141), 하박 링크(142), 팔꿈치 관절부(143), 팔목 관절부(144)를 포함한다.
각각의 상박 링크(141)는 어깨 관절부(131)를 통해 몸통(130)과 연결되며, 팔꿈치 관절부(143)를 통해 하박 링크(142)와 연결된다. 각각의 하박 링크(142)는 손목 관절부(144)를 통해 손(150R, 150L)과 연결된다.
팔꿈치 관절부(143)는 피치 방향의 회전 관절(143a)과, 요우 방향의 회전 관절(143b)를 포함하여 2 자유도를 가진다.
손목 관절부(144)는 피치 방향의 회전 관절(144a)과 롤 방향의 회전 관절(144b)을 포함하여 2 자유도를 가진다.
손(150R, 150L)에는 5개의 손가락(151)이 마련되어 있고, 각 손가락(151)에는 모터에 의해 구동되는 다수의 관절(미도시)들이 설치될 수 있다. 이러한 손가락(151)은 팔(140R, 140L)의 움직임에 연동하여 물건을 파지하거나 특정 방향을 가리키는 것과 같은 다양한 동작을 실행한다.
보행 로봇(100)의 두 개의 다리(160R, 160L)는 각각 대퇴 링크(161), 하퇴 링크(162), 고관절부(163), 무릎 관절부(164), 발목 관절부(165), 두 개의 발(170L, 170R)를 포함한다.
대퇴 링크(161)는 고관절부(163)를 통해 몸통(130)과 연결되고, 무릎 관절부(164)를 통해 하퇴 링크(162)와 연결된다.
하퇴 링크(162)는 발목 관절부(165)를 통해 발(170L, 170R)과 연결된다.
고관절부(163)는 요 방향(yaw, Z축을 기준으로 회전)의 회전 관절(163a: 힙 요우 조인트)과, 피치 방향(pitch, Y축을 기준으로 회전)의 회전 관절(163b), 롤 방향(roll, X축을 기준으로 회전)의 회전 관절(163c: 힙 롤 조인트)을 포함하여 3 자유도를 가진다.
무릎 관절부(164)는 피치 방향의 회전 관절(164a)을 포함하여 1 자유도를 가진다.
발목 관절부(165)는 피치 방향의 회전 관절(165a)과 롤 방향의 회전 관절(165b)을 포함하여 2 자유도를 가진다.
이처럼 각각의 다리(160L, 160R)에는 세 개의 관절부 즉, 고관절부(160), 무릎 관절부(164), 및 발목 관절부(165)에 대해 6개의 회전 관절이 마련되므로, 두 개의 다리(160L, 160R) 전체에 대해서는 12개의 회전 관절이 구비된다.
한편, 발목 관절부(165)와 발(170L, 170R)의 사이에는 다축 힘/토크 센서(Multi-Axis Force and Torque Sensor: 222)가 각각 설치된다. 힘/토크 센서(222)는 발(170L, 170R)로부터 전달되는 힘의 3방향 성분(Fx, Fy, Fz)과 모멘트의 3방향 성분(Mx, My, Mz)을 측정함으로써 발(170L, 170R)의 착지 여부 및 발(170L, 170R)에 가해지는 하중을 검출한다.
또한 도면에 도시되어 있지는 않지만, 보행 로봇(100)의 각 관절에는 모터 등과 같은 액추에이터가 구비된다. 따라서 각 관절은 모터의 회전에 의해 적절히 회전 운동을 수행함으로써 다양한 동작을 구현할 수 이다.
보행 로봇(100)의 동작 전반을 제어하는 보행 제어부(도 3의 도면부호 "230" 참조)는 로봇(100)의 균형을 유지하면서 안정적이고 자연스러운 보행을 수행할 수 있다. 이에 대한 보다 구체적인 설명을 위해 도 3을 참조하기로 한다.
도 3은 본 발명의 일 실시예에 따른 보행 로봇의 제어 블럭도이다. 도 3에 도시된 바와 같이, 보행 로봇(100)은 감지부(220), 보행 제어부(230) 및 메모리부(240)를 포함할 수 있다.
감지부(220)는 로봇의 보행에 따른 변화를 감지하여 감지 결과를 보행 제어부(230)로 제공한다. 구체적으로, 감지부(220)는 로봇(100)의 상체의 기울기를 감지하는 기울기 감지부(221), 로봇(100)의 두 발(170L, 170R)에 가해지는 하중을 감지하는 힘/토크 감지부(222), 로봇(100)의 두 발(170L, 170R)의 속도를 감지하는 속도 감지부(223)를 포함할 수 있다.
기울기 감지부(221)는 몸통(130)에 설치된다. 기울기 감지부(221)는 연직선에 대한 상체의 기울기인 피치, 롤, 요의 3개의 방향에 대한 회전 각도 및 회전 각속도를 감지한다. 이러한 기울기 감지부(221)는 관성을 측정하는 IMU(Inertial Measurement unit)으로 구현될 수 있다.
힘/토크 감지부(Multi-Axis Force and Torque Sensor: 222)는 다축 센서로 각 다리(160L, 160R)와 발(170R, 170L) 사이에 마련되고, 발(170L, 170R)에 가해지는 하중을 감지한다. 힘/토크 감지부(222)는 발(170L, 170R)에 전달되는 힘의 3방향 성분(Fx, Fy, Fz)과 모멘트의 3방향 성분(Mx, My, Mz)을 감지하여 보행 제어부(230)로 제공한다.
속도 감지부(223)는 두 발(170L, 170R)의 속도를 감지하여 보행 제어부(230)으로 제공한다.
상술한 바와 같은 감지부(220)는 고관절부(163), 무릎 관절부(164) 및 발목 관절부(165)의 회전각도를 감지할 수도 있다. 여기서 각 관절부(163, 164, 165)의 회전 각도는 각 관절부에 마련된 모터(미도시)의 회전수를 통해 알 수 있다. 각 모터(미도시)의 회전수는 각 모터에 연결된 인코더(Encoder, 미도시)를 통해 검출 가능하다.
각 관절부(163, 164, 165)의 회전각도를 측정하는 방법은 도 4 내지 도 6에 도시된 바와 같다. 도 4, 도 5 및 도 6은 각각 고관절부(163), 무릎 관절부(164) 및 발목 관절부(165)의 회전각도를 측정하는 방법을 설명하기 위한 도면으로, 로봇(100)의 오른쪽 측면을 기준으로 도시한 도면이다.
도 4를 참조하면, 고관절부(163)가 연직축을 기준으로 피치 방향으로 회전한 경우(즉, 오른쪽 다리(160R)를 몸체의 뒤쪽으로 뻗었을 때)에 측정되는 회전각도는 +θ이며, 그 반대 방향으로 회전한 경우(즉, 오른쪽 다리(160R)를 몸체의 앞쪽으로 뻗었을 때)에 측정되는 회전각도는 -θ인 것을 알 수 있다.
도 5를 참조하면, 무릎 관절부(164)는 연칙축을 기준으로 피치방향으로만 회전할 수 있는 것을 알 수 있으며, 이 때 측정되는 회전각도는 +θ인 것을 알 수 있다.
도 6을 참조하면, 발목 관절부(165)가 연직축을 기준으로 피치방향으로 회전한 경우(즉, 오른쪽 발(170R)을 뒤쪽으로 뻗었을 때)에 측정되는 회전각도는 +θ이며, 그 반대 방향으로 회전한 경우(즉, 오른쪽 발(170R)을 앞쪽으로 구부렸을 때)에 측정되는 회전각도는 -θ인 것을 알 수 있다.
다시 도 3을 참조하면, 보행 제어부(230)는 감지부(220)로부터 제공받은 감지 결과에 따라 로봇(100)의 전반적인 보행 상태를 제어한다. 이를 위하여 보행 제어부(230)는 보행 상태 판단부(231), 목표 각도 궤적 생성부(234), 토크 계산부(235) 및 제어부(236)를 포함할 수 있다.
보행 상태 판단부(231)는 로봇(100)의 각 발(170R 또는 170L)에 가해지는 하중에 근거하여, 발(170R 또는 170L)의 착지 여부를 판단한다. 그리고 하중이 감지된 발과 연결되어 있는 다리를 지면을 지지하고 있는 '지지 다리(stance leg)'로 판단하고, 하중이 감지되지 않은 발과 연결되어 있는 다리를 지면으로부터 일정 높이 이상으로 떨어져 구부려져 있는 '스윙 다리(swing leg)'로 판단한다. 구체적으로, 감지부(220)의 힘/토크 감지부(222)가 로봇(100)의 오른쪽 발(170R)에서 하중을 감지하는 경우, 보행 상태 판단부(231)는 오른쪽 발(170R)이 지면에 착지한 상태라고 판단한다. 그리고 오른쪽 발(170R)과 연결되어 있는 오른쪽 다리(160R)를 지지 다리로 판단하고, 왼쪽 다리(160L)를 스윙 다리로 판단한다. 만약, 감지부(220)의 힘/토크 감지부(222)가 로봇(100)의 왼쪽 발(170L)에서 하중을 감지하는 경우, 보행 제어부(230)는 왼쪽 발(170L)이 지면에 착지한 상태라고 판단한다. 그리고 왼쪽 발(170L)과 연결된 왼쪽 다리(160L)를 지지 다리로 판단하고, 오른쪽 다리(160R)을 스윙 다리로 판단한다.
이러한 보행 상태 판단부(231)는 FSM(Finite State Machine)에 기반을 둔 두 다리의 동작 상태에 근거하여, 로봇(100)의 보행을 제어한다. 여기서 도 7을 참조하여 두 다리(160L, 160R)의 동작 상태에 대해서 보다 상세히 설명하기로 한다.
도 7은 FSM 기반 보행 시, 로봇의 동작 상태와 각 동작 상태의 제어 동작을 나타낸 도면이다.
도 7에서, 토크 기반의 FSM 제어 방식은 로봇(100)의 동작 상태를 미리 정의된 복수 개의 동작 상태(예를 들어, S1, S2, S3, S4, S5, S6의 6개 상태)로 구분한다. 각각의 동작 상태(S1, S2, S3, S4, S5, S6)는 보행 시 로봇(100)의 하나의 다리(160L 또는 160R)가 취하는 포즈를 의미하고, 이러한 로봇(100)의 포즈를 적절하게 전환함으로써 안정적인 보행이 이루어지도록 한다.
또한, 이러한 동작 상태(S1, S2, S3, S4, S5, S6)와 동작 상태 전환을 통해 하나의 보행 모션(motion)을 구성한다.
제1동작 상태(S1; flight)는 다리(160L 또는 160R)를 스윙(Swing)하는 포즈이다. 제2동작 상태(S2; loading)는 발(170L 또는 170R)을 지면에 내려 놓는 포즈이다. 제3동작 상태(S3; heel contact)는 발(170L 또는 170R)의 뒤쪽(heel)을 지면에 접촉시키는 포즈이다. 제4동작 상태(S4; heel and toe contact)는 발(170L 또는 170R)의 뒤쪽(heel)과 앞쪽(toe)을 동시에 지면에 접촉시키는 포즈이다. 제5동작 상태(S5; toe contact)는 발(170L 또는 170R)의 앞쪽(toe)을 지면에 접촉시키는 포즈이다. 그리고 제6동작 상태(S6; unloading)는 발(170L 또는 170R)을 지면에서 떼어 내는 포즈에 해당한다.
각각의 동작 상태에서 다른 동작 상태로 전환하기 위해서는 그 동작 상태의 전환을 위한 제어 동작(Control Action)이 요구된다.
제1동작 상태(S1)에서 제2동작 상태(S2)로 전환하는 경우(S1→S2), 발(170L 또는 170R)의 뒤쪽(heel)이 지면에 닿게 하는 제어 동작(heel touches ground)이 요구된다.
제2동작 상태(S2)에서 제3동작 상태(S3)로 전환하는 경우(S2→S3), 지면에 닿은 발(170L 또는 170R)에 연결된 무릎 관절부(164)를 구부리는 제어 동작(knee bends)이 요구된다.
제3동작 상태(S3)에서 제4동작 상태(S4)로 전환하는 경우(S3→S4), 발(170L 또는 170R)의 앞쪽(toe)이 지면에 닿게 하는 제어 동작(ball of foot touches ground)이 요구된다.
제4동작 상태(S4)에서 제5동작 상태(S5)로 전환하는 경우(S4→S5), 지면에 닿은 발(170L 또는 170R)에 연결된 무릎 관절부(164)를 펴는 제어 동작(knee extends)이 요구된다.
제5동작 상태(S5)에서 제6동작 상태(S6)로 전환하는 경우(S5→S6), 지면에 닿은 발(170L 또는 170R)에 연결된 무릎 관절부(164)를 완전하게 펴는 제어 동작(knee fully extended)이 요구된다.
제6동작 상태(S6)에서 제1동작 상태(S1)로 전환하는 경우(S6→S1), 발(170L 또는 170R)의 앞쪽(toe)을 지면에서 떼어 내는 제어 동작(ball of foot leaves ground)이 요구된다.
따라서, 로봇(100)은 제어 동작(Control Action)의 실행을 위해 각 제어 동작(Control Action)에 대응하여 각 관절에 제공할 토크를 계산하고, 계산된 토크를 각 관절에 설치된 모터 등의 액츄에이터에 출력하여 액츄에이터를 구동시킨다.
다시 도 3을 참조하면, 보행 상태 판단부(231)는 스윙 다리와 연결된 발(이하, 설명의 편의를 위해 '스윙 발'이라 한다)이 착지하는 경우, 스윙 발에 미끄러짐이 발생하였는지를 판단할 수 있다. 이 때, 보행 상태 판단부(231)는 스윙 발에서 감지된 하중 및 스윙 발에서 감지된 속도에 근거하여 미끄러짐 발생 여부를 판단한다. 여기서 도 8을 참조하여, 스윙 발의 미끄러짐 여부를 판단하는 원리를 간단히 설명하기로 한다.
도 8은 로봇의 보행 과정을 도시한 도면이다. 보행 시 로봇(100)은 도 8의 (a), (b), (c)의 순서로 움직이게 된다. 도 8의 (a)는 로봇(100)이 두 다리(160L, 160R)로 지면을 지지하고 있는 상태를 나타내고 있다. 도 8의 (b)는 로봇(100)이 왼쪽 다리(160L)로 지면을 지지하고, 오른쪽 발(170R)이 지면으로부터 일정 높이(d) 즉, 그라운드 클리어런스(ground clearance) 이상이 되도록 오른쪽 다리(160R)를 구부린 상태를 나타내고 있다. 도 8의 (c)는 로봇(100)이 구부렸던 오른쪽 다리(160R)를 펴서 오른쪽 발(170R)의 뒤꿈치가 지면에 닿은 모습을 나타내고 있다.
예를 들어, 로봇(100)의 무게가 50kg이라고 할 때, 로봇(100)에는 대략 500N(≒무게 50kg×중력 가속도 9.8m/s2)의 하중이 가해진다. 따라서 도 8의 (a)와 같이, 로봇(100)이 두 다리(160L, 160R)로 지면을 지지하고 있을 때에는, 왼쪽 다리(160L)과 오른쪽 다리(160R)에 각각 250N의 하중이 가해진다. 이 후, 도 8의 (b)와 같이, 로봇의 왼쪽 다리(160L)로만 지면을 지지하고 있는 경우에는, 왼쪽 다리(160L)에만 500N의 하중이 가해진다. 도 8의 (c)와 같이, 왼쪽 다리(160L)로 지면을 지지한 상태에서 오른쪽 발(170R)의 뒤꿈치가 지면에 살짝 닿는 경우, 왼쪽 다리(160L)에 가해지던 하중은 500N에서 점차 줄어들고, 오른쪽 발(170R)에 가해지는 하중이 점차 증가하게 된다. 이처럼 오른쪽 발(170R)의 뒤꿈치가 지면에 살짝 닿은 상태에서 오른쪽 발(170R)에 미끄러짐이 발생하는 경우, 오른쪽 발(170R)의 속도는 갑자기 증가하게 된다.
따라서, 스윙 발이 지면에 살짝 닿았을 때, 스윙 발에서 감지된 하중과, 스윙 발에서 감지된 속도에 근거하여 스윙 발의 미끄러짐 여부를 판단할 수 있다. 이 때, 스윙 발에서 감지되는 하중에는 X축 방향의 하중, Y축 방향의 하중, 및 Z축 방향의 하중이 포함된다. 또한 스윙 발에서 감지되는 속도에는 X축 방향의 속도, Y축 방향의 속도가 포함된다. 따라서, 스윙 발의 각 축에 대한 하중 조건과 스윙 발의 각 축에 대한 속도 조건을 적절히 조합하여 스윙 발의 미끄러짐 여부를 판단할 수 있다. 스윙 발이 미끄러진 것으로 판단하기 위한 조건을 수학식으로 표현하면 [수학식 1] 및 [수학식 2]와 같다.
[수학식 1] (FTz < Fz) and (FTx < Fx) and (Velx > Vx)
[수학식 2] (FTz < Fz) and (FTy < Fy) and (Vely > Vy)
[수학식 1] 및 [수학식 2]에서 'FT'는 힘/토크 감지부(222)에 의해 감지된 하중을 의미한다. 구체적으로, 'FTx'는 힘/토크 감지부(222)에 의해 감지된 하중 중에서 X축 방향의 하중을 의미한다. 'FTy'는 힘/토크 감지부(222)에 의해 감지된 하중 중에서 Y축 방향의 하중을 의미한다. 그리고 'FTz'는 힘/토크 감지부(222)에 의해 감지된 하중 중에서 Z축 방향의 하중을 의미한다.
[수학식 1] 및 [수학식 2]에서 'F'는 사전에 지정된 기준 하중을 의미한다. 구체적으로, 'Fx'는 X축 방향의 하중에 대하여 설정되는 기준 하중을 의미한다(이하, 'X축 기준 하중'이라 한다). 'Fy'는 Y축 방향의 하중에 대하여 설정되는 기준 하중을 의미한다(이하, 'Y축 기준 하중'이라 한다). 그리고 'Fz'는 Z축 방향의 하중에 대하여 설정되는 기준 하중을 의미한다(이하, 'Z축 기준 하중'이라 한다).
[수학식 1] 및 [수학식 2]에서 'Vel'은 속도 감지부(223)에 의해 감지된 스윙 발의 속도를 의미한다. 구체적으로, 'Velx'는 스윙 발의 X축 방향의 속도를 의미한다(이하, 'X축 감지 속도'라 한다). 'Vely'는 스윙 발의 Y축 방향의 속도를 의미한다(이하, 'Y축 감지 속도'라 한다).
그리고 'V'는 사전에 지정된 기준 속도를 의미한다. 구체적으로, 'Vx'는 X축 방향의 속도에 대하여 사전에 지정되는 기준 속도를 의미한다(이하, 'X축 기준 속도'라 한다). 그리고 'Vy'는 Y축 방향의 속도에 대하여 사전에 지정되는 기준 속도를 의미한다(이하, 'Y축 기준 속도'라 한다).
[수학식 1]은 스윙 발이 X축 방향으로 미끄러졌는지를 판단하기 위한 조건을 나태내고 있다. [수학식 1]을 참조하면, 로봇(100)은 스윙 발의 Z축 방향의 하중(FTz)이 Z축 기준 하중(Fz) 보다 작고, 스윙 발의 X축 방향의 하중(FTx)이 X축 기준 하중(Fx) 보다 작으며, 스윙 발의 X축 방향의 속도(Velx)가 X축 기준 속도(Vx) 보다 큰 경우, 스윙 발이 X축 방향으로 미끄러졌다고 판단함을 알 수 있다.
한편, [수학식 1]에서 스윙 발에서 감지된 Z축 방향의 하중(FTz)이 Z축 기준 하중(Fz) 보다 작은지를 판단하는 부분이 있는데, 이는 스윙 발이 지면에 얼마만큼 닿은 상태인지를 판별하기 위한 것이다. 만약, Z축 기준 하중(Fz)을 50N으로 설정하였다면, 로봇(100)의 스윙 발이 지면에 살짝 닿았을 때 미끄러짐 발생 여부를 판단하는 것으로 볼 수 있다. 만약, Z축 기준 하중(Fz)을 100N으로 설정하였다면, 로봇(100)의 스윙 발이 지면에 보다 많이 닿았을 때 미끄러짐 발생 여부를 판단하는 것으로 볼 수 있다. 이러한 개념은 스윙 발에서 감지된 X축 방향의 하중(FTx)이 X축 기준 하중(Fx) 보다 작은지를 판단하는 부분에도 동일하게 적용된다.
[수학식 2]는 스윙 발이 Y축 방향으로 미끄러졌는지를 판단하기 위한 조건을 나타내고 있다. [수학식 2]를 참조하면, 로봇(100)은 스윙 발에서 감지된 Z축 방향의 하중(FTz)이 Z축 기준 하중(Fz) 보다 작고, 스윙 발에서 감지된 Y축 방향의 하중(FTy)이 y축 기준 하중(Fy) 보다 작으며, 스윙 발에서 감지된 Y축 방향의 속도(Vely)가 Y축 기준 속도(Vy) 보다 큰 경우, 스윙 발이 Y축 방향으로 미끄러졌다고 판단함을 알 수 있다.
다시 도 3을 참조하면, 보행 상태 판단부(231)는 상술한 바와 같이, 스윙 발에서 감지된 각 축의 하중과 각 축에 대한 기준 하중을 비교하고, 스윙 발에서 감지된 각 축의 속도와 각 축에 대한 기준 속도를 비교하여, 비교 결과에 따라 스윙 발의 미끄러짐 여부 및 스윙 발이 미끄러진 방향을 판단할 수 있다.
목표 각도 궤적 생성부(234)는 보행 상태 판단부(231)에서 판단된 각 다리의 동작 상태에 기초하여 두 다리(160L, 160R)의 각 관절부(163, 164, 165)에 대하여 목표 각도 궤적을 생성한다. 목표 각도 궤적은 각 관절부(163, 164, 165)의 시간에 따른 각도 데이터에서 나트 포인트(knot point)를 추출하고, 추출된 나트 포인트들을 스플라인으로 부드럽게 연결함으로써, 목표 각도 궤적을 생성할 수 있다. 여기서 나트 포인트는 동작 상태를 수행하기 위한 각 관절부(163, 164, 165)의 각도지령으로서, 나트 포인트는 각 동작상태에 대응된다. 목표 각도 궤적 생성부(234)에서 생성된 목표 각도 궤적은 토크 계산부(235)로 제공된다.
토크 계산부(235)는 두 다리(160L, 160R)의 각 관절부(163, 164, 165)에 대하여, 목표 각도 궤적을 추종하기 위한 토크를 계산한다. 각 관절부(163, 164, 165)에 대한 토크 계산은 매 제어 주기마다 이루어진다. 토크는 비례미분제어(Proportional-Derivative controller: PD)를 이용하여 계산할 수 있다. 비례미분제어에 따라 각 관절부(163, 164, 165)의 토크를 계산하는 식은 아래의 [수학식 3]과 같다.
[수학식 3] τ = kpㆍ(θdc) + kdㆍ(ωdc)
[수학식 3]에서 'τ'는 매 제어 주기에서의 토크 값을 의미한다. [수학식 3]에서 θd는 매 제어 주기에서의 목표 각도, θc는 매 제어 주기에서의 현재 각도(즉, 현재 감지된 각도)를 의미한다. 그리고 ωd는 매 제어 주기에서의 목표 각속도를 나타낸다. ωd는 목표 각도 θd를 미분하여 얻을 수 있다. ωc는 매 제어 주기에서의 현재 각속도(즉, 현재 감지된 각속도)를 나타내며, 매 제어 주기에서의 현재 각도 θc를 미분하여 얻을 수 있다. 그리고, kp 및 kd는 계수를 나타내는데, 이들 계수들은 로봇이 안정된 보행을 하도록 실험적으로 결정될 수 있다.
상술한 바와 같이, 토크 계산부(235)는 [수학식 3]에 근거하여 목표 각도 궤적을 추종하는 토크를 계산한다. 전술한 [수학식 3]은 다리의 각 관절부에 대한 토크 계산 방법을 보편화하여 나타낸 것이다. 따라서 토크 계산부(235)는 각 관절부(163, 164, 165)에 대한 토크를 계산할 때, [수학식 3]을 참조하여, 롤 방향, 피치 방향, 요 방향에 대한 토크를 각각 계산한다. 롤, 피치, 요 방향에 대한 토크는 각각 'τroll', 'τpitch', 'τyaw'로 표시될 수 있다.
이외에도 토크 계산부(235)는 보행 상태 판단부(231)에서 스윙 발의 미끄러짐 여부를 판단한 결과에 따라 스윙 다리의 각 관절부에 제공할 토크를 제한한다. 구체적으로, 토크 계산부(235)는 보행 상태 판단부(231)에서 스윙 발이 미끄러졌다고 판단하는 경우, 스윙 발이 미끄러진 방향에 따라 스윙 다리의 각 관절부에 제공할 최종 토크를 계산한다. 스윙 발이 X축 방향으로 미끄러진 것으로 판단된 경우, 토크 계산부(235)는 스윙 다리의 각 관절부에 제공할 피치 방향에 대한 최종 토크를 계산한다. 스윙 발이 Y축 방향으로 미끄러진 것으로 판단된 경우, 토크 계산부(235)는 스윙 다리의 각 관절부에 제공할 롤 방향에 대한 최종 토크를 계산한다. 각 관절부에 제공할 피치 방향의 최종 토크를 계산하는 식은 [수학식 4]와 같다. 그리고 각 관절부에 제공할 롤 방향의 최종 토크를 계산하는 식은 [수학식 5]와 같다.
[수학식 4]
Figure pat00001
[수학식 5]
Figure pat00002

[수학식 4]에서 'Final_τpitch'는 관절부의 피치 방향에 대한 최종 토크를 의미하며, 'τpitch'는 관절부의 피치 방향에 대한 토크를 의미한다. 피치 방향에 대한 토크는 [수학식 3]에 근거하여 계산된다. [수학식 4]를 참조하면, 관절부의 피치 방향에 대한 최종 토크(Final_τpitch)는 해당 관절부의 피치 방향에 대한 토크(τpitch)에, 스윙 발의 X축 감지 속도(Velx)에 대한 X축 기준 속도(Vx)의 비율(Vx/Velx)을 곱하여 계산된다. [수학식 4]를 참조하면, 관절부의 X축 감지 속도(Velx)가 X축 기준 속도(Vx) 보다 클수록 해당 관절부에 제공되는 피치 방향의 최종 토크가 작아지는 것을 알 수 있다.
[수학식 5]에서 'Final_τroll'는 관절부의 피치 방향에 대한 최종 토크를 의미하며, 'τroll'은 관절부의 롤 방향에 대한 토크를 의미한다. 롤 방향에 대한 토크는 [수학식 3]에 근거하여 계산된다. 그리고 롤 방향의 최종 토크는 [수학식 5]에 근거하여 계산된다. [수학식 5]를 참조하면, 관절부의 롤 방향에 대한 최종 토크(Final_τroll)는 해당 관절부의 롤 방향에 대한 토크(τroll)에, 스윙 발의 Y축 감지 속도(Vely)에 대한 Y축 기준 속도(Vy)의 비율(Vy/Vely)을 곱하여 계산된다. [수학식 5]를 참조하면, 관절부의 Y축 감지 속도(Vely)가 Y축 기준 속도(Vy) 보다 클수록 해당 관절부에 제공되는 롤 방향의 최종 토크는 작아지는 것을 알 수 있다.
제어부(236)는 토크 계산부(235)에서 계산된 토크를 두 다리의 고관절부(163), 무릎 관절부(164), 발목 관절부(165)에 제공한다. 만약, 스윙 발에 미끄러짐이 발생한 것으로 판단되어, 토크 계산부(235)에서 스윙 다리의 각 관절부에 대한 최종 토크가 계산되었다면, 제어부(236)는 토크 계산부(235)에서 계산된 최종 토크를 스윙 다리의 고관절부(163), 무릎 관절부(164), 발목 관절부(165)에 각각 제공한다.
고관절부(163), 무릎 관절부(164) 및 발목 관절부(165)는 제어부(236)에서 제공된 토크 또는 최종 토크를 입력받아 각 관절부에 설치된 모터 등의 액츄에이터를 구동시킨다. 그 결과, 로봇(100)이 미끄러지지 않고 자연스럽게 보행할 수 있다.
한편, 메모리부(240)는 로봇(100)의 보행을 제어하는데 필요한 데이터나 알고리즘을 저장할 수 있다. 예를 들면, 감지부(220)에서 감지된 데이터, 각 축에 대한 기준 하중 및 각 축에 대한 기준 속도 등과 같이 스윙 발의 미끄러짐 여부를 판단하는데 필요한 데이터, 스윙 다리의 각 관절부로 제공할 최종 토크를 계산하는데 필요한 데이터나 알고리즘을 저장할 수 있다.
이러한 메모리부(240)는 롬(Read Only Memory: ROM), 램(Random Access Memory: RAM), 피롬(Programmable Read Only Memory: PROM), 이피롬(Erasable Programmable Read Only Memory: EPROM), 플래시 메모리와 같은 비휘발성 메모리 소자, 또는 램(Random Access Memory: RAM)과 같은 휘발성 메모리 소자, 또는 하드 디스크, 광 디스크와 같은 저장 매체로 구현될 수 있다. 그러나 상술한 예로 한정되는 것은 아니며, 메모리부(240)는 당업계에 알려져 있는 임의의 다른 형태로 구현될 수도 있음은 물론이다.
도 9는 본 발명의 일 실시예에 따른 로봇 제어 방법을 도시한 흐름도이다.
보행이 시작되면, 로봇(100)은 두 다리에 가해지는 하중에 근거하여, 두 다리의 동작 상태를 판단한다(S800). 하중이 감지된 다리는 지지 다리인 것으로 판단하고, 하중이 감지되지 않은 다리는 스윙 다리인 것으로 판단한다. 이처럼 두 다리의 동작 상태를 판단하는 단계는 보행 제어부(230)의 보행 상태 판단부(231)에 의해 수행될 수 있다.
그 다음, 로봇(100)은 S800단계의 판단 결과에 근거하여, 두 다리(160L, 160R)의 각 관절부에 대한 목표 각도 궤적을 생성한다(S810). 두 다리(160L, 160R)의 각 관절부에 대한 목표 각도 궤적을 생성하는 단계는 보행 제어부(230)의 목표 각도 궤적 생성부(234)에 의해 수행될 수 있다.
이 후, 로봇(100)은 두 다리(160L, 160R)의 각 관절부에 대하여, 목표 각도 궤적을 추종하는 토크를 계산한다(S820). 토크는 [수학식 3]을 이용하여 계산된다. 이 때, [수학식 3]은 두 다리(160L 160R)의 각 관절부에 제공할 토크 계산 방법을 보편화하여 나타낸 것으로, 실제로 각 관절부에 제공할 토크를 계산할 때에는 하나의 관절부에 대하여, 롤 방향에 대한 토크(τroll), 피치 방향에 대한 토크(τpitch), 및 요 방향에 대한 토크(τyaw) 중 적어도 하나가 계산될 수 있다. 이처럼 토크를 계산하는 단계는 보행 제어부(230)의 토크 계산부(235)에 의해 수행될 수 있다.
이 후, 로봇(100)은 스윙 다리와 연결된 스윙 발이 지면에 착지하는 경우, 스윙 발에 미끄러짐이 발생하였는지를 판단한다(S830). 이를 위해, 스윙 발에서 감지된 하중과 사전 설정된 기준 하중과 비교하고, 스윙 발에서 감지된 속도와 사전 설정된 기준 속도를 비교한다. 그리고 비교 결과에 따라 스윙 발의 미끄러짐 여부 및 스윙 발이 미끄러진 방향을 판단한다.
스윙 발에서 감지된 하중과 기준 하중을 비교할 때에는, 스윙 발에서 감지된 X축 방향의 하중과 X축 기준 하중을 비교하고, 스윙 발에서 감지된 Y축 방향의 하중과 Y축 기준 하중을 비교한다. 그리고 스윙 발에서 감지된 Z축 방향의 하중과 Z축 기준 하중을 비교한다.
스윙 발에서 감지된 속도와 사전 설정된 기준 속도를 비교할 때에는, 스윙 발에서 감지된 X축 방향의 속도와 X축 기준 속도를 비교한다. 그리고 스윙 발에서 감지된 Y축 방향의 속도와 Y축 기준 속도를 비교한다.
비교 결과, [수학식 1] 또는 [수학식 2]를 만족하는 경우, 스윙 발에 미끄러짐이 발생한 것으로 판단한다. 만약 [수학식 1]을 만족한다면, 스윙 발이 지면에 착지할 때 X축 방향으로 미끄러진 것으로 판단한다. [수학식 2]를 만족한다면, 스윙 발이 지면에 착지할 때 Y축 방향으로 미끄러진 것으로 판단한다. 이처럼 스윙 발에 미끄러짐이 발생하였는지를 판단하는 단계는 보행 제어부(230)의 보행 상태 판단부(231)에 의해 수행될 수 있다.
S830 단계에서의 판단 결과, 스윙 발에 미끄러짐이 발생하지 않은 경우, 로봇(100)은 S820 단계에서 계산된 토크를 두 다리(160L, 160R)의 각 관절부에 제공한다(S840).
S830 단계에서의 판단 결과, 스윙 발에 미끄러짐이 발생한 경우, 스윙 발이 미끄러진 방향에 따라, 스윙 다리의 각 관절부에 제공할 최종 토크를 계산한다(S850).
만약 스윙 발이 X축 방향으로 미끄러진 경우라면, 각 관절부의 피치 방향에 대한 최종 토크를 계산한다. 피치 방향에 대한 최종 토크는 [수학식 4]를 이용하여 계산된다. 즉, S820 단계에서 구해진 토크 중에서 피치 방향에 대한 토크(τpitch)에, 스윙 발의 X축 감지 속도(Velx)에 대한 X축 기준 속도(Vx)의 비율(Vx/Velx)을 곱하여 계산한다. [수학식 4]에 따르면, 피치 방향의 최종 토크는 스윙 발의 X축 감지 속도와 반비례하는 것을 알 수 있다. 이는 스윙 발이 X축 방향으로 빠르게 미끄러진 경우에는 스윙 다리의 각 관절부에 제공되는 피치 방향의 토크를 많이 제한하는 것을 의미한다. 그리고 스윙 발이 X축 방향으로 느리게 미끄러진 경우에는 스윙 다리의 각 관절부에 제공되는 피치 방향의 토크를 적게 제한하는 것을 의미한다.
만약 스윙 발이 Y축 방향으로 미끄러진 경우라면, 각 관절부의 롤 방향에 대한 최종 토크를 계산한다. 롤 방향에 대한 최종 토크는 [수학식 5]를 이용하여 계산된다. 즉, S820 단계에서 구해진 토크 중에서 롤 방향에 대한 토크(τroll)에, 스윙 발의 Y축 감지 속도(Vely)에 대한 Y축 기준 속도(Vy)의 비율(Vy/Vely)을 곱하여 계산한다. [수학식 5]에 따르면, 롤 방향의 최종 토크는 스윙 발의 Y축 감지 속도와 반비례하는 것을 알 수 있다. 이는 스윙 발이 Y축 방향으로 빠르게 미끄러진 경우에는 스윙 다리의 각 관절부에 제공되는 롤 방향의 토크를 많이 제한하는 것을 의미한다. 그리고 스윙 발이 Y축 방향으로 느리게 미끄러진 경우에는 스윙 다리의 각 관절부에 제공되는 롤 방향의 토크를 적게 제한하는 것을 의미한다.
계산된 최종 토크는 스윙 다리의 각 관절부에 제공되어(S860), 스윙 다리의 각 관절부에 설치된 모터 등의 액추에이터를 구동시킴으로써, 로봇이 미끄러지지 않고 보행할 수 있도록 한다.
이처럼 본 발명의 실시예에 따르면, 스윙 발이 지면에 착지할 때 미끄러짐이 발생하는 경우, 스윙 다리의 각 관절부에 제공되는 토크가 제한되므로, 로봇(100)은 넘어지지 않고 안정적으로 보행할 수 있다.
이상으로 본 발명의 일 실시예에 따른 보행 로봇 및 그 제어 방법을 설명하였다. 일 실시예에서는 로봇(100)의 두 발에 속도 감지부(223)가 마련된 경우를 예로 들어 설명하였다.
그러나 일 실시예와는 다른 실시예로서, 로봇의 두 발에는 속도 감지부(223) 대신 가속도 감지부(미도시)가 마련될 수 있다. 이 경우, 로봇에는 가속도 감지부에서 감지된 가속도를 적분하여 스윙 발의 속도를 계산하는 속도 계산부(미도시)가 추가로 구비될 수도 있다.
일 실시예와는 또 다른 실시예로서, 로봇(100)의 두 발에 속도 감지부(223)나 가속도 감지부를 구비하지 않고, 기구학(forward kinematics)에 근거하여 스윙 발의 속도를 계산할 수도 있다. 이 경우, 기구학에 근거하여 스윙 발의 속도를 계산하기 위한 속도 계산부(미도시)가 추가로 구비될 수 있다.
이상과 같이 예시된 도면을 참조로 하여, 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 한정적이 아닌 것으로 이해해야만 한다.
100: 보행 로봇
131: 어깨 관절부
143: 팔꿈치 관절부
144: 팔목 관절부
163: 고관절부
164: 무릎 관절부
165: 발목 관절부
220: 감지부
221: 기울기 감지부
222: 힘/토크 감지부
223: 속도 감지부
230: 보행 제어부
231: 보행 상태 판단부
234: 목표 각도 궤적 생성부
235: 토크 계산부
236: 제어부
240: 메모리부

Claims (20)

  1. 복수의 다리의 동작 상태에 따라 상기 복수의 다리에 마련된 복수의 관절부 별로 상기 로봇이 보행하는데 필요한 목표 각도 궤적을 생성하는 단계;
    상기 복수의 다리에 마련된 복수의 관절부 별로 상기 목표 각도 궤적을 추종하는 토크를 계산하는 단계;
    상기 복수의 다리 중에서 스윙 다리와 연결된 스윙 발에 미끄러짐이 발생하였는지를 판단하는 단계;
    상기 판단 결과에 따라, 상기 스윙 발에서 감지된 속도에 근거하여 상기 스윙 다리의 각 관절부에 제공할 최종 토크를 계산하는 단계; 및
    상기 계산된 최종 토크를 상기 스윙 다리의 각 관절부에 제공하는 단계를 포함하는, 보행 로봇의 제어 방법.
  2. 제 1 항에 있어서,
    상기 스윙 발에 미끄러짐이 발생하지 않은 경우, 상기 계산된 토크를 상기 복수의 다리에 마련된 복수의 관절부에 각각 제공하는 단계를 더 포함하는, 보행 로봇의 제어 방법.
  3. 제 1 항에 있어서,
    상기 토크를 계산하는 단계는
    상기 복수의 다리에 마련된 복수의 관절부 별로 롤 방향의 토크, 피치 방향의 토크, 및 요 방향의 토크 중 적어도 하나를 계산하는 단계를 포함하는, 보행 로봇의 제어 방법.
  4. 제 3 항에 있어서,
    상기 스윙 발에 미끄러짐이 발생하였는지를 판단하는 단계는,
    상기 스윙 발에서 감지된 하중과 사전 설정된 기준 하중을 비교하고, 상기 스윙 발에서 감지된 속도와 사전 설정된 기준 속도를 비교하는 단계; 및
    상기 비교 결과에 따라 상기 스윙 발이 미끄러진 방향을 판단하는 단계를 포함하는, 보행 로봇의 제어 방법.
  5. 제 4 항에 있어서,
    상기 스윙 발이 미끄러진 방향을 판단하는 단계는,
    상기 스윙 발에서 감지된 Z축 방향의 하중이 Z축에 대한 기준 하중보다 작고, 상기 스윙 발에서 감지된 X축 방향의 하중이 X축에 대한 기준 하중보다 작으며, 상기 스윙 발에서 감지된 X축 방향의 속도가 X축에 대한 기준 속도보다 큰 경우, 상기 스윙 발이 피치 방향으로 미끄러진 것이라 판단하는 단계를 포함하는, 보행 로봇의 제어 방법.
  6. 제 5 항에 있어서,
    상기 최종 토크를 계산하는 단계는
    상기 스윙 발이 피치 방향으로 미끄러진 경우, 상기 스윙 다리의 각 관절부로 제공할 피치 방향의 최종 토크를 계산하는 단계를 포함하는, 보행 로봇의 제어 방법.
  7. 제 6 항에 있어서,
    상기 스윙 다리의 각 관절부로 제공할 피치 방향의 최종 토크(Final_τpitch)는 상기 스윙 다리의 각 관절부로 제공할 피치 방향의 토크(τpitch)에, 상기 스윙 발에서 감지된 X축 방향의 속도(Velx)에 대한 상기 X축에 대한 기준 속도(Vx)의 비율(Vx/Velx)을 곱한 값인, 보행 로봇의 제어 방법.
  8. 제 4 항에 있어서,
    상기 스윙 발이 미끄러진 방향을 판단하는 단계는,
    상기 스윙 발에서 감지된 Z축 방향의 하중이 Z축에 대한 기준 하중보다 작고, 상기 스윙 발에서 감지된 Y축 방향의 하중이 Y축에 대한 기준 하중보다 작으며, 상기 스윙 발에서 감지된 Y축 방향의 속도가 Y축에 대한 기준 속도보다 큰 경우, 상기 스윙 발이 롤 방향으로 미끄러진 것이라 판단하는 단계를 포함하는, 보행 로봇의 제어 방법.
  9. 제 8 항에 있어서,
    상기 최종 토크를 계산하는 단계는
    상기 스윙 발이 롤 방향으로 미끄러진 경우, 상기 스윙 다리의 각 관절부로 제공할 롤 방향의 최종 토크를 계산하는 단계를 포함하는, 보행 로봇의 제어 방법.
  10. 제 9 항에 있어서,
    상기 스윙 다리의 각 관절부로 제공할 롤 방향의 최종 토크(Final_τroll)는
    상기 스윙 다리의 각 관절부로 제공할 롤 방향의 토크(τroll)에, 상기 스윙 발에서 감지된 Y축 방향의 속도(Vely)에 대한 상기 Y축에 대한 기준 속도(Vy)의 비율(Vy/Vely)을 곱한 값인, 보행 로봇의 제어 방법.
  11. 복수의 다리의 동작 상태에 따라 상기 복수의 다리에 마련된 복수의 관절부 별로 상기 로봇이 보행하는데 필요한 목표 각도 궤적을 생성하는 목표 각도 궤적 생성부;
    상기 복수의 다리에 마련된 복수의 관절부 별로 상기 목표 각도 궤적을 추종하는 토크를 계산하는 토크 계산부;
    상기 복수의 다리 중에서 스윙 다리와 연결된 스윙 발에 미끄러짐이 발생하였는지를 판단하는 보행 상태 판단부;
    상기 판단 결과에 따라, 상기 스윙 발에서 감지된 속도에 근거하여 상기 스윙 다리의 각 관절부에 제공할 최종 토크를 계산하는 토크 계산부; 및
    상기 계산된 최종 토크를 상기 스윙 다리의 각 관절부에 제공하는 제어부를 포함하는, 보행 로봇.
  12. 제 11 항에 있어서,
    상기 제어부는
    상기 스윙 발에 미끄러짐이 발생하지 않은 경우, 상기 계산된 토크를 상기 복수의 다리에 마련된 복수의 관절부에 각각 제공하는 제어부를 더 포함하는, 보행 로봇.
  13. 제 11 항에 있어서,
    상기 토크 계산부는
    상기 복수의 다리에 마련된 복수의 관절부 별로 롤 방향의 토크, 피치 방향의 토크, 및 요 방향의 토크 중 적어도 하나를 계산하는, 보행 로봇.
  14. 제 13 항에 있어서,
    상기 보행 상태 판단부는,
    상기 스윙 발에서 감지된 하중과 사전 설정된 기준 하중을 비교하고, 상기 스윙 발에서 감지된 속도와 사전 설정된 기준 속도를 비교하여, 상기 스윙 발이 미끄러진 방향을 판단하는, 보행 로봇.
  15. 제 14 항에 있어서,
    상기 보행 상태 판단부는,
    상기 스윙 발에서 감지된 Z축 방향의 하중이 Z축에 대한 기준 하중보다 작고, 상기 스윙 발에서 감지된 X축 방향의 하중이 X축에 대한 기준 하중보다 작으며, 상기 스윙 발에서 감지된 X축 방향의 속도가 X축에 대한 기준 속도보다 큰 경우, 상기 스윙 발이 피치 방향으로 미끄러진 것이라 판단하는, 보행 로봇.
  16. 제 15 항에 있어서,
    상기 토크 계산부는
    상기 스윙 발이 피치 방향으로 미끄러진 경우, 상기 스윙 다리의 각 관절부로 제공할 피치 방향의 최종 토크를 계산하는, 보행 로봇.
  17. 제 16 항에 있어서,
    상기 스윙 다리의 각 관절부로 제공할 피치 방향의 최종 토크(Final_τpitch)는 상기 스윙 다리의 각 관절부로 제공할 피치 방향의 토크(τpitch)에, 상기 스윙 발에서 감지된 X축 방향의 속도(Velx)에 대한 상기 X축에 대한 기준 속도(Vx)의 비율(Vx/Velx)을 곱한 값인, 보행 로봇.
  18. 제 14 항에 있어서,
    상기 보행 상태 판단부는,
    상기 스윙 발에서 감지된 Z축 방향의 하중이 Z축에 대한 기준 하중보다 작고, 상기 스윙 발에서 감지된 Y축 방향의 하중이 Y축에 대한 기준 하중보다 작으며, 상기 스윙 발에서 감지된 Y축 방향의 속도가 Y축에 대한 기준 속도보다 큰 경우, 상기 스윙 발이 롤 방향으로 미끄러진 것이라 판단하는, 보행 로봇.
  19. 제 18 항에 있어서,
    상기 토크 계산부는
    상기 스윙 발이 롤 방향으로 미끄러진 경우, 상기 스윙 다리의 각 관절부로 제공할 롤 방향의 최종 토크를 계산하는, 보행 로봇.
  20. 제 19 항에 있어서,
    상기 스윙 다리의 각 관절부로 제공할 롤 방향의 최종 토크(Final_τroll)는
    상기 스윙 다리의 각 관절부로 제공할 롤 방향의 토크(τroll)에, 상기 스윙 발에서 감지된 Y축 방향의 속도(Vely)에 대한 상기 Y축에 대한 기준 속도(Vy)의 비율(Vy/Vely)을 곱한 값인, 보행 로봇.
KR1020110129645A 2011-12-06 2011-12-06 보행 로봇 및 그 제어 방법 KR20130063230A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110129645A KR20130063230A (ko) 2011-12-06 2011-12-06 보행 로봇 및 그 제어 방법
US13/693,565 US20130144439A1 (en) 2011-12-06 2012-12-04 Walking robot and control method thereof
JP2012266653A JP2013119158A (ja) 2011-12-06 2012-12-05 歩行ロボット及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110129645A KR20130063230A (ko) 2011-12-06 2011-12-06 보행 로봇 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20130063230A true KR20130063230A (ko) 2013-06-14

Family

ID=48524575

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110129645A KR20130063230A (ko) 2011-12-06 2011-12-06 보행 로봇 및 그 제어 방법

Country Status (3)

Country Link
US (1) US20130144439A1 (ko)
JP (1) JP2013119158A (ko)
KR (1) KR20130063230A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10835442B2 (en) 2014-10-20 2020-11-17 Samsung Electronics Co., Ltd Method and apparatus for recognizing user motion
WO2024106724A1 (ko) * 2022-11-14 2024-05-23 주식회사 레인보우로보틱스 복수의 다리를 갖는 로봇 및 그것의 터치다운 위치 결정 방법

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101732901B1 (ko) * 2010-10-05 2017-05-08 삼성전자주식회사 보행 로봇 및 그 제어방법
US9618937B1 (en) 2014-08-25 2017-04-11 Google Inc. Slip detection using robotic limbs
US9517561B2 (en) * 2014-08-25 2016-12-13 Google Inc. Natural pitch and roll
US10081098B1 (en) 2014-08-25 2018-09-25 Boston Dynamics, Inc. Generalized coordinate surrogates for integrated estimation and control
US9387588B1 (en) 2014-08-25 2016-07-12 Google Inc. Handling gait disturbances with asynchronous timing
JP6228097B2 (ja) * 2014-10-06 2017-11-08 本田技研工業株式会社 移動ロボット
US9446518B1 (en) * 2014-11-11 2016-09-20 Google Inc. Leg collision avoidance in a robotic device
US9499218B1 (en) 2014-12-30 2016-11-22 Google Inc. Mechanically-timed footsteps for a robotic device
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
US9586316B1 (en) 2015-09-15 2017-03-07 Google Inc. Determination of robotic step path
CN105329333B (zh) * 2015-11-20 2017-09-26 清华大学 基于延迟反馈的双足机器人行走非单周期步态控制方法
US9789919B1 (en) 2016-03-22 2017-10-17 Google Inc. Mitigating sensor noise in legged robots
JP6715952B2 (ja) * 2016-04-29 2020-07-01 ソフトバンク・ロボティクス・ヨーロッパSoftbank Robotics Europe バランスのとれた運動および行動能力が向上した移動型ロボット
JP6682341B2 (ja) * 2016-05-10 2020-04-15 パナソニック株式会社 歩行制御方法、歩行制御プログラム及び2足歩行ロボット
US11981031B2 (en) * 2016-08-18 2024-05-14 The Trustees Of The University Of Pennsylvania Systems and methods for controlling robotic behaviors
CN107861130A (zh) * 2017-11-28 2018-03-30 深圳市优必选科技有限公司 一种足部探障装置及机器人
CN110053039B (zh) * 2018-01-17 2021-10-29 深圳市优必选科技有限公司 一种机器人行走中重力补偿的方法、装置及机器人
CN110202584B (zh) * 2019-07-11 2020-10-23 燕山大学 带半圆柱形足端的足式机器人腿部运动学修正方法及***
CN110405763B (zh) * 2019-07-24 2020-09-01 北京理工大学 一种仿人机器人多关节协同爆发跳跃的规划方法
CN112147890B (zh) * 2020-09-04 2021-12-28 西安交通大学 一种基于Acrobot模型的四足机器人对角支撑静平衡控制方法
CN112486170A (zh) * 2020-11-23 2021-03-12 深圳市优必选科技股份有限公司 机器人控制方法、装置、计算机可读存储介质及机器人
CN112536796B (zh) * 2020-11-23 2024-03-15 深圳市优必选科技股份有限公司 机器人控制方法、装置、计算机可读存储介质及机器人

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4480843B2 (ja) * 2000-04-03 2010-06-16 ソニー株式会社 脚式移動ロボット及びその制御方法、並びに、脚式移動ロボット用相対移動測定センサ
DE60336519D1 (de) * 2002-04-26 2011-05-05 Honda Motor Co Ltd Selbstpositionsabschätzvorrichtung für mobile Roboter mit Beinen
WO2005000535A1 (ja) * 2003-06-27 2005-01-06 Honda Motor Co., Ltd. 脚式移動ロボットの歩容生成装置および脚式移動ロボットの制御装置
JP4971977B2 (ja) * 2004-03-31 2012-07-11 本田技研工業株式会社 角運動量の変化率に基づいて脚式ロボットを制御する方法
US8014896B2 (en) * 2004-12-14 2011-09-06 Honda Motor Co., Ltd. Legged mobile robot and control program
US8419804B2 (en) * 2008-09-04 2013-04-16 Iwalk, Inc. Hybrid terrain-adaptive lower-extremity systems
KR101687628B1 (ko) * 2010-01-12 2016-12-21 삼성전자주식회사 로봇의 보행 제어 장치 및 그 제어 방법
JP5950234B2 (ja) * 2010-02-25 2016-07-13 本田技研工業株式会社 非水平および非定常の地面上にいる人型ロボットの運動量基準型バランス制御装置
JP5306313B2 (ja) * 2010-12-20 2013-10-02 株式会社東芝 ロボット制御装置
WO2012129250A2 (en) * 2011-03-21 2012-09-27 Honda Motor Co., Ltd. Humanoid robot push recovery on level and non-level ground

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10835442B2 (en) 2014-10-20 2020-11-17 Samsung Electronics Co., Ltd Method and apparatus for recognizing user motion
US11919156B2 (en) 2014-10-20 2024-03-05 Samsung Electronics Co., Ltd. Method and apparatus for recognizing user motion
WO2024106724A1 (ko) * 2022-11-14 2024-05-23 주식회사 레인보우로보틱스 복수의 다리를 갖는 로봇 및 그것의 터치다운 위치 결정 방법

Also Published As

Publication number Publication date
JP2013119158A (ja) 2013-06-17
US20130144439A1 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
KR20130063230A (ko) 보행 로봇 및 그 제어 방법
US9073209B2 (en) Walking robot and control method thereof
KR101809972B1 (ko) 보행 로봇 및 그 제어방법
KR101687630B1 (ko) 보행 로봇 및 그 균형 제어 방법
US8688273B2 (en) Walking control apparatus of robot and method of controlling the same
KR20130068694A (ko) 보행 로봇 및 그 제어 방법
KR102044437B1 (ko) 로봇의 균형 제어 장치 및 그 제어 방법
KR20120069333A (ko) 로봇의 보행 제어 장치 및 그 제어 방법
KR101772974B1 (ko) 휴머노이드 로봇의 인간 유사 동작 생성 방법
EP2426037B1 (en) Walking robot and control method thereof
KR101687628B1 (ko) 로봇의 보행 제어 장치 및 그 제어 방법
KR20130049029A (ko) 보행 로봇 및 그 제어 방법
JP6343559B2 (ja) 可変剛性の接合を有するロボットおよび最適化剛性の計算方法
US20110172824A1 (en) Walking robot and method of controlling the same
JP2013000878A (ja) ロボットの均衡制御装置及びその制御方法
KR101766755B1 (ko) 보행 로봇 및 그 제어방법
US8805583B2 (en) Robot and control method thereof

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid