Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. """"Robot finds the object and drives near it."""
  2. from PiBot import PiBot
  3. import rospy
  4. robot = PiBot()
  5. robot.set_grabber_height(100)
  6. m = robot.get_front_middle_ir()
  7.  
  8. def find_object(r, l):
  9. """Arka."""
  10. m = robot.get_front_middle_ir()
  11. if r == l:
  12. if robot.is_simulation():
  13. # Running in simulationыыыыыы
  14. ran = test(15, 15)
  15. else:
  16. # Running in real life
  17. ran = test(11, 11)
  18. else:
  19. ran = (r, l)
  20. a = []
  21. while m > 0.5:
  22. r = robot.get_front_middle_ir()
  23. while r > 0.5:
  24. robot.set_right_wheel_speed(-ran[0])
  25. robot.set_left_wheel_speed(ran[1])
  26. r = robot.get_front_middle_ir()
  27. print(r)
  28. robot.set_wheels_speed(0)
  29. for i in range(3):
  30. rospy.sleep(0.05)
  31. a.append(robot.get_front_middle_ir())
  32. print(a)
  33. b = sum(a) / len(a)
  34. dif = 10000
  35. if r < 0.5:
  36. for i in a:
  37. dif1 = abs(i - b)
  38. if dif1 < dif:
  39. dif = dif1
  40. m = i
  41. a.clear()
  42. robot.set_wheels_speed(0)
  43. return ran
  44.  
  45.  
  46. def go_to_object(r, l):
  47. """Arka."""
  48. a = []
  49. ran = find_object(r, l)
  50. r = ran[0]
  51. le = ran[1]
  52. m = robot.get_front_middle_ir()
  53. robot.set_wheels_speed(0)
  54. while 0.52 >= m >= 0.17:
  55. for i in range(3):
  56. robot.set_left_wheel_speed(le)
  57. robot.set_right_wheel_speed(r)
  58. rospy.sleep(0.05)
  59. a.append(robot.get_front_middle_ir())
  60. b = sum(a) / len(a)
  61. dif = 10000
  62. for i in a:
  63. dif1 = abs(i - b)
  64. if dif1 < dif:
  65. dif = dif1
  66. m = i
  67. print(m)
  68. a.clear()
  69. if m > 0.5:
  70. robot.set_wheels_speed(0)
  71. go_to_object(r, le)
  72. robot.set_wheels_speed(0)
  73. print("Konec")
  74.  
  75.  
  76. def test(l_speed, r_speed):
  77. """Arka."""
  78. print("test")
  79. robot.set_right_wheel_speed(r_speed)
  80. robot.set_left_wheel_speed(l_speed)
  81. r = robot.get_right_wheel_encoder()
  82. lin = robot.get_left_wheel_encoder()
  83. rospy.sleep(0.05)
  84. robot.set_wheels_speed(0)
  85. rospy.sleep(0.05)
  86. l1 = robot.get_left_wheel_encoder()
  87. r1 = robot.get_right_wheel_encoder()
  88. difr = r1 - r
  89. difl = l1 - lin
  90. print(difr, difl)
  91. if difl > difr and max(difr, difl) - min(difr, difl) > 5:
  92. r_speed += 1
  93. return test(l_speed, r_speed)
  94. elif difr > difl and max(difr, difl) - min(difr, difl) > 5:
  95. l_speed += 1
  96. return test(l_speed, r_speed)
  97. else:
  98. print("======")
  99. print(r_speed, l_speed)
  100. a = [r_speed, l_speed]
  101. return a
  102.  
  103.  
  104. print(go_to_object(12, 12))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement