ROS는 data를 처리하는 peer-to-peer(P2P) network에서 처리된다.
가장 중요한 용어 Node, Master, Mesage, Topic, Bag
1) Node
Node들은 computation을 수행하는 과정들이다. robotic system은 보통 많은 node들로 구성된다. 한 node는 laser 거리탐지기, 한 node는 wheel motor를 control하거나, 다른 노드는 localization과 같은 것들을 수행한다.
2) Master
Master는 모든 node의 1) name 등록(registeration)과 2) 찾기(lookup information) DNS server처럼 ( 해당 웹사이트 주소를 ip주소로 대응시켜주는 역할 ) 두가지를 수행한다.
3) Message
Node들은 서로 message들을 passing함으로써 서로를 communicate한다. 이 message는 간단히 data structure, typed field로 구성되어 있다.
4) Topic
topic은 message의 내용(content)를 식별할 때 사용하는 name이다.
5) Bags
Bags는 ROS message data를 저장하고 다시 실행(play)시킬 때 사용되는 format이다.
Bags는 모으기 힘든 sensor data를 저장하는데 중요한 메커니즘다. developing과 알고리즘 testing할 때 필요한 file들.
struct hello{
int a;
float b;
int c;
}
여기를 참고하자 http://wiki.ros.org/Installation/Ubuntu
여기를 참고 http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics
/*help를 요청하는 명령어*/
$ rostopic -h
/*현재 활성중인 topic list를 보여주는 명령어*/
$ rostopic list
/*특정한 topic의 message 내용을 출력하는*/
$ rostopic echo /image_data_Message
/*topic의 data를 넣어 publish*/
$ rostopic pub [topic_name] [message_type] [data]
/*특정한 topic의 type message를 출력하는*/
$ rostopic type
/*topic의 publihing 속도를 보여주는 명령어*/
$ rostopic hz
/*subscriber와 publisher와 topic관계도를 보여주는 명령어*/
$ rosrun rqt_graph rqt_graph
/*ROS Master node를 실행시키는 명령어*/
$ roscore
/*ROS package node를 실행하는*/
$ rosrun [package_name] [node_name]
$ rosrun car camera_node
/*help을 요청하는 명령어*/
$ rosbag -h
/*특정 topic들을 record하기 위한 명령어*/
rosbag record [topic_name1] [topic_name2] [topic_name3]
$ rosbag record /image/raw /scan /imu /odom
/*하나 그 이상의 bag file들의 content들을 요약하는 명령어*/
$ rosbag info test_210312.bag
/*하나 그 이상의 bag file들을 시간에 맞춰 다시 재생하는 명령어*/
$ rosbag play test_210312.bag