From 895ab039a2a0cdaf6246c59b002a8932d44843cd Mon Sep 17 00:00:00 2001 From: eharlan <eharlan@uni-bremen.de> Date: Fri, 12 May 2023 09:39:28 +0200 Subject: [PATCH] a --- robomaster_pi/conn_odom.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/robomaster_pi/conn_odom.py b/robomaster_pi/conn_odom.py index 8e3e67a..559b2d6 100644 --- a/robomaster_pi/conn_odom.py +++ b/robomaster_pi/conn_odom.py @@ -23,7 +23,8 @@ class OdometryPublisher(Node): ep_chassis = ep_robot.chassis ep_chassis.sub_position(freq=50, callback=self.sub_position_handler) - ep_chassis.sub_imu(freq=50, callback=self.sub_imu_info_handler) + ep_chassis.sub_attitude(freq=50, callback=sub_attitude_info_handler) + #ep_chassis.sub_imu(freq=50, callback=self.sub_imu_info_handler) def sub_imu_info_handler(self, imu_info): @@ -36,6 +37,9 @@ class OdometryPublisher(Node): if(self.zWinkel + (gyro_z /50)* (180 / math.pi) <= -165): self.zWinkel = self.zWinkel + (gyro_z /50)* (180 / math.pi) + 360 + def sub_attitude_info_handler(self, attitude_info): + self.yaw, pitch, roll = attitude_info + print("chassis attitude: yaw:{0}, pitch:{1}, roll:{2} ".format(self.yaw, pitch, roll)) @@ -44,14 +48,14 @@ class OdometryPublisher(Node): def sub_position_handler(self, position_info): self.x, self.y, self.z = position_info - print("chassis position: x:{0}, y:{1}, z:{2}".format(self.x, self.y, self.zWinkel)) + print("chassis position: x:{0}, y:{1}, z:{2}".format(self.x, self.y, self.yaw)) self.publish_odometry() self.publish_transform() def publish_odometry(self): - q = self.quaternion_from_euler(0, 0, -self.zWinkel / (180 / math.pi)) + q = self.quaternion_from_euler(0, 0, -self.yaw / (180 / math.pi)) msg = Odometry() msg.header.stamp = self.get_clock().now().to_msg() msg.pose.pose.position.x = self.x @@ -69,7 +73,7 @@ class OdometryPublisher(Node): self.transform_stamped_.transform.translation.x = self.x self.transform_stamped_.transform.translation.y = -self.y self.transform_stamped_.transform.translation.z = 0.0 - q = self.quaternion_from_euler(0.0, 0.0, -self.zWinkel / (180 / math.pi)) + q = self.quaternion_from_euler(0.0, 0.0, -self.yaw / (180 / math.pi)) self.transform_stamped_.transform.rotation.x = q[0] self.transform_stamped_.transform.rotation.y = q[1] -- GitLab