Prof, I’m trying quiz but I want to know this…
How’s the sequence of execution? Does it execute step by step from top to bottom? or are there any jumps in between from one part of code to the other.
Below is the code. Will it all execute line by line, or are there some jumps? If there are a few breaks, please tell me where?
#! /usr/bin/env python
import rospy
from geometry_msgs.msg import Twist
from sensor_msgs.msg import LaserScan
def callback(msg):
decide_direction(msg.ranges)
rospy.init_node('topics_quiz_node', anonymous = True)
pub = rospy.Publisher('/cmd_vel', Twist, queue_size=1)
sub = rospy.Subscriber('/kobuki/laser/scan', LaserScan, callback)
rate = rospy.Rate(2)
move = Twist()
def decide_direction(ranges):
straight = ranges[360]
left = ranges[719]
right = ranges[0]
def turn_left():
if (straight < 1) or (right < 1):
move.linear.x = 0
move.angular.z = 0.2
pub.publish(move)
def turn_right():
if left < 1:
move.linear.x = 0
move.angular.z = -0.2
pub.publish(move)
def straight_motion():
if straight > 1:
move.linear.x = 0.6
move.angular.z = 0
pub.publish(move)
rospy.spin()