본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2025 ROS 스터디] 윤윤지 #2주차-중요 컨셉, 명령어, 도구

반응형

Ch 04 중요 컨셉

 

1.용어 정리

 

1)Node: 최소 단위의 실행 가능한 프로세서

 

2)Package: 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것

 

3)Message: 변수형태로 메시지를 통해 노드간의 데이터를 주고받게 된다.

 

4)Topic: 단방향, 연속성을 가진 통신방법

-publisher (메시지를 보냄)

-subscriber (메시지를 받음)

1:N, N:1, N:N 통신 가능

 

 

5)Service : 양방향, 일회성

클라이언트 ->서버 (서비스 요청)

서버 -> 서버 (서비스 응답)

 

6)Action : 중간결과에 대한 피드백을 전달

 

 

2.메시지 통신 개념 

 

1) 마스터 구동(roscore)

각 실행되는 노드들의 정보를 관리하여 노드 간 통신을 연결

 

2) 서브스크라이버 노드 구동(rosrun)

노드가 실행되자마자 노드 정보를 마스터한테 전달

 

3) 퍼블리셔 노드 구동

다른 노드의 정보도 전달하면 마스터는 받은 정보들을 매칭

 

4) 퍼블리셔 정보 알림

매칭이 맞으면 정보를 전달

 

5) 퍼블리셔 노드에 접속 요청

 

6) 서브스크라이버 노드에 접속 응답

 

7) TCP 접속

 

8) 메시지 전송

 

9) 서비스 요청 및 응답

1회에 한해 접속, 서비스 요청 및 서비스 응답이 수행되고 서로간의 접속 중단

 

*네임

:노드 이름이 정해져 있지만 그 이름을 바꿔서 실행 시키고 싶을때, 메시지를 보내는데 이름을 바꿔서 보내고 싶을 때 사용

 

 

 

 

 

Ch 05 명령어

 

1. 명령어 정리(중요도 3 기준으로 정)

 

1)셸 명령어

roscd : ros+cd(changes directory), 지정한 ROS 패키지의 디렉터리로 이동

 

2)실행 명령어

roscore : ros+core, master(ROS 네임 서비스), rosout(로그 기록), parameter server(파라미터 관리)

rosrun : ros + run, 노드 실행

roslaunch : ros + launch, 노드를 여러 개 실행 및 실행 옵션 설정

 

3)정보 명령어

rostopic : ros+topic (ROS 토픽 정보 확인)

rosservice : ros + service (ROS 서비스 정보 확인)

rosnode : ros + node (ROS 노드 정보 확인)

rosparam : ros + param(parameter) (ROS 파라미터 정보 확인, 수정)

rosbag : ros + bag (ROS 메시지 기록, 재생)

 

4)ROS catkin 명령어

catkin_create_pkg : 패키지 자동 생성

catkin_make : 캐킨 빌드 시스템에 기반을 둔 빌드

 

5)ROS 패키지 명령어

rospack : ros + pack (ROS 패키지와 관련된 정보 보기)

 

 

 

 

 

Ch 06 도구

 

1.ROS의 다양한 개발 도구 

 

1) Command-Line Tools 

-GUI 없이 ROS에서 제공되는 명령어로만 로봇 엑세스 및 거의 모든 ROS 기능 소화

 

2)RViz

-강력한 3D 시각화를 제공

-레이저, 카메라 등의 센서 데이터를 시각화

-로봇 외형과 계획된 동작을 표현

 

레이저 거리 센서의 거리 값

 

 

환경 모델, 로봇 모델, 경로

 

 

인터렉티브 마커를 이용한 IK 목표 위치 지정 및 경로 표시

 

 

!Rviz를 이용하면 센서 및 로봇 관련 데이터 시각화가 매우 간단해진다!

 

 

 

 

3)RQT 

-그래픽 인터페이스 개발을 위한 Qt 기반 프레임 워크 제공

-노드와 그들 사이의 연결 정보 표시

-인코더, 전압 또는 시간이 지남에 따라 변화하는 숫자를 플로팅

-데이터를 메시지 형태로 기록하고 재생

 

RQT 이미지뷰 프로그램 실행 결과

 

!RQT를 이용하면 GUI 형태로 ROS 이용 가능, GUI 툴 제작이 간단!

 

 

 

4)Gazebo

-물리 엔진을 탑재, 로봇, 센서, 환경 모델 등을 지원, 3차원 시뮬레이터

-ROS와의 높은 호완성

 

 

 

!시뮬레이션이 필요할때 ROS와 연동하기 쉬움!

 

 

 

 

반응형