TurtleBot3 조립 #2

13. 2번 레이어에 서포터와 PCB 서포터 고정 필요한 부품들입니다. 2번 레이어 서포터 고정용 부품들입니다. 서포터를 모두 고정했습니다. PCB 서포터 고정용 부품들입니다. 필요한 부품들만 선택합니다. PCB 서포터의 상단에 볼트를 끼워 넣습니다. 순서대로 PCB 서포터를 고정합니다. 파워 케이블 연장선을 배치합니다. 1번 레이어 위에 올려 놓고 모터 제어신호 선 2개를 레이어 홀에 배치합니다. 14. 2번 레이어에 OpenCR 보드 … Read more

TurtleBot3 조립 #1

TurltleBot3 e-manual 제공 사이트 : https://emanual.robotis.com/docs/en/platform/turtlebot3/overview/ 조립서 : http://emanual.robotis.com/docs/en/platform/turtlebot3/hardware_setup/#assembly-manual OpenCR e-manual : https://emanual.robotis.com/docs/en/parts/controller/opencr10/ opencr pin map은 아래와 같습니다. 2. 박스 개봉 박스를 열면 내부에 어뎁터와 소형 박스 4개가 들어 있습니다. 1번 박스를 개봉합니다. 2번 박스를 개봉합니다. 3번 박스를 개봉합니다. 4번 박스를 개봉합니다. 전원 어뎁터가 들어 있는 박스입니다. 추가 구매한 부품입니다. 배터리와 충전기입니다. 각종 연결 구조물입니다. … Read more

Ubuntu 22.04 Server TurtleBot3 Burger를 tmux로 한 번에 실행하기 #2

10) Here Document를 이용한 XML 작성 <<XML은 Bash의 Here Document 문법입니다. 여러 줄의 텍스트를 파일에 기록할 때 사용합니다. 기존 파일 덮어쓰기 >는 파일을 새로 작성합니다. 같은 이름의 파일이 이미 있다면 기존 내용을 지우고 새 내용으로 덮어씁니다. 변수 치환 Here Document 시작 부분이 다음과 같습니다. 구분자인 XML에 작은따옴표가 없으므로 내부 변수는 실제 값으로 치환됩니다. 다음 코드에서: … Read more

Ubuntu 22.04 Server TurtleBot3 Burger를 tmux로 한 번에 실행하기 #1

1. 구성 목표 Ubuntu 22.04 Server와 ROS 2 Humble을 설치한 TurtleBot3 Burger를 SSH로 운용할 때는 일반적으로 여러 터미널이 필요합니다. 이 글에서는 TurtleBot3에 SSH로 접속한 후 하나의 스크립트만 실행하여 다음 네 개의 tmux window를 자동으로 구성합니다. 사용하는 주요 환경은 다음과 같습니다. 2. tmux란 무엇인가 tmux는 하나의 터미널 안에서 여러 터미널 작업 공간을 운영할 수 있게 해주는 … Read more

사무실 안내·순찰 로봇 핵심 노드 상세설계서 작성 예시 #2

19. 이동 실패 처리 19.1 이동 실패 조건 다음 Nav2 결과를 이동 실패로 처리한다. 사용자 일시정지, 이상 이벤트 및 비상정지에 의한 목표 취소는 일반 이동 실패 횟수에 포함하지 않는다. 19.2 이동 실패 처리 절차 19.3 재시도 처리 이동 실패 시 다음과 같이 재시도 횟수를 증가시킨다. 재시도 횟수가 최대 재시도 횟수 이하이면 다음 작업을 수행한다. 판단 … Read more

사무실 안내·순찰 로봇 핵심 노드 상세설계서 작성 예시 #1

1.1 문서 목적 본 문서는 터틀봇3 버거를 이용한 실내 자율 순찰 시스템의 핵심 노드인 patrol_manager의 상세설계를 정의한다. patrol_manager는 설정 파일에 등록된 순찰 지점을 순서대로 이동하며 다음 기능을 수행한다. 본 설계서는 ROS 2 노드의 클래스 구조, 토픽, 서비스, 액션, 파라미터, 상태 전이, 예외 처리 및 단위시험 항목을 포함한다. 2. 적용 시스템 2.1 대상 로봇 항목 내용 … Read more

ROS 2 Humble과 TurtleBot3 Burger에서 Google Cloud Text-to-Speech로 문자열 음성 출력하기 #4

41) 부모 destroy_node 호출 작업 스레드 종료 처리를 마친 후 부모 클래스의 destroy_node()를 호출합니다. 이 과정에서 ROS 2 구독자, 타이머, 서비스, 노드 핸들 등의 자원이 정리됩니다. 42) main 함수 ROS 2 노드 실행 진입점입니다. Python 패키지의 setup.py 또는 setup.cfg에서 콘솔 스크립트로 등록하면 ros2 run 명령으로 실행할 수 있습니다. a. ROS 2 초기화 ROS 2 Python … Read more

ROS 2 Humble과 TurtleBot3 Burger에서 Google Cloud Text-to-Speech로 문자열 음성 출력하기 #3

31) 볼륨 증폭 예제 경고 메시지를 크게 출력하려면 다음과 같이 실행합니다. 조용하게 출력하려면 다음과 같이 실행합니다. 지나치게 큰 값을 사용하면 음질이 저하되거나 왜곡될 수 있으므로 실제 스피커 환경에서 조정해야 합니다. 32) 언어와 음성 모델 변경 예제 영어 음성을 사용하려면 다음처럼 언어 코드와 음성 이름을 함께 변경합니다. 일본어 음성을 사용하려면 다음과 같이 실행할 수 있습니다. 음성 … Read more

ROS 2 Humble과 TurtleBot3 Burger에서 Google Cloud Text-to-Speech로 문자열 음성 출력하기 #2

9. 문자열을 즉시 재생하는 실행 파일 작성 google_tts_ros2/say.py 파일을 작성합니다. 이 실행 파일은 ROS 2 토픽을 사용하지 않고 명령행에서 전달한 문자열을 바로 음성으로 출력합니다. 1) argparse 모듈 가져오기 argparse는 Python 표준 라이브러리에 포함된 명령줄 인수 분석 모듈입니다. 별도의 패키지를 설치하지 않아도 사용할 수 있습니다. argparse를 사용하면 다음 기능을 쉽게 구현할 수 있습니다. 예를 들어 프로그램에 … Read more

ROS 2 Humble과 TurtleBot3 Burger에서 Google Cloud Text-to-Speech로 문자열 음성 출력하기 #1

TurtleBot3 Burger에 스피커를 연결하면 단순한 비프음뿐만 아니라 현재 상태, 경고, 작업 결과를 실제 음성으로 안내할 수 있습니다. 예를 들어 다음과 같은 상황에서 음성 안내를 활용할 수 있습니다. 이 글에서는 ROS 2 Humble을 사용하는 TurtleBot3 Burger에서 Google Cloud Text-to-Speech API를 이용해 다음 기능을 구현합니다. Google Cloud Text-to-Speech는 일반 텍스트 또는 SSML을 입력받아 음성 데이터를 생성하며, Python … Read more