Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import rospy
- from geometry_msgs.msg import Twist
- from math import pi
- from turtlesim.msg import Pose
- import time
- class TurtleBot():
- def __init__(self):
- rospy.init_node('Electronauts', anonymous=True)
- self.publisher = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)
- self.subscriber = rospy.Subscriber('/turtle1/pose', Pose, self.updates)
- self.pose = Pose()
- self.rate = rospy.Rate(10)
- def updates(self, list):
- self.pose = list
- def move(self,turns):
- vel = Twist()
- vel.linear.x = 1
- self.publisher.publish(vel)
- rospy.sleep(1)
- for turn in turns:
- if turn == 'ALIGN':
- vel = Twist()
- vel.angular.z = pi / 2
- self.publisher.publish(vel)
- time.sleep(1)
- vel = Twist()
- vel.linear.x = 0
- self.publisher.publish(vel)
- time.sleep(1)
- if turn == 'RIGHT TURN':
- vel = Twist()
- vel.angular.z = -pi / 2
- self.publisher.publish(vel)
- time.sleep(1)
- vel = Twist()
- vel.linear.x = 1
- self.publisher.publish(vel)
- time.sleep(1)
- if turn == 'LEFT TURN':
- vel = Twist()
- vel.angular.z = pi / 2
- self.publisher.publish(vel)
- time.sleep(1)
- vel = Twist()
- vel.linear.x = 1
- self.publisher.publish(vel)
- time.sleep(1)
- if turn == 'STRAIGHT':
- vel = Twist()
- vel.angular.z = 0
- self.publisher.publish(vel)
- time.sleep(1)
- vel = Twist()
- vel.linear.x = 1
- self.publisher.publish(vel)
- time.sleep(1)
- def main():
- filename = input("Name of the file : ")
- turns = []
- with open(filename, "r") as file:
- for line in file:
- row = line.strip().split("\t")
- turns.append(row[0])
- turns.insert(0, 'ALIGN')
- print(turns)
- bot = TurtleBot()
- bot.move(turns)
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement