ROS를 시작하기에 앞서
roscore를 실행
* roscore는 동시에 1번만 실행 가능
Node: turtle_teleop_key
turtlesim_node 실행시켜준 뒤 실행해야됌
rosrun turtlesim turtle_teleop_key
화살표키로 실행된 turtlesim_node의 turtle을 움직일 수 있다.
-> node1: turtlemsim_node 와 node2: turtle_teleop_key가 ROS Topic을 가운데 두고 서로 통신하고 있는 것(아래 그림 참고)
turtle_teleop_key는 Topic에 msg(key strokes)를 publish
turtlesim_node는 같은 Topic에 msg(key strokes)를 subscribe
ROS Topics
rqt_graph
이를 그래프로 더 간단하게 확인 가능
rosrun rqt_graph rqt_graph
>>
툴 rostopic은 ROS topics의 여러 정보들을 제공해준다.
가능한 command가 뭐가 있는지 확인하고 싶으면
rostopic -h
rostopic echo
topic에서 발행된 data 확인(그니까,,, 한 노드가 topic에 publish 한 msg를 본다,, 맞나?)
=> ㅇㅇ 맞아, 밑에 뭐 같은 내용(msg detail) 확인하려고 topic type 알아보고, msg show 하는데 그냥 이 방법이 최고임
rostopic echo [topic]
rostopic echo /turtle1/cmd_vel
>>
* tip 현재 생성된 topic 확인하고 싶으면
rostopic echo 를 친 상태에서 tab을 연속으로 2번 치면 list가 뜬다
정석은 rostopic list를 이용해 확인
ROS Messages:
Topic을 가운데 두고 두 Nodes가 하는 통신은 ROS messages를 전송하며 진행된다. 두 Node는 반드시 같은 type의 message를 전송하고 수령해야된다.
=> Topic의 type은 여기로 발행된 message type에 의해 결정된다.
Type 확인 방법:
rostopic type [topic]
rostopic type /turtle1/cmd_vel
>> geometry_msgs/Twist
이젠 rosmsg로 message의 세부사항을 확인할 수 있다.
rosmsg show geometry_msgs/Twist
>>
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z
rostopic pub
현재 생성되어 있는 topic에 data를 발행한다.
rostopic pub [topic] [msg_type] [args]
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
같은 데이터를 지속적으로 발생시키고 싶을 경우:
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
'ROS' 카테고리의 다른 글
ROS_Study: Creatomg a ROS msg and srv(Only msg) (0) | 2023.11.22 |
---|---|
ROS_Study: Understanding ROS Services and Parameters (0) | 2023.11.22 |
ROS_Study: Understanding ROS Nodes (1) | 2023.11.08 |
ROS_STudy: Building Packages (2) | 2023.11.08 |
ROS_Study: CreatingPackage (0) | 2023.09.11 |