Advertisement
techpaste222

nishat__task3

Jul 2nd, 2023 (edited)
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.31 KB | None | 0 0
  1. #!/usr/bin/env python
  2. import rospy
  3. from geometry_msgs.msg import Twist
  4. from math import pi
  5. from turtlesim.msg import Pose
  6. import time
  7.  
  8.  
  9. class TurtleBot():
  10.     def __init__(self):
  11.         rospy.init_node('Electronauts', anonymous=True)
  12.         self.publisher = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)
  13.         self.subscriber = rospy.Subscriber('/turtle1/pose', Pose, self.updates)
  14.         self.pose = Pose()
  15.         self.rate = rospy.Rate(10)
  16.  
  17.     def updates(self, list):
  18.         self.pose = list
  19.    
  20.     def move(self,turns):
  21.         vel = Twist()
  22.         vel.linear.x = 1
  23.         self.publisher.publish(vel)
  24.         rospy.sleep(1)
  25.  
  26.         for turn in turns:
  27.             if turn == 'ALIGN':
  28.                 vel = Twist()
  29.                 vel.angular.z = pi / 2
  30.                 self.publisher.publish(vel)
  31.                 time.sleep(1)
  32.  
  33.                 vel = Twist()
  34.                 vel.linear.x = 1
  35.                 self.publisher.publish(vel)
  36.                 time.sleep(1)
  37.             if turn == 'RIGHT TURN':
  38.                 vel = Twist()
  39.                 vel.angular.z = -pi / 2
  40.                 self.publisher.publish(vel)
  41.                 time.sleep(1)
  42.  
  43.                 vel = Twist()
  44.                 vel.linear.x = 1
  45.                 self.publisher.publish(vel)
  46.                 time.sleep(1)
  47.             if turn == 'LEFT TURN':
  48.                 vel = Twist()
  49.                 vel.angular.z = pi / 2
  50.                 self.publisher.publish(vel)
  51.                 time.sleep(1)
  52.  
  53.                 vel = Twist()
  54.                 vel.linear.x = 1
  55.                 self.publisher.publish(vel)
  56.                 time.sleep(1)
  57.             if turn == 'STRAIGHT':
  58.                 vel = Twist()
  59.                 vel.angular.z = 0
  60.                 self.publisher.publish(vel)
  61.                 time.sleep(1)
  62.  
  63.                 vel = Twist()
  64.                 vel.linear.x = 1
  65.                 self.publisher.publish(vel)
  66.                 time.sleep(1)
  67.  
  68. def main():
  69.     filename = input("Name of the file : ")
  70.     turns = []
  71.     with open(filename, "r") as file:
  72.         for line in file:
  73.             row = line.strip().split("\t")
  74.             turns.append(row[0])
  75.     turns.insert(0, 'ALIGN')
  76.     print(turns)
  77.     bot = TurtleBot()
  78.     bot.move(turns)
  79.  
  80. if __name__ == "__main__":
  81.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement