У меня возникла проблема с выяснением того, как написать узел издателя (ROS Python), который будет отправлять подписчику фактическое время (IE: 12:46), которое мне нужно сделать для домашней работы. Мне нужно опубликовать фактическое время, чтобы подписчик мог использовать это время и разницу во времени, запрошенную через службу, для расчета времени где-то еще в мире. (То есть: Node1 публикует время в Нью-Йорке, Node2 подписывается и запрашивает разницу во времени между текущим местоположением - Нью-Йорк - и Лондон. Node1 отправляет информацию о разнице во времени в Node2. Node2 берет текущую разницу времени и времени и добавляет их, чтобы найтиТекущее время в Лондоне)
Я погуглил проблему и не могу найти какую-либо полезную информацию. Я нашел несколько запутанных источников, которые говорят, как получить смоделированное время в секундах и (возможно) время часов в секундах, но я не совсем понял, что они говорили достаточно, чтобы использовать информацию.
кодчто у меня есть: Извините, IDK, как правильно отформатировать это на этом сайте
#!/usr/bin/env python
from beginner_tutorials.srv import TimeDiff, TimeDifResponse
from std_msgs.msg import Time
import rospy
pub = rospy.Publisher('currentTime', Time, queue_size=10)
CurrentTime= localtime()
def setupPublisher():
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(5) # 5hz
while not rospy.is_shutdown():
global CurrentTime
CurrentTime= localtime()
pub.publish(CurrentTime)
rate.sleep()
if __ name __ == "__ main __":
setupPublisher()
У меня нет никакого кода для обмена, потому что я не знаю, как включить время. Это то, что я имею до сих пор, но я не думаю, что это правильно
Это должно опубликовать время для подписчика, но я понятия не имею, что он делает, или какие переменные я должен использовать, иличто-нибудь по этому вопросу. Мы вообще не узнали об этом в классе.