1,可以直接使用自带的案例完成leap的手势交互。

copy

2, 手势的抓取不是很稳定,可以通过修改抓取的交互代码改进。

A 当手指的外置与物体的距离小于一定值时,将要抓取的物体变为手指的子物体。

-------直接将手指的position赋给要交互的物体。

--------或者把其变为手指的子物体,但没有上面简单。

------------手指的位置获取,可以通过代码也可以通过拖动某一个手指的关节。

B 当物体到达要完成装配的目的的时,直接把目的地的位置赋给交互的零件。防止安装完成后零件又粘连在手指上,当到达目的地后同时把交互的脚本不打勾。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;using Leap;
using Leap.Unity;public class AutoA : MonoBehaviour {private LeapProvider mProvider;private Frame mFrame;Vector3 PinchPos = Vector3.zero;//part listprivate List<GameObject> PartList = new List<GameObject>();float disValue = 1.25f;float GraspdisValue = 2.0f;// aim position AP//aim Quaternion  AQ//1  04_LuoGanGameObject LuoGan04;Vector3 LuoGan04Aim = new Vector3(37.71f, 4.74f, -22.0f);Quaternion LuoGan04Qua = new Quaternion(0.0f, 0.0f, 0.0f, 0.0f);//2  04_LuoGanGameObject FangKuaiLuoMu02;Vector3 FKMAP = new Vector3(37.78f, 7.19f, -22.09f);Quaternion FKMAQ = new Quaternion(-0.488f, -0.5106f, -0.5f, 0.5f);//3 06_KuKouBanGameObject KuKouBan06;Vector3 KKBAP= new Vector3(29.181f, 8.025f, -21.9056f);Quaternion KKBAQ = new Quaternion(0.0066f, 0.7159f, -0.0064f, 0.6981f);// Use this for initializationvoid Start () {mProvider = FindObjectOfType<LeapProvider>() as LeapProvider;//1  04_LuoGanLuoGan04 = GameObject.Find ("04_LuoGan");PartList.Add(LuoGan04);//print (LuoGan04.name );//2  04_LuoGanFangKuaiLuoMu02 = GameObject.Find ("02_FangKuaiLuoMu");PartList.Add(FangKuaiLuoMu02);//print (LuoGan04.name );//3  06_KuKouBanKuKouBan06 = GameObject.Find ("06_HuKouBan");PartList.Add(KuKouBan06);}// Update is called once per framevoid Update(){//////手势靠近零件时变为子物体,提高抓取的稳定性///不自然的情况以后再处理mFrame = mProvider.CurrentFrame;//获取当前帧if (mFrame.Hands.Count > 0){//print(2);            if (mFrame.Hands.Count == 1){foreach (var itemHands in mFrame.Hands){PinchPos = itemHands.GetPinchPosition();foreach (var itemPart in PartList){GraspParts(itemPart);}}}}//////零件距离安装位置时自动吸附//1  04_LuoGanif (Mathf.Sqrt((LuoGan04.transform.localPosition - LuoGan04Aim).magnitude) < disValue + 0.35){LuoGan04.transform.localPosition = LuoGan04Aim;LuoGan04.transform.localRotation = LuoGan04Qua;//避免装好后,不移动,更加稳定LuoGan04.GetComponent<Leap.Unity.Interaction.InteractionBehaviour>().enabled = false;// LuoGan04.GetComponent<SimpleInteractionGlow>().enabled = false;}//2 if (Mathf.Sqrt((FangKuaiLuoMu02.transform.localPosition - FKMAP).magnitude) < disValue){FangKuaiLuoMu02.transform.localPosition = FKMAP;FangKuaiLuoMu02.transform.localRotation = FKMAQ;FangKuaiLuoMu02.GetComponent<Leap.Unity.Interaction.InteractionBehaviour>().enabled = false;// FangKuaiLuoMu02.GetComponent<SimpleInteractionGlow>().enabled = false;}//3if (Mathf.Sqrt((KuKouBan06.transform.localPosition - KKBAP).magnitude) < disValue){KuKouBan06.transform.localPosition = KKBAP;KuKouBan06.transform.localRotation = KKBAQ;KuKouBan06.GetComponent<Leap.Unity.Interaction.InteractionBehaviour>().enabled = false;// KuKouBan06.GetComponent<SimpleInteractionGlow>().enabled = false;}}void GraspParts(GameObject part){//1  04_LuoGanif (Mathf.Sqrt((part.transform.localPosition - PinchPos).magnitude) < GraspdisValue){part.transform.localPosition = PinchPos;}}}

可以让物体与手势相碰撞时让零件变为绿色,要修改 primary hover color

Leap抓取物体,在自带案例的基础上修改相关推荐

  1. 针对杂乱环境下抓取物体的机器人学习

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:脱贫钉子户 https://zhuanlan.zhihu.com/p/98990794 本文仅做 ...

  2. 受婴儿抓阄启发,谷歌让机器臂自学抓取物体,不用标注数据

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 谷歌大脑让AI更像儿童了,至少在对象识别和感知方面是这样.最近,他们和加州大学伯克利分校的学生研究了一种算法Grasp2Vec,通过观察和 ...

  3. 杜国光博士,基于视觉的机器人抓取--物体定位,位姿估计到抓取估计课堂笔记

    基于视觉的机器人抓取--物体定位,位姿估计到抓取估计课堂笔记 杜国光博士在智东西公开课上讲了<基于视觉的机器人抓取--物体定位,位姿估计到抓取估计>的精彩课程 满满的干货,记下来,后面慢慢 ...

  4. gazebo仿真 UR10 + robotiq140抓取物体失败:滑出或滑落

    gazebo仿真 UR10 + robotiq140抓取物体失败:滑出或滑落 机械臂(UR10+Roboiq140)抓取物体失败:爪子夹取物体,物体滑出,或机械臂网上提升时候,物体滑出,没有跟随机械臂 ...

  5. Gazebo中Robotiq使用和是否抓取物体判断

    Gazebo中Robotiq使用和是否抓取物体判断 文章目录 Gazebo中Robotiq使用和是否抓取物体判断 1.gazebo中的仿真使用 2. 仿真中如何判断抓取 3.例子 4.完结撒花 由于课 ...

  6. Pico Neo3手柄抓取物体

    功能:手柄抓取物体 设备:pico neo3 unity : 2020 1.可抓取的物体添加 XR Grab Interactable 脚本 2.LeftHand Controller  /Right ...

  7. uibot数据抓取+数据表+excel小案例

    uibot数据抓取+数据表+excel小案例 Dim arrayData = "" Dim objDatatable = "" Dim objExcelWork ...

  8. Unity之OpenXR+XR Interaction Toolkit实现 抓取物体

    前言 我们今天来说一下如何使用XR Interaction Toolkit来实现和3D物体的交互之:抓取,简单说就是通过VR手柄拿起来一个物体. 二.准备工作 我们需要准备好Unity工程和环境配置 ...

  9. 抓取部分京东手机信息案例(Java案例)

    抓取部分京东手机信息案例 1. 环境搭建 导入数据库 // 创建crawler数据库, 再创建表 CREATE TABLE `jd_item` (`id` bigint(10) NOT NULL AU ...

  10. Python笔记:使用代理方式抓取App的数据操作案例

    概述 App的爬取相比Web端爬取更加容易,反爬中能力没有那么强,而且响应数据大多都是JSON形式,解析更加简单. 在APP端若想查看和分析内容那就需要借助抓包软件,常用的有:Filddler.Cha ...

最新文章

  1. 史上最烂的项目:苦撑 12 年,600 多万行代码!
  2. (整理类)文件描述符,文件描述符标志,文件状态标志
  3. eclipse rcp应用程序重启
  4. JDK源码分析-TreeMap(1)
  5. 纪录片.BBC.数据之趣.The.Joy.of.Data.2016
  6. C#发送Email邮件方法总结
  7. linux网络编程之地址结构sockaddr和sockaddr_in的区别
  8. python解析xml+得到pascal voc xml格式用于目标检测+美化xml
  9. Swift教程之继承
  10. infopath视图切换
  11. [转载] python数学编程书推荐_图书推荐:《Python数学编程》
  12. lg相乘公式_lg函数(log的公式大全)
  13. 总结jquery-seat-charts插件使用方法
  14. linux tar压缩排除指定文件夹
  15. 万网域名绑定阿里云服务器
  16. 微信有鸿蒙版的的吗,微信鸿蒙版本下载-微信鸿蒙版本下载最新官方版 v7.0.20-游人手游网...
  17. paillier同态加密算法原理及代码实现
  18. Linux 下的 3D 设计软件-FreeCAD
  19. 华为无线设备Mesh配置命令
  20. 使用manifest实现XP风格界面

热门文章

  1. mysql select 返回列_mySQL – 使用select返回多行来更新多个列
  2. 更改qt复选框大小_Qt编写控件属性设计器5-属性中文
  3. python绘图多子图 分别美化
  4. 俄亥俄州立大学计算机科学转学成功,俄亥俄州立大学转学要求
  5. 用python写二维码_Python用5行代码写一个自定义简单二维码
  6. linux 汽车仪表软件架构,基于嵌入式Linux的汽车全数字仪表界面的设计
  7. if mysql sum 视图_MySQL(Excel透视)
  8. 使用百度统计分析你的网站访问数据
  9. [ CQOI 2014 ] 数三角形
  10. jQuery基础 - 选择器