.. Cover Letter

공부#Robotics#자율주행 39

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)과 로보..

(ROS2 기초)9. Python과 C++ 패키지 설계부터 토픽, 서비스, 액션, 파라미터로 코딩하기 (문제 파트)

참고도서 1. ROS 2로 시작하는 로봇 프로그래밍. 표윤석 . 루비페이퍼 . 2021 참고도서 2. ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 . 민형기 . 잇플 . 2022 참고자료 1. PinkWink(민형기)님의 ROS2 강의자료 참고자료 2. ROS2 humble documeation ROS2를 복습하는 김에 제대로 다시 한 번 정리하고 넘어가고 싶어서 이 시리즈를 작성합니다. 이 글은 Turtlebot3 패키지를 제대로 이해하고, 다양한 센서를 부착하면서 활용하는 것을 목표로 합니다. 또한 글이 끝날 때 ROS와 관련된 문제를 하나 만들어서 직접 풀어보도록 합니다. 이번 시간은 호흡이 엄청 길어질 예정입니다. 이번 글은 표윤석 님의 ROS2로 시작하는 로봇 프로그래밍의 내용을 주로 참..

(ROS2 기초)8. 토픽, 서비스, 액션 인터페이스 작성하기

참고도서 1. ROS 2로 시작하는 로봇 프로그래밍. 표윤석 . 루비페이퍼 . 2021 참고도서 2. ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 . 민형기 . 잇플 . 2022 참고자료 1. PinkWink(민형기)님의 ROS2 강의자료 참고자료 2. ROS2 humble documeation ROS2를 복습하는 김에 제대로 다시 한 번 정리하고 넘어가고 싶어서 이 시리즈를 작성합니다. 이 글은 Turtlebot3 패키지를 제대로 이해하고, 다양한 센서를 부착하면서 활용하는 것을 목표로 합니다. 또한 글이 끝날 때 ROS와 관련된 문제를 하나 만들어서 직접 풀어보도록 합니다. ROS Domain ID와 Namespace 이전 시간에 ROS 세상이라는 용어를 말한 적이 있습니다. ROS에서 발행하..

(ROS2 기초)7. ROS2에서 C++으로 기초 코딩하기

참고도서 1. ROS 2로 시작하는 로봇 프로그래밍. 표윤석 . 루비페이퍼 . 2021 참고도서 2. ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 . 민형기 . 잇플 . 2022 참고자료 1. PinkWink(민형기)님의 ROS2 강의자료 참고자료 2. ROS2 humble documeation ROS2를 복습하는 김에 제대로 다시 한 번 정리하고 넘어가고 싶어서 이 시리즈를 작성합니다. 이 글은 Turtlebot3 패키지를 제대로 이해하고, 다양한 센서를 부착하면서 활용하는 것을 목표로 합니다. 또한 글이 끝날 때 ROS와 관련된 문제를 하나 만들어서 직접 풀어보도록 합니다. 이번 시간에는 ROS C++에서 코딩하는 기초를 다룹니다. ROS 프로그래밍 기초 (C++) 이전시간에 만든 ros_st..

(ROS2 기초)6. 코드 스타일, ROS2에서 파이썬으로 기초 코딩하기

참고도서 1. ROS 2로 시작하는 로봇 프로그래밍. 표윤석 . 루비페이퍼 . 2021 참고도서 2. ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 . 민형기 . 잇플 . 2022 참고자료 1. PinkWink(민형기)님의 ROS2 강의자료 참고자료 2. ROS2 humble documeation ROS2를 복습하는 김에 제대로 다시 한 번 정리하고 넘어가고 싶어서 이 시리즈를 작성합니다. 이 글은 Turtlebot3 패키지를 제대로 이해하고, 다양한 센서를 부착하면서 활용하는 것을 목표로 합니다. 또한 글이 끝날 때 ROS와 관련된 문제를 하나 만들어서 직접 풀어보도록 합니다. 이번 시간에는 ROS에서 코드 스타일과 Python으오 코딩하는 기초를 다룹니다.ROS 프로그래밍 규칙이 부분은 표윤석님..

