• 您(nín)的位置:首頁 > 新聞動態 > Unity3D

    在虛擬裝配應用中,用數(shù)據手套實現擰螺絲動作(zuò)

    2019/6/16      點擊:

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

    1. 手模型與螺絲有碰撞觸(chù)發

    2. 數據手套有抓取動作

    3.數據手套有釋放動作

    使用了Unity3d的(de)觸發器檢測手與物(wù)體的碰撞狀態。

    private void OnTriggerEnter(Collider other)
    {
      print("Enter trigger");
      Oldpos = Leftobject.transform.position;
    }
    private void OnTriggerStay(Collider other)
    {
    //手(shǒu)套抓(zhuā)取
    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;
    }

    當然(rán)如果(guǒ)需要螺絲沿著平麵的法向隨著(zhe)旋轉有位移,似乎也不難~~

    這裏主要的技巧就是(shì): Vector3.ProjectOnPlane( Vector3 vectorVector3 planeNormal) 得到(dào)投影向量 為vector到以planeNormal為(wéi)法向量的平麵上。求的是一向量與一平麵的夾角(jiǎo)。這(zhè)也是讓物體(tǐ)沿著指定軸旋轉的關鍵所在。

    怎(zěn)麽樣,小夥伴(bàn)們會了嗎? 感謝關注(zhù)Wiseglove, 我們將(jiāng)一如(rú)既往地把我們為客戶解決(jué)的技術問(wèn)題發布到我們的官網,來分享關(guān)於數據手(shǒu)套的技術和心得。

    日本中出视频|午夜免费福利在线|亚洲精品亚洲人成在线下载|国产高潮流白浆免费观看不卡|偷拍亚洲欧美|亚洲中文字幕久爱亚洲伊人|久久久久香蕉视频|国产欧美日韩一区|久久国产成人亚洲精品影院老金|久久久久中文字幕