Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import rospy
  4. from std_msgs.msg import String
  5. from sensor_msgs.msg import LaserScan
  6. from geometry_msgs.msg import Twist
  7.  
  8. # class ForceMapper():
  9. # def __init__(self):
  10. # self.r = rospy.Rate(250) # 250hz
  11. # self.thresh = 1
  12. # self.obstacle = "cryyyyyinging"
  13. # self.nearWall = 0
  14. # self.sub = rospy.Subscriber('/scan', LaserScan, self.callBack)
  15. # self.pub_obs = rospy.Publisher('obstacle', String, queue_size=10)
  16. # self.start()
  17.  
  18. # def start(self):
  19. # while not rospy.is_shutdown():
  20. # self.pub_obs.publish(self.obstacle)
  21. # self.r.sleep()
  22.  
  23. # def callBack(self, msg):
  24. # size = len(msg.ranges)
  25. # right = msg.ranges[0]
  26. # front = msg.ranges[size/2]
  27. # #frontLeft = msg.ranges[size*3/4]
  28. # #frontRight = msg.ranges[size/4]
  29. # left = msg.ranges[size-1]
  30. # print("right: ", right, size)
  31.  
  32. def callBack(msg):
  33. pos = Twist()
  34. pub = rospy.Publisher('cmd_vel_mux/input/navi', Twist, queue_size=10)
  35.  
  36. size = len(msg.ranges)
  37. front = msg.ranges[size/2]
  38. right = msg.ranges[size/2 - 90]
  39. left = msg.ranges[size/2 + 90]
  40. print("right: ", right, size)
  41. if front < 1:
  42. pos.linear.x = -0.1
  43. pos.angular.z = -0.4
  44. pub.publish(pos)
  45.  
  46. elif right < 1:
  47. pos.linear.x = 0.3
  48. pos.angular.z = 0.4
  49. pub.publish(pos)
  50.  
  51. elif left < 1:
  52. pos.linear.x = 0.3
  53. pos.angular.z = -0.4
  54. pub.publish(pos)
  55.  
  56. else:
  57. pos.linear.x = 0.3
  58. pos.angular.z = 0
  59. pub.publish(pos)
  60.  
  61.  
  62. def main():
  63. rospy.init_node('ForceMapper')
  64. rospy.Subscriber("/scan", LaserScan, callBack)
  65. # Spin until ctrl + c
  66. rospy.spin()
  67.  
  68. if __name__ == '__main__':
  69. main()
  70.  
  71.  
  72. #if object close to front (always pass string)
  73. #array of three F,L,R
  74. #If no longer object to right(entrance) turn right to follow wall
  75. #three parrallel while loops
  76. #all in feelforce
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement