전체 글 83

RRT* 알고리즘을 이용한 경로 계산

1. 개요 맵-이미지 파일을 갈수 영역(free)을 255(백색), 갈 수 없는 영역(obstacle)을 0(검은색)으로 표현하고, 초기 위치와 목표위치를 설정하고, RRT* 알고리즘을 이용하여 장애물의 피하면서 갈 수 있는 최단 코스를 계산한다. 2. 파이썬 코드 # RRT STAR 알고리즘 import cv2 import numpy as np import random import heapq import os # image value 255: free area # image value 0: obstacle area class Node: """ RRT* 노드를 정의하는 클래스 """ def __init__(self, point): self.point = point self.parent = None sel..

카테고리 없음 2024.01.24

LIO-SAM을 이용한 3D Map 만들기(Foxy)

1. 개요 Lio-SAM프로그램은 Humble에서는 설치가 어렵다. Foxy에서 설치하면 설치가 용이하다. Lio-SAM프로그램은 GTSAM 라이브러리를 사용하는데 Foxy 바이너리 설치를 지원한다. 다른 버전은 소스에서 설치할 수 있는데 버전 문제 등 설치가 매우 어렵다. 결국 Foxy에서 Lio-SAM프로그램을 사용하였다. Lio-SAM프로그램을 이용하여 3D map인 PCD 파일을 만들어 본다. [참고] LIO-SAM(동영상) https://www.youtube.com/watch?v=NNR9RUNz5Pg 원본(github): https://github.com/TixiaoShan/LIO-SAM 2. 환경 구축하기 기본적으로 ROS2(Foxy)환경이 설치되었다고 가정한다. 아래 주소에서 다운로드를 받아..

카테고리 없음 2024.01.24

ROS2 Action 사용해보기

1. 개요 ros2 action server를 파이썬으로 작성한다. 목표값 n을 10으로 설정하면 1부터 10까지 누적합(55)을 계산한다. 중간중간 부분합을 feedback으로 보내준다. 2. workspace와 패키지 생성하기 > mkdir -p myross/src > cd myros_ws/src myaction과 myinterfaces 패키지를 만들어 본다. > ros2 pkg create myaction --build-type ament_python > ros2 pkg create myinterfaces --build-type ament_cmake > cd ~/myros_ws > colcon build 3. Action의 interface 정의하기 > cd ~/myros_ws/src/myinter..

카테고리 없음 2024.01.08

A* 알고리즘을 이용한 경로 계산

1. 개요 맵-이미지 파일을 갈수 영역(free)을 255(백색), 갈 수 없는 영역(obstacle)을 0(검은색)으로 표현하고, 초기 위치와 목표위치를 설정하고, A* 알고리즘을 이용하여 장애물의 피하면서 갈 수 있는 최단 코스를 계산한다. 2. 파이썬 코드 import cv2 import numpy as np import heapq # image value 255: free area # image value 0: obstacle area def draw_path_on_image(img, points, line_color=(0, 255, 0), line_thickness=1): for i in range(len(points) - 1): cv2.line(img, points[i], points[i+1]..

카테고리 없음 2024.01.05

ros2-web-bridge 사용하기(우분투)

1. 개요 ros2-web-bridge는 ROS 2와 웹 애플리케이션 간에 통신을 위한 브릿지이다. 이 브릿지를 사용하면 ROS 2에서 실행 중인 노드들과 웹 기반의 사용자 인터페이스 간에 메시지를 주고받을 수 있다. 주로 ROS 2의 데이터를 시각화하거나 웹 애플리케이션에서 로봇을 제어하는 데 사용된다. ROS 2에서 실행되는 노드들과 웹 애플리케이션 간에 양방향 통신을 가능케 한다. ROS 2의 토픽, 서비스, 액션 등과 같은 통신 메커니즘을 사용하여 데이터를 주고받을 수 있다. ro2-web-bridge는 웹 소켓(WebSocket) 프로토콜을 사용하여 통신한다. 웹 소켓은 실시간 양방향 통신을 지원하여 ROS 2에서 발생하는 데이터를 실시간으로 웹 애플리케이션에 전달할 수 있다. 2. 사용환경 우..

카테고리 없음 2023.12.22

ROS2(Foxy)를 Raspberry Pi 4에 설치하기

