Nao机器人远程控制

由于最近在研究如何利用Kinect对Nao机器人进行远程控制,所以写下这篇博客和大家交流。首先,考虑到微软开发的Kinect能够捕捉人体的深度信息,进而转换成骨骼信息,供给我们去利用相应信息,实现用肢体与其他的设备进行交互,比如体感游戏(切水果等)、三维动画电影的制作(阿凡达等)、广告制作等。这给我们充分的想象空间可以实现很多应用。同时,本人所在的课题组也在做脑电的相关研究,其中实现控制效果所用的机器人是Nao机器人,由于该机器人外形小巧可爱,提供的控制接口丰富,平台语言等兼容效果较好,属于类人型机器人,所以我们考虑可否用Kinect捕获的人体动作数据区远程的操控Nao机器人的动作,进而实现其他的应用(智能家庭、医疗服务系统)。下面是我目前设计以及实现中遇到的问题,希望大家有相关经验或想法的人能够给予一定的批评改正意见。

1. Nao机器人远程控制规划:

在做相应的具体实现之前提前做了一个粗略的研究草图,这样对进度的可以一目了然的知晓。研究草图如下:

上面的内容就不做特别多的解释了,图上显示了整个系统的大概流程。

2.Nao机器人实验中遇到的问题总结

在上面流程图的指示下,搭建了初步的仿真系统,VS2010+Kinect+Webots(Nao的仿真软件),然后进行初步的实验,效果目前不是很理想,得到的一幅目前的效果图如下:

这是上周做的实验结果,按照操作步骤进行了简单的尝试,主要控制左臂肩关节和脖子的关节共四个通道(自由度)的动作。从实验结果来看,动作差别是很大的,完全不是想象的结果,说明试验中的一些步骤出现了错误,下面我将本实验的步骤和问题进行详细的总结。

a)        利用Kinect获取人体运动数据,并整合到系统中,本部已经实现,可以提供动作的位置、方向信息。其中方向信息的表示方式是四元数或者旋转矩阵,可以提供针对绝对旋转和相对旋转两种坐标形式。

b)       将Kinect获取到的数据进行转换,转换成nao需要的欧拉角数据。本部分提供的方法有两种,一种是从四元数转换成欧拉角或者是从旋转矩阵转换到欧拉角。目前比较常用的是四元数转换成欧拉角方式,所以采用这种方式进行处理。

c)        进行坐标系的转换,由于Kinect的坐标系和Nao的各关节的坐标系不是对应的,所以这部分工作也需要重新梳理。这步暂时未加验证,本人理解并不一定是完全正确的。

d)       骨骼关节通道的映射。由于Kinect关节是20个,60个自由度;而Nao是15关节,24个自由度,两者的对应关系是急需解决的问题,这决定运动的真实程度。本实验暂时采取丢弃Nao不含有的Kinect通道数据原则进行处理。这样的处理从目前的效果来看,并不是十分的合理,所以需要尝试新的方法,有大牛给知道一下就好了

e)        数据范围的约束处理;由于Nao的每个自由度都是有运动范围的,当我们给的动作超过了Nao运动的最大范围时,Nao机器人会出现摔倒或死机的问题。所以针对这方面问题我们目前采取的方法是,当运动范围超出Nao的运动范围,将超过的数据截取到最大范围处。

f)        动作的控制。从上面处理步骤后,我们把得到的数据赋给Nao机器人时,有一个问题是,Nao机器人的控制方案有多种,有目标位置控制,指定行为控制等等,但是我们需要的是用角度去控制动作。Nao提供的接口是setAngles(每帧针对初始动作做动作,控制比较慢)和changeAngles(控制动作比较快,但会出现累计误差)。两者的选取关系到动作处理效果。目前做实验阶段采用的是前一个。

g)       动作延时的控制。由于需要做循环控制,目前时间的控制由sleep(没有这个函数,Nao的控制会失效)函数控制,这个函数设置的时间过短,Nao的控制也会失灵。所以这也是后续要考虑的问题。目前采用的是1s。

真心希望有大牛能够看到我的文章,对本渣渣给予指点,我也会不断更新进度,与大家一起交流学习~



