
1. 로봇이란 1.1 로봇의 정의 기계적 장치: 프로그래밍된 지시에 따라 특정 작업을 자동으로 수행하는 기계적 장치 특정 목적 달성: 센서, 제어장치, 구동 장치 등을 포함하며, 물리적 세계와 상호작용하면서 특정 목적을 달성하기 위해 설계된 기구 산업분야 분류: 3개

ROS 창시자 Morgan Quigley 박사에 의해 시작된 Ros TUTORIALS 작업 당시 툴개발을 맡고 있던 Josh Faust에 의해 소개됨ros_tutorials 리포지터리 하위에 속해 있음topicServiceparameter
1. rqt 플러그인 형태로 다양한 도구와 인터페이스를 구현할 수 있는 그래픽 사용자 인터페이스 프레임 워크 플러그인 종류 Actions --> action type browser: 타입의 데이터 구조 확인 Introspection --> node

1. ROS 프로그래밍 규칙 1.1 코드 스타일 가이드 오픈 소스 커뮤니티에서 가장 많이 사용되고 있는 인기있는 가이드라인이 존재 협업 시 코드 가독성 등을 위하여 코드 스타일 가이드라인을 따르는 것이 필요 1.2 기본 이름 규칙 기본 네이밍 3가지 |명칭|설명|비

ROS 자료 사이트 https://discourse.ros.org/latest - ROS 커뮤니티 게시판 https://design.ros2.org/ - ROS2 디자인 문서 https://github.com/ros2 - ROS2 레포지터리 1. ROS2 다운로드 h
Python으로 publisher와 subscriber node 생성 및 실행하기! 1. Concept Understanding and Flowchart 해당 실습에서는 Python으로 빌드한 workspace 내에서 topic 통신을 통해 publisher와 subscriber 간의 message 전송을 구현하고자 한다. Node:특정 작업을 수행가능...
1. Build 1.1 부가기능 설치 rosdep(의존성 관리툴) 1.2 build 명령어 및 tip colcon build colcon build는 모두 다 복사하여 빌드하는 것이고 symlink-install을 사용하면 빌드된 파일을 실제로 설치하지 않고 심볼릭

~/.bashrc 파일 설정 사항 Local 네트워크 설정 ROS2 노드를 LOCAL HOST에서만 통신되도록 설정 외부 네트워크와의 연결을 차단 가능 -Humble의 다음 버전인 ROS2 Iron부터는 사용되지 않음 --> ROSAUTOMATICDISCOVERY

정의: ROS에서 노드 사이의 데이터 통신 시, 사용되는 데이터 타입종류 Topic - .msgService - .srvAction - .action특징보통 여러개의 패키지를 가지는 경우가 대다수이기에, 별도의 인터페이스 패키지를 생성하여 사용하는 것을 추천std_ms

1. Design Package ROS2의 토픽, 서비스, 액션 프로그래밍을 이용해 각 노드들이 서로 연동되어 구동하는 패키지 설계 프로세스를 목적별로 나누어 노드 단위의 프로그램을 작성하고 노드와 노드 간의 데이터 통신을 고려하여 설계 2. Feature to be

ROS2 Topic 1. Topic 기본 Topic은 노드가 msg를 교환하는 버스 역할을 수행 ROS graph의 필수적인 요소 비동기식, 연속성, 단방향 메시지 송수신 방식 Publisher/Subscriber 간의 통신 1:1, 1:N, N:1, N:N 가능 노

ex_calculator 패키지에서는 연산자를 임의 선택 후 전송하고 기존 저장된 변수 a,b를 계산하여 결과값을 서비스 응답값으로 전달하는 프로그램을 구성한다.operator이름으로 노드 정의create_client로 client 생성arithmetic_operato

1. ROS 도구 1.1 CLI 기반 Command-Line Tools CLI(command line interface) 명령어 기반의 툴로 로봇 액세스 및 거의 모든 ROS 기능을 다룸 개발환경 및 빌드, 테스트 툴 --> colcon 데이터를 기록, 재생, 관리하
1. action > action goal을 지정하는 액션 클라이언트와 액션 목표를 받아 특정 태스크를 수행하면서 중간 결과값에 해당하는 action feedback과 최종 결과값에 해당하는 action result를 전송하는 action server 작성 2. ac

