如何让函数访问另一个函数中的变量

2024-09-27 07:29:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多种功能。一个函数(估计)调用另一个函数(回调)的变量以执行计算。然而,有几个问题

  1. 看起来变量没有被传递,而且
  2. 似乎函数(估计)从未被调用运行,我不知道为什么

我想要的是打印出估算结果,但没有打印任何内容

如果有人能让我知道我做错了什么,我将不胜感激

例:

#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
import math
from geometry_msgs.msg import Quaternion
from sensor_msgs.msg import Imu
import numpy as np
from rclpy.qos import qos_profile_sensor_data

class S_E(Node):
   def __init__(self):
       super().__init__('s_e')
        self.sub = self.create_subscription(Imu, '/imu', self.callback, qos_profile=qos_profile_sensor_data)

   def callback(self, msg):

       quat        = self.quat     = msg.orientation       # x,y,z
       a_rate      = self.a_rate   = msg.angular_velocity  # x,y,z
       
       return quat, a_rate


   def estimation(self):
       print("Hello")

       quat, a_rate  = callback()
       estimate      =  (0.5 * a_rate)  * quat
       print(estimate)




def main(args=None):
   rclpy.init(args=args)  # initialize ROS2 Library
   s_e = S_E()  # make an object of class 
   try:
       while (1):
           rclpy.spin(s_e)
   except Exception as e:
       print("Exception: {}".format(e))
   

   rclpy.spin(s_e)
   
   rclpy.shutdown()


if __name__ == '__main__':
   main()


Tags: 函数fromimportselfrateinitdefcallback

热门问题