【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

Kinect for Windows 培训营:自平衡机器人项目作者访谈

  • 2013-03-31
  • 本文字数:1417 字

    阅读完需:约 5 分钟

在微软的 Kinect for Windows 全国培训营上,除了能了解到 Kinect 关键技术及交互设计特性,还能看到一些互动项目的展示,其中比较引人注目的是一个 Kinect 控制的机器人,它能根据控制者的身体动作通过光发射模块遥控控制机器人的运行,InfoQ 和作者黄涌进行了简单交流。

InfoQ: 请首先做下自我介绍并向大家介绍下机器人项目的背景??

黄涌:我叫黄涌,目前就读于中国科学院半导体研究所,是中国电机工程学会会员。在微软开展的“码”上 Kinect——Kinect for Windows 全国巡回培训及挑战赛活动中担任技术支持一职,主要负责向开发人员介绍 Kinect 开发基础知识以及全球同步发布的 SDK V1.7 中的最新技术——Kinect Interactions、Kinect Fusion 等,帮助解决开发人员在应用开发中所面临的问题,并提供相关的解决方案。

我的这个项目研究基于景深图像的人体骨骼跟踪算法,并使用微软 Kincet for Windows sensor 和 Kinect for Windows SDK V1.6 组件实现了这一算法。由 Kinect 摄像头负责采样景深及 RGB 摄像头数据,通过 USB2.0 传送给 PC 机,PC 机通过深度图像局域梯度特征跟踪人体骨骼节点,根据骨骼节点信息,比对人体姿态库,将体感信息转换为控制命令,给光发射模块。光发射模块调制光信息,光接收模块接收后将光信号转换为电信号,然后通过 UART 与下位机建立连接,完成数据传递。下位机上 MCU 解析命令,控制两轮自平衡机器人完成相应的技术动作。整体结构流程图如下:

InfoQ: 为什么会想到用 Kinect for Windows 做开发?

黄涌:原来参加过智能汽车竞赛,我是摄像头组的,所以对机器视觉非常感兴趣,同时自己也想弄个测距的项目,Kinect 正好恰和研究之意,所以就用它来开发了,没想到一开发起来,觉得真的非常强大。

InfoQ:简单谈下这个项目的设计思路?

黄涌: 上位机软件设计是本次设计思路的核心,本次设计使用 Visual Studio 2010 编译环境、Kinect for Windows SDK V1.6 组件,所有程序代码使用 C#语言编写。主要包括三个部分:
(1)深度图像局域梯度特征的人体骨骼跟踪算法,主要完成根据 Kinect 传送到 PC 机的深度图像,计算出每帧图片的骨骼节点空间坐标,完成对人体骨骼节点的跟踪;
(2)骨骼信息识别,由骨骼节点信息与人体姿态库比对,产生相应的控制命令;
(3)PC 与下位机通信,完成通信功能。
程序执行流程如下:

光通信的硬件设计与信息调制,采用 LED 可见光传输技术发出高速明暗闪烁的讯号,以无线方式来传输数据。通过对频率的调制,发出特定的编码信号,接收方利用光电敏感器件接收调制光,解调后还原成数据信号,然后将命令传输给机器人。上位机与单片机之间以帧为单位完成数据通信,控制命令的帧格式 0X0A+ 控制命令 (8 位)+0X05。

InfoQ:你觉得这个项目创新在哪些方面?

黄涌:主要在这几个方面:

  1. 控制上,应用 3D 摄像头识别人体骨骼,将身体动作与机器人运行状态联系起来让人机交互更加自然,增强人体行为真实感觉,而且可以便于不同人群使用。
  2. 简化人机交互方式,使用更加自然的交互方式,具有替代传统遥控、鼠标、键盘等传统人机交互工具的功能。
  3. 通信上,采用可见光通信方式,节约能源,无电磁辐射,不需要采用另外的传输介质,可应用于多种场合。

InfoQ:下一步有哪些后续开发计划?是否会将设计方案开源?

黄涌:下一步想做 Kinect 控制的类人机器人,能够实时模仿人类动作;其二引入可见光通信,搭配照明平台;其三,设计由 Kinect 控制的多玩家赛车对抗游戏。设计方案会适时开源的,大家多交流才会更好的进步嘛。

2013-03-31 23:591380
用户头像

发布了 89 篇内容, 共 31.1 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

【第十周】学习笔记

Aldaron

【数据结构与算法】如何高效学习数据结构与算法

三钻

学习 数据结构与算法

浅析Python3列表操作之*和*=

王坤祥

Python Python基础

Python中list操作之append、extend

王坤祥

Python Python基础

基于小程序云Serverless开发微信小程序

移动研发平台EMAS

docker-compose构建springcloud微服务项目

xcbeyond

Java Docker Docker-compose springboot

【FCC前端教程】28关学会HTML与HTML5基础

三钻

CSS html 大前端

Django单元测试用法及Fixtures用法

BigYoung

Python django 单元测试 Fixtures

解读CDN的应用场景与产品价值

阿里云Edge Plus

CDN

SpringCloud服务注册与发现(Eureka)

xcbeyond

Java SpringCloud Eureka 服务注册与发现

【FCC前端教程】44关学习CSS与CSS3基础「一」

三钻

CSS css3 程序员 大前端

憋再PS抠图了,3行代码给你安排的明明白白!

王坤祥

生产力 图像识别

致力打造下一代云原生分布式消息系统,StreamNative 完成源码资本数百万美元 Pre-A 轮融资,红杉中国种子基金跟投

Apache Pulsar

kafka Apache Pulsar StreamNative

iOS Abort问题系统性解决方案

移动研发平台EMAS

ios 监控 移动

CentOS7 下Docker安装、启动

xcbeyond

Docker 软件安装

前端必看的8个HTML+CSS技巧

三钻

Java html html5 css3 大前端

Git分支管理策略及简单操作

王坤祥

git git flow

VSCode插件大全|VSCode高级玩家之第二篇

三钻

程序员 vscode 编辑器 插件 技巧

微服务架构关键点思考

dony.zhang

威联通(NAS)应用篇:搭建个人图床

BigYoung

图床 NAS QNAP 威联通 自建

图解JavaScript——代码实现(六种异步方案,重点是Promise、Async、发布/订阅原理实现,真香)

执鸢者

原理 异步 Promise Async

VSCode常用快捷键大全|VSCode高级玩家宝典之第一篇

三钻

学习 程序员 效率工具 vscode 快捷键

【第十周作业】

Aldaron

VSCode配置同步|VSCode高级玩家宝典之第三篇

三钻

程序员 效率工具 vscode 开发工具

国内外低/零代码的有哪些代表?

代码制造者

编程语言 低代码 零代码 信息化 开发应用

手动实现mini-vue

晓枫

Java vue.js

微服务、中台和 DDD

dongge

职业发展的迷茫与困境:你真的了解晋升机制吗?

伴鱼技术团队

职业规划 技术管理 技术交流 职业成长 技术人生

Lambda架构已死,去ETL化的IOTA才是未来

易观大数据

架构师训练营第十周学习总结

Bruce Xiong

架构师训练营——第 10 周作业

jiangnanage

Kinect for Windows培训营:自平衡机器人项目作者访谈_语言 & 开发_水羽哲_InfoQ精选文章