728x90

Embedded/3. ROS 6

ROS2 (6) - Class, 상속을 이용한 그래프 그리기 (pyplot, numpy)

Jupyter Notebook을 이용한 ROS2 1. 기본적인 pyplot, numpy를 사용하여 그래프 그리기pip3 install matplotlib데이터 시각화를 위한 라이브러리인 matplotlib을 사용하기 위해 설치해준다. 데이터 시각화를 위한 pyplot과, 수학적 수치 계산을 위한 numpy를 사용하기 위해 import 해준다. arange 함수를 사용하여 0~6까지 0.01 단위로 숫자의 배열을 생성한다. 위에서 생성한 배열을 pi와 sin 함수를 이용하여 계산한다.y.shape의 결과로 600개의 요소를 가진 1차원 배열을 나타낸다. plt에 있는 figure, plot, grid, show 함수를 이용하여 위와 같이 sin 함수를 시각적 그래프로 그려낸다. figure() : 그림의 ..

Embedded/3. ROS 2024.09.30

ROS2 - (5) Python을 이용한 Topic, Service 구현

ROS2는 python을 공식 지원하며 Jupyter를 이용하여 python으로 Topic에 접근해 볼 것이다.(Uubuntu Jupyter 설치의 경우 구글에 많이 나와있으니 찾아보길 바랍니다.)Python으로 Topic 접근 코드 예제 결과 특정 범위 안에서 거북이가 random하게 움직이는 시뮬레이션Topic Topic 구독 코드 작성 터미널에서 turtlesim_node를 실행하고, ROS2를 실행한 후 VS-Code를 실행한다.  jupyter notebook을 통해 아래 코드를 입력하고 실행 시킨다.import rclpy as rpfrom turtlesim.msg import Pose첫째 라인의 rclpy(ROS Client Library for Python)라는 ROS2를 Python에서 사..

Embedded/3. ROS 2024.09.24

ROS2 - (4) Action, Parameter 이론 및 실습

ActionAction은 Topic과 Service의 혼합Action 목표 및 Action 결과를 전달하는 방식은 Service와 동일하다.Action Feedback은 Topic과 같은 Message 전송 방식  기본적으로 Client와 Server가 통신을 하게된다.1. Client에서 Goal에대한 Service를 Reqeust를 Server에 전달하게 되면 Server에서 Response를 Client로 전달하게 된다. 1.1. Feedback은 Topic으로 동작하며 Action Server가 Action Client로 정보를 주기적으로 전달하는 역할을 한다.2. Goal에 대한 응답 이후 최종 결과를 Result Service를 통해 Request, Response를 주고 받는다.3. Clie..

Embedded/3. ROS 2024.09.23

ROS2 - (3) Topic, Service 이론 및 실습

Topic 노드 간 Publish & SubscribePublisher가 Message를 BroadCasting 방식으로 전달하면 Subscriber는 자기가 필요한 Message면 받아들인다. (Topic을 확인해서 가져온다.)  비동기 단방향 메시지 송수신 방식으로 msg 메시지 형태의 메시지를 발간하는 Publisher와 메시지를 구독하는 Subscriber 간의 통신이다.1:N, N:1, N:N 통신도 가능하며 ROS 메시지 통신에서 가장 널리 사용된다.Node A처럼 하나 이상의 Topic을 발행할 수 있을 뿐만이 아니라 Publisher, Subscriber 역할을 동시에 수행 가능하며, 자신 Topic을 셀프 구독할 수도 있다.통상적으로 70% 이상이 Topic 방식을 사용한다.(기본 특징으..

Embedded/3. ROS 2024.09.23

ROS2 - (2) Message, DDS 이론 및 실습

Message Communication - Node : ROS에서 최소 단위의 실행 가능한 프로세스- Package : 하나 이상의 Node 또는 Node 실행을 위한 정보 등을 묶어 놓은 것(ex) Turtlesim)- Meta Package : Package의 묶음 ROS에서는 최소한의 실행 단위로 프로그램을 나누어 프로그래밍, 노드는 각각 별개의 프로그램으로 보면 된다.수많은 노드들이 연동되는 ROS 시스템의 특성 상 노드와 노드 사이에 입력과 출력 데이터를 서로 주고 받도록 설계해야 한다. * 노드의 이해와 더불어 노드 간 데이터 교환 방법, 데이터 유형에 대한 이해가 필요하다.ROS2 Message CommunicationNode 간 주고 받는 데이터를  Message라 칭하며, 주고 받는 방식..

Embedded/3. ROS 2024.09.23

ROS2 - (1) 설치 및 기본 동작 (Topic, Service, Action)

* Ubuntu, WSL 등 환경 구성 설치 및 설정은 추후에 다루겠다.ROS2 설치 Ubuntu (deb packages) — ROS 2 Documentation: Humble documentation Ubuntu (deb packages) — ROS 2 Documentation: Humble documentationYou're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Jazzy. Ubuntu (deb packages) Table of Contents Deb packages for ROS 2 Hu..

Embedded/3. ROS 2024.09.09
728x90