https://www.youtube.com/playlist?list=PLX-Ur4rl2-qwNB3cD5UAGo-RPe5IBw1pu
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차원 시뮬레이터
'FOSCAR-(Autonomous Driving) > ROS 스터디' 카테고리의 다른 글
[2024 ROS 스터디] 박재훈 #2주차 - ROS 명령어 및 도구 (0) | 2024.02.04 |
---|---|
[2024 ROS 스터디] 정성진 #2주차 - ROS 명령어 및 도구 (2) | 2024.02.04 |
[2024 ROS 스터디] 이준호 #2주차 - ROS 명령어 및 도구 (0) | 2024.02.04 |
[2024 ROS 스터디] 성창엽 #2주차 - ROS 명령어 및 도구 (0) | 2024.02.04 |
[2024 ROS 스터디] 변수양 #2주차 - ROS 명령어 및 도구 (0) | 2024.02.03 |