반응형
#1 ROS의 컨셉
1. ROS의 용어
- Node - 최소 단위의 실행 가능한 프로세서. ROS에서는 최소한의 실행단위로 프로그램을 나누어 작업함
- Package - 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것
- Message - 노드간의 데이터를 주고받게 해줌. interger, floating point, boolean 와 같은 변수형태
- Publisher 는 Topic을 Subscriber에게 일대일이나 일대다로 전송할 수 있다. <Topic은 단방향>
- Service server와 Service client는 양방향으로 통신 가능
- Action server와 Action client는 Service와 비슷하지만 중간에 피드백을 할 수 있다. 많이 쓰진 않음
2. 메시지 통신 개념
메시지 통신은 노드간의 메시지 통신인 ROS에서 가장 기본이 됨.
- 마스터 구동 : $roscore
- 서브스크라이버 노드 구동 : $rosrun 패키지이름 노드이름
- 퍼블리셔 노드 구동 : $rosrun 패키지이름 노드이름
- 퍼블리셔 정보 알림
- 퍼블리셔 노드에 접속 요청
- 서브스크라이버 노드에 접속 응답
- TCP 접속
- 메시지 전송<Topic 방식에서는 접속을 끊지 않는 이상 메세지를 지속적으로 전송>
- 서비스 요청 및 응답
3. ROS 메시지
- 토픽, 서비스, 액션은 모두 메시지를 사용
- 단순 자료형 : 정수, 부동 소수점, 불(boolean)
- 메시지 안에 메시지를 품고 있는 간단한 데이터 구조 : geometry_msgs/PoseStamped
- 메시지들이 나열된 배열과 같은 구조 : ex) float32[] ranges
4. Name, TF, Client Library, 이기종 디바이스 간의 통신
- 네임 : 노드, 메시지(토픽, 서비스, 액션, 파라미터)가 가지는 고유의 식별자. ROS는 그래프라는 추상 데이터 형태 지원
- 좌표 변환(TF) : 각 조인트들의 상대 좌표 변환
- 클라이언트 라이브러리(Client Library) : 다양한 프로그래밍 언어 지원
- 이기종 디바이스 간의 통신
#2 ROS 명령어
- Command-Line Tools : rospack, roscd, rospd, rosls 등등
- ROS 셸 명령어 : roscd(지정한 ROS 패키지의 디렉터리로 이동), rosls, rosed, roscp
- ROS 실행 명령어 : roscore, rosrun, roslaunch, rosclean
- ROS 정보 명령어 : rostopic, rosservice, rosnode, rosparam, rosbag
- ROS catkin 명령어 : catkin_create_pkg, catkin_make, catkin_eclipse
#3 ROS 도구
1. RViz (ROS Visualization Tool)란?
- ROS의 3D 시각화툴 : 카메라의 영상 데이터, 거리 데이터, 관성 데이터 등을 시각화함
- 로봇 외형의 표시와 계획된 동작을 표현
- 내비게이션, 매니퓰레이션, 원격 제어
* RViz를 이용한 카메라, 라이더, 모델링, 내비게이션, 재난구조로봇 예시 영상 시청
- RViz 설치 : sudo apt-get install ros-kinetic-rviz
2. RViz 실행
- rosrun rviz rviz 입력
3. RQT: 플러그인 방식의 ROS의 종합 GUI 툴
- RQT 실행 : $rqt
4. Gazebo
- 로봇 개발에 필요한 3차원 시뮬레이션을 위한 로봇, 센서, 환경 모델 등을 지원하고 물리 엔진을 탑재하여 실제와 근사한 결과를 얻을 수 있는 3차원 시뮬레이터
이상으로 2주차 스터디 끝!
반응형
'FOSCAR-(Autonomous Driving) > ROS 스터디' 카테고리의 다른 글
[2024 ROS 스터디] 초라핀스카 베로니카 #2주차 - ROS에서 쓰이는 용어 및 도구 (0) | 2024.07.13 |
---|---|
[2024 ROS 스터디] 곽우인 #2주차 - ROS에서 쓰이는 용어와 도구 (0) | 2024.07.12 |
[2024 ROS 스터디] 이연수 #1주차 - ROS 소개 (0) | 2024.07.08 |
[2024 ROS 스터디] 김기태 #1주차 - ROS 소개 및 설치하기 (0) | 2024.07.07 |
[2024 ROS 스터디] 반제호 #1주차 - ROS를 왜 사용할까? (0) | 2024.07.06 |