Qt Designer로 TurtleBot3 Burger 제어용 PyQt UI 만들기 #1

이번 강의에서는 Qt Designer를 사용해서 turtlebot3_burger_gui.ui 파일을 처음부터 하나씩 만들고, 각 단계마다 Python 코드를 작성해서 추가한 컴포넌트를 바로 사용하는 방식으로 실습합니다. 최종 목표는 TurtleBot3 Burger를 제어할 수 있는 PyQt 기반 GUI를 만드는 것입니다. GUI에서 다룰 기능은 다음과 같습니다. 실습 환경은 다음과 같습니다. 1. Qt Designer 실행하기 터미널에서 Qt Designer를 실행합니다. Qt Designer가 실행되면 새 폼을 … Read more

TurtleBot3 Burger 실습 과제: Cartographer SLAM 기반 강의실 전체 맵 작성 및 Nav2 자율주행

1. 실습 개요 이번 실습은 TurtleBot3 Burger를 이용하여 실제 강의실 환경을 기반으로 전체 주행 맵을 작성하고, 작성한 맵 위에서 Nav2를 이용해 여러 경유점을 순차적으로 방문하는 자율주행 프로그램을 구성하는 과정입니다. 실습 환경에는 강의실 내부, 강의실 주행 조형물, 강의실 복도, 강의실 앞 복도가 포함됩니다. 학생들은 Cartographer SLAM을 사용하여 전체 맵을 작성하고, RViz2에서 경유점을 지정한 뒤 TurtleBot3가 각 … Read more

Navigation 파라미터

1. TurtleBot3 소스 설치 ROBOTIS의 Git 사이트에 접속하여 ROS2 humble용 TurtleBot3 소스를 다운로드 합니다. 의존성이 필요한 경우 설치합니다. 빌드를 수행합니다. workspace를 활성화 합니다. 아래의 명령으로 어떤 패키지가 사용되는지를 확인합니다. 반대로 이렇게 나오면 apt 설치본이 사용 중입니다. 2. TurtleBot3 Navigation 파라미터를 이해해야 하는 이유 TurtleBot3에서 Navigation을 실행하면 로봇은 단순히 목적지를 향해 움직이는 것이 아닙니다. 로봇은 먼저 … Read more

경유점 적용 소스 설명

1) 사용되는 YAML 파일 구조 이 소스가 읽는 YAML 파일은 다음과 같은 구조를 가집니다. frame_id는 좌표 기준 프레임입니다. TurtleBot3의 Nav2 경유점 주행에서는 일반적으로 map을 사용합니다. initial_pose는 로봇의 초기 위치를 의미합니다. waypoints는 실제로 이동할 경유점 목록입니다. 각 waypoint는 name, x, y, yaw 값을 가집니다. 여기서 x, y는 map 좌표계 기준 위치이고, yaw는 로봇이 해당 위치에 도착했을 … Read more

TurtleBot3 Burger :AMCL 현재 좌표 취득 후 경유점 주행

이 글에서의 실습목표는 다음과 같습니다. 전체 구조는 다음과 같습니다. 1. 패키지 생성 작업 공간으로 이동합니다. Python 패키지를 생성합니다. 패키지 구조는 다음과 같이 구성합니다. waypoints 폴더를 생성합니다. 2. 로봇 실행 1) TurtleBot3 SBC에서 bringup 실행 TurtleBot3 Burger 본체에 SSH 접속합니다. TurtleBot3 bringup을 실행합니다. 이 터미널은 계속 켜둡니다. 2) Remote PC에서 Navigation2 실행 Remote PC에서 저장된 map을 … Read more

TurtleBot3 Ubuntu 22.04 Server에서 USB 스피커를 기본 출력 장치로 설정하는 방법

1. 작업 환경 이번 글에서는 TurtleBot3 또는 Ubuntu 22.04 Server 환경에서 USB 스피커를 연결하고, 재부팅 후에도 자동으로 기본 출력 장치로 설정되도록 구성하는 방법을 정리합니다. 사용 목적은 다음과 같습니다. 테스트 환경은 다음과 같습니다. 이번에 사용한 USB 스피커는 PulseAudio에서 다음 sink 이름으로 인식되었습니다. 이 이름은 각자의 USB 스피커마다 다를 수 있습니다. 2. 필요한 패키지 설치 먼저 오디오 … Read more

TurtleBot3 Navigation 파라미터

1. 기본 주행 파라미터를 먼저 수정해 보는 실습 강의의 첫 시작은 TurtleBot3가 실제로 움직이는 모습을 바꾸는 것부터 진행하시는 것이 좋습니다. 이 단계에서는 복잡한 이론 설명보다 “이 값을 바꾸면 로봇이 이렇게 달라집니다”라는 감각을 잡는 데 집중합니다. 가장 먼저 수정해 볼 파라미터는 controller server의 속도 관련 값입니다. 여기서 max_vel_x는 로봇의 전진 최고 속도입니다. 값이 0.3이면 로봇이 최대 … Read more

Cartographer SLAM

1. Cartographer란 무엇인가? Cartographer는 Google에서 공개한 실시간 SLAM 라이브러리입니다. Google은 2016년에 Cartographer를 오픈소스로 공개하면서, 이를 ROS를 지원하는 2D/3D 실시간 SLAM 라이브러리라고 소개했습니다. Cartographer 공식 문서에서 Cartographer는 여러 플랫폼과 센서 구성에서 2D 및 3D 실시간 SLAM을 제공하는 시스템이라고 설명합니다. 이름 그대로 Cartographer는 원래 “지도 제작자”라는 뜻입니다. ROS에서는 로봇이 움직이면서 주변을 측정하고, 그 결과를 지도 형태로 만드는 … Read more

SLAM Toolbox

TurtleBot3 시뮬레이션으로 배우는 SLAM Toolbox 이번 강의에서는 ROS 2 Humble 환경에서SLAM Toolbox를 사용해 모바일 로봇의 2D 지도를 작성하고 저장하는 방법을 실습합니다. 1. SLAM의 등장 배경 모바일 로봇이 실내에서 자율주행을 하려면 두 가지 정보가 필요합니다. 첫째,내가 어디에 있는가? 둘째,주변 환경이 어떻게 생겼는가? 사람은 방 안을 걸어 다니면서 벽, 문, 책상 위치를 자연스럽게 기억합니다. 하지만 로봇은 센서 … Read more

ROS 2 TurtleBot3 Navigation2 실행하기

1. 실습 전 확인 사항 Navigation2를 실행하기 전에 반드시 아래 항목을 확인합니다. TurtleBot3 전원이 켜져 있어야 합니다. Remote PC와 TurtleBot3가 같은 네트워크에 연결되어 있어야 합니다. TurtleBot3 SBC의 IP 주소는 다음과 같습니다. 실습 팀별로 IP 주소는 다릅니다. 주의하셔서 적용하시기 바랍니다. SLAM으로 생성한 지도 파일이 Remote PC에 있어야 합니다. 일반적으로 지도 파일은 다음 위치에 저장되어 있다고 가정합니다. … Read more