KR20240029402A - 로봇 및 그 구동 방법 - Google Patents

로봇 및 그 구동 방법 Download PDF

Info

Publication number
KR20240029402A
KR20240029402A KR1020220107794A KR20220107794A KR20240029402A KR 20240029402 A KR20240029402 A KR 20240029402A KR 1020220107794 A KR1020220107794 A KR 1020220107794A KR 20220107794 A KR20220107794 A KR 20220107794A KR 20240029402 A KR20240029402 A KR 20240029402A
Authority
KR
South Korea
Prior art keywords
motion information
motion
robot
identifying
distance
Prior art date
Application number
KR1020220107794A
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 KR1020220107794A priority Critical patent/KR20240029402A/ko
Priority to PCT/KR2023/009263 priority patent/WO2024043497A1/ko
Publication of KR20240029402A publication Critical patent/KR20240029402A/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
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • 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
    • 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/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • 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
    • 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/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)

Abstract

로봇이 개시된다. 로봇은 센서, 구동부, 적어도 하나의 인스트럭션이 저장된 메모리 및 적어도 하나의 인스트럭션을 실행함으로써, 센서를 통해 식별된 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하고, 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고, 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하며, 식별된 최종 모션 정보에 따라 로봇이 주행하도록 구동부를 제어하는 하나 이상의 프로세서를 포함한다.

Description