利用Kinect对Nao机器人进行远程控制(一)相关推荐

  1. Nao机器人的基本操作与控制

    Nao机器人的基本操作与控制 Nao基本介绍 Nao机器人具有25个自由度,100多个传感器,机载电脑,支持23国语言,支持远程控制,可实现完全编程. 简单的控制 按nao胸前的按钮一下会让nao报出 ...

  2. GeekPwn大赛黑客实现远程入侵Aldebaran NAO机器人

    10月24日,研究安全防御工作的白泽安全团队在GeekPwn2016黑客大赛上展示了远程控制Aldebaran NAO机器人的技术.他们通过网络触发漏洞,进而远程入侵并控制了Aldebaran NAO ...

  3. nao机器人学习笔记5

    1.行走时利用超声波进行避障 这些都是在choregraphe中完成的,怎样修改指令盒达到自己的要求:创建一个指令盒: class MyClass(GeneratedClass): def __ini ...

  4. nao机器人学习笔记1

    nao机器人来到实验室有几个月了,之前对这个平台进行了熟悉并准备在此平台上实现一个足球机器人的功能.在学习时做了相关的 记录主要是熟悉nao的一些零散的东西,决定整理整理写出来. 关于python的一 ...

  5. NAO机器人高尔夫中的视觉系统设计

    去年(2017)年分别参加了江苏省和全国的NAO机器人高尔夫比赛,负责的是视觉部分编程.在这里把之前的工作总结一下.内容主要包括红球和黄杆的识别和定位(包括在比赛中遇到的一些问题和解决办法).完整的代 ...

  6. nao机器人python库安装_NAO机器人学习笔记(1)

    1 NAO机器人硬件 1.1 红外线 红外线发射角度-60°~+60°,波长940nm. 1.2 超声波(声纳) NAO能够探测前方0.25~2.55m内是否有障碍物,探测角度60°,超声波频率为49 ...

  7. Webots平台下NAO机器人仿真环境的搭建

    Webots平台下NAO机器人仿真环境的搭建 一.前期准备 Webots-8.6.2(版本在R2019前(不包含R2019)均可) Choregraphe(我使用的是最新版本) naoqi环境 二.W ...

  8. NAO机器人教程-第二篇

    NAO机器人发展情况 1.Robocup标准参赛平台 NAO机器人在Robocup 比赛中最引人注意的要数这个"标准平台联赛"了.所谓标准平台,是指大家全部选用相同的机器人&quo ...

  9. Webots平台NAO机器人寻路避障实现

    Webots平台NAO机器人寻路避障实现 一.实验目的 二.功能模块 1. 场馆搭建 2. 机器人功能 2.1 自动寻路 2.2 自动避障 2.3 到达检测 三.实现方法 1. 基础模块 2. 到达检 ...

最新文章

  1. PHP5.5.13 + Apache2.4.7安装配置流程详解
  2. 【面试 struts2】【第三篇】struts2的问题
  3. dirname(__FILE__) 的使用总结
  4. 【洛谷P3369】普通平衡树(splay)
  5. android盒子模拟器,emubox模拟器盒子
  6. Github标星66.6k+:常见数据结构与算法的Python实现
  7. Windows Mobile下使用CppUnitLite输出测试结果
  8. Oracle数据库order by排序查询分页比不分页还慢问题解决办法
  9. app.vue 跳转页面_【在线教学】第8章 网站页面布局和模块设计
  10. 人工智能建立本体库_本体:一文读懂领域本体构建
  11. [转载] python字符串只留数字_Python工匠:数字与字符串(下)
  12. mysql 组复制和传统复制_2017年12月聚合文章--MySQL 传统复制中常见故障处理和结构优化案例分析 | 码友网...
  13. 代码笔记——Toast显示文本,图片,图文
  14. RIME输入法配置双拼方案(Ubuntu下基于ibus)
  15. Excel分组最大级别为8(outlineLevel最大为7)
  16. 将QTextEdit右键菜单设置为中文
  17. python re模块详解_python 详解re模块(转载)
  18. linux使分区生效,Linux 硬盘分区生效命令partprobe
  19. BloomFilter
  20. 【GSAP3教程】初次上手GSAP3

热门文章

  1. Catalan数计算公式
  2. Catalan数简介
  3. MACD经典战法,讲明趋势MACD的奥义
  4. 安全学院“传承文化”暑期实践团抵达西安
  5. 【脚本】阿里云盘批量分享脚本-可设置提取码
  6. asp.net935-中小学德育管理系统
  7. 第十三章 鲁智深为什么是天孤星
  8. python shapely函数 笔记
  9. 04、JavaWeb-JSP+Session+Cookie
  10. Makefile 脚本运行VCS仿真