본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2023 ROS 스터디] 선병범 #2주차 - ROS 용어 및 도구

반응형

chapter 4

 

ROS 용어정리

1. Node

최소 단위의 실행 가능한 프로세서를 가리키는 용어로써 하나의 실행 가능한 프로그 램으로 생각하면 된다. ROS에서는 최소한의 실행단위로 프로그램을 나누어 작업하게 된다.

 

 

2. Package

하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것. 또한, 패키지의 묶음 을 메타 패키지라 하여 따로 분리한다.

 

 

3. Message

메시지를 통해 노드 간의 데이터를 주고받게 된다. 메시지는 integer, floating point, boolean와 같은 변수 형태이다. 또한, 메시지 안에 메시지를 품고 있는 간단 한 데이터 구조 및 메시지들의 배열과 같은 구조도 사용할 수 있다.

 

 

4. Message의 통신방식

 

Topic

 

단방향 연속적

publisher->subscriber

1:1, ,N:N 형식의 통신이 모두 가능

 

Service

 

양방향 일회성

server <-> client

서버의 요청과 클라이언트 동작의 상호 통신(한번 끝나면 끝 일회성)

 

Action

 

어떤 것을 했고 못했는지 결과 값을 전달

중간에 피드백 존재

복잡한 테스크에서 사용

 

 

5. Message 통신 개념

 

1) 마스터 구동

$ roscore

 

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

$ roscore 패키지이름 노드이름

 

3) 퍼블리셔 노드(Node) 구동

$rosrun 패키지이름 노드이름

 

4) 퍼블리셔 정보 알림

마스터는 서브스크라이버 노드에게 새로운 퍼블리셔 정보를 알린다.

 

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

마스터로부터 받은 퍼브리셔 정보를 이용하여 TCPROS 접속을 요청

 

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

접속 응답에 해당되는 자신의 TCP URI 주소와 포트번호를 전송

 

7) TCP 접속

TCPROS를 이용하여 퍼블리셔 노드와 직접 연결한다.

 

8) 메시지 전송

발행자 노드느 서브스크라이버 노드에게 메시지를 전송(토픽)

 

9) 서비스 요청 및 응답

1회에 한해 접속, 서비스 요청 및 서비스 응답이 수행되고 서로간의 접속을 끊는다.

 

chapter5

 

여러 가지 ROS의 명령어에 대한 정리이므로 패스~

 

chapter6

 

RViz

 

1. ROS3D 시각화툴

-여러가지 센서의 데이터를 시각화함

 

2. 로봇 외형의 표시와 계획된 동작을 표현

3. 내비게이션

 

4. 매니퓰레이션

 

5. 원격제어

 

->RViz를 이용하면 센서 및 로봇 관력 데이터 시각화가 매우 간단!

 

RViz를 실행시키기 위해서는 roscore을 꼭 입력해야한다.

 

RQT

 

1. 플러그인 방식의 ROS의 종합 GUI

 

2. 유저들이 자유롭게 플러그인을 개발하여 추가할 수 있다

 

우선 RQT를 이용하여 카메라를 실행시키려고 하였는데

계속된 오류로 인해 구글링을 해보니 ROS Melodic이 위와 같이 uvc_camera를 사용할 수 없는 이유는 지원을 만료했기 때문이라는 걸 보았다. 

 

하지만. 이에 포기할 내가 아니지 라는 마음으로 정말 여러가지 프로그램을 깔고 해봤는데 그럼에도 오류가 고쳐지지가 않았다. 마지막이라는 생각으로 

https://blog.naver.com/PostView.nhn?blogId=angelkim88&logNo=221631642641 

 

 

[ROS Melodic] USB-CAM & UVC CAMERA

#[rospack] Error: package 'uvb_camera' not found [rospack] Error: package 'uvb_came...

blog.naver.com

이 블로그에서 나온 방식대로 해봤지만 결과는!

어림도 없지.. 실패!

 

찐막이라는 생각으로 다른 부원분들이 어떻게 하셨나보고 같은 방식으로 해봤는데도 실패하였다. 그러다 나와같은 블로그를 보시고 따라했는데 성공하신분을 보고 아.. 뭔가 다른게 문제이구나라는 생각이 들어 나머지 다른 것을 마무리해보고 재도전해보려고 한다.

 

다음 rqt_graph 와 rqt_plot의 결과는 다음과 같다

 

oh no! I hit the wall!이라는 문구가 뭔가 되게 귀엽게 느껴졌다.ㅎㅎ..

 

아무튼 오늘 강의는 여기서 마무리 되었다. 뭔가 이번 강의는 이론적인 내용이 많아서 실습장면을 많이 못올린거같아 아쉽다. 우선 위에서 언급한 문제의 원인을 찾아서 고쳐봐야겠다. 다음 강의에서는 또 어떤 오류가 날 찾고있을지 기대가된다...하하하하하

반응형