1. ROS Service

ROS Service는 노드들이 서로 통신할 수 있게하는 방식을 말한다. Service는 노드들이 request를 보내고 reponse를 받게해준다.

rosservice list print information about active services rosservice call call the service with the provided args rosservice type print service type rosservice find find services by service type rosservice uri print service ROSRPC uri

1) rosservice list : 현재 실행중인 노드의 활성화된 Service정보를 보여준다.

$ rosservice list

2) rosservice type [service]

$ rosservice clear

3) rosservice call [service] [args]

$ rosservice call clear

$ rosservice type spawn| rossrv show

$ rosservice call spawn 2 2 0.2 ""


2. ROS parameter

ROS parameter는 user가 ROS parameter server의 data를 저장하거나 조종할 수 있게 해준다. Parameter server는 integers, floats, booleans, dictionaries, lists등을 저장할 수 있다.ROS parameter는 YAML syntax에 대한 markup language를 사용한다. 예를들자면 1은 integers, 1.0은 floats, one은 string, true는 booleans, {1,2,3}은 integer list, {a:b,c:d}는 dictionary이다.

rosparam set set parameter rosparam get get parameter rosparam load load parameters from file rosparam dump dump parameters to file rosparam delete delete parameter rosparam list list parameter names

1) rosparam list : 실행중인 노드의 parameter list출력
$ rosparam list

2) rosparam set [param_name] & rosparam get [param_name]

$ rosparam set background_r 150

$ rosservice call clear

set후 clear해줘야 반영된다.

$ rosparam get background_g

background_g 파라미터 값을 보여준다.

$ rosparam get /

모든 파라미터 정보를 보여준다.

3) rosparam dump [file_name] & rosparam load [file_name] [namespace]

$ rosparam dump params.yaml
params.yaml에 모든 파라미터 정보를 쓴다.

$ rosparam load params.yaml copy
$ rosparam get copy/background_b
copy라는 namespace에 모든 파라미터 정보를 불러온다.


'ROS electric' 카테고리의 다른 글

ROS editor (rosed)  (0) 2014.01.08
roslaunch 사용하기  (0) 2014.01.08
ROS topic의 이해  (0) 2014.01.08
ROS node의 이해  (0) 2014.01.08
ROS package 빌드  (0) 2014.01.07
Posted by 신영식
,

ROS topic의 이해

ROS electric 2014. 1. 8. 14:45

예제

$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key

1. rostopic

$ rostopic -h
다음과 같은 도움말이 출력

rostopic bw display bandwidth used by topic rostopic echo print messages to screen rostopic hz display publishing rate of topic rostopic list print information about active topics rostopic pub publish data to topic rostopic type print topic type

1) rostopic echo [topic]

$ rostopic echo /turtle1/command_velocity

2) rostopic list [-option]

$ rostopic list -v

3) rostopic type [topic]

$ rostopic type /turtle1/command_velocity

$ rosmsg show turtlesim/Velocity

4) rostopic pub [topic] [msg_type] [args]

사용자가 임의로 데이타를 발행

$ rostopic pub -1 /turtle1/command_velocity turtlesim/Velocity -- 2.0 1.8
$ rostopic pub /turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0 -1.8(1Hz 단위로 데이타발행 유지)

5) rostopic hz [topic]

데이타 발행 주기 확인

$ rostopic hz /turtle1/pose



'ROS electric' 카테고리의 다른 글

roslaunch 사용하기  (0) 2014.01.08
ROS Service와 Parameter의 이해  (0) 2014.01.08
ROS node의 이해  (0) 2014.01.08
ROS package 빌드  (0) 2014.01.07
ROS package 생성  (0) 2014.01.07
Posted by 신영식
,

ROS node의 이해

ROS electric 2014. 1. 8. 13:53

Node : 하나의 실행가능한 프로그램을 의미하며 다른 노드들과 통신하는데 이용된다.

Message : 토픽에 송수신하는 ROS data type

Topic : 노드들은 토픽을 통하여 데이타를 송수신한다.

Master : ROS의 name service로 노드들이 서로 find할 수 있도록 돕는다.

rosout : ROS에서 stdout/stderr과 같은 역할을 해주는것

roscore : Master + rosout + parameter server

1. 노드

노드는 ROS package의 실행파일로서 ROS client library 를 사용하여 다른 노드들과 통신한다. 또한 토픽에게 msg를 이용하여 데이터를 송수신할 수 있다. 또한 노드는 srv를 이용하여 데이타를 제공하거나 사용이 가능하다.

2. client library

ROS는 client library를 사용하여 서로 다른 프로그래밍 언어로 작성한 노드 들이 통신이 가능하도록 해준다.

roscpp, rospy등이 있다.

3. roscore

ROS를 사용하기위해 맨처음 실행해줘야한다.

4. rosnode

사용중인 ROS node의 정보를 출력해준다.

$ rosnode list

roscore 만 실행중이라면 /rosout 만 출력됨.

특정 노드의 세부정보 출력방법

$ rosnode info /rosout

5. rosrun [package_name] [node_name]

해당 package의 node를 실행한다.

$ rosrun turtlesim turtlesim_node

$ rosrun turtlesim turtlesim_node __name:=my_turtle



'ROS electric' 카테고리의 다른 글

ROS Service와 Parameter의 이해  (0) 2014.01.08
ROS topic의 이해  (0) 2014.01.08
ROS package 빌드  (0) 2014.01.07
ROS package 생성  (0) 2014.01.07
ROS Filesystem  (0) 2014.01.07
Posted by 신영식
,