본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2025 ROS 스터디] 홍동형 #2주차 - ROS 용어와 도구

반응형

ROS 용어

Node

최소 단위의 실행 가능한 프로세스

개발자가 마음대로 나눔(하나로 묶어버릴수도 있지만 그럼 ROS의 장점을 이용못함.)

ex) 영상 촬영, 노이즈 제거 필터1, 필터2, 식별 …

Package

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

쉽게 말해 그냥 프로그램?

ex) 얼굴 인식 출입 관리

Message

메시지를 통해 노드간의 데이터를 주고받게 된다

(int, float, point, bool)변수형태, 메시지안에 메시지, 배열과 같은 구조도 사용


메시지의 종류

Topic

publisher → subscriber

단방향 메시지, 연속성 방식

1:N, N:1, N:N 도 가능

Service

양방향 메시지, 일회성 방식

요구와 그에 따른 응답

Action

양방향 메시지

Service와 비슷, 차이점은 중간의 피드백

메시지 종류 요약
메시지 사용 빈도 (강사 피셜)


노드간 메시지 통신 과정

  1. 마스터 구동
  2. 노드1 구동
  3. 노드2 구동
  4. 노드2 정보를 노드1에 알림
  5. 노드1에 접속 요청
  6. 접속 응답
  7. TCP 접속
  8. 메시지 전송(topic)
  9. 서비스 요청 및 응답(service or action)

메시지 통신 과정 요약도

https://wiki.ros.org/ 에 가면 이것저것 볼 수 있다~


ROS 명령어

셸 명령어

roscd(changes directory) - 디렉토리 이동

rosls(lists files) - 파일 목록 확인

rosed(editor) - 파일 편집

roscp(copies files) - 파일 복사

rospd(pushd) - 디렉토리 인텍스에 디렉토리 추가

rosd(directory) - 디렉토리 인덱스 확인

실행 명령어

roscore(core) - master, rosout(로그기록), parameter server(파라미터 관리)

rosrun(run) - 노드 실행

roslaunch(launch) - 노드 여러 개 실행

rosclean(clean) - 로그 파일 검사or삭제

정보 명령어

rostopic(topic) - 토픽 정보 확인

rosservice(service) - 서비스 정보 확인

rosnode(node) - 노드 정보 확인

rosparam(parameter) - 파라미터 정보 확인, 수정

rosbag(bag) - 메시지 기록, 재생

rosmsg(msg) - 메시지 정보 확인

rossrv(srv) - 서비스 정보 확인..?

rosversion(version) - 패키지 및 릴리즈 버전 정보 확인

roswtf(wtf) - 시스템 검사

catkin 명령어

catkin이란? 컴파일 빌드 관련 시스템

catkin_create_pkg - 패키지 자동 생성

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

catkin_eclipse - 캐킨 빌드 시스템으로 생성한 패키지를 이클립스에서 사용할 수 있게 변경

catkin_prepare_release - 릴리즈할 때 사용되는 로그 정리 및 버전 태깅

catkin_gererate_chanelog - 릴리즈할 때 changelog.rst 파일 생성 또는 업데이트

catkin_init_workspace - 캐킨 빌드 시스템의 작업 폴더 초기화

catkin_find - 캐킨 검색

패키지 명령어

rospack(package) - 패키지 관련 정보 보기

rosinstall(install) - 추가 패키지 설치

rosdep(dependencies) - 의존성 파일 설치

roslocate(locate) - 패키지 정보 관련 명령어

roscreate-pkg(create pkg) - 패키지 자동 생성

rosmake(make) - 패키지를 빌드

 

 

뭐 이런 명령어들이 있다~ 차차 사용하며 알아가자~


ROS 도구

RViz (visualization tool)

3D 시각화툴

     센서 데이터의 시각화

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

     urdf

내비게이션

매니퓰레이션

원격제어

RQT

종합 GUI 툴

 

image_view

graph

plot

bag

 

Gazebo

3D 시뮬레이터

물리 엔진 탑재(여러 물리 엔진 선택 가능)

open source

센서 탑재로 불러오기 가능

 

 

 

 

출처 : https://youtu.be/skqzz_xQQXg?si=OJZN5HCiiBE9P4rz, https://youtu.be/5RBqGt1hvpM?si=E0XzbUSNXuQCiudV, https://youtu.be/fB2YINZOIng?si=upXPYGBcOVTGt_jr

반응형