Я хочу создать два узла, которые обмениваются данными друг с другом. Я хочу, чтобы node1 получал информацию от узла2 и выполнял некоторые операции (например, сумму информации в узлах 1 и 2) и наоборот. Как я могу это реализовать? Это код Node1 до сих пор:Связь между узлами ROS (Python)
#!/usr/bin/env python
import rospy
from std_msgs.msg import String
def callback(msg):
print '%s' % msg.data
def nodo():
pub = rospy.Publisher('chatter1', String, queue_size=10)
rospy.init_node('nodo1', anonymous=True)
rospy.Subscriber('chatter2', String, callback)
rate = rospy.Rate(1) # 10hz
x = 5
while not rospy.is_shutdown():
for i in range(0,51):
pos1 = "%s" % (x)
pub.publish(pos1)
rate.sleep()
rospy.spin()
if __name__ == '__main__':
try:
nodo()
except rospy.ROSInterruptException:
pass
Это код Node2:
#!/usr/bin/env python
import rospy
from std_msgs.msg import String
def callback(msg):
print '%s' % msg.data
def nodo():
pub = rospy.Publisher('chatter2', String, queue_size=10)
rospy.init_node('nodo2', anonymous=True)
rospy.Subscriber('chatter1', String, callback)
rate = rospy.Rate(1) # 10hz
x2 = 4
while not rospy.is_shutdown():
for i in range(0,51):
pos2 = "%s" % (x2)
pub.publish(pos2)
rate.sleep()
rospy.spin()
if __name__ == '__main__':
try:
nodo()
except rospy.ROSInterruptException:
pass
ROS имеет назначенный [QA форум] (http://answers.ros.org/), где вы можете получить довольно хороший отклик. Почему бы вам не открыть там вопрос и вставить ссылку сюда? – IsaacS