(ROS2 기초)5. ROS에서 코딩하기 전 알아야할 내용

참고도서 1. ROS 2로 시작하는 로봇 프로그래밍. 표윤석 . 루비페이퍼 . 2021 참고도서 2. ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 . 민형기 . 잇플 . 2022 참고자료 1. PinkWink(민형기)님의 ROS2 강의자료 참고자료 2. ROS2 humble documeation ROS2를 복습하는 김에 제대로 다시 한 번 정리하고 넘어가고 싶어서 이 시리즈를 작성합니다. 이 글은 Turtlebot3 패키지를 제대로 이해하고, 다양한 센서를 부착하면서 활용하는 것을 목표로 합니다. 또한 글이 끝날 때 ROS와 관련된 문제를 하나 만들어서 직접 풀어보도록 합니다. 드디어 turtlesim이 끝났습니다. 이번 시간에는 ROS에서 코딩하기전 약속과도 같은 것들과, 코딩을 위해 필요한 프..

(ROS2 기초)4. ROS에서 사용하는 도구

참고도서 1. ROS 2로 시작하는 로봇 프로그래밍. 표윤석 . 루비페이퍼 . 2021 참고도서 2. ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 . 민형기 . 잇플 . 2022 참고자료 1. PinkWink(민형기)님의 ROS2 강의자료 참고자료 2. ROS2 humble documeation ROS2를 복습하는 김에 제대로 다시 한 번 정리하고 넘어가고 싶어서 이 시리즈를 작성합니다. 이 글은 Turtlebot3 패키지를 제대로 이해하고, 다양한 센서를 부착하면서 활용하는 것을 목표로 합니다. 또한 글이 끝날 때 ROS와 관련된 문제를 하나 만들어서 직접 풀어보도록 합니다. 이번 장에서도 코드 레벨에서 확인하는 것이 아니라, ROS2에서 교육용으로 제공하는 패키지인 Turtlesim을 가지고 ..

(ROS2 기초)3. ROS의 Turtlesim으로 ROS의 인터페이스와 파라미터 이해하기

참고도서 1. ROS 2로 시작하는 로봇 프로그래밍. 표윤석 . 루비페이퍼 . 2021 참고도서 2. ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 . 민형기 . 잇플 . 2022 참고자료 1. PinkWink(민형기)님의 ROS2 강의자료 참고자료 2. ROS2 humble documeation ROS2를 복습하는 김에 제대로 다시 한 번 정리하고 넘어가고 싶어서 이 시리즈를 작성합니다. 이 글은 Turtlebot3 패키지를 제대로 이해하고, 다양한 센서를 부착하면서 활용하는 것을 목표로 합니다. 또한 글이 끝날 때 ROS와 관련된 문제를 하나 만들어서 직접 풀어보도록 합니다. 이번 장에서는 코드 레벨에서 확인하는 것이 아니라, ROS2에서 교육용으로 제공하는 패키지인 Turtlesim을 가지고 ..

(ROS2 기초)2. ROS의 Turtlesim으로 ROS의 메시지 통신 이해하기

참고도서 1. ROS 2로 시작하는 로봇 프로그래밍. 표윤석 . 루비페이퍼 . 2021 참고도서 2. ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자 . 민형기 . 잇플 . 2022 참고자료 1. PinkWink(민형기)님의 ROS2 강의자료 참고자료 2. ROS2 humble documeation ROS2를 복습하는 김에 제대로 다시 한 번 정리하고 넘어가고 싶어서 이 시리즈를 작성합니다. 이 글은 Turtlebot3 패키지를 제대로 이해하고, 다양한 센서를 부착하면서 활용하는 것을 목표로 합니다. 또한 글이 끝날 때 ROS와 관련된 문제를 하나 만들어서 직접 풀어보도록 합니다. 이번 장에서는 코드 레벨에서 확인하는 것이 아니라, ROS2에서 교육용으로 제공하는 패키지인 Turtlesim을 가지고 ..