• 您的位置:首頁 > 新聞動態 > Unity3D

    在虛擬裝配(pèi)應用中(zhōng),用(yòng)數據手套實現擰螺(luó)絲動作(zuò)

    2019/6/16      點(diǎn)擊:

    遇到有客戶在使用Wiseglove數據手套開(kāi)發機械裝(zhuāng)配相關應用時,要實現數據手套擰螺絲的(de)動作,客戶認為wiseglove7s+手套(tào)擰了一個角(jiǎo)度,但是螺絲並沒有按照預(yù)想的方向旋轉(zhuǎn)。我們經過研究後,認為實(shí)現該功能需要具(jù)備以下(xià)條件:

    1. 手模型與螺絲有碰撞觸發

    2. 數據手套有抓取動作

    3.數據(jù)手套有釋放動作

    使用了(le)Unity3d的觸發器檢測(cè)手與(yǔ)物體的碰撞狀態(tài)。

    private void OnTriggerEnter(Collider other)
    {
      print("Enter trigger");
      Oldpos = Leftobject.transform.position;
    }
    private void OnTriggerStay(Collider other)
    {
    //手套(tào)抓取
    if(wiseglove.grasp)
    {
      print("grasp");
      float yAixsval = Vector3.Angle(Vector3.ProjectOnPlane(Leftobject.transform.position, Vector3.up),Vector3.right) - Vector3.Angle(Vector3.ProjectOnPlane(Oldpos,Vector3.up),Vector3.right);
      Vector3 deltaAngles = new Vector3(0,uAxisval,0);
      transform.eulerAngles +=deltaAngle;
      Oldpos = Leftobject.transform.position;
    }
    else {
      print("open hand");
      Oldpos = Leftobject.transform.position;
    }
    }
    private void OnTriggerExit(Colloder other)
    {
      print("Exit");
      Oldpos = Leftobject.transform.position;
    }

    當然如果需要螺絲沿著平(píng)麵的法向隨著旋轉有(yǒu)位移,似乎也不難~~

    這裏主要的技巧就是: Vector3.ProjectOnPlane( Vector3 vectorVector3 planeNormal) 得到投影向量(liàng) 為vector到以(yǐ)planeNormal為法(fǎ)向量的平麵上。求的(de)是一向(xiàng)量與一平麵的夾角。這也是讓物體沿著指定軸旋轉的關(guān)鍵所在。

    怎麽樣(yàng),小夥伴們會了嗎? 感謝關注Wiseglove, 我們(men)將一如既往地把我們為客戶解(jiě)決的技術問題(tí)發布到我們的官網(wǎng),來分享關於數(shù)據手套的技術(shù)和心得。

    AV永久天堂网_奇米狠狠色_亚洲欧美日韩动漫_欧美日韩视频在线观看免费一区二区_日韩精品一二三区_国产AV网站18禁止人_久久久久久精品人妻免费网站不卡_国产最新视频_另类免费视频在线视频二区_久久精品免视国产