본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2024 ROS 스터디] 민경서 #2주차 - ROS 명령어 및 도구

반응형

https://www.youtube.com/playlist?list=PLX-Ur4rl2-qwNB3cD5UAGo-RPe5IBw1pu

 

2024 ROS 스터디 2주차

 

www.youtube.com

2주차 공부한 내용을 작성해보려고 한다. 

Chapter4 에서는 ROS 의 중요컨셉에 대해 설명한다. 

1. ROS 용어

- Node : 최소 단위의 실행 가능한 프로세서. 각 노드는 메시지 통신으로 데이터를 주고 받음. 

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

- Message : 메시지를 통해 노드간의 데이터를 주고받게 됨. (integer, float, point 등)

 

- Topic : 단방향, 연속성을 가진 통신방법 중 하나

- Publisher : 메시지를 보냄.

- Subscriber : 메시지를 받음. 

 

- Service : 양방향, 일회성 통신 방법

- Service server : 서비스 응답

- Service client : 서비스 요청

 

- Action : 중간 피드백이 있음. 복잡한 테스크를 할 때, action 사용

- Action server : 액션 피드백 전달, 액션 결과 전달 

- Action client : 액션 목표 전달

 

2. 메시지 통신 개념

- roscore : 마스터 구동

- rosrun package_name node_name : subscriber 노드 구동 / publisher 노드 구동

 

Chapter5. ROS 명령어에서는 명령어들에 대해 설명한다. 

1. ROS 셀 명령어

- roscd : ROS package 디렉토리 이동

- rosls : ROS package 파일 목록 확인

- rosed : ROS package 파일 편집

- roscp : ROS package 파일 복사

- rospd : ROS 디렉토리 인덱스에 디렉토리 추가 

- rosd : ROS 디렉토리 인덱스 확인

 

2. ROS 실행 명령어

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

- rosrun : 노드 실행

- roslaunch : 노드를 여러 개 실행 및 실행 옵션 설정

- rosclean : ROS 로그 파일을 검사하거나 삭제

 

3. ROS 정보 명령어

- rostopic : ROS 토픽 정보 확인

- rosservice : ROS 서비스 정보 확인

- rosnode : ROS 노드 정보 확인

- rosparam : ROS 파라미터 정보 확인, 수정

- rosbag : ROS 메시지 기록, 재생

- rosmsg : ROS 메시지 정보 확인

- rossrv : ROS 서비스 정보 확인

- rosversion : ROS package 및 배포 릴리즈 버전 정보 확인

- roswtf : ROS 시스템 검사

 

4. ROS catkin 명령어

- catkin_create_pkg : 패키지 자동 생성

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

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

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

- catkin_generate_changelog : 릴리즈할 때 CHANGELOG.rst 파일 생성 또는 업데이트

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

- catkin_find : 캐킨 검색

 

5. ROS 패키지 명령어

- rospack : ROS 패키지와 관련된 정보 보기

- rosinstall : ROS 추가 패키지 설치

- rosdep : 해당 패키지의 의존성 파일 설치

- roslocate : ROS 패키지 정보 관련 명령어

- roscreate-pkg : ROS 패키지 자동 생성

- rosmake : ROS 패키지를 빌드

 

Chapter6. ROS 도구에서는 Rviz, RQT, Gazebo 에 대해 설명한다. 

1. Rviz

- ROS 의 3D 시각화툴

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

- 네비게이션

- 매니퓰레이션 받을 수 없습니다. 아마도 apt-get update를 실행해야 하거나 --fix-missing 옵션을 줘서 실행해야 할 것입니다.
ahnsunyoung@ahnsunyoung-ThinkPad-X1-Carbon-Gen-8:~$ 

- 원격 제어

- Rviz 설치 : $ sudo apt-get install ros-noetic-rviz

- Rviz 실행 : 한쪽 터미널에 $ roscore를 실행하고, 다른 터미널에 $ rviz 를 실행함. 

2. RQT 

- 플러그인 방식의 ROS 의 종합 GUI 툴

- 대표적인 플러그인 : rqt_image_view, rqt_graph, rqt_plot, rqt_bag

- RQT 설치 : $ sudo apt-get install ros-noetic-rqt ros-noetic-rqt-common-plugings

- RQT 실행 : $ rqt

- RQT 플러그인 

- 액션 : Action 타입의 데이터 구조를 확인

- 구성

  • Dynamic Reconfigure : 노드들에서 제공하는 설정값 변경을 위한 GUI 설정값 변경
  • Launch : roslaunch의 GUI 버전

- 내성

  • Node Graph : 구동중인 노드들의 관계도 및 메시지의 흐름을 확인 가능한 그래프 뷰
  • Package Graph : 노드의 의존 관계를 표시하는 그래프 뷰
  • Process Monitor : 실행중인 노드들의 CPU 사용률, 메모리 사용률, 스레드 수 등을 확인

- 로깅

  • Bag : ROS 데이터 로깅
  • Console : 노드들에서 발생하는 경고, 에러 등의 메시지를 확인
  • Logger Level : ROS의 Debug, Info, Warn, Error, Fatal 로거 정보를 선택하여 표시

다양한 툴

  • Python Console : 파이썬 콘솔 화면
  • Shell : 쉘 구동
  • Web : 웹 브라우저를 구동

로봇

  • 사용하는 로봇에 따라 계기판 등의 플러그인을 이곳에 추가

로봇툴

  • Controller Manager : 컨트롤러 제어에 필요한 플로그인
  • Diagnostic Viewer : 로봇 디바이스 및 에러 확인
  • Moveit! Monitor : 로봇 팔 계획에 사용되는 Moveit! 데이터 확인
  • Robot steering : 로봇 조정 GUI 툴, 원격 조정에서 이 GUI 툴을 이용하여 로봇 조종
  • Runtime Monitor : 실시간으로 노드들에서 발생되는 에러 및 경고를 확인

서비스

  • Service Caller : 구동중인 서비스 서버에 접속하여 서비스를 요청
  • Service Type Browser : 서비스 타입의 데이터 구조 확인

토픽

  • Easy Message Publisher : 토픽을 GUI 환경에서 발행
  • Topic Publisher : 토픽을 생성하여 발행
  • Topic Type Browser : 토픽 타입의 데이터 구조 확인
  • Topic Monitor : 사용자가 선택한 토픽의 정보 확인

시각화

  • Image View : 카메라의 영상 데이터 확인
  • Navigation Viewer : 로봇 네비게이션의 위치 및 목표지점 확인
  • Plot : 2차원 데이터 플롯 GUI 플로그인, 2차원 데이터의 도식화
  • Pose View : 현재 TF의 위치 및 모델의 위치 표시
  • RViz : 3차원 시각화 툴인 RViz 플러그인
  • TF Tree : tf 관계를 트리로 나타내는 그래프

rqt 실습 : rqt_graph

3. Gazebo 

- 물리 엔진을 탑재하여 실제와 근사한 결과를 얻을 수 있는 3차원 시뮬레이터

 

 

반응형