$ cd xycar_ws/src/my_pkg1
$ mkdir launch
$ cd launch/
$ gedit pub-sub.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
$ rqt_graph
$ cp pub-sub.launch pub-sub-param.launch
$ gedit pub-sub-param.launch
<launch>
<node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"/>
<node pkg="my_pkg1" type="pub_param.py" name="node_param">
<param name="circle_size" value="2"/>
</node>
<node pkg="my_pkg1" type="sub.py" name="sub_node" output="screen"/>
</launch>
$ cd ..
$ cd src/
$ cp pub.py pub_param.py
$ gedit pub_param.py
#!/usr/bin/env python
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()
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()
$ roslaunch my_pkg1 pub-sub-param.launch
$ rqt_graph