dynamics3d_relay_node.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 import rospy
4 from sensor_msgs.msg import NavSatFix, Joy
5 from geometry_msgs.msg import QuaternionStamped
6 import time
7 
8 # Define publish rate limit (Hz)
9 PUBLISH_RATE_HZ = 10
10 PUBLISH_PERIOD_SEC = 1.0 / PUBLISH_RATE_HZ
11 
13  def __init__(self):
14  rospy.init_node('dynamics_to_3d_relay', anonymous=True)
15 
16  # ROS topic subscribers
17  rospy.Subscriber('/uav/gps_point', NavSatFix, self.callback_gps_point)
18  rospy.Subscriber('/uav/attitude', QuaternionStamped, self.callback_attitude)
19  rospy.Subscriber('/uav/actuators', Joy, self.callback_actuators)
20 
21  # ROS topic publishers
22  self.publisher_gps_position = rospy.Publisher('/sim/gps_position', NavSatFix, queue_size=10)
23  self.publisher_attitude = rospy.Publisher('/sim/attitude', QuaternionStamped, queue_size=10)
24  self.publisher_actuators = rospy.Publisher('/sim/actuators', Joy, queue_size=10)
25 
26  # Time variables for controlling publish rate
27  self.last_publish_time_gps = time.time()
28  self.last_publish_time_attitude = time.time()
29  self.last_publish_time_actuators = time.time()
30 
31  def callback_gps_point(self, data):
32  if time.time() - self.last_publish_time_gps >= PUBLISH_PERIOD_SEC:
33  self.publisher_gps_position.publish(data)
34  self.last_publish_time_gps = time.time()
35 
36  def callback_attitude(self, data):
37  if time.time() - self.last_publish_time_attitude >= PUBLISH_PERIOD_SEC:
38  self.publisher_attitude.publish(data)
39  self.last_publish_time_attitude = time.time()
40 
41  def callback_actuators(self, data):
42  if time.time() - self.last_publish_time_actuators >= PUBLISH_PERIOD_SEC:
43  self.publisher_actuators.publish(data)
44  self.last_publish_time_actuators = time.time()
45 
46 def main():
47  try:
48  relay = DynamicsTo3DRelay()
49  rospy.spin()
50  except rospy.ROSInterruptException:
51  pass
52 
53 if __name__ == '__main__':
54  main()
dynamics3d_relay_node.DynamicsTo3DRelay.last_publish_time_gps
last_publish_time_gps
Definition: dynamics3d_relay_node.py:27
dynamics3d_relay_node.DynamicsTo3DRelay.__init__
def __init__(self)
Definition: dynamics3d_relay_node.py:13
dynamics3d_relay_node.DynamicsTo3DRelay.publisher_attitude
publisher_attitude
Definition: dynamics3d_relay_node.py:23
dynamics3d_relay_node.main
def main()
Definition: dynamics3d_relay_node.py:46
dynamics3d_relay_node.DynamicsTo3DRelay.callback_gps_point
def callback_gps_point(self, data)
Definition: dynamics3d_relay_node.py:31
dynamics3d_relay_node.DynamicsTo3DRelay.publisher_actuators
publisher_actuators
Definition: dynamics3d_relay_node.py:24
dynamics3d_relay_node.DynamicsTo3DRelay.publisher_gps_position
publisher_gps_position
Definition: dynamics3d_relay_node.py:22
dynamics3d_relay_node.DynamicsTo3DRelay.last_publish_time_actuators
last_publish_time_actuators
Definition: dynamics3d_relay_node.py:29
dynamics3d_relay_node.DynamicsTo3DRelay
Definition: dynamics3d_relay_node.py:12
dynamics3d_relay_node.DynamicsTo3DRelay.last_publish_time_attitude
last_publish_time_attitude
Definition: dynamics3d_relay_node.py:28
dynamics3d_relay_node.DynamicsTo3DRelay.callback_actuators
def callback_actuators(self, data)
Definition: dynamics3d_relay_node.py:41
dynamics3d_relay_node.DynamicsTo3DRelay.callback_attitude
def callback_attitude(self, data)
Definition: dynamics3d_relay_node.py:36


inno_sim_interface
Author(s):
autogenerated on Wed Jan 3 2024 03:28:25