Advertisement
Alekal

Untitled

Dec 13th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1.  
  2. """"Robot must find object."""
  3.  
  4. from PiBot import PiBot
  5. import rospy
  6.  
  7. robot = PiBot()
  8. if robot.is_simulation():
  9. speed = 15
  10. else:
  11. speed = 14
  12. front_sensor = robot.get_front_middle_ir()
  13. front_left_sensor = robot.get_front_left_ir()
  14. front_right_sensor = robot.get_front_right_ir()
  15. start_timestamp = rospy.get_time()
  16.  
  17. def find_object():
  18. turning = True
  19. dict_one = {}
  20. while turning is True:
  21. robot.get_right_wheel_encoder()
  22. robot.get_front_middle_ir()
  23. robot.set_right_wheel_speed(speed)
  24. robot.set_left_wheel_speed(-speed)
  25. print(robot.get_front_middle_ir())
  26. if len(str(robot.get_front_middle_ir())) > 6:
  27. dict_one[robot.get_right_wheel_encoder()] = robot.get_front_middle_ir()
  28. if robot.get_right_wheel_encoder() > 2016:
  29. robot.set_wheels_speed(0)
  30. turning = False
  31. rospy.sleep(1)
  32. a = min(dict_one, key=lambda x: dict_one.get(x))
  33. turning1 = True
  34. while turning1 is True:
  35. robot.get_front_middle_ir()
  36. robot.get_right_wheel_encoder()
  37. robot.set_right_wheel_speed(speed)
  38. robot.set_left_wheel_speed(-speed)
  39. print(robot.get_front_middle_ir())
  40. if robot.get_right_wheel_encoder() >= a + 1895:
  41. turning1 = False
  42. robot.set_wheels_speed(0)
  43. rospy.sleep(1)
  44.  
  45.  
  46. # def buff():
  47. # """Buffer."""
  48. # global buffer
  49. # if len(buffer) < 15:
  50. # buffer.append(front_sensor)
  51. # elif len(buffer) == 15:
  52. # buffer.pop(0)
  53. # buffer.append(front_sensor)
  54. # return sum(buffer) / len(buffer)
  55.  
  56. # global front_sensor
  57. # global finish
  58. # average = buff()
  59. # left_encoder_0 = robot.get_left_wheel_encoder()
  60. # right_encoder_0 = robot.get_right_wheel_encoder()
  61. # while average > 0.3 and not finish:
  62. # if front_sensor > 0.9:
  63. # rospy.sleep(0.1)
  64. # find_object()
  65. # left_encoder_0 = robot.get_left_wheel_encoder()
  66. # right_encoder_0 = robot.get_right_wheel_encoder()
  67. # print("Front sensor:" + str(round(front_sensor, 3)) + ", " + "Average: " + str(round(average, 3)))
  68. # left_encoder = robot.get_left_wheel_encoder()
  69. # right_encoder = robot.get_right_wheel_encoder()
  70. # left_encoder_change = left_encoder - left_encoder_0
  71. # right_encoder_change = right_encoder - right_encoder_0
  72. # error = right_encoder_change - left_encoder_change
  73. # left_encoder_0 = robot.get_left_wheel_encoder()
  74. # right_encoder_0 = robot.get_right_wheel_encoder()
  75. # robot.set_left_wheel_speed(int(speed + round((error / 2) / speed)))
  76. # robot.set_right_wheel_speed(int(speed - round((error / 2) / speed)))
  77. # rospy.sleep(0.05)
  78. # front_sensor = robot.get_front_middle_ir()
  79. # average = buff()
  80. # rospy.sleep(0.05)
  81.  
  82. def drive_to_the_object():
  83. drive = True
  84. print("Robot ljaheb objekti juurde.")
  85. print(robot.get_front_middle_ir())
  86. rospy.sleep(1)
  87. while robot.get_front_middle_ir() > 0.17:
  88. robot.get_front_middle_ir()
  89. while drive is True:
  90. print('Driving')
  91. robot.get_front_middle_ir()
  92. robot.set_wheels_speed(speed)
  93. print(robot.get_front_middle_ir())
  94. if len(str(robot.get_front_middle_ir())) > 6:
  95. if round(robot.get_front_middle_ir(), 3) < 0.16:
  96. drive = False
  97. robot.set_wheels_speed(0)
  98. print('Stop here')
  99. break
  100.  
  101. def main():
  102. find_object()
  103. drive_to_the_object()
  104.  
  105.  
  106. if __name__ == '__main__':
  107. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement