.. Cover Letter

공부#Robotics#자율주행/(ROS2)Path Planning

ROS2로 turtlebot3 제어하기 1장. 경로계획(Path planning)의 개요

BrainKimDu 2023. 6. 2. 16:14

이번 글은 별도의 참고자료가 존재하지 않고, 참고하는 블로그가 있는 경우 바로 다음에 표시를 하고 지나가도록 하겠습니다.


자율주행 개요

자율주행은 간단하게 3가지 과정을 통해 진행이 된다고 생각할 수 있습니다.  가장 먼저 주변의 상황을 파악하는 인지(perception) 과정을 거치고, 인지 정보를 바탕으로 어떻게 주행을 진행할 것인가 계획을 세우는 판단(Decision making)과정을 거치게되고, 이를 통해 로봇이나 자동차를 움직이는 제어(Control)하게됩니다.

우리는 여기서 판단과정에 집중을 하고자 합니다. 판단은 또 크게 2가지로 나눌 수 있습니다. 첫 번째는 경로계획(path planning) 혹은 경로생성(path generation), 두 번째는 경로추종(path following)입니다.  간단하게 네비게이션으로 목적지를 찍으면 목적지까지 경로를 생성해주는 것을 경로계획이라고 생각할 수 있고, 사람이 직접 자동차를 움직여서 목적지까지 이동하는 것을 경로추종이라고 생각할 수 있습니다.

 

경로 계획

위에서 설명한 대로 네비게이션에 목적지를 찍으면 해당하는 위치까지 경로를 생성해주는 과정을 전역경로생성(계획)이라고 합니다.  

그러면 자동차를 끌고 나와서 목적지까지 이동을 할 때, 1차선을 타고갈지 2차선을 타고갈지 계속해서 계획을 세우게 되는데, 이러한 과정을 지역경로생성(계획)이라고 합니다.

결국 자율주행의 경로계획 과정은 네비게이션을 통해서 전체경로를 생성하고 그 길을 따라가면서 발생하는 이벤트들을 처리하기 위해 계획하는 과정이라고 생각하면 됩니다.

그러면 자율주행에서 경로를 생성하기 위해 필요한 준비물은 무엇이 있을까요? 우선 전역경로계획을 위해서는 도로의 상황이 기록되어 있는 지도가 필요합니다. 지도가 있다면 목적지까지 손쉽게 경로를 생성할 수 있습니다. 

지역경로를 생성하는 과정을 이해할 때는 우리가 운전을 할 때를 생각해보면 됩니다. 우선 360도 방향으로 차들이 존재하는지, 현재 도로는 몇차선이고 차로 변경이 가능한지 등등. 주변 상황을 인식한 이후에 자동차를 제어합니다.

이 과정은 자율주행 관점으로 바라보게 된다면 카메라, 라이다, 레이더 등의 센서를 통해서 정보를 받아들이고, 이 정보를 딥러닝이나 조건문을 통해서 전처리한 이후 판단과정으로 넘깁니다.

그러면 이 정보를 바탕으로 지역경로를 생성하고 자율주행을 진행하게 됩니다. 하지만 이 과정은 예측불가능한 상황이 굉장히 많기 때문에 우리는 path planning 과정에만 집중하기로 하고 정말 이상적인 상황만 가정해서 로봇을 움직일 계획입니다.

인식을 하는 과정에서 등장하는 개념은 로봇을 직접 움직이면서 확인을 하도록 합시다. 글이 좀 짧으나 다음 글부터는 경로를 계획하는 다양한 알고리즘들을 알아보고, 이를 ROS상에서 구현하는 것을 목표로 합시다.

 

준비물

이 과정을 따라오기 위해서 필요한 준비물은 다음과 같습니다.

1.  그래픽카드가 달려있는 노트북, 혹은 데스크탑이 필요합니다. Gazebo를 실행해야합니다.

2. ROS2가 설치되어 있는 Ubuntu 환경이 필요합니다. 그러나 turtlebot3가 상당히 많은 ROS 버전을 커버합니다. 편한버전으로 받으면 됩니다. 저는 Humble을 사용합니다.

이에 대한 설치방법은 다음의 글들에 자세히 정리되어 있습니다.

(실무 리눅스) 1. 우분투 ubuntu 20.04(영문)를 설치하고 한글 키보드 추가하기. (tistory.com)

 

