Exemplo n.º 1
0
    def create_msg(self):
        """
        creates soMessage with set parameters
        :return: gradient message / SoMessage
        """
        msg = SoMessage()

        # current time
        now = rospy.Time.now()

        msg.header.frame_id = self._frame
        msg.parent_frame = self._id
        msg.header.stamp = now
        msg.p = self.p
        msg.q = self.q
        msg.attraction = self.attraction
        msg.diffusion = self.diffusion
        msg.goal_radius = self.goal_radius
        msg.ev_factor = self.ev_factor
        msg.ev_time = self.ev_time
        msg.ev_stamp = now
        msg.direction = self.direction
        msg.moving = self.moving
        msg.payload = self.payload

        return msg
def create_gradient(position,
                    attraction=0,
                    diffusion=3.0,
                    q=Quaternion(),
                    moving=False,
                    direction=Vector3(1, 0, 0),
                    goal_radius=1.0,
                    payload='',
                    ev_time=0,
                    ev_factor=1.0,
                    frameid='',
                    parentframe='',
                    time=None):
    """
    creates a soMessage to specify a gradient
    :param position: agent position
    :param attraction: repulsion(-1), attraction(1)
    :param diffusion: diffusion radius
    :param q: Quaternion defining rotation
    :param direction: initial direction to specify current gradient orientation
    :param goal_radius: goal radius of gradient
    :param payload: payload data
    :param ev_time: evaporation time
    :param ev_factor: evaporation factor
    :param frameid: header frame id of gradient
    :param: parentframe: parent frame id of gradient
    :param time: optional time stamp for evaporation calculations, if None time=rospy.Time.now()
    :return: soMessage
    """

    if time is None:
        time = rospy.Time.now()

    msg = SoMessage()
    msg.p = position
    msg.q = q
    msg.direction = direction
    msg.attraction = attraction
    msg.header.stamp = time
    msg.header.frame_id = frameid
    msg.parent_frame = parentframe
    msg.diffusion = diffusion
    msg.goal_radius = goal_radius
    msg.ev_factor = ev_factor
    msg.ev_time = ev_time
    msg.ev_stamp = time
    msg.moving = moving
    msg.payload = payload

    return msg