Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (ContinuousTracking && RosGazeManager.Instance.Focused)
        {
            ros.geometry_msgs.PoseStamped msg = new ros.geometry_msgs.PoseStamped();
            msg.header.frame_id = "/Unity";

            Quaternion camRot   = Camera.main.transform.rotation * Quaternion.Euler(0, -90, 0);
            Quaternion pointRot = Quaternion.Euler(0, camRot.eulerAngles.y, 0);
            msg.pose.position    = new ros.geometry_msgs.Point(RosGazeManager.Instance.position);
            msg.pose.orientation = new ros.geometry_msgs.Quaternion(pointRot);

            Publish(trackingPub, msg);

            if (arrow == null)
            {
                arrow = Instantiate(DirectionArrowPrefab, msg.pose.position.AsUnityVector, msg.pose.orientation.AsUnityQuaternion);
            }
            else
            {
                arrow.transform.position = msg.pose.position.AsUnityVector;
                arrow.transform.rotation = msg.pose.orientation.AsUnityQuaternion;
            }
        }
        else if (!ContinuousTracking && (arrow != null))
        {
            Destroy(arrow);
        }
    }
Esempio n. 2
0
    // Update is called once per frame
    void Update()
    {
        ros.geometry_msgs.PoseStamped headPose = new ros.geometry_msgs.PoseStamped
        {
            pose = new ros.geometry_msgs.Pose(transform.position, transform.rotation)
        };
        headPose.header.frame_id = "/hololens";

        Publish(headPosePub, headPose);
    }
Esempio n. 3
0
    // Update is called once per frame
    void Update()
    {
        if (stop)
        {
            stop = false;
            ros.geometry_msgs.PoseStamped msg = new ros.geometry_msgs.PoseStamped();
            msg.header.frame_id = "base_link";

            Publish(pub, msg);
        }
    }
Esempio n. 4
0
    // Update is called once per frame
    void Update()
    {
        if (RosGazeManager.Instance.Focused)
        {
            ros.geometry_msgs.PointStamped fp = new ros.geometry_msgs.PointStamped();
            fp.header.frame_id = "/Unity";
            fp.point           = new ros.geometry_msgs.Point(RosGazeManager.Instance.position);

            Publish(FocusedPointPub, fp);
        }


        ros.geometry_msgs.PoseStamped hp = new ros.geometry_msgs.PoseStamped();
        hp.header.frame_id = "/Unity";
        hp.pose            = new ros.geometry_msgs.Pose(new ros.geometry_msgs.Point(Camera.main.transform.position),
                                                        new ros.geometry_msgs.Quaternion(Camera.main.transform.rotation * Quaternion.Euler(0, -90, 0)));

        Publish(HeadPosePub, hp);
    }
Esempio n. 5
0
    // Update is called once per frame
    void Update()
    {
        if (RosGazeManager.Instance.Focused)
        {
            ros.geometry_msgs.PointStamped fp = new ros.geometry_msgs.PointStamped();
            fp.header.frame_id = "/Unity";
            fp.point           = new ros.geometry_msgs.Point(RosGazeManager.Instance.position);

            Publish(FocusedPointPub, fp);
        }


        ros.geometry_msgs.PoseStamped hp = new ros.geometry_msgs.PoseStamped();
        hp.header.frame_id = "/Unity";

        Quaternion headRot = Camera.main.transform.rotation;

        // Shifting head rotation because it was rotated in unity
        headRot *= Quaternion.Euler(0, -90, 0);
        hp.pose  = new ros.geometry_msgs.Pose(new ros.geometry_msgs.Point(Camera.main.transform.position),
                                              new ros.geometry_msgs.Quaternion(headRot));

        Publish(HeadPosePub, hp);
    }