본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2024 ROS 스터디] <김예원> #2주차 -<ROS 용어 정리 및 명령어>

반응형

ROS 용어정리 


Node : 최소 단위의 실행 가능한 프로세스
Package : 하나 이상의 노드, 노드 실행을 위한 정보를 묶은것
Message : 메시지를 통해 노드간의 데이터를 주고 받음

1. 서버<- 클라이언트
    (서비스 요청)
2. 서버-> 클라이언트
    (서비스 응답)

ROS의 가장 기본적인 기술적 포인트는 노드간의 메시지 통신이다.

<메시지 통신 개념>
1. 마스터 구동
2. 서브스크라이버 노드 구동
3. 퍼블리셔 노드 구동
4. 퍼블리셔 정보 알림
5. 퍼블리셔 노드에 접속 요청
6. 서브 스크라이버 노드에 접속 응답
7. TCP접속
8. 메시지 전송
9. 서비스 요청 및 응답

ROS 메시지 
-메시지는 노드간에 데이터를 주고 받을 때 사용하는 데이터 형태
- 토픽, 서비스, 액션은 모두 메시지를 사용
- 단순 자료형
- 메시지 안에 메시지를 품은 데이터 구조(간단한)
- 메시지들이 나열된 배열과 같은 구조

Name : 노드, 메시지를 가지는 고유의 식별자
TF(transform) : 좌표 변환
Client Library - 다양한 프로그래밍 언어를 재원

이기종 디바이스 통신
- 원격으로 이미지 전송
- 안드로이드 스마트폰의 가속도 값을 PC에서 확인하기
- 안드로이드 스마트폰으로 Turtle bot 제어

========================
1. ROS 셸 명령어
roscd :  지정한 ROS 패키지 디렉터리로 이동
rosls :  ROS 패키지 파일목록 확인
rosed : ROS 패키지 파일 편집
roscp :  파일복사
rosd: 인덱스 확인

2. ROS 실행 명령어
roscore : master, rosout, parameter server
rosrun : 노드 실행
roslaunch : 노드를 여러개 실행 및 실행 옵션 설정
rosclean : ROS 로그 파일 검사 or 삭제

3. ROS 정보 명령어
rostopic : 토픽 정보확인
rosservice: 서비스 정보확인
rosnode: 노드 정보확인
rosparam: 파라미터 정보확인, 수정
rosbag : 메시지 기록, 재생
rosmsg : 메시지 정보확인
rossrv: 서비스 정보확인
rosversion: ros 패키지 및 배포 릴리즈 버전 정보확인

4. ROS catkin 명령어
catkin_create_pkg : 패키지 자동생성
catkin_make:  캐킨 빌드 시스템 기반을 둔 빌드
catkin_eclipse: 캐킨 빌드 시스템으로 생성한 패키지를 이클립스에서 사용 가능하게 변경
catkin_prepare_release : CHANGELOG.rst 파일 생성 or 업데이트
catkin_int_workspace :  캐킨 빌드 시스템 작업 폴더 초기화
catkin_find :  캐킨 검색

5. ROS 패키지 명령어
rospack :  ROS 패키지와 관련된 정보보기
rosinstall :  ROS 추가 패키지 설치
rosdep :  해당 패키지 의존성 파일 설치
roslocate : ROS 패키지 정보 관련 명령어
roscreate-pkg : ROS 패키지 자동생성
rosmake :  ROS 패키지를 빌드
===========================================
RViz(ROS Visualization Tool)
- ROS의 3D시각툴
' 센서 데이터의 시각화, 레이저 거리센서의 거리 데이터, 카메라의 영상데이터 등
' 로봇 외형의 표시와 계획된 동작을 표현

- 내비게이션
-매니퓰레이션
-원격제어

사용 예
1. 킷넷의 포인트 클라우드 data
2. 레이저 거리 센서의 거리값
3. IMU센서의 관성값
4. RealSense의 Point Cloud, Color, Depth
5. 사람의 골격과 지시 방향 표시
6. R2-D2 로봇 모델
7. 환경 모델, 로봇 모델, 경로까지
8. 지도 표시, 내비게이션, 목적지 지정
9. 인터렉티브 마커를 이용한 IK목표 위치 지정 및 경로 표시
10. 재난 구조 로봇 

=>Rviz 이용 장점은 센서 및 로봇 관련 데이터 시각화가 매우 간단해진다.

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

RQT 플러그인

1. 액션
2. 구성
3. 내성
4. 로깅
5. 다양한 툴
6. 로봇
7. 로봇 툴
8. 서비스
9. 토픽
10. 시각화


3D 시뮬레이터 -> Gazebo
: 로봇 개발에 필요한 3차원 시뮬레이션을 위한 로봇, 센서, 환경 모델 등을 지원하고
물리엔진을 탑재한 3차원 시뮬레이터


반응형