ROS Serial Test

1. Test Package 생성 2. ROS Serial Package 다운로드 http://wjwwood.io/serial/ 위의 사이트에 접속하면 다운로드 및 설치에 관한 안내가 있습니다. 참조하시기 바랍니다. 먼저 소스코드를 다운로드 합니다. 3. 다른 serial 예제 다운로드 위와 같은 파일이 있습니다. 위의 “src” 폴더의 cpp 파일 내용을 사용하여 노드를 작성하도록 합니다.  먼저 패키지를 생성한 “serial_test” 폴더로 이동합니다.  여기서 package.xml 파일과 다음과 같이 … Read more

ROS – Differential Wheeled Robot Control

1. 패키지 생성    – 패키지 이름 : zetabank_robot_control    – zetabank_diffwheeled_robot_control.cpp : motor driver와 serial 통신, twist의 cmd_vel을 전달받아 모터 드라이버 제어(시리얼 통신), 현재 이동거리, 속도, 센서 데이터 퍼블리쉬 2. 컴파일 환경 구축 먼저 패키지를 생성한 “zetabank_robot_control” 폴더로 이동합니다.  여기서 package.xml 파일과 다음과 같이 수정합니다. <?xml version=”1.0″?> <package format=”2″> <name>diffwheel_robot_control</name> <version>0.1.0</version> <description>The differential wheel robot control package</description> <author email=”sjyong@humanoidsystem.com”>Seo, Jae Yong</author> <maintainer email=”sjyong@humanoidsystem.com”>Seo, … Read more

WEGO LIMO를 이용한 ROS 2 이동 로봇 서비스 개발 프로젝트 안내

이번 프로젝트는 지금까지 학습한 ROS 2 Humble, WEGO LIMO, SLAM, Navigation2, 카메라 영상처리, YOLO 객체 인식, 딥러닝, TensorRT, ROS 2 노드 개발 및 시스템 자동화 기술을 하나의 실제 이동 로봇 서비스로 통합하는 팀 프로젝트입니다. 단순히 예제 프로그램을 실행하거나 로봇을 움직이는 수준이 아니라, 실제 서비스 로봇 개발 과정과 유사하게 서비스 아이디어 선정 → 사용자 요구사항 정의 … Read more

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 딥러닝 트랙 주행 모델 완전 분석 #1

이번 강의에서는 WeGo LIMO에서 사용하는 TensorFlow 기반 트랙 주행 모델의 학습 과정을 자세히 살펴보겠습니다. 사용하는 소스는 다음 Jupyter Notebook입니다. 이 소스의 이름에는 Track Detection이 들어 있지만, 코드를 자세히 살펴보면 일반적인 객체 검출 Object Detection 모델과는 구조가 다릅니다. 이 모델은 카메라 영상에서 트랙의 특정 정보를 찾아 2개의 연속적인 숫자값을 출력하는 Regression, 즉 회귀 모델입니다. 전체 흐름은 … Read more