.. Cover Letter

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

ROS2로 turtlebot3 제어하기 6장. A* 알고리즘 탐구

참고자료 https://choiseokwon.tistory.com/210 파이썬 A* (A-star) 최단 경로 찾기 알고리즘 A* 길 찾기 알고리즘은 1968년에 Peter Hart, Nils Nilsson, Bertram Raphael에 의해 최초 공개됐다. 우선 Node 클래스는 아래와 같이 구현될 것이며, 아래 클래스를 보고 글을 읽으면 좀 더 편할 것이다. class Nod choiseokwon.tistory.com 코드 참고는 다음의 블로그를 참고하였습니다. 파이썬으로 작성되었으며, C++로 작성된 코드는 후에 시간이 남는다면 작성하도록 하겠습니다. A* 알고리즘이란? 최단거리 탐색알고리즘으로 가장유명한 알고리즘입니다. Grid Map (모논종이) 상에서 8방향의 방향성에 대해 장애물을 고려하..

ROS2로 turtlebot3 제어하기 5장. turtlebot이 생성된 경로를 따라 움직이게 하자

이번 글은 별도의 참고자료가 존재하지 않고, 참고하는 블로그가 있는 경우 바로 다음에 표시를 하고 지나가도록 하겠습니다. 맵행렬과 gazebo의 동기화 문제 이전시간에 현재의 좌표와 이동하고 싶은 좌표를 입력하면 최단경로를 얻을 수 있게 만들었습니다 이제 이를 ROS상에서 구현하면됩니다. 직접 cmd_vel을 발행하는 방법을 한 번 해보고자 합니다. 여기서 한 가지 문제가 있습니다. 로봇이 다음 그리드로 이동하는데 몇 m를 이동해야하는가.. 그리드를 분할하면 분할한 길이가 있을 것입니다. 이를 픽셀에 곱하면 이미지상에서 다음 위치로 이동하는 픽셀의 개수를 알 수 있습니다. map.yaml 파일 보면 resolution이라는 값이 보일 것입니다. 이 값이 이 문제를 해결하는 열쇠입니다. 0.05는 1픽셀의..

ROS2로 turtlebot3 제어하기 4장. map파일을 가지고 전역경로 생성하기

이번 글은 별도의 참고자료가 존재하지 않고, 참고하는 블로그가 있는 경우 바로 다음에 표시를 하고 지나가도록 하겠습니다. 이전 시간에 파이썬 가상환경을 만들었습니다. 그리고 맵의 색에 따라서 0과 1로 구분짓자는 것까지 이해했습니다. 이번시간에는 아주 간단하게 전역경로를 생성하고 이를 따라 움직이는 turtlebot3를 만들어보고자 합니다. 저는 map파일을 참고해서 경로를 계획하게 할 것입니다. 정말 간단하게는 픽셀단위로 잘라서 경로를 계획할 수 있습니다. 그러나 픽셀단위로 자르면 그림상에서 이해하기가 조금 어려워지기 때문에 사각형 단위로 자르도록 하겠습니다. 우선은 알고리즘이 동작하게 만드는 것이 우선입니다. 픽셀단위로 자르는 방법은 이후에 진행하도록 합시다. gazebo를 실행하면 바닥에 가상의 사..

ROS2로 turtlebot3 제어하기 3장. Nav2 이해하기와 파이썬 환경설정

이번 글은 별도의 참고자료가 존재하지 않고, 참고하는 블로그가 있는 경우 바로 다음에 표시를 하고 지나가도록 하겠습니다. 다시 실행해보면? ros2 launch turtlebot3_gazebo turtlebot3_duworld.launch.py ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=$HOME/map.yaml 이전 시간에 Nav2로 로봇을 이동시켜보고 끝났습니다. 조금이나마 path planning에서 도움이 되고자 nav2에서의 여러 파라미터들에 대해 설명을 하고자합니다. 다시 실행을 해보면 다음과 같은 그림이 나왔습니다. 맵에서 볼 때 벽은 다음처럼 검정색으로 표시가 되는데 벽 주변으로 연한 분홍..

ROS2로 turtlebot3 제어하기 2장. MAP 만들기

이번 글은 별도의 참고자료가 존재하지 않고, 참고하는 블로그가 있는 경우 바로 다음에 표시를 하고 지나가도록 하겠습니다. 이번 장까지 사전 자료 제작이라고 생각하면 됩니다. GAZEBO 실행하고 맵 만들기 이상적인 맵을 하나 만들고자 합니다. 맵을 어떻게 만들던 자유입니다. 맵을 좀 크게 정사각형 모양으로 만들면 좋을 것입니다. ROS설치가 완료되었다면 터미널 상에 gazebo 를 입력합니다. gazebo를 입력하면 다음처럼 시뮬레이터가 실행될 것입니다. 그러면 왼쪽에 보시면 Edit 버튼을 누르고 난 후에 building Editor를 누르면됩니다. 그러면 다음처럼 화면이 나올 것입니다. 위의 그림에 여러분이 원하는대로 벽을 설치하면 됩니다. 대충 이런식으로 만들고 저장하시면 됩니다. 그냥 하얀색 도화..

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

이번 글은 별도의 참고자료가 존재하지 않고, 참고하는 블로그가 있는 경우 바로 다음에 표시를 하고 지나가도록 하겠습니다. 자율주행 개요 자율주행은 간단하게 3가지 과정을 통해 진행이 된다고 생각할 수 있습니다. 가장 먼저 주변의 상황을 파악하는 인지(perception) 과정을 거치고, 인지 정보를 바탕으로 어떻게 주행을 진행할 것인가 계획을 세우는 판단(Decision making)과정을 거치게되고, 이를 통해 로봇이나 자동차를 움직이는 제어(Control)하게됩니다. 우리는 여기서 판단과정에 집중을 하고자 합니다. 판단은 또 크게 2가지로 나눌 수 있습니다. 첫 번째는 경로계획(path planning) 혹은 경로생성(path generation), 두 번째는 경로추종(path following)입니..

python robotics 환경 세팅하기

이 글은 다음을 참고하여 진행합니다. Getting Started — PythonRobotics documentation (atsushisakai.github.io) Getting Started — PythonRobotics documentation © Copyright 2018-2021, Atsushi Sakai. atsushisakai.github.io 위에서 배우는 알고리즘을 ROS상에서 Turtlebot을 이용해서 구동하는 것을 목표로 진행합니다. 대충 내가 끌리는대로 번역하고 있습니다. Getting Started 오픈소스 소프트웨어 프로젝트인 PythonRobotics는 Python의 로봇 알고리즘들을 모아놓은 것입니다. 이 프로젝트는 자율주행 (autonomous navigation)과 로보..