(실무 리눅스) 1. 우분투 ubuntu 20.04(영문)를 설치하고 한글 키보드 추가하기.

PinkLAB PinkLAB핑크랩은 머신러닝, 딥러닝의 데이터 사이언스와 로봇 SW에 대한 교육 컨텐츠를 개발하고, 기업의 데이터 기반 프로젝트나 로봇 개발 프로젝트를 매우 효율적인 방법으로 도울 수 있

kimbrain.tistory.com

(실무 리눅스) 2. 우분투 20.04에 chrome, jupyter notebook, visual studio code 설치하기 (tistory.com)

 

(실무 리눅스) 2. 우분투 20.04에 chrome, jupyter notebook, visual studio code 설치하기

이전 글의 연장선이며, 우분투를 막 설치했다 가정하고, 진행하도록 하겠습니다. 주의사항이 있습니다. 우분투에서는 카카오톡이 깔리지 않습니다. 그래서 우분투 운영체제에서 사용가능한 sns

kimbrain.tistory.com

(실무리눅스) 12. 우분투 22.04에 ROS2 Humble 설치하고 rviz와 gazebo까지 설치하기 (tistory.com)

 

(실무리눅스) 12. 우분투 22.04에 ROS2 Humble 설치하고 rviz와 gazebo까지 설치하기

https://docs.ros.org/en/humble/Installation.html Installation — ROS 2 Documentation: Humble documentation Binary packages Binaries are only created for the Tier 1 operating systems listed in REP-2000. Given the nature of Rolling, this list may be updated

kimbrain.tistory.com

터틀봇3 시뮬레이션 듀토리얼 진행하기 (tistory.com)

 

터틀봇3 시뮬레이션 듀토리얼 진행하기

https://emanual.robotis.com/docs/en/platform/turtlebot3/overview/ ROBOTIS e-Manual emanual.robotis.com humble 버전을 Github 에서 다운로드 받도록 하겠습니다. 아마 로보티즈에서 만든 패키지가 있을 것입니다. https://github.

kimbrain.tistory.com

 

이정도까지 설치되어 있으면 됩니다. 추가적으로 ROS2에 대한 지식이 있다는 가정으로 진행됩니다. 그러니 이 목록을 정독할 생각이라면 다음의 책을 참고하는 것이 좋습니다.

표윤석님의 다음의 책을 공부하는 것이 좋습니다. 책이 없다면 오픈로보틱스 카페에 표윤석 박사님이 따로 정리한 내용들이 있으니 이를 참고해도 좋습니다. ROS 세상에 발을 들였다면 바이블정도니 한 권정도 사놓는 것이 좋습니다. 난이도가 높은편입니다.

ROS 2로 시작하는 로봇 프로그래밍 - YES24

 

ROS 2로 시작하는 로봇 프로그래밍 - YES24

이 책은 ROS 공식 플랫폼인 TurtleBot3의 개발자이자 10여 년간 ROS 기반 프로젝트를 진행한 로보틱스 엔지니어인 필자들이 실무에서 얻은 경험과 커뮤니티 활동을 바탕으로 작성한 ROS 로봇 프로그래

www.yes24.com

오픈소스 소프트웨어 & 하드웨어: 로봇 기술 공유 카페 (오로카) : 네이버 카페 (naver.com)

 

오픈소스 소프트웨어 & 하드웨어: 로... : 네이버 카페

오픈소스 소프트웨어/하드웨어로 만드는 로봇 기술 공유 카페 (ROS,ARM,AVR,mbed,라즈베리파이,아두이노)

cafe.naver.com

 

위의 책이 난이도가 높다면 민형기님의 ROS2 책으로 먼저 공부를 한 후에 표윤석님의 책을 보시면 됩니다.

ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 - YES24

 

ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 - YES24

이 책은 ROS라는 도구의 존재를 알고 공부하려는 분 중에 아직 공부를 시작하지 않았거나, 이것저것 예제를 돌려봤지만 어떤 것인지 감을 잡지 못한 분들을 대상으로 하고 있다. 오랫동안 강의를

www.yes24.com

 

제가 따로 정리한 부분이 있지만 아직 완결이 되지 않았습니다.

'공부#Robotics/(ROS2) 기초' 카테고리의 글 목록 (tistory.com)

 

'공부#Robotics/(ROS2) 기초' 카테고리의 글 목록

넘어야할 산이 이렇게 많을 줄이야.. Path planning

kimbrain.tistory.com