コード例 #1
0
ファイル: RosGazeRelay.cs プロジェクト: roastedpork/FYP-Unity
    // 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);
    }
コード例 #2
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);
    }