我有多种功能。一个函数(估计)调用另一个函数的变量(回调)以执行计算。然而,有几个问题。
我想要的是把估计结果打印出来,但是什么都没有打印出来。
如果有人能告诉我我做错了什么,我会很感激的。
例:
#!/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()
发布于 2020-06-25 13:21:45
您没有调用对象上的估计函数。你会做这样的事
s_e = S_E()
s_e.estimation()
https://stackoverflow.com/questions/62584450
复制相似问题