ROS에 사용되는 용어
Node: ROS에서 실행되는 최소 단위의 프로세스이며, 하나의 프로그램이 하나의 노드라고 생각할 수 있다.
Package: 여러 노드와 노드 실행을 위한 정보를 묶어 놓은 것이다.
Message: 메세지를 통해 노드간의 데이터를 주고받게 된다.Integer, Float와 같은 변수형 메세지부터 메세지 안에 여러 메세지를 조합하여 이미지, 라이다 등의 정보를 저장한 구조를 사용할 수도 있다.
Topic: 토픽을 방송하는 Publisher, 토픽을 받아들이는 Subscriber의 구조로 이루어져 있으며, ROS에서의 주된 통신 방법이다. 1:1 통신도 가능하며, 필요에 따라서 1:N, N:1, N:N 통신도 모두 가능하다.
Service: 서버와 클라이언트의 구조로 되어 있으며, 클라이언트가 서버에 정보를 요청하면 서버는 정보를 제공하는 방식을 사용한다.
Action: 서버와 같이 서버, 클라이언트 구조로 되어 있지만 주로 시간이 오래 걸리는 작업일 때 사용하며, 중간 결과를 제공되는 피드백이 추가된다.
ROS의 메세지 통신
ROS에서 모든 노드는 실행되면서 마스터에게 노드 정보를 전달한다. 그러면 마스터에서는 토픽 통신의 경우 서브스크라이버, 서비스나 액션의 경우 클라이언트에 퍼블리셔, 서버의 정보를 전달한다. 정보를 전달받은 뒤, 노드들은 직접적으로 연결되어 정보를 주고받는다.
ROS에서 자주 사용되는 명령어
ROS 실행 명령어
roscore
rosrun
roslaunch
ROS 정보 명령어
rostopic
rosservice
rosnode (rqt_graph을 통해서도 list를 확인 가능)
rosparam
rosbag
ROS catkin 명령어
catkin_create_pkg
catkin_make
또한 다음 사이트에서도 ROS와 관련된 명령어 정보를 확인할 수 있다.
https://raw.githubusercontent.com/oroca/oroca_ros_tutorials/master/ROScheatsheet_indigo_catkin.pdf
RViz
강력한 3D 시각화 툴 제공
레이저, 카메라 등의 센서 데이터를 시각화
로봇 외형과 계획된 동작을 표현
RQT
그래픽 인터페이스 개발을 위한 Qt 기반 프레임워크 제공
노드와 그들 사이의 연결 정보 표시 (rqt_graph)
시간이 지남에 따라 변화되는 정보를 플로팅 (rqt_plot)
데이터를 메세지 형태로 기록하고 저장(rqt_bag)
Gazebo
물리 엔진을 탑재, 로봇, 센서, 환경 모델 등을 지원, 3차원 시뮬레이터
ROS와의 높은 호완성
'FOSCAR-(Autonomous Driving) > ROS 스터디' 카테고리의 다른 글
[2024 ROS 스터디] 유민아 #2주차 <ROS 도구, 명령어> (0) | 2024.02.09 |
---|---|
[2024 ROS 스터디] 정주광 #2주차 - ROS 명령어 및 도구 (1) | 2024.02.05 |
[2024 ROS 스터디] 박재훈 #2주차 - ROS 명령어 및 도구 (0) | 2024.02.04 |
[2024 ROS 스터디] 정성진 #2주차 - ROS 명령어 및 도구 (2) | 2024.02.04 |
[2024 ROS 스터디] 민경서 #2주차 - ROS 명령어 및 도구 (0) | 2024.02.04 |