*.launch
name="노드 명"
은 소스파일 안에서 지정한 name보다 우선시 됨<launch>
<include file="같이 실행할 *launch의 경로"/>
...
<node pkg="패키지명" type="노드가 포함된 소스파일 명" name="노드 명"/>
...
</launch>
$ roslaunch package_name launch_file
jsg@jsg-ubuntu:~$ roscd my_pkg1 jsg@jsg-ubuntu:~/xycar_ws/src/my_pkg1$ mkdir launch jsg@jsg-ubuntu:~/xycar_ws/src/my_pkg1$ cd launch
<launch>
<node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"/>
<node pkg="my_pkg1" type="pub.py" name="pub_node"/>
<node pkg="my_pkg1" type="sub.py" name="sub_node" output="screen"/>
</launch>
$ roslaunch my_pkg1 pub-sub.launch
실행<launch>
<node pkg="패키지명" type="노드가 포함된 소스파일 명" name="노드 명">
<param name="변수 명" type="변수 타입" value="변수 값"/>
<param name="변수 명" type="변수 타입" value="변수 값"/>
...
</node>
</launch>
rospy.get_param('~name')
으로 불러올 수 있음<launch>
<node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"/>
<node pkg="my_pkg1" type="pub_param.py" name="pub_node_param">
<param name="circle_size" value="2"/>
</node>
<node pkg="my_pkg1" type="sub.py" name="sub_node" output="screen"/>
</launch>
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import rospy
from geometry_msgs.msg import Twist
rospy.init_node('my_node', anonymous=True)
pub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)
msg = Twist()
# 파라미터를 launch에서 불러옴
linear_x = rospy.get_param('~circle_size')
msg.linear.x = linear_x
msg.linear.y = 0.0
msg.linear.z = 0.0
msg.angular.x = 0.0
msg.angular.y = 0.0
msg.angular.z = 1.8
rate = rospy.Rate(1)
while not rospy.is_shutdown():
pub.publish(msg)
rate.sleep()
value="2" | value="4" |
---|---|