how to run both talker and listener codes at the same moment by one Enter or click.
I am using the codes of talker and listener on two computers and running them separately. they are working fine but I'd like to run both by one enter instead of two. I used these codes here
I don't know if I need to add IP address. if yes, please help.
computer 1:
#!/usr/bin/env python
# license removed for brevity
import rospy
from std_msgs.msg import String
def talker():
pub = rospy.Publisher('chatter', String, queue_size=10)
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(10) # 10hz
while not rospy.is_shutdown():
hello_str = "hello world %s" % rospy.get_time()
rospy.loginfo(hello_str)
pub.publish(hello_str)
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
computer 2:
#!/usr/bin/env python
import rospy
from std_msgs.msg import String
def callback(data):
rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data)
def listener():
# In ROS, nodes are uniquely named. If two nodes with the same
# name are launched, the previous one is kicked off. The
# anonymous=True flag means that rospy will choose a unique
# name for our 'listener' node so that multiple listeners can
# run simultaneously.
rospy.init_node('listener', anonymous=True)
rospy.Subscriber("chatter", String, callback)
# spin() simply keeps python from exiting until this node is stopped
rospy.spin()
if __name__ == '__main__':
listener()
You probably want to use launch file.
@ahendrix how? could you give me some hints, please?
Sorry; I haven't been able to find a simple tutorial for roslaunch and I don't really have time to write one.
@ahendrix thanks for your help and reply.
I am guessing you already have your network configured for communication between your pcs. One way to solve your problem is to use machine tag.
Do you want to start two processes on two different computers with one command? Did you take a look at: https://answers.ros.org/question/2014... ?