def __init__(self):
		self.update_rate = 20 # [Hz]

		# robot state
		self.BHV_RC = 0
		self.BHV_WPTNAV = 1
		self.bhv = self.BHV_RC

		# load behaviours
		self.bhv_rc = behaviour_remote_control()
		self.bhv_wn = behaviour_wptnav()

		# get topic names
		topic_rc = rospy.get_param("~remote_control_sub",'/fmHMI/remote_control')
		topic_rc_feedback = rospy.get_param("~remote_control_feedback_pub",'/fmHMI/remote_control_feedback')
		deadman_topic = rospy.get_param("~deadman_pub", "/fmSafe/deadman")
		behaviour_topic = rospy.get_param("~automode_pub", "/fmPlan/automode")

		# setup deadman publish topic
		self.deadman_state = False
		self.deadman_msg = BoolStamped()
		self.deadman_pub = rospy.Publisher(deadman_topic, BoolStamped, queue_size=1)

		# setup automode publish topic
		self.behaviour_msg = IntStamped()
		self.behaviour_pub = rospy.Publisher(behaviour_topic, IntStamped, queue_size=1)
		
		# setup subscription topic callbacks
		rospy.Subscriber(topic_rc, RemoteControl, self.on_rc_topic)

		# sall updater function
		self.r = rospy.Rate(self.update_rate)
		self.updater()
Exemple #2
0
    def __init__(self):
        self.update_rate = 20  # [Hz]

        # robot state
        self.BHV_RC = 0
        self.BHV_WPTNAV = 1
        self.bhv = self.BHV_RC

        # load behaviours
        self.bhv_rc = behaviour_remote_control()
        self.bhv_wn = behaviour_wptnav()

        # get topic names
        topic_rc = rospy.get_param("~remote_control_sub",
                                   '/fmHMI/remote_control')
        topic_rc_feedback = rospy.get_param("~remote_control_feedback_pub",
                                            '/fmHMI/remote_control_feedback')
        deadman_topic = rospy.get_param("~deadman_pub", "/fmSafe/deadman")
        behaviour_topic = rospy.get_param("~automode_pub", "/fmPlan/automode")

        # setup deadman publish topic
        self.deadman_state = False
        self.deadman_msg = BoolStamped()
        self.deadman_pub = rospy.Publisher(deadman_topic,
                                           BoolStamped,
                                           queue_size=1)

        # setup automode publish topic
        self.behaviour_msg = IntStamped()
        self.behaviour_pub = rospy.Publisher(behaviour_topic,
                                             IntStamped,
                                             queue_size=1)

        # setup subscription topic callbacks
        rospy.Subscriber(topic_rc, RemoteControl, self.on_rc_topic)

        # sall updater function
        self.r = rospy.Rate(self.update_rate)
        self.updater()
	def __init__(self):
		self.update_rate = 20 # [Hz] 
		self.pub_behaviour_rate = 5 # [Hz] note must be lower than self.update_rate

		# robot state
		self.BHV_RC = 'RC'
		self.BHV_NAV = 'NAV'
		self.bhv = self.BHV_RC

		# load behaviours
		self.bhv_rc = behaviour_remote_control()
		self.bhv_wn = behaviour_wptnav()

		# get topic names
		topic_rc = rospy.get_param("~remote_control_sub",'/fmHMI/remote_control')
		topic_rc_feedback = rospy.get_param("~remote_control_feedback_pub",'/fmHMI/remote_control_feedback')
		deadman_topic = rospy.get_param("~deadman_pub", "/fmSafe/deadman")
		behaviour_topic = rospy.get_param("~platform_behaviour_pub", "/fmDecision/platform_behaviour")

		# setup deadman publish topic
		self.deadman_state = False
		self.deadman_msg = BoolStamped()
		self.deadman_pub = rospy.Publisher(deadman_topic, BoolStamped, queue_size=1)

		# setup automode publish topic
		self.behaviour_msg = StringStamped()
		self.behaviour_pub = rospy.Publisher(behaviour_topic, StringStamped, queue_size=1)
		
		# setup subscription topic callbacks
		rospy.Subscriber(topic_rc, RemoteControl, self.on_rc_topic)

		# call updater function
		self.update_count = 0
		self.pub_behaviour_interval = self.update_rate / self.pub_behaviour_rate
		self.r = rospy.Rate(self.update_rate)
		self.updater()