Chapter 4. ROS의 중요 컨셉
4-1 ROS 용어
- Node : 최소 단위의 실행 가능한 프로세스를 가리키는 용어로 하나의 실행 가능한 프로그램
- Package : 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어놓은 것
- Message : 노드 간 데이터를 주고받을 때 사용하는 데이터의 형태
↳ Topic(단방향, 연속성), Service(양방향, 일회성), Action(양방향, 피드백), Parameter
4-2 메시지 통신
ROS에서 가장 기본이 되는 기술 요점은 노드간의 메시지 통신이다.
1. 마스터 구동 (roscore)
2. Subscriber Node 구동 (rosrun turtlesim turtlesim_node)
3. Publisher Node 구동 (rosrun turtlesim turtle_teleop_key)
4. 마스터가 Publisher Node 정보를 Subscriber Node에게 알림
5. Subscriber Node가 마스터로부터 받은 Publisher Node 정보를 이용하여 TCPROS 접속을 요청
6. 접속 응답에 해당되는 Publisher Node의 TCP URI 주소와 포트번호를 Subscriber Node에게 전송
7. TCPROS를 이용하여 Publisher Node와 Subscriber Node가 직접 연결
8. Publisher Node는 Subscriber Node에게 메시지를 전송
Chapter 5. ROS 명령어
지속적으로 사용하는 Command-Line Tools를 보면 다음과 같다.
- rospack (ROS 패키지와 관련된 정보 보기)
- roscd (지정한 ROS 패키지의 디렉터리로 이동)
- rospd (ROS 디렉터리 인덱스에 디렉터리 추가)
- rosls (ROS 패키지의 파일 목록 확인)
- rosed (ROS 패키지의 파일 편집)
- roscp (ROS 패키지의 파일 복사)
- rosdep (해당 패키지의 의존성 파일 설치)
- roswf (ROS 시스템 검사)
- catkin_create_pkg (패키지 자동 생성)
- wstool
- catin_make (catkin 빌드 시스템에 기반을 둔 빌드)
- roscore (master, rosout, parameter server 실행)
- rosrun (노드 실행)
- roslaunch (노드를 여러 개 실행 및 실행 옵션 설정)
- rosnode (ROS 노드 정보 확인)
- rostopic (ROS 토픽 정보 확인)
- rosservice (ROS 서비스 정보 확인)
- rosparam (ROS 파라미터 정보 확인 및 수정)
- rosmsg (ROS 메시지 정보 확인)
- rossrv (ROS 서비스 정보 확인)
- rosbag (ROS 메시지 기록 및 재생)
- tf_echo
Chapter 6. ROS 도구
로봇 개발에 필요한 다양한 개발 도구를 알아보면 다음과 같다.
- Command-Line Tools
• GUI 없이 ROS에서 제공되는 명령어로만 로봇 엑세스 및 거의 모든 ROS 기능 소화
- RViz
• 강력한 3D 시각화툴 제공
• 레이저, 카메라 등의 센서 데이터를 시각화
• 로봇 외형과 계획된 동작을 표현
- RQT (GUI)
• 그래픽 인터페이스 개발을 위한 Qt 기반 프레임 워크 제공
• 인코더, 전압, 또는 시간이 지남에 따라 변화하는 숫자를 플로팅(rqt_plot)
• 노드와 그들 사이의 연결 정보 표시(rqt_graph)
• 데이터를 메시지 형태로 기록하고 재생(rqt_bag)
- Gazebo
• 물리 엔진을 탑재, 로봇, 센서, 환경 모델 등을 지원, 3차원 시뮬레이터
• ROS와의 높은 호완성
에러 모음
Chapter 6, rqt_image_view 실습 중 다음과 같은 에러가 발생했다.
uvc_camera를 깔면 해결될 일이다. 다음 블로그에서 설명해주는 코드에서 kinetic을 melodic으로만 바꿔주면 된다.
https://doongdoongeee.tistory.com/20
'FOSCAR-(Autonomous Driving) > ROS 스터디' 카테고리의 다른 글
[2023 ROS 스터디] 오현민 #2주차 - ROS (0) | 2023.01.20 |
---|---|
[2023 ROS 스터디] 김동훈 #2주차 - ROS 용어 및 도구 (0) | 2023.01.20 |
[2023 ROS 스터디] 손은빈 #1주차 - ROS 설치하기 (1) | 2023.01.17 |
[2023 ROS 스터디] 선병범 #1주차 - ROS설치 (2) | 2023.01.16 |
[2023 ROS 스터디] 김예진 #1주차 - ROS 소개 및 설치하기 (1) | 2023.01.16 |