Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env python
  2.  
  3. import rospy
  4. import random
  5. from geometry_msgs.msg import Twist, Pose
  6. from kobuki_msgs.msg import CliffEvent, BumperEvent
  7.  
  8. MULT = 1
  9.  
  10. def beware_cliffs(data):
  11. rospy.loginfo("Cliff!")
  12. rospy.loginfo(data)
  13. if data.state == CliffEvent.CLIFF:
  14. pub = rospy.Publisher('/cmd_vel_mux/input/safety_controller', Twist, queue_size=10)
  15. safe_move = Twist()
  16.  
  17. # Si vide devant alors on recule
  18. #if data.sensor == CliffEvent.CENTER:
  19. safe_move.linear.x = 0
  20.  
  21. pub.publish(safe_move)
  22.  
  23.  
  24. def beware_walls(data):
  25. rospy.loginfo("Wall!")
  26. rospy.loginfo(data)
  27. if data.state == BumperEvent.PRESSED:
  28. pub = rospy.Publisher('/cmd_vel_mux/input/safety_controller', Twist, queue_size=10)
  29. safe_move = Twist()
  30.  
  31. #if data.sensor == BumperEvent.CENTER:
  32. safe_move.linear.x = -1
  33.  
  34. pub.publish(safe_move)
  35.  
  36.  
  37. def listen():
  38. rospy.init_node('bodyguard_cliff', anonymous=True)
  39. rospy.Subscriber('events/cliff', CliffEvent, beware_cliffs)
  40. rospy.Subscriber('events/bumper', BumperEvent, beware_walls)
  41. rospy.spin()
  42.  
  43.  
  44. if __name__ == '__main__':
  45. try:
  46. listen()
  47. except rospy.ROSInterruptException:
  48. pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement