From 8f158b52489ea7ae8d9a2a46e7ecf202951d97f1 Mon Sep 17 00:00:00 2001 From: eharlan <eharlan@uni-bremen.de> Date: Wed, 17 May 2023 10:34:40 +0200 Subject: [PATCH] a --- robomaster_pi/Odom.py | 34 ++++++++++++++++++++++++++++++++++ setup.py | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 robomaster_pi/Odom.py diff --git a/robomaster_pi/Odom.py b/robomaster_pi/Odom.py new file mode 100644 index 0000000..290dc49 --- /dev/null +++ b/robomaster_pi/Odom.py @@ -0,0 +1,34 @@ +import rclpy +from rclpy.node import Node +from nav_msgs.msg import Odometry +import robomaster +from robomaster import robot + +class OdometryPublisher(Node): + def __init__(self): + super().__init__('odometry_publisher') + self.publisher_ = self.create_publisher(Odometry, 'encoder_odometry', 10) + self.msg = Odometry() + ep_robot = robot.Robot() + ep_robot.initialize(conn_type="rndis") + + ep_chassis = ep_robot.chassis + ep_chassis.sub_velocity(freq=50, callback=self.sub_sub_velocity_handler) + + def sub_velocity_handler(self, velocity_info): + a, b, c, x, y, z = velocity_info + self.msg.header.stamp = self.get_clock().now().to_msg() + self.msg.twist.twist.linear.x = x + self.msg.twist.twist.linear.y = y + + self.publisher_.publish(self.msg) + +def main(args=None): + rclpy.init(args=args) + node = OdometryPublisher() + rclpy.spin(node) + node.destroy_node() + rclpy.shutdown() + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/setup.py b/setup.py index b7fbce0..57605e3 100644 --- a/setup.py +++ b/setup.py @@ -20,6 +20,8 @@ setup( tests_require=['pytest'], entry_points={ 'console_scripts': [ + "IMU = robomaster_pi.IMU:main", + "Odom = robomaster_pi.Odom:main", "conn_odom = robomaster_pi.conn_odom:main", "conn_vel = robomaster_pi.conn_vel:main", ], -- GitLab