로봇 및 그 구동 방법 { Robot and driving method thereof }
본 개시는 로봇 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 측면 안전 거리를 조정하는 로봇 및 그 제어 방법에 관한 것이다.
최근 특정 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 특히, 특정 공간을 이동하는 로봇은 주행 경로 상의 장애물을 회피하여 안전하고 신속하게 주행하여야 사용자에게 신속한 서비스를 제공할 수 있게 된다.
이에 따라 장애물을 고려하여 로봇이 최대한 안전하고 신속하게 주행할 수 있는 방안이 요구된다.
일 실시 예에 따르면, 로봇은, 센서, 구동부, 적어도 하나의 인스트럭션이 저장된 메모리 및 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 센서를 통해 식별된 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하고, 상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고, 상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하며, 상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 상기 구동부를 제어하는 하나 이상의 프로세서를 포함한다.
일 예에 따르면, 상기 적어도 하나의 제1 주행 성능은, 전방 안전 거리 및 목표 지점까지의 거리를 포함하고, 상기 적어도 하나의 제2 주행 성능은, 측면 안전 거리를 포함할 수 있다. 상기 하나 이상의 프로세서는, 상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고, 상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 기초하여 상기 제2 모션 정보 중 최종 모션 정보를 식별하며, 상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 상기 구동부를 제어할 수 있다.
일 예에 따르면, 상기 복수의 제1 모션 정보는 상이한 속도 및 상이한 각속도의 조합일 수 있다. 상기 하나 이상의 프로세서는, 상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리를 식별하고, 상기 전방 안전 거리에 제1 가중치를 적용하고 상기 목표 지점까지의 거리에 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득하고, 상기 모션 스코어에 기초하여 상기 복수의 제1 모션 정보 중 상기 제2 모션 정보를 식별할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어가 획득되면, 상기 복수의 제1 모션 정보 중 모션 스코어가 가장 큰 모션 정보와 동일한 속도이고 상이한 각속도를 포함하는 복수의 제2 모션 정보를 상기 제2 모션 후보로 식별할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 복수의 제2 모션 정보에 포함된 상이한 각속도 각각에 따른 측면 안전 거리를 식별하고, 상기 식별된 측면 안전 거리 중 최대 거리에 대응되는 각속도를 가지는 모션 정보를 상기 최종 모션 정보로 식별할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 전방 안전 거리는 길수록 상기 목표 지점까지의 거리는 짧을수록 상기 모션 스코어 값이 커지도록 상기 제1 가중치 및 상기 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 상기 모션 스코어를 획득할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 측면 안전 거리 외에 추가 반영 요소가 존재하는 경우, 상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 제3 가중치를 적용하고 상기 제2 모션 정보 각각에 대응되는 추가 반영 요소에 제4 가중치를 적용하여 상기 제2 모션 정보 각각에 대응되는 상기 모션 스코어를 획득하고, 상기 획득된 모션 스코어에 기초하여 상기 제2 모션 정보 중 상기 최종 모션 정보를 식별할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 로봇의 하드웨어 성능 또는 상기 로봇의 서비스 타입 중 적어도 하나에 따른 기설정된 속도 범위 및 각속도 범위에 기초하여 상기 로봇의 현재 속도 및 각속도를 기준으로 상기 복수의 제1 모션 정보를 식별할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 기설정된 속도 범위 및 각속도 범위에 포함된 discrete value 또는 continuous value에 기초하여 상기 복수의 제1 모션 정보를 식별할 수 있다.
일 실시 예에 따른 로봇의 구동 방법은, 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하는 단계, 상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하는 단계, 상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하는 단계 및 상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 구동부를 제어하는 단계를 포함할 수 있다.
일 실시 예에 따른 로봇의 프로세서에 의해 실행되는 경우 상기 전자 장치가 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은, 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하는 단계, 상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하는 단계, 상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하는 단계 및, 상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행시키는 단계를 포함할 수 있다.
도 1a 내지 도 1d는 이해를 돕기 위한 다양한 로봇의 주행 방법을 설명하기 위한 도면이다.
도 2a는 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 2b는 본 개시의 일 실시 예에 따른 로봇의 일 구현 예의 세부 구성를 나타내는 도면이다.
도 3 및 도 4는 일 실시 예에 따른 로봇의 주행 방법을 설명하기 위한 도면들이다.
도 5 및 도 6은 일 실시 예에 따른 로봇의 주행 방법을 자세히 설명하기 위한 도면들이다.
도 7, 도 8a 및 도 8b는 일 실시 예에 따른 모션 스코어 획득 방법을 설명하기 위한 도면들이다.
도 9는 일 실시 예에 따른 제2 모션 정보 및 최종 모션 정보를 식별하는 방법을 자세히 설명하기 위한 도면이다.
도 10a 및 도 10b는 일 실시 예에 따른 최종 모션 식별 방법을 좀더 자세히 설명하기 위한 도면들이다.
도 11a 및 도 11b는 일 실시 예에 따른 침해 적발 방법을 설명하기 위한 도면들이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
본 개시에서 '사용자' 는 로봇에게 서비스를 제공받는 사람을 의미할 수 있으나, 이에 한정되는 것은 아니다.
도 1a 내지 도 1d는 이해를 돕기 위한 다양한 로봇의 주행 방법을 설명하기 위한 도면이다.
로봇(100)은 특정 공간을 주행하며 사용자에게 서비스를 제공할 수 있다. 예를 들어, 로봇(100)은 청소 서비스, 서빙 서비스, 안내 서비스 등을 제공할 수 있으나 이에 한정되는 것은 아니다. 로봇(100)은 공간을 주행하기 위해 공간에 대응되는 맵 데이터를 기 저장하고 있을 수 있으며 이에 기초하여 경로 플래닝을 수행하여 공간을 주행할 수 있다. 일 예에 따라, 맵 데이터는 Traversability Map, Distance Map 등과 같이 다양한 타입의 맵 데이터가 될 수 있다.
일 예에 따라 장애물을 안전 마진(safe margin) 만큼 확장한 Traversability Map 기반의 경로 플래닝은 코너와 일정 거리를 두는 안전한 경로를 생성할 수 있다. 다만, safe margin이 크면 좁은 통로 및 장애물 밀집 지역 돌파가 불가능하다는 문제가 있디.
다른 예에 따라 지도 상 각 셀(cell)(또는 그리드(grid)) 마다 가장 가까운 장애물까지의 거리 정보를 포함하는 Distance Map 기반의 경로 플래닝은 안전한 경로를 생성할 수 있고 좁은 통로를 통과하는 경로도 생성할 수 있다. 다만, 좁은 통로보다 넓은 통로를 통과하는 것을 우선시하기 때문에 좁은 통로를 통과하는 최소 시간 경로를 두고 비효율적인 우회 경로가 생성될 수 있다는 문제가 있다.
한편, 로봇(100)은 주행 공간의 형태에 따라 측면 안전 거리를 자율적으로 조정할 필요할 있다.
일 예에 따라 도 1a에 도시된 바와 같이 로봇(100)이 여유 공간이 넓은 단일 장애물을 회피하여 주행하는 경우 측면 안전 거리의 자유도가 높기 때문에 여유로운 측면 안전 거리 확보를 확보할 수 있다.
일 예에 따라 도 1b에 도시된 바와 같이 로봇(100)이 장애물 밀집 지역을 돌파 주행하는 경우, 고정 측면 거리를 적용하는 경우 불필요한 우회나 오정지 등이 발생할 수 있기 때문에 최소 측면 거리를 적용하는 돌파 주행이 효율적일 수 있다.
일 예에 따라 도 1c에 도시된 바와 같이 로봇(100)이 직각 선회 후 개방형 통로로 진입하는 경우 측면 안전 거리의 자유도가 높기 때문에 여유로운 측면 안전 거리 확보를 확보할 수 있다.
일 예에 따라 도 1d에 도시된 바와 같이 로봇(100)이 직각 선회 후 협소 통로로 진입하는 경우 최소 측면 거리를 적용하는 돌파 주행이 효율적일 수 있다.
이와 같이 주행 공간의 형태에 따라 의도치 않은 주행 경로를 회피하면서 측면 안전 거리를 자율적으로 조정할 필요할 있으며 이하에서는 도면을 참조하여 다양한 실시 예에 대해 설명하도록 한다.
도 2a는 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 2a에 따르면, 로봇(100)은 적어도 하나의 센서(110), 구동부(120), 메모리(130) 및 하나 이상의 프로세서(140)를 포함할 수 있다.
적어도 하나의 센서(110)는 다양한 타입의 복수의 센서를 포함할 수 있다. 센서(110)는 물리량을 계측하거나 로봇(100)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 일 예에 따라 센서(110)는 속도 센서, 자이로 센서, 가속도 센서, 각속도 센서 등을 포함하며, 로봇(100)의 속도 및 각속도를 센싱할 수 있다.
또한, 센서(110)는 카메라를 포함할 수 있으며, 카메라는 오브젝트에 의해 반사되어 수신되는 가시광 기타 광학 신호를 이미지 센서로 포커싱하는 렌즈 및 가시광 기타 광학 신호를 감지할 수 있는 이미지 센서를 포함할 수 있다. 여기서, 이미지 센서는 복수의 픽셀로 구분되는 2D의 픽셀 어레이를 포함할 수 있으며, 일 예에 따른 카메라는 뎁스 카메라로 구현될 수 있다. 또한, 센서(110)는 라이더(LIDAR, Light Detection And Ranging) 센서 및 TOF(Time of flight) 센서와 같은 거리 센를 포함할 수 있다.
그 밖에 센서(110)는 제스처 센서, 기압 센서, 마그네틱 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서 또는 UV(ultra violet) 센서 중의 적어도 하나를 포함할 수도 있다.
구동부(120)는 로봇(100)을 주행시킬 수 있는 장치이다. 구동부(120)는 프로세서(140)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있으며, 일 예에 따른 구동부(120)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(120)는 로봇(100)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입 등)에 따라 변형 실시될 수 있다.
메모리(130)는 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(130)는 데이터 저장 용도에 따라 로봇(100)에 임베디드된 메모리 형태로 구현되거나, 로봇(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 로봇(100)의 구동을 위한 데이터의 경우 로봇(100)에 임베디드된 메모리에 저장되고, 로봇(100)의 확장 기능을 위한 데이터의 경우 로봇(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 로봇(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현될 수 있다. 또한, 로봇(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
일 예에 따라 메모리(130)는 오브젝트까지의 거리 정보를 포함하는 Distance Map, 오브젝트(또는 장애물)의 특성에 따른 속도 프로파일 정보 등을 저장할 수 있다. 다만, 해당 정보들은 외부 장치로부터 실시간으로 수신되는 것도 가능하다. 여기서, Distance Map은 각 셀에 오브젝트, 즉 장애물까지 거리 및 해당 장애물의 확률 값을 저장하는 형태일 수 있다.
하나 이상의 프로세서(140)는 로봇(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(140)는 로봇(100)의 각 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(140)는 메모리(130) 및 구동부(120)와 전기적으로 연결되어 로봇(100)의 전반적인 동작을 제어할 수 있다. 프로세서(140)는 하나 또는 복수의 프로세서로 구성될 수 있다. 예를 들어, 다양한 기능(예를 들어, 맵 생성, 경로 플래닝)은 하나의 프로세서에 의해 수행될 수도 있으나, 복수의 프로세서에 의해 각기 다른 기능이 수행될 수도 있다.
하나 이상의 프로세서(140)는 CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerated Processing Unit), MIC (Many Integrated Core), DSP (Digital Signal Processor), NPU (Neural Processing Unit), 하드웨어 가속기 또는 머신 러닝 가속기 중 하나 이상을 포함할 수 있다. 하나 이상의 프로세서(140)는 로봇(100)의 다른 구성요소 중 하나 또는 임의의 조합을 제어할 수 있으며, 통신에 관한 동작 또는 데이터 처리를 수행할 수 있다. 하나 이상의 프로세서(140)는 메모리(130)에 저장된 하나 이상의 프로그램 또는 명령어(instruction)을 실행할 수 있다. 예를 들어, 하나 이상의 프로세서(140)는 메모리(130)에 저장된 하나 이상의 명령어를 실행함으로써, 본 개시의 일 실시 예에 따른 방법을 수행할 수 있다.
본 개시의 일 실시 예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 하나의 프로세서에 의해 수행될 수도 있고, 복수의 프로세서에 의해 수행될 수도 있다. 예를 들어, 일 실시 예에 따른 방법에 의해 제 1 동작, 제 2 동작, 제 3 동작이 수행될 때, 제 1 동작, 제 2 동작, 및 제 3 동작 모두 제 1 프로세서에 의해 수행될 수도 있고, 제 1 동작 및 제 2 동작은 제 1 프로세서(예를 들어, 범용 프로세서)에 의해 수행되고 제 3 동작은 제 2 프로세서(예를 들어, 인공지능 전용 프로세서)에 의해 수행될 수도 있다.
하나 이상의 프로세서(140)는 하나의 코어를 포함하는 단일 코어 프로세서(single core processor)로 구현될 수도 있고, 복수의 코어(예를 들어, 동종 멀티 코어 또는 이종 멀티 코어)를 포함하는 하나 이상의 멀티 코어 프로세서(multicore processor)로 구현될 수도 있다. 하나 이상의 프로세서(140)가 멀티 코어 프로세서로 구현되는 경우, 멀티 코어 프로세서에 포함된 복수의 코어 각각은 캐시 메모리, 온 칩(On-chip) 메모리와 같은 프로세서 내부 메모리를 포함할 수 있으며, 복수의 코어에 의해 공유되는 공통 캐시가 멀티 코어 프로세서에 포함될 수 있다. 또한, 멀티 코어 프로세서에 포함된 복수의 코어 각각(또는 복수의 코어 중 일부)은 독립적으로 본 개시의 일 실시예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있고, 복수의 코어 전체(또는 일부)가 연계되어 본 개시의 일 실시예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있다.
본 개시의 일 실시예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 멀티 코어 프로세서에 포함된 복수의 코어 중 하나의 코어에 의해 수행될 수도 있고, 복수의 코어에 의해 수행될 수도 있다. 예를 들어, 일 실시예에 따른 방법에 의해 제 1 동작, 제 2 동작, 및 제 3 동작이 수행될 때, 제 1 동작, 제2 동작, 및 제3 동작 모두 멀티 코어 프로세서에 포함된 제 1 코어에 의해 수행될 수도 있고, 제 1 동작 및 제 2 동작은 멀티 코어 프로세서에 포함된 제 1 코어에 의해 수행되고 제 3 동작은 멀티 코어 프로세서에 포함된 제 2 코어에 의해 수행될 수도 있다.
본 개시의 실시 예들에서, 프로세서는 하나 이상의 프로세서 및 기타 전자 부품들이 집적된 시스템 온 칩(SoC), 단일 코어 프로세서, 멀티 코어 프로세서, 또는 단일 코어 프로세서 또는 멀티 코어 프로세서에 포함된 코어를 의미할 수 있으며, 여기서 코어는 CPU, GPU, APU, MIC, DSP, NPU, 하드웨어 가속기 또는 기계 학습 가속기 등으로 구현될 수 있으나, 본 개시의 실시 예들이 이에 한정되는 것은 아니다. 이하 하나 이상의 프로세서(140)는 설명의 편의를 위하여 프로세서(140)로 명명하도록 한다.
도 2b는 본 개시의 일 실시 예에 따른 로봇의 일 구현 예의 세부 구성를 나타내는 도면이다.
도 2b에 따르면 로봇(100')은 적어도 하나의 센서(110), 구동부(120), 메모리(130), 하나 이상의 프로세서(140), 통신 인터페이스(150), 사용자 인터페이스(160) 및 디스플레이(170)를 포함할 수 있다. 도 2b에 도시된 구성 중 도 2a에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.
통신 인터페이스(150)는 다양한 타입의 데이터를 입력 및 출력할 수 있다. 예를 들어 통신 인터페이스(150)는 AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 블루투스(Bluetooth), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 통신 방식을 통해 외부 장치(예를 들어, 소스 장치), 외부 저장 매체(예를 들어, USB 메모리), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.
일 예에 따라 맵 정보를 외부 장치(또는 외부 서버)로부터 수신하는 경우, 통신 인터페이스(150)를 통해 맵 정보를 수신할 수 있다.
사용자 인터페이스(160)는 로봇(100')이 사용자와 인터렉션(Interaction)을 수행하기 위한 구성이다. 예를 들어 사용자 인터페이스(160)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
디스플레이(170)는 자발광 소자를 포함하는 디스플레이 또는, 비자발광 소자 및 백라이트를 포함하는 디스플레이로 구현될 수 있다. 예를 들어, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, LED(Light Emitting Diodes), 마이크로 LED(micro LED), Mini LED, PDP(Plasma Display Panel), QD(Quantum dot) 디스플레이, QLED(Quantum dot light-emitting diodes) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(110) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(170)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 롤러블 디스플레이(rollable display), 3차원 디스플레이(3D display), 복수의 디스플레이 모듈이 물리적으로 연결된 디스플레이 등으로 구현될 수 있다. 또한, 디스플레이(170)는 터치 스크린을 내장하고 있어, 손가락 또는 펜(예를 들어, 스타일러스 펜)을 이용하여 프로그램을 실행시킬 수 있도록 구현될 수 있다.
일 예에 따라 프로세서(140)는 SLAM(Simulaneous Localization And Mapping)에 기초하여 free space map을 획득할 수 있다. 여기서, SLAM이란 맵을 생성함과 동시에 로봇(100)의 위치를 추정하는 것을 의미한다. 예를 들어, 프로세서(140)는 적어도 하나의 센서(미도시)를 통해 획득된 데이터에 기초하여 free space map을 획득할 수 있다. 일 예에 따라 프로세서(140)는 GPS를 이용하여 로봇(100)의 위치를 파악하고, 카메라, 라이더 센서, 적외선 센서, 초음파 센서 등과 같이 로봇(100)에 구비된 다양한 센서를 이용하여 free space map을 획득할 수 있다. 여기서, free space map은 공간을 occupied space, free space 또는 unknown space 중 적어도 하나로 구분한 형태일 수 있다.
이어서, 프로세서(140)는 free-space map에 포함된 free space에 대한 정보 및 로봇(100)이 주행하는 동안 적어도 하나의 센서(미도시), 예를 들어 라이더 센서를 통해 획득된 정보에 기초하여 distance map을 획득할 수 있다. 여기서, Distance Map은 장애물까지 거리 및 장애물의 확률 값을 저장하는 형태일 수 있다.
일 예에 따라 프로세서(130)는 Distance Map을 기초로 하되, 후술하는 다양한 실시 예에 따라 실시간으로 모션 정보를 식별하고 이에 따라 로봇(100)의 주행을 제어할 수 있다.
도 3은 일 실시 예에 따른 로봇의 주행 방법을 설명하기 위한 도면이다.
도 3에 도시된 일 실시 예에 따르면, 프로세서(140)는 센서(110)를 통해 식별된 로봇(100)의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별한다(S310).
센서(110)는 로봇(100)의 속도 및 각속도를 측정할 수 있는 속도 센서, 자이로 센서, 가속도 센서, 각속도 센서 등을 포함할 수 있다. 여기서, 속도(velocity)는 단위 시간 동안에 이동한 위치 벡터의 변위로서, 단위 시간 동안 오브젝트의 위치 변화율을 나타내는 시간 함수이다. 각속도(angular velocity)는 회전하는 오브젝트의 단위 시간당 각 위치 변화이다. 예를 들어, △t시간 동안에 △θ만큼 회전하였을 때 각속도(ω)는 △θ/△t이다. 각속도의 단위는 초당 라디안, 즉 rad/s 또는 분당 회전수, 즉 RPM이 이용될 수 있다.
일 예에 따라 프로세서(140)는 현재 속도를 기준으로 기설정된 속도 범위 및 현재 각속도를 기준으로 기설정된 각속도 범위에 기초하여 복수의 제1 모션 정보를 식별할 수 있다. 여기서, 기설정된 속도 범위 및 기설정된 각속도 범위는 로봇(100)의 하드웨어 성능 또는 로봇(100)의 서비스 타입 중 적어도 하나에 기초하여 설정된 범위일 수 있다.
예를 들어, 로봇(100)의 하드웨어 성능에 기초한 속도 범위가 0 m/s ~ 2 m/s 인 경우 기 설정된 속도 범위는 효율성, 전력 소비량 등을 고려하여 0.3 m/s ~ 1.8 m/s 로 결정될 수 있다. 이는 로봇(100) 출하시 제조사에 의해 설정되어 있을 수 있으나 사용자에 의해 변경 가능할 수 있다. 또는, 로봇(100)의 하드웨어 성능에 기초하여 기 설정된 속도 범위가 0.3 m/s ~ 2 m/s 로 결정되더라도 로봇(100)의 서비스 타입(예를 들어, 청소 서비스, 서빙 서비스, 안내 서비스 등)에 기초하여 기 설정된 속도 범위가 0.5 m/s ~ 1.8 m/s 와 같이 조정될 수도 있다.
복수의 제1 모션 정보는 상이한 속도 및 상이한 각속도의 조합일 수 있다. 예를 들어, 로봇(100)의 현재 속도를 기준으로 기설정된 속도 범위에 기초하여 v1 ~ vm의 속도 범위가 식별되고, 현재 속도 및 각속도를 기준으로 기설정된 각속도 범위에 기초하여 w1 ~ wn의 각속도 범위가 식별된 경우를 가정한다. 이 경우, (v1, w1), (v1, w2),..(v1, wn), (v2, w1), (v2, w2),..(v2, wn), ...(vm, w1). (vm, w2),..(vm, wn)와 같은 복수의 속도 및 각속도 페어가 복수의 제1 모션 정보가 될 수 있다.
일 예에 따라 도 4에 도시된 바와 같이 y축 속도 정보 및 x축 각속도 정보를 기준으로 구별된 복수의 제1 모션 정보를 포함하는 기본 모션 후보군(410)이 식별될 수 있다. 다만 반드시 이와 같은 형태로 나타내어지는 것은 아니며 속도 및 각속도 정보를 매칭하는 형태라는 다양한 형태로 나타내어질 수 있다.
일 예에 따라 프로세서(130)는 기설정된 속도 범위 및 각속도 범위에 포함된 discrete value 또는 continuous value에 기초하여 복수의 제1 모션 정보를 식별할 수 있다. 예를 들어, 기본 모션 후보군(410)은 복수의 제1 모션 정보가 discrete한 각 셀(또는 그리드)에 대응되며, 각 셀이 속도 값 및 가속도 값을 포함하는 형태일 수 있으나, 이에 한정되는 것은 아니다. 여기서, 속도 값 및 가속도 값은 절대 수치일 수 있으나, 이에 한정되는 것은 아니며 기준 수치에 적용되는 게인 형태일 수 있다.
프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능(또는 주행 기능)에 기초하여 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별할 수 있다(S320). 여기서, 적어도 하나의 제1 주행 성능은 전방 안전 거리 및 목표 지점까지의 거리를 포함할 수 있으나, 반드시 이에 한정되는 것은 아니다.
일 예에 따라 도 4에 도시된 바와 같이 기본 모션 후보군(410)에 포함된 복수의 제1 모션 정보 중 일부 모션 정보, 즉 제2 모션 정보가 제2 모션 후보(420)로 식별될 수 있다.
프로세서(140)는 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별할 수 있다(S330). 여기서, 적어도 하나의 제2 주행 성능은 측면 안전 거리를 포함할 수 있으나, 이에 한정되는 것은 아니다, 예를 들어, 장애물 타입(예를 들어, 동적 장애물 또는 정적 장애물) 등과 같은 다른 추가 요소가 최종 모션 정보를 식별하는데 고려될 수도 있다.
일 예에 따라 도 4에 도시된 바와 같이 제2 모션 후보(420)에 포함된 복수의 제2 모션 정보 중 특정 모션 정보(430)가 최종 모션 정보로 식별될 수 있다.
이 후, 프로세서(140)는 식별된 최종 모션 정보에 따라 로봇(100)이 주행하도록 구동부(120)를 제어할 수 있다. 예를 들어, 최종 모션 정보가 (v2, w1)으로 결정된 경우 해당 속도 및 각속도로 로봇(100)이 주행하도록 제어할 수 있다.
도 5는 일 실시 예에 따른 로봇의 주행 방법을 자세히 설명하기 위한 도면이다.
도 5에 도시된 일 실시 예에 따르면, 프로세서(140)는 로봇(100)의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별할 수 있다(S510). 일 예에 따라 도 6에 도시된 바와 같이 y축 속도 정보 및 x축 각속도 정보를 포함하는 기본 모션 후보군(610)이 식별될 수 있다. S510 단계는 도 3의 S310 단계과 동작이 동일하므로 자세한 설명을 생략하도록 한다.
프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리에 기초하여 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별할 수 있다(S520).
일 예에 따라 프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득하고, 획득된 모션 스코어에 기초하여 제2 모션 후보(620)를 식별할 수 있다. 여기서, 모션 스코어는 전방 안전 거리에 제1 가중치를 적용하고 목표 지점까지의 거리에 제2 가중치를 적용하여 획득될 수 있다. 모션 스코어를 산출하는 구체적 방법에 대해서는 도 7, 도 8a 및 도 8b를 참조하여 자세히 설명하도록 한다. 예를 들어, 프로세서(140)는 도 6에 도시된 바와 같이 기본 모션 후보군에 포함된 복수의 제1 모션 정보(610) 각각에 대응되는 전방 안전 거리 및 목표 지점까지 거리에 기초하여, 복수의 제1 모션 정보(610) 중 복수의 제2 모션 정보(620)를 식별할 수 있다.
프로세서(140)는 제2 모션 정보 각각에 대응되는 측면 안전 거리에 기초하여 제2 모션 정보 중 최종 모션 정보를 식별할 수 있다.
일 예에 따라 프로세서(140)는 도 6에 도시된 바와 같이 복수의 제2 모션 정보(620) 각각에 대응되는 측면 안전 거리에 기초하여, 복수의 제2 모션 정보(620) 중 최종 모션 정보(630)를 식별할 수 있다. 예를 들어, 도 6에 도시된 바와 같이 측면 안전 거리에 기초하여 제2 모션 정보(620) 중 최종 모션 정보(630)가 식별될 수 있다.
다만 이에 한정되는 것은 아니며, 측면 안전 거리 외에 추가 반영 요소가 존재하는 경우, 제2 모션 정보 각각에 대응되는 측면 안전 거리에 제3 가중치를 적용하고 제2 모션 정보 각각에 대응되는 추가 반영 요소에 제4 가중치를 적용하여 제2 모션 정보 각각에 대응되는 모션 스코어를 획득할 수 있음은 물론이다.
이후, 프로세서(140)는 식별된 최종 모션 정보에 따라 로봇(100)이 주행하도록 구동부(120)를 제어할 수 있다. S540 단계는 도 3의 S340 단계과 동작이 동일하므로 자세한 설명을 생략하도록 한다.
도 7, 도 8a 및 도 8b는 일 실시 예에 따른 모션 스코어 획득 방법을 설명하기 위한 도면들이다.
도 7에 도시된 일시 예에 따르면, 프로세서(140)는 기본 모션 후보군에 속하는 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리를 식별할 수 있다(S710).
일 예에 따라 도 8a에 따르면, 로봇(100)의 현재 속도 및 각속도가 (v1, w1)이고 제1 모션 정보가 (v1, w2)인 경우, 즉, 로봇(100)의 속도는 유지되고 각속도가 w1에서 w2로 변경되는 경우 프로세서(140)는 제1 모션 정보 (v1, w2)에 대응되는 로봇(100)의 위치를 예측할 수 있다.
프로세서(140)는 제1 모션 정보 (v1, w2)에 대응되는 로봇(100)의 위치에서 전방 안전 거리 d1 및 목표 지점까지의 거리 d2를 산출할 수 있다.
일 예에 따라 도 8b에 따르면, 로봇(100)의 현재 속도 및 각속도가 (v1, w1)이고 제1 모션 정보가 (v1, w3)인 경우, 즉, 로봇(100)의 속도는 유지되고 각속도가 w1에서 w3로 변경되는 경우 프로세서(140)는 제1 모션 정보 (v1, w3)에 대응되는 로봇(100)의 위치를 예측할 수 있다.
프로세서(140)는 제1 모션 정보 (v1, w3)에 대응되는 로봇(100)의 위치에서 전방 안전 거리 d3 및 목표 지점까지의 거리 d4를 산출할 수 있다.
이와 같이 프로세서(140)는 복수의 제1 모션 정보 각각에 대해 전방 안전 거리 및 목표 지점까지의 거리를 산출할 수 있다.
프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리에 제1 가중치를 적용하고 목표 지점까지의 거리에 제2 가중치를 적용하여 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득할 수 있다(S720). 예를 들어, 프로세서(140)는 전방 안전 거리는 길수록 목표 지점까지의 거리는 짧을수록 모션 스코어 값이 커지도록 제1 가중치 및 제2 가중치를 결정할 수 있다.
일 예에 따라 프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리에 대해 동일한 가중치를 적용하거나, 상이한 가중치를 적용할 수 있다. 여기서 적용되는 제1 및 제2 가중치는 독립적인 가중치이거나, 상호 연관된 가중치일 수 있다. 다만, 전방 안전 거리 및 목표 지점까지의 거리는 상이한 물리 값이므로 제1 및 제2 가중치가 상호 연관된 가중치(예를 들어, 제1 가중치 및 제2 가중치의 합이 1인 경우)인 경우 전방 안전 거리 및 목표 지점까지의 거리에 대한 노멀라이징이 필요할 수 있다.
일 예에 따라 프로세서(140)는 전방 안전 거리에 제1 가중치가 적용된 값 및 목표 지점까지의 거리에 제2 가중치가 적용된 값을 합산하여 모션 스코어를 산출할 수 있다. 일 예에 따라 프로세서(140)는 전방 안전 거리 및 목표 지점까지의 거리를 노멀라이징하고, 노멀라이징된 전방 안전 거리에 제1 가중치가 적용된 값 및 노멀라이징된 전방 안전 거리에 제1 가중치가 적용된 값 및 노멀라이징된 목표 지점까지의 거리에 제2 가중치가 적용된 값을 합산하여 모션 스코어를 산출할 수 있다. 다만, 이는 일 예일 뿐이며 모션 스코어는 전방 안전 거리, 목표 지점까지의 거리 및 가중치에 기초하여 다양한 방식으로 산출될 수 있음은 물론이다.
프로세서(140)는 S720 단계에서 획득된 모션 스코어에 기초하여 복수의 제1 모션 정보 중 복수의 제2 모션 정보를 식별할 수 있다(S730).
일 예에 따라 프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 모션 스코어 중 가장 큰 값을 가지는 제1 모션 정보를 식별하고, 식별된 제1 모션 스코어에 기초하여 복수의 제2 모션 정보를 식별할 수 있다.
도 9는 일 실시 예에 따른 제2 모션 정보 및 최종 모션 정보를 식별하는 방법을 자세히 설명하기 위한 도면이다.
도 9에 도시된 일 실시 예에 따르면, 프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득할 수 있다(S910). 이에 대해서는 도 7, 도 8a 및 도 8b에서 자세히 설명하였으므로 구체적인 설명은 생략하도록 한다.
일 예에 따르면, 프로세서(140)는 복수의 제1 모션 정보 중 모션 스코어가 가장 큰 모션 정보와 동일한 속도이고 상이한 각속도를 포함하는 복수의 제2 모션 정보를 제2 모션 후보로 식별할 수 있다(S920). 예를 들어, 도 6에 도시된 예시에서 복수의 제1 모션 정보(610) 중 모션 스코어가 가장 큰 모션 정보(611)를 식별하고, 식별된 모션 정보(611)와 동일한 속도이고 상이한 각속도를 포함하는 복수의 제2 모션 정보(620)를 제2 모션 후보로 식별할 수 있다.
프로세서(140)는 복수의 제2 모션 정보에 포함된 상이한 각속도 각각에 따른 측면 안전 거리를 식별할 수 있다(S930).
이후, 프로세서(140)는 식별된 측면 안전 거리 중 최대 거리에 대응되는 각속도를 가지는 모션 정보를 최종 모션 정보로 식별할 수 있다(S940). 예를 들어, 도 6에 도시된 예시에서 복수의 제2 모션 정보(620) 중 측면 안전 거리가 가장 큰 모션 정보(621)를 최종 모션 정보(630)로 식별할 수 있다.
도 10a 및 도 10b는 일 실시 예에 따른 최종 모션 식별 방법을 좀더 자세히 설명하기 위한 도면들이다.
도 10a는 도 1a에 도시된 바와 같은 여유 공간이 넓은 단일 장애물 회피를 위한 최종 모션 식별 방법의 예시이고, 도 10b는 도 1b에 도시된 바와 같은 장애물 밀집 지역 돌파 주행의 경우 최종 모션 식별 방법의 예시이다.
도 10a에 도시된 일 예에 따르면, 프로세서(130)는 복수의 제1 모션 정보(1010) 중 단일 장애물의 위치에 기초하여 일부 모션 정보들(1021)은 제외되고 나머지 모션 정보들 중 최적 모션 정보(1031)가 식별될 수 있다.
프로세서(130)는 최적 모션 정보(1031)에 기초하여 속도가 결정되면 단일 장애물의 위치에 기초하여 동일한 속도를 모션 정보 중 일부 모션 정보 중 단일 장애물의 위치에 기초하여 일부 모션 정보들(1021)은 제외하고 나머지 모션 정보 만을 제2 모션 정보(1030)로 식별할 수 있다. 예를 들어, 도 10a에 도시된 v축 및 w 축 그래프에서 최적 모션 정보(1031)와 동일한 속도를 가지는 모션 정보는 첫번째 라인의 모션 정보들이지만 이들 중 최적 모션 정보(1031)의 좌측에 위치한 모션 정보들은 제외되고 나머지 모션 정보들(1030)만이 제2 모션 후보로 식별될 수 있다.
이어서 제2 모션 후보에 포함된 모션 정보들(1030) 중 최종 모션 정보가 식별될 수 있다. 예를 들어, 단일 장애물에 대해 최대 측면 거리를 가지는 모션 정보(1032)가 최종 모션 정보로 식별될 수 있다.
도 10b에 도시된 일 예에 따르면, 프로세서(130)는 복수의 제1 모션 정보(1010) 중 복수의 장애물 각각의 위치에 기초하여 일부 모션 정보 들(1022, 1023)은 제외되고 나머지 모션 정보들 중 최적 모션 정보(1031)가 식별될 수 있다. 일 예에 따라 제외되는 모션 정보(1022, 1023, 1024)는 각각 다른 장애물의 위치에 기초하여 제외되는 모션 정보일 수 있다.
프로세서(130)는 최적 모션 정보(1051)에 기초하여 속도가 결정되면 동일한 속도를 모션 정보 중 일부 모션 정보 중 복수의 장애물 각각의 위치에 기초하여 일부 모션 정보들은 제외하고 나머지 모션 정보 만을 제2 모션 정보(1050)로 식별할 수 있다. 예를 들어, 도 10b에 도시된 v축 및 w축 그래프에서 최적 모션 정보(1051)와 동일한 속도를 가지는 모션 정보는 첫번째 라인의 모션 정보들이지만 이들 중 최적 모션 정보(1051)의 좌측에 위치한 모션 정보들은 제외되고 나머지 모션 정보들(1050)만이 제2 모션 후보로 식별될 수 있다.
이어서 제2 모션 후보에 포함된 모션 정보들(1050) 중 최종 모션 정보가 식별될 수 있다. 예를 들어, 복수의 장애물 각각에 대해 최대 측면 거리를 가지는 모션 정보(1532)가 최종 모션 정보로 식별될 수 있다.
도 11a 및 도 11b는 일 실시 예에 따른 침해 적발 방법을 설명하기 위한 도면들이다.
도 11a 및 도 11b에 도시된 바와 같이 장애물(1120)의 위치가 이동되는 경우(예를 들어 동적 장애물의 경우) 도 11a의 위치에서 도 11b의 위치로 이동되는 경우 로봇(100) 주행시 장애물(1120)과의 측면 거리(또는 측면 간격) 확보량(D)이 일정하게 유지될 수 있다. 이는 우선 순위에 따라 측면 거리가 마지막 라운드에서 고려되기 때문이다. 하지만, 단순히 모든 주행 성능에 가중합을 적용하여 통합적으로 모션 정보를 식별(예를 들어, 가중합 스코어링 방식)하게 되면 의도치 않은 모션이 발생할 가능성이 높아지게 된다.
예를 들어, 로봇(100) 및 장애물(1120) 간의 측면 거리 확보량이 일정하게 유지되지 않게 된다. 예를 들어, 도 11b를 참고하면, 장애물의 이동에 따라 로봇(100) 장애물에 좀더 가까운 측면 거리로 주행하는 경우 목표 지점(1130)까지의 거리가 짧아질 수 있기 때문에 이를 다른 주행 요소들과 가중합으로 반영하게 되면 측면 거리 확보량이 짧아질 수 있게 된다.
또한, 본 개시에 따르면 최대 측면 안정 거리를 항상 확보하므로 양쪽 장애물 사이를 돌파 주행하는 경우 항상 양쪽 장애물 사이의 중앙 지점으로 돌파 주행하게 되지만, 가중합 스코어링 방식에 따르면, 각 주행 요소 들 간의 절충 지점을 고려하게 되므로 항상 양쪽 장애물 사이의 중앙 지점을 돌파 주행할 수 없게 된다.
상술한 바와 같이 로봇(100)이 이동하는 경우 장애물에 대한 측면 거리 확보량이 유지되는지 여부에 따라 본 개시의 다양한 실시 예에 따른 침해 적발이 가능할 수 있다.
한편, 상술한 실시 예에서는 제1 모션 정보에서 제2 모션 정보를 식별하는 제1 라운드, 제2 모션 정보에서 최종 모션 정보를 식별하는 제2 라운드의 예시를 설명하였으나, 이에 한정되는 것은 아니며 다양한 상황에 따라 추가 라운드가 반영될 수 있음은 물론이다.
상술한 다양한 실시 예에 따르면, 주행 기능의 우선 순위에 따라 최적의 모션 정보를 단계적으로 선택하여 가중합 스코어링 방식에 따라 의도치 않은 모션이 선택되는 문제를 해결할 수 있게 된다. 또한, 측면 안전 거리를 자율적으로 조정하여 주행 성능을 향상 시킬 수 있게 된다.
한편, 상술한 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다. 또는 상술한 본 개시의 다양한 실시 예들에 따른 방법들 중 적어도 일부는 딥 러닝 기반의 인공 지능 모델 즉, 학습 네트워크 모델을 이용하여 수행될 수도 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 로봇 110: 센서
120: 구동부 130: 메모리
140: 하나 이상의 프로세서

Claims (19)

  1. 로봇(100)에 있어서,
    센서(110);
    구동부(120);
    적어도 하나의 인스트럭션이 저장된 메모리(130); 및
    상기 적어도 하나의 인스트럭션을 실행함으로써,
    상기 센서를 통해 식별된 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하고,
    상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고,
    상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하며,
    상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 상기 구동부를 제어하는 하나 이상의 프로세서(140);를 포함하는 로봇.
  2. 제1항에 있어서,
    상기 적어도 하나의 제1 주행 성능은, 전방 안전 거리 및 목표 지점까지의 거리를 포함하고,
    상기 적어도 하나의 제2 주행 성능은, 측면 안전 거리를 포함하며,
    상기 하나 이상의 프로세서는,
    상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고,
    상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 기초하여 상기 제2 모션 정보 중 최종 모션 정보를 식별하며,
    상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 상기 구동부를 제어하는, 로봇.
  3. 제2항에 있어서,
    상기 복수의 제1 모션 정보는 상이한 속도 및 상이한 각속도의 조합이며,
    상기 하나 이상의 프로세서는,
    상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리를 식별하고,
    상기 전방 안전 거리에 제1 가중치를 적용하고 상기 목표 지점까지의 거리에 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득하고,
    상기 모션 스코어에 기초하여 상기 복수의 제1 모션 정보 중 상기 제2 모션 정보를 식별하는, 로봇.
  4. 제3항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어가 획득되면, 상기 복수의 제1 모션 정보 중 모션 스코어가 가장 큰 모션 정보와 동일한 속도이고 상이한 각속도를 포함하는 복수의 제2 모션 정보를 상기 제2 모션 후보로 식별하는, 로봇.
  5. 제4항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 복수의 제2 모션 정보에 포함된 상이한 각속도 각각에 따른 측면 안전 거리를 식별하고, 상기 식별된 측면 안전 거리 중 최대 거리에 대응되는 각속도를 가지는 모션 정보를 상기 최종 모션 정보로 식별하는, 로봇.
  6. 제3항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 전방 안전 거리는 길수록 상기 목표 지점까지의 거리는 짧을수록 상기 모션 스코어 값이 커지도록 상기 제1 가중치 및 상기 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 상기 모션 스코어를 획득하는, 로봇.
  7. 제2항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 측면 안전 거리 외에 추가 반영 요소가 존재하는 경우, 상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 제3 가중치를 적용하고 상기 제2 모션 정보 각각에 대응되는 추가 반영 요소에 제4 가중치를 적용하여 상기 제2 모션 정보 각각에 대응되는 상기 모션 스코어를 획득하고,
    상기 획득된 모션 스코어에 기초하여 상기 제2 모션 정보 중 상기 최종 모션 정보를 식별하는, 로봇.
  8. 제2항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 로봇의 하드웨어 성능 또는 상기 로봇의 서비스 타입 중 적어도 하나에 따른 기설정된 속도 범위 및 각속도 범위에 기초하여 상기 로봇의 현재 속도 및 각속도를 기준으로 상기 복수의 제1 모션 정보를 식별하는, 로봇.
  9. 제8항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 기설정된 속도 범위 및 각속도 범위에 포함된 discrete value 또는 continuous value에 기초하여 상기 복수의 제1 모션 정보를 식별하는, 로봇.
  10. 로봇의 구동 방법에 있어서,
    센서를 통해 식별된 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하는 단계;
    상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하는 단계;
    상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하는 단계; 및
    상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 구동부를 제어하는 단계;를 포함하는 구동 방법.
  11. 제10항에 있어서,
    상기 적어도 하나의 제1 주행 성능은, 전방 안전 거리 및 목표 지점까지의 거리를 포함하고,
    상기 적어도 하나의 제2 주행 성능은, 측면 안전 거리를 포함하며,
    상기 제2 모션 후보로 식별하는 단계는,
    상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고,
    상기 최종 모션 정보를 식별하는 단계는,
    상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 기초하여 상기 제2 모션 정보 중 최종 모션 정보를 식별하는, 구동 방법.
  12. 제11항에 있어서,
    상기 복수의 제1 모션 정보는 상이한 속도 및 상이한 각속도의 조합이며,
    상기 제2 모션 후보로 식별하는 단계는,
    상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리를 식별하는 단계;
    상기 전방 안전 거리에 제1 가중치를 적용하고 상기 목표 지점까지의 거리에 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득하는 단계; 및
    상기 모션 스코어에 기초하여 상기 복수의 제1 모션 정보 중 상기 제2 모션 정보를 식별하는 단계;를 포함하는, 구동 방법.
  13. 제12항에 있어서,
    상기 제2 모션 후보로 식별하는 단계는,
    상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어가 획득되면, 상기 복수의 제1 모션 정보 중 모션 스코어가 가장 큰 모션 정보와 동일한 속도이고 상이한 각속도를 포함하는 복수의 제2 모션 정보를 상기 제2 모션 후보로 식별하는, 구동 방법.
  14. 제13항에 있어서,
    상기 최종 모션 정보를 식별하는 단계는,
    상기 복수의 제2 모션 정보에 포함된 상이한 각속도 각각에 따른 측면 안전 거리를 식별하고, 상기 식별된 측면 안전 거리 중 최대 거리에 대응되는 각속도를 가지는 모션 정보를 상기 최종 모션 정보로 식별하는, 구동 방법.
  15. 제12항에 있어서,
    상기 제2 모션 후보로 식별하는 단계는,
    상기 전방 안전 거리는 길수록 상기 목표 지점까지의 거리는 짧을수록 상기 모션 스코어 값이 커지도록 상기 제1 가중치 및 상기 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 상기 모션 스코어를 획득하는, 구동 방법.
  16. 제11항에 있어서,
    상기 최종 모션 정보를 식별하는 단계는,
    상기 측면 안전 거리 외에 추가 반영 요소가 존재하는 경우, 상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 제3 가중치를 적용하고 상기 제2 모션 정보 각각에 대응되는 추가 반영 요소에 제4 가중치를 적용하여 상기 제2 모션 정보 각각에 대응되는 상기 모션 스코어를 획득하는, 로봇.
  17. 제11항에 있어서,
    상기 기본 모션 후보군을 식별하는 단계는,
    상기 로봇의 하드웨어 성능 또는 상기 로봇의 서비스 타입 중 적어도 하나에 따른 기설정된 속도 범위 및 각속도 범위에 기초하여 상기 로봇의 현재 속도 및 각속도를 기준으로 상기 복수의 제1 모션 정보를 식별하는, 로봇.
  18. 제17항에 있어서,
    상기 기본 모션 후보군을 식별하는 단계는,
    상기 기설정된 속도 범위 및 각속도 범위에 포함된 discrete value 또는 continuous value에 기초하여 상기 복수의 제1 모션 정보를 식별하는, 로봇.
  19. 로봇의 프로세서에 의해 실행되는 경우 상기 전자 장치가 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서,
    상기 동작은,
    상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하는 단계;
    상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하는 단계;
    상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하는 단계; 및
    상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행시키는 단계;를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
KR1020220107794A 2022-08-26 2022-08-26 로봇 및 그 구동 방법 KR20240029402A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220107794A KR20240029402A (ko) 2022-08-26 2022-08-26 로봇 및 그 구동 방법
PCT/KR2023/009263 WO2024043497A1 (ko) 2022-08-26 2023-06-30 로봇 및 그 구동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220107794A KR20240029402A (ko) 2022-08-26 2022-08-26 로봇 및 그 구동 방법

Publications (1)

Publication Number Publication Date
KR20240029402A true KR20240029402A (ko) 2024-03-05

Family

ID=90013611

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220107794A KR20240029402A (ko) 2022-08-26 2022-08-26 로봇 및 그 구동 방법

Country Status (2)

Country Link
KR (1) KR20240029402A (ko)
WO (1) WO2024043497A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843096B1 (ko) * 2006-12-21 2008-07-02 삼성전자주식회사 이동 로봇의 주행 상태 판별 장치 및 방법
WO2019194628A1 (ko) * 2018-04-06 2019-10-10 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102049962B1 (ko) * 2019-04-17 2019-11-28 주식회사 트위니 샘플링기반의 최적 트리를 이용한 경로 계획 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
US11772265B2 (en) * 2020-08-20 2023-10-03 Bear Robotics, Inc. Method, system, and non-transitory computer-readable recording medium for controlling movement of a robot
KR20220055167A (ko) * 2020-10-26 2022-05-03 주식회사 케이티 자율주행 로봇, 자율주행 로봇의 충돌 회피 방법 및 월드 맵 관리 방법

Also Published As

Publication number Publication date
WO2024043497A1 (ko) 2024-02-29

Similar Documents

Publication Publication Date Title
EP3342666B1 (en) Method and system for operating autonomous driving vehicles using graph-based lane change guide
JP6878493B2 (ja) 自動運転車両(adv)に用いるピッチ角の補正方法
US10394245B2 (en) Method and system to predict vehicle traffic behavior for autonomous vehicles to make driving decisions
EP3689215B1 (en) Region attribute determination
US11520347B2 (en) Comprehensive and efficient method to incorporate map features for object detection with LiDAR
CN109196432A (zh) 用于自动驾驶车辆的速度控制参数估计方法
KR20170133234A (ko) 실시간 교통 정보에 기반하여 자율 주행 차량 내에서 콘텐츠를 제공하는 시스템 및 방법
CN110929702A (zh) 一种轨迹规划方法、装置、电子设备和存储介质
KR20180047210A (ko) 주차구획 탐색 장치 및 방법
US10860868B2 (en) Lane post-processing in an autonomous driving vehicle
CN108628298A (zh) 用于自动驾驶车辆的控制型规划和控制系统
CN113859264A (zh) 车辆控制方法、装置、电子设备及存储介质
JP2020083306A (ja) 自動運転車両を動作させるための所定のキャリブレーションテーブルに基づく車両制御システム
JP2020083307A (ja) L2自動運転用の所定のキャリブレーションテーブルに基づく車両アクセル/ブレーキアシストシステム
US10571919B2 (en) Systems and methods to identify directions based on use of autonomous vehicle function
KR102223347B1 (ko) 에뮬레이션 기반의 자율 주행 차량의 3점 방향 전환 계획
US10860032B2 (en) System and method for adaptive infrared emitter power optimization for simultaneous localization and mapping
US11880209B2 (en) Electronic apparatus and controlling method thereof
US20220075387A1 (en) Electronic device and control method thereof
CN113885506A (zh) 机器人避障方法、装置、电子设备及存储介质
KR20240029402A (ko) 로봇 및 그 구동 방법
JP2021130454A (ja) 自動運転車両のカーブ走行制御方法、装置、機器及び媒体
US20210232150A1 (en) Control device, control method, and program
JP7005571B2 (ja) 所定の負荷較正テーブルによる自動運転車両の車両負荷の確定方法
KR20230037266A (ko) 로봇 및 그 제어 방법