1. 개요 ROS2를 Raspberry Pi 4B에 설치하여 본다. ROS2는 운영체제의 버전을 잘 맞추어서 설치하여야 한다. https://www.youtube.com/watch?v=AmuLiA840fA 2. 64비트 운영체제 설치 (bookworm) 운영체제 UBUNTU 20.04 LTS 64비트 버전을 설치한다. 다른 버전은 ROS2(Foxy) 설치가 잘 안될 수 있다. SD카드에 운영체제 이미지를 설치하기 위래 라즈베리파이 공식 홈페이지에서 제공하는 imager프로그램을 다운받고 실행한다. DeskTop 환경이 없는 64비트 우분투 운영체제를 설치한다. 이미지는 리스트에서 찾아야 한다. 3. Ros2 설치 [참고] https://docs.ros.org/en/foxy/Installation/Ubun..

카테고리 없음 2023.12.21

TF-Luna를 이용한 Raspbery Pi4 거리센서

enable_uart=1 1. 개요 TF-Luna는 근적외선 레이저를 사용하는 거리센서이다. 가격이 비교적 저렴하고 아두이노나 라즈베리파이 관련 자료를 쉽게 찾을 수 있어 편리하다. 라즈베리파이에서 TF-Luna를 사용해 본다. https://github.com/makerportal/tfluna-python https://makersportal.com/blog/distance-detection-with-the-tf-luna-lidar-and-raspberry-pi 2. 아두이노에서 사용하기 Arduion IDE에서 sketch>Include Library>Manage Libraries를 선택하고 검색창에서 TFLI2C 검색하고 라이브러리를 설치를 한다. 전원과 UART pins (RXD/TXD)에 각각 ..

카테고리 없음 2023.12.20

turtlebot3-world pcd 파일을 pgm 파일로 변환하기(ROS2 NAV)

1. 개요 PCD로 작성된 3차원 맵으로 부터 기존 navigation 모듈 사용을 위한 2차원의 이미지 pgm파일과 yaml 파일로 만들어 본다. pcd파일에서 직접 가능한 방법?이 있을 것 같긴 한데 추후에 알아 보기로 하고 일단 이미지로 변경하는 방법을 시도해 본다.. 2. 지난번 포스트에서 gazebo 플러인으로 작성한 turtlebot3_world의 pcd파일 예시는 다음과 같다. # .PCD v0.7 - Point Cloud Data file format VERSION 0.7 FIELDS x y z SIZE 4 4 4 TYPE F F F COUNT 1 1 1 WIDTH 17139 HEIGHT 1 VIEWPOINT 0 0 0 1 0 0 0 POINTS 17139 DATA ascii -4.8000..

카테고리 없음 2023.12.19

우분투 ROS2 Foxy turtlebot3_world의 2D/3D 지도작성

1.개요 윈도우즈에서 설정과 작업이 좀 어려웠다. 배우면서 기록을 남기는 과정이라 설정과 작업이 편리한 우분투에서 작업을 해본다. ROS에 대하여 좀 더 익숙해지고 잘 다루게 된다면 윈도우에서도 도전할 계획이다. 이 번 포스트는 아래 그림과 같은 gazebo의 turtlebo3_world의 지도를 만들어 본다. 2. SLAM으로 2D 지도 만들기 turtlebot3 패키지 설치 후에 다음을 실행한다. > sudo apt install ros_foxy_nav* > sudo apt install ros_foxy_turtlebo* > ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py > ros2 run teleop_twist_keyboard teleop_tw..

카테고리 없음 2023.12.17

윈도우즈10 ROS2 Gazebo에서 SLAM 실행해보기

1. 개요 자신이 만든 gazebo 월드에 Turtlebot3를 배치하고 SLAM을 실행해 보기로한다. 지난 포스트에서 자신이 만든 gazebo 월드에 Tturtlebot3를 배치하였다. 계속 이어서 진행한다. 2. 환경실행하기 (1) 터미널(#1) 실행하고 ROS2 환경을 만든다. ( x64 Native Tools Command Prompt for VS2019 관리자로 실행) > c:\opt\ros\foxy\x64\setup.bat; c:\opt\ros\foxy\x64\share\gazebo\setup.bat > cd c:\slam_ws colcon build call install/setup.bat > set TURTLEBOT3_MODEL=waffle ros2 launch slam_ws mylaunc..

카테고리 없음 2023.12.03