【发布时间】:2020-06-25 21:14:56
【问题描述】:
我有多种功能。一个函数(估计)调用另一个函数(回调)的变量以执行计算。但是,有几个问题。
- 似乎变量没有通过,而且...
- 似乎永远不会调用函数(估计)来运行,我不知道为什么。
我想要的是打印出估算结果,但什么都没有打印出来。
如果有人能让我知道我做错了什么,我将不胜感激。
前:
#!/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()
【问题讨论】:
-
您将需要详细说明究竟出了什么问题。
-
请注意,在
estimation中,您调用callback(),但这并没有在该范围内定义......完全不清楚您希望这样做。 -
好的,谢谢,我会更新它。但要在这里回答你的问题,什么都没有打印。我想估计打印,但我什么也没得到。
-
好吧,你还没有提供minimal reproducible example。您正在使用某个库,但至少 oyu 需要描述您希望该库做什么,为什么您期望
.estimation被调用?