[ROS2] "혼자 공부하는 로봇 SW" 책을 읽으며 알게 된 기본 개념 정리 / 노드, 서비스, 토픽 등
ROS2 혼자공부하는 로봇SW 직접 만들고 코딩하자
위 책을 읽으며 알게 된 개념들, 정의 등등 정리합니다.
Shell 쉘
- shell은 운영체제의 일부로, PC가 실행된 이후 메모리에 상주하는 핵심 프로그램인 커널과 사용자 사이를 연결해주는 프로그램.
- 사용자가 직접 커널에 명령을 입력하는 것.
.bashrc
- 로그인한 사용자 별로 bash의 각종 설정을 저장하는 파일.
ros2 노드 실행 명령어
- 노드(Node): 실행 가능한 최소한의 단위
- 패키지: 다수의 노드와 여러 설정을 모아둔 것
아래 명령은 패키지의 노드를 하나 실행하는 명령어이다.
ros2 run <PKG name> <Node Name>
예를 들면 아래와 같다.
ros2 run turtlesim turtlesim_node
실행중인 노드 목록 확인 명령어
ros2 node list
ros에서 말하는 서비스(service)의 개념
- 클라이언트(client)가 서버(server)에게 요청(request)하면 응답(response)을 받으며 두 노드가 데이터를 주고받는 방식을 말함.
Topic(토픽)의 개념
- 발행(publish)과 구독(subscribe)로 되어있는 개념. 아래 그림 참고.
현재 사용 가능한 토픽 조회 명령어
ros2 topic list
Publish or Subscribe인지 확인하는 명령어
ros2 topic info <노드 이름, 예: /turtle1/pose>
토픽 구독 명령어
ros2 topic echo <노드 이름: turtle1/pose>
공간상에서 6자유도 표현 / (x, y, z,), (roll, pitch, yaw)
토픽 발행 명령어
ros2 topic pub <hz> <topic_name> <msg_type> "<args>"
예를 들어, geometry_msgs/Twist 데이터 타입의 /turtle1/cmd_vel 토픽을 x축 직선 방향으로 2의 속도로 진행하도록 한다면 다음과 같은 명령어를 입력하면 된다.
ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
주의할 점은, x: 이나 y: 처럼 콜론 왼쪽은 공백이 없어야 한다.
rqt_graph
토픽과 노드의 관계를 그림으로 나타낸 것.
동그라미는 노드를, 사각형은 토픽을 의미.
'로보틱스' 카테고리의 다른 글
[도커/Docker] 도커 run 실행 후 실행 중인 컨테이너에 접속하는 명령어 (2) | 2024.12.23 |
---|---|
[ROS2] sensor_msgs/msg/PointCloud2 Message (0) | 2024.12.12 |
[ROS2] bag 파일 열고 보는 방법 (0) | 2024.12.10 |
[ROS2] "혼자 공부하는 로봇 SW" 책을 읽으며 알게 된 기본 개념 정리 -2- (0) | 2024.12.03 |
[개념 정리] SLAM을 공부하면서 알게 된 개념 정리 (0) | 2024.11.25 |