wn42
코딩이랑 이것저것
wn42
전체 방문자
오늘
어제
  • 분류 전체보기 (113)
    • 프로그래머스 (23)
      • LV1 (11)
      • LV2 (1)
      • LV3 (3)
      • 연습 (8)
    • 딥러닝 공부 (0)
      • 머신러닝&딥러닝 이론 (0)
    • 임베디드 (17)
      • Adventure Design (1)
      • 센서기반모바일로봇 (5)
      • ROS (9)
      • Google Coral (2)
    • C++ (38)
      • C++ 기초 (34)
      • 자료구조 및 알고리즘 (4)
    • Python (14)
      • 기본 파이썬 문법 (6)
      • Python 기초 (8)
    • 빅데이터 (9)
      • 빅데이터 첫걸음 시작하기(국비지원) (5)
      • 빅데이터 공부 (4)
    • 알고리즘 공부 (2)
      • 기본 알고리즘 (2)
    • 전자공학 (10)
      • 반도체 공정 (3)
      • 무선데이터통신 (7)
      • 반도체공학 (0)
    • C# (0)
      • C# 기본 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 패스트캠퍼스
  • 바이트디그리
  • stl
  • 반복문
  • Queue
  • 상속
  • 데이터분석
  • numpy
  • 프로그래머스
  • 딥러닝
  • 스택
  • 인스턴스
  • Python
  • 클래스
  • 빅데이터
  • ROS
  • google coral
  • K디지털크레딧
  • 조건문
  • 소멸자
  • 정렬
  • 파이썬
  • 변수
  • 데이터분석 인강
  • 빅데이터 첫걸음 시작하기
  • 스택/큐
  • 내일배움카드
  • 큐
  • 노드
  • c++

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
wn42

코딩이랑 이것저것

Robotics, Vision and Control [Chap.1]
임베디드/센서기반모바일로봇

Robotics, Vision and Control [Chap.1]

2022. 2. 26. 14:31

경희대학교 대학원 수업 - 센서기반모바일로봇

서론

Chap.1은 센서기반모바일로봇 수업에 대한 전반적인 개요를 설명한다.

 

많은 학문에서 모바일로봇에 대한 연구가 진행된다.

  • Mechanical engineering(기계): vehicle design and in particular locomotive mechanisms
  • Computer science(컴퓨터): representations and sensing and planning algorithms
  • Electrical engineering(전자 - 블로그 주인 학과): system integration, sensors, and communications
  • Cognitive psychology, perception, and neuroscience(인지, 뇌공학): insights into how biological organisms solve similar problems
  • Mechatronics(기계 + 전자): the combination of mechanical engineering with computer science, computer engineering, and/or electrical engineering

 

모바일로봇은 매우 다양한 분야에서 사용된다.

  • 사람에게 굉장히 호의적이지 않은 장소(화성, 심해) 등에서 활동
  • 반복적인 작업을 하는데 유용
  • 사람에게 적합하지 않은 작업을 하는데 유용

 

옛날에 제작된 다양한 로봇들

로봇에 대한 연구는 오래전부터 계속되고 있고, 위와 같은 로봇들을 여러 기관과 대학에서 제작하였다.

 

로봇이 수행하는 근본적인 문제

  • Path planning: 장애물을 피하여 지나갈 수 있는 길을 찾는 것
  • Localization: 현재 본인의 위치를 특정할 수 있는 것
  • Sensing: 주변 환경, 물체 등을 인식하는 것으로 주로 라이다와 카메라를 이용
  • Mapping: 지도를 그리는 것
  • SLAM: Simultaneous Localizaion And Mapping의 약자로 말 그대로 본인의 위치를 알면서 지도를 그리는 것을 말한다.

Path Planning

Bug Algorithm

위는 Path Planning의 한 예인 Bug Algorithm이다. 벌레의 움직임에서 착안하였으며, 벽에 닿으면 좌우로 움직여서 최종 Goal까지 도착하는 아주 간단한 형태의 알고리즘이다.

왼쪽의 그림은 Bug 알고리즘으로 시작부터 끝까지 이동하는 일련의 과정을 보여주며, 오른쪽은 해당 움직임에 대한 알고리즘을 구현하는 Pseudo Code(의사코드)이다.

코드는 C언어나 파이썬 등으로 구성되어 있는 것은 아니고 단순히 어떤 식으로 작동시킬 것인지를 나타내는 것이라고 생각하면 된다. 그냥 영어 지문 읽듯이 아래로 훑어 가면서 읽으면 된다.

 

Localization

Localization

Localization에서는 일단 간단히 (x, y)에서 다음 위치로 이동할 때 어느정도의 에러가 발생한다는 것만 알아두자.

아래의 식들은 나중에 칼만필터와 SLAM을 다룰 때 설명한다.

 

Sensing

Sensing은 센서를 이용하여 물체나 위치를 특정하는 과정이다.

위의 그림은 라이다 센서를 이용하여 각도에 따른 거리를 그래프로 표시한 것이다.

Sensing에 대해서도 여러 식이 있는데 이것도 나중에 설명한다. Chap.1에서는 이런 과정이라고만 알아두자.

 

Mapping

Mapping

가운데에 있는 검은 점은 로봇이고, 회색 점은 Beacon(위치 정보를 전달하기 위해 어떤 신호를 주기적으로 전송하는 기기)이다.

로봇이 움직이기 전에는 거리는 아는데 정확한 위치는 모르는 상태이다. (맨 위)

로봇이 움직이기 시작하면 비콘과 같은 거리에 있는 위치를 산정하여 비콘이 있는 위치를 특정할 수 있다. 왼쪽 하단의 그림은 로봇이 한 번 움직여서 비콘의 위치에 대한 후보가 2개가 되었음을 나타낸다.

로봇이 더 움직이면 비콘과의 거리를 반지름으로 하는 원이 겹쳐지는 부분이 하나로 추려진다. 이것이 mapping하는 과정이다.

 

SLAM

SLAM은 Localization과 Mapping을 같이 하는 과정을 말한다. SLAM은 어렵기 때문에 나중에 자세히 설명한다. 아래와 같은 그림의 맵이 생성됨을 알아두자.

 

제어 방식

시간이 지남에 따라 로봇을 제어하는 방식은 다양하게 변화해왔고, 지금은 확률적 패러다임을 주로 사용한다고 보면 된다. 모든 것이 모호한 모델이라고 보면된다.

    '임베디드/센서기반모바일로봇' 카테고리의 다른 글
    • Robotics, Vision and Control [Chap.5]
    • Robotics, Vision and Control [Chap.4]
    • Robotics, Vision and Control [Chap.3]
    • Robotics, Vision and Control [Chap.2]
    wn42
    wn42
    코딩이랑 이것저것 하는 블로그

    티스토리툴바