diff --git a/lesson_04/star_p.py b/lesson_04/star_p.py new file mode 100644 index 0000000000000000000000000000000000000000..e096e4ee4750b7189a421979c514890e21dfab91 --- /dev/null +++ b/lesson_04/star_p.py @@ -0,0 +1,41 @@ +import rclpy +from rclpy.node import Node +from rclpy.duration import Duration + +from geometry_msgs.msg import Twist +import math + +class RurMover(Node): + def __init__(self): + super().__init__('rur_mover') + self.publisher_twist = self.create_publisher(Twist, 'turtle1/cmd_vel', 10) + self.main() + + def publish_twist(self, linear, angular): + msg = Twist() + msg.linear.x = float(linear) + msg.angular.z = math.radians(float(angular)) + self.publisher_twist.publish(msg) + self.get_clock().sleep_for(Duration(seconds=1.0)) + + def main(self): + # Рисование человечка + self.publish_twist(2, 90.0) # Двигаться вперед + self.publish_twist(0, 180) # Поворот влево + self.publish_twist(2, 90) # Двигаться вперед + self.publish_twist(0, -180) # Поворот вправо + self.publish_twist(2, 90.0) # Двигаться вперед + self.publish_twist(0, -180) # Поворот вправо + self.publish_twist(2, 90.0) # Вращение + +def main(args=None): + rclpy.init(args=args) + mover = RurMover() + + rclpy.spin(mover) + + mover.destroy_node() + rclpy.shutdown() + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/setup.py b/setup.py index aa0b240a6c3f34d13a565dd0f713de9cc6690415..83653719fb84f938edb0055b11f7e880f4af37fe 100644 --- a/setup.py +++ b/setup.py @@ -26,6 +26,7 @@ setup( 'step_3 = lesson_04.step_3:main', 'square = lesson_04.square:main', 'mover = lesson_04.mover:main', + 'star_p = lesson_04.star_p:main', ], }, )