WEGO LIMO 딥러닝 트랙 인식과 YOLO 객체 인식을 이용한 주행 제어 프로그램 분석

이번 글에서는 WEGO LIMO에서 딥러닝으로 검출한 트랙 위치와 YOLO로 검출한 객체 정보를 결합하여 실제 로봇의 속도와 조향을 제어하는 dl_control.py 프로그램을 분석합니다. 앞에서 살펴본 트랙 인식 프로그램은 카메라 영상으로부터 Normal Mode와 Turn Mode의 트랙 중심 오차를 계산하여 /control 토픽으로 전달했습니다. YOLO 객체 인식 프로그램은 카메라 영상에서 객체를 검출한 뒤 객체의 클래스 이름, 신뢰도, Bounding Box 좌표를 … Read more

WEGO LIMO ROS 2 YOLO 기반 물체 인식 프로그램 분석

이번 글에서는 WEGO LIMO에서 카메라 영상을 이용해 실시간으로 객체를 검출하는 ROS 2 프로그램을 분석합니다. 사용되는 프로그램은 yolo_object_detect.py이며, Ultralytics의 YOLO 모델을 ROS 2 노드에서 실행하여 카메라 영상 속 객체를 검출하고 검출된 객체의 종류, 신뢰도, Bounding Box 좌표를 ROS 2 토픽으로 전달합니다. 또한 검출된 객체의 Bounding Box와 클래스 이름을 원본 영상에 표시한 뒤 별도의 영상 토픽으로 Publish하기 … Read more

WEGO LIMO ROS 2 딥러닝 트랙 인식 프로그램 분석

이번 글에서는 WEGO LIMO에서 카메라 영상을 입력받아 딥러닝 모델로 트랙 위치를 추론하고, 추론 결과를 주행 제어용 데이터로 변환하는 ROS 2 프로그램을 자세히 분석합니다. 이번에 분석할 프로그램은 trt_track_detect.py이며 TensorFlow나 PyTorch 모델을 ROS 2 노드에서 직접 실행하는 방식이 아니라, 학습이 완료된 모델을 TensorRT Engine으로 변환한 뒤 NVIDIA GPU에서 추론하는 구조입니다. 이미 딥러닝의 학습, CNN, 추론, TensorRT 등의 … Read more

TensorRT 최적화 방법

1. 학습 모델을 Wego LIMO로 복사하기 Google Colab에서 학습한 파일을 다운로드한 뒤 Wego LIMO로 복사합니다. TensorFlow 모델 파일 예시는 다음과 같습니다. YOLO 모델 파일 예시는 다음과 같습니다. SCP를 사용할 경우 다음과 같이 전송할 수 있습니다. <LIMO_IP_ADDRESS>는 실제 Wego LIMO의 IP 주소로 변경합니다. 2. 딥러닝 모델 최적화가 필요한 이유 TensorFlow의 .h5 모델이나 YOLO의 .pt 모델을 그대로 … Read more

WEGO LIMO 객체 인식 알고리즘 분석 — YOLO11n으로 교통 표지판과 신호등 학습하기

1. 개요 이번 글에서는 WEGO LIMO 자율주행 로봇에서 사용할 수 있는 객체 인식 모델을 학습하기 위한 YOLO11n 기반 Python 코드를 자세히 살펴보겠습니다. 사용한 소스는 Jupyter Notebook 형태의 다음 파일입니다. 이 프로그램은 Ultralytics의 YOLO11n 사전 학습 모델을 이용하여 WEGO LIMO 주행 환경에서 필요한 교통 관련 객체를 학습합니다. 학습 대상은 총 8개 클래스입니다. 즉 카메라 영상에서 다음과 … Read more

WeGo LIMO TensorFlow 딥러닝 트랙 주행 모델 완전 분석 #2

52. Model 저장 위치 다음 코드입니다. 기본값은 입니다. Training 후 실제 LIMO 추론 프로그램에서 사용할 핵심 결과물이 바로 이 파일입니다. 53. Optimizer는 Adam 다음과 같이 설정합니다. 초기 Learning Rate는 입니다. Adam Optimizer는 Loss를 줄이도록 Weight를 반복적으로 수정합니다. 전체 흐름은 입니다. 54. Loss Function은 MAE Model Compile 부분입니다. mae는 입니다. 예를 들어 실제 Label이 인데 Model이 … Read more

Wego LIMO에서 딥러닝으로 로봇이 보는 방법

신경회로망의 탄생부터 TensorFlow CNN, YOLO11 객체검출까지 ROS 2를 이용하면 로봇의 센서, 모터, 카메라, LiDAR, Navigation2 같은 기능을 하나의 시스템으로 연결할 수 있습니다. 하지만 ROS 2 자체가 카메라 영상 속 사물이 무엇인지 판단하거나 도로의 진행 방향을 스스로 학습하는 것은 아닙니다. 이 역할을 담당하는 대표적인 기술이 머신러닝(Machine Learning)과 딥러닝(Deep Learning)입니다. 이번 과정에서는 LIMO 로봇의 카메라 영상을 이용하여 … Read more

Limo 구동 모드

ROS2 드라이버 소스에서 구분하는 주행 모드는 3개입니다. AgileX 공식 LIMO Pro 매뉴얼에서도 Track 모드는 four-wheel differential과 동일한 방식의 slip/skid steering을 사용한다고 설명합니다. 즉 ROS 측에서는 4륜 차동과 무한궤도를 구분할 필요가 없습니다. 1. 가장 먼저 볼 곳: 주행 모드 정의 파일: 97~102행: 이 부분이 전체 주행 모드의 기준입니다. 값 모드 실제 의미 0x00 MODE_FOUR_DIFF 4륜 차동 … Read more

Wego LIMO 딥러닝 모델 학습과 TensorRT 최적화 방법 #2

5. YOLO 객체 인식 모델 학습 YOLO 모델은 표지판, 신호등, 보행자처럼 이미지 안에서 위치를 특정해야 하는 객체 인식 작업에 사용합니다. Wego LIMO에서 수집한 YOLO 데이터셋은 이미지와 라벨이 학습용과 검증용으로 나뉘어 있어야 합니다. 권장 폴더 구조는 다음과 같습니다. 각 이미지 파일에는 동일한 이름의 라벨 파일이 필요합니다. YOLO 라벨 파일은 일반적으로 다음 형식을 사용합니다. 좌표값은 이미지 크기를 … Read more

Wego Limo로 구현하는 ROS 2 카메라 기반 차선 주행 시스템 #2

7. detect_line 1) 전체 소스 코드의 역할 먼저 이 노드의 핵심 목적을 정리하면 다음과 같습니다. 카메라 영상에서 노란색 계열의 차선을 찾은 뒤, 해당 차선의 중심 좌표 cx를 계산합니다. 그리고 미리 설정된 기준 위치인 reference_distance와 비교하여 다음 값을 계산합니다. 예를 들어 기준 위치가 170이고 실제 검출된 차선 중심이 150이라면 다음과 같습니다. 반대로 실제 차선 중심이 190이라면 … Read more