argument 노드에서 파라미터를 선언하고 파라미터 값이 변경되는 함수파라미터 사용을 위한 3가지 요소declare_parameter 함수 : 노드에서 사용할 파라미터의 고유 이름을 지정하고 초기값 설정get_parameter 함수 : 노드에서 사용할 파라미터의 값을

정의ROS2의 Python 클라이언트라이브러리 --> 노드를 만들고 통신할 수 있도록 돕는 핵심 요소c++로 작성된 ROS2 코어 라이브러리를 Python 환경에서 활용할 수 있는 wrapping한 것이 특징 파이썬의 간결한 문법과 다양한 라이브러리를 ROS2 기반 시
msg타입

ros2 env라는 기존에 없던 ROS2 CLI를 만들기! 1. pkg 생성 이 과정은 앞선 포스팅에서 반복했던 내용이기에 코드는 생략합니다. 2. env.py 2.1 env.py 생성 2.2 env.py 편집 3. list.py 3.1 list.py 생성 !

ROS에서 복수개의 node 사용 시 데이터 통신 작업으로 인한 성능 저하가 발생 --> IPC로 방지서로 다른 프로세스는 송수신되는 데이터가 여러번 메모리에 복사되어 성능저하가 발생IPC는 복수개의 노드를 단일 프로세스에서 처리하여 해당 문제를 해결데이터 복사가 아닌
* ROS2로 시작하는 로봇 프로그래밍 - CH.6 > * 10.15 doosan rookey boot camp >> Goal: 신규 RQt 플러그인 제작 실습 6.1 RQt 플러그인 형태로 다양한 도구 및 인터페이스를 구현할 수 있는 ROS의 GUI ROS+Qt 토

4. QoS(Quality of Service) 데이터 통신 옵션 ROS1 --> 자체 프로토콜 TCPROS ROS2 --> TCP(신뢰성 중심), UDP(속도 중심) 방식을 선택적으로 사용 가능 ROS2에서 DDS의 QOS를 도입 퍼블리셔 또는 서브스크라이버 선언

letter_publisher: LetterPublisher 클래스 객체 생성 후 노드 실행 - 매초마다 알파벳 순차적 발행 progressactionclient: GameProgress 클라이언트 생성, goal 전송, 피드백 처리 -> goal에 대한 응답을 받으
다양한 메시지 형식을 사용하려면, 해당 메시지 타입에 따라 아래와 같이 임포트해야 합니다.사용하려는 메시지 형식에 맞게 위와 같은 형식으로 모듈을 임포트한 후, 메시지 객체를 생성하여 사용할 수 있습니다.
위 파일은 RQt 플러그인 인터페이스를 정의하는 ui파일로 XML 태그를 이용합니다.위젯 별 설명1) main widget - examples_widget : 창의 크기와 제목 지정2) group_box_ur2-1) Child widegets이 코드는 RQT(ROS Q

우분투 환경에서 ui 파일을 실행하는 방법 두가지를 기술하세요. • 1. `$ qtcreator ~//src//resource/[file_name].ui • 2. 직접 우분투 파일 탐색기에서 더블 클릭하여 실행 ROS 2 CLI 명령어 중 ros2 run과 r
1. Publish.py 토픽에 msg를 발행하는 코드는 노드 생성, msg 정의, 발행 파트로 나누어 구조화할 수 있습니다. 아래에서는 보다 자세하게 나누어 핵심적인 파트로 설명하겠습니다. > 'Hellow World: [count]` 형식의 메시지 0.5초마다 '
빌드 관련 파일, CMakeList.txt와 package.xml의 기능을 하나로 묶어서 사용하는 파일setuptools를 사용하여 패키지 배포 준비시 필요한 정보를 담고 있음python 패키지에 대한 프로그래머틱한 구성 정보를 제공하며, setuptools를 통한 빌
package.xml 1.1 package.xml의 기능 패키지에 대한 메타 정보를 포함하는 파일 -> 이름, 버전, 저작자, 라이센스 등의 정보 정의, 패키지의 의존성, 인터페이스 정보 포함(메시지, 서비스, 액션 등) 사용 목적 소스 코드를 실제 가능한