본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2023 ROS 스터디] 박준석 #2주차 - ROS 용어, 명령어, 도구

반응형

#ROS 용어 정리

1. 노드 (Node) - 최소 단위의 실행 가능한 프로세서 

2. 패키지 (Package) - 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것.

3. 메시지 (Message) - 노드 간의 데이터 

4. 토픽 (Topic) - 이야깃거리

5. 퍼블리시 (Publishe) - 토픽 내용에 해당하는 메시지 형태의 데이터 송신

6. 서브스크라이브 (subscribe) - 토픽 내용에 해당하는 메시지 형태의 데이터를 수신하는 것 

// Topic에 대해 1:1의 Publisher, subscriber통신도 가능하며, 목적에 따라서 1:N, N:1, N:N 통신도 가능하다. 

7. 서비스 (Service)  - 서비스를 요청하는 서비스 클라이언트와 서비스 응답을 담당하는 서비스 서버 간의 동기적 양뱡향 서비스 메시지 통신, 다자간 송수신 불가

8. 서비스 서버 (Service server) - 요청을 입력으로 받고, 응답을 출력으로 하는 서비스 메시지 통신의 서버 역할

10. 액션 (Action) - 비동기식+동기식 양방향 메시지 송수신, 다자간 송수신 불가

종류      
topic 단방향 비동깅 연속적인 데이터 송수신
service 양방향 동기 요청 처리가 순간적인 현재 상태의 요청
action 양방향 비동기 요청처리 후 응답까지 오래 걸리거나 중간 피드백이 필요한 경우

 

tutlesim 패키지- https://www.youtube.com/watch?v=skqzz_xQQXg&list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw&index=4

"rqt_graph"를 통하여 node와 topic이 어떻게 작동하고 있는지 그래프를 확인할 수 있다. 

$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
$ rosrun rqt_graph rqt_graph

 

#명령어

ROS 명령어는 아래의 홈페이지에서 잘 나와있다

http://wiki.ros.org/ROS/CommandLineTools

 

ROS/CommandLineTools - ROS Wiki

The following tools are built when a top-level make is called in $ROS_ROOT. They are installed to $ROS_ROOT/bin, which should have been added to your PATH variable as part of the installation process. If this is not the case, please follow the Installation

wiki.ros.org

 

 

#RViz

RViz(ROS Visvualiztion Tool)는 ROS 도구 중 하나이다. 센서 데이터의 시각화되어 있다.

(레이저 거리 센서(LDS) 센서의 거리 데이터, Depth Camera의 포인트 클라우드 데이터, 카메라의 영상 데이터, IMU 센서의 관성 데이터 등..)

 

 

Rviz를 이용하면 센서 및 로봇 관련 데이터 시각화가 매우 간단하다. 아래의 명령어를 누르면 쉽게 들어갈 수 있다.

$ roscore
$ rviz

RViz

ADD를 누르면 센서와 장치정보들을 사용가능하다.

 

#rqt

다음 알아볼 ROS도구 중 하나는 로봇으로부터 얻을 수 있는 데이터를 쉽게 확인하고 관리할 수 있도록 하는 rqt이다. GUI개발에 있어서 공통으로 필요한 부분들을 API형태로 제공을 한다.

Plugin에 들어가서 선택적으로 골라서 실행이 가능하다

#rqt_image_view

$ roscore
$ rosrun usb_cam usb_cam_node
$ rqt_image_view

rqt_image_view

#rqt_plot

$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
$ rqt_plot /turtle/pose/

 

#rqt_bag

$ roscore
$ rosrun usb_cam usb_cam_node
$ rqt_bag

영상이나 음성 재생하기

#Gazebo

https://classic.gazebosim.org/media

- 로봇 개발에 필요한 3차원 시뮬레이션을 위한 로봇, 센서, 환경 모델 등을 지원하고 물리엔진을 탑재하여 실제와 근사한 결과를 얻을 수 있는 3차원 시뮬레이터이다. 

- DAPPA Robotics Challenge의 공식 시뮬레이터

- ROS와의 호환성이 매우 좋다

앞으로 시뮬레이션이 필요하다면 ROS와 연동하기 쉬운 Gazebo를 사용하자 

반응형