Priceless
[ROS1] ROS1 Publish, Subscribe, Topic 이해하기(with turtlesim) 본문
실습 환경
OS: Ubuntu 20.04
ROS: ROS1 Noetic
실습 과정
1. 첫 번째 터미널에서 roscore로 마스터 노드 준비
roscore
2. 두 번째 터미널에서 어떤 노드가 동작 중인지 확인
rosnode list
Subscriber(구독자)
3. 세 번째 터미널에서 tertlesim 라이브러리에 있는 turtlesim node 작동 (Subscriber)
rosrun turtlesim turtlesim_node
4. 두 번째 터미널에서 작동 중인 node를 확인하여 turtlesim_node가 동작 중인지 확인
rosnode list
Publisher(발행자)
5. 네 번째 터미널에서 turtlesim_node 를 제어하기 위한 teleop key node 작동 (Publisher)
방향키를 통해 제어한다
방향키 입력 값을 토픽으로 보낸다
rosrun turtlesim turtle_teleop_key
6. 두 번째 터미널에서 작동 중인 node를 확인하여 turtle_teleop_key node 가 동작 중인지 확인
rosnode list
7. 두 번째 터미널에서 현재 동작하는 topic, publisher, subscriber를 시각적으로 확인하기 위해 그래프 출력
rqt_graph
Topic(토픽)
8. graph를 종료하고 두 번째 터미널에서 전송 중인 topic을 확인한다
topic에 담긴 값을 확인하기 위해서는 두 번째 줄 명령어를 입력한다
published topic과 subscribed topic을 확인하기 위해 세 번째 줄 명령어를 입력한다
rostopic list
rostopic echo /turtle1/cmd_vel
rostopic list -v
9. 두 번째 터미널에서 전송 중인 topic의 타입을 확인한다
해당 타입의 메시지가 어떻게 구성되어 있는지 확인하기 위해 두 번째 줄 명령어를 입력한다
rostopic type /turtle1/cmd_vel
rosmsg show <type>
# <type>: geometry_msgs/Twist
Topic을 직접 publish하기
10. topic을 직접 publish한다
publish 하고자 하는 topic과 메시지 타입을 입력하고 원하는 값을 입력한다
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0,0.0,0.0]' '[0.0,0.0,1.8]'
# rostopic pub -<publish 횟수> <publish할 topic> <topic 타입> -- <topic 메시지1> <topic 메시지2>...
'ROS1 & ROS2' 카테고리의 다른 글
[ROS1] ROS1 launch (0) | 2023.10.08 |
---|---|
[ROS1] ROS1 Package(패키지) (0) | 2023.10.08 |
[ROS1] ROS1 기초 (0) | 2023.10.06 |
[ROS] ROS2 빌드 설정 파일 (0) | 2022.11.17 |
[ROS]Ubuntu 20.04 & ROS 2 Foxy 설치 (0) | 2022.09.18 |