查看: 5142|回复: 16

【LattePanda+Roomba】Teleroomba 网真机器人

[复制链接]
微信图片_20180329103243.jpg



1. 全景网真机器人概念的提出

目前在市场上,我们可以直接购买到一些网真机器人,不过它们往往十分昂贵,我们仅仅能开着它和大家进行视频,得到的体验性价比很低。
我认为一个理想的网真体验,应该是沉浸式的,为什么我们不能提供一种360°无死角的体验方式,同时让我们的动作语言呈现在网真互动之中,进行多媒体分享,甚至打扫卫生。这样的机器人将为我们带来许多的乐趣,而不再是摆设。

带着对市场上现有的网真机器人如此多的失望和不满,我只好开发一下自己期望中的机器人了。
下面是我的一些开发历程,总结了一些干货分享给大家。


Telerumba1.jpg


2. 如何在预算有限的情况下制造机器人?改装扫地狗!

我需要一个便宜的机器人平台来开发我的机器人,但多数符合规格要求机器人平台动辄3000+的费用着实让人吓一跳。
这时,我突然发现我的猫居然娴熟地乘上室友的扫地狗进行巡游,就是这个!

我发现扫地狗制造商iRobot提供了一个叫做“create”系列的扫地狗,它允许我对其串口发送指令以控制其行为和得到机器人自带传感器的数据。

更多关于iRobotCreate的信息:http://store.irobot.com/default/create-programmable

Telerumba2.jpg

3. 选择合适的设备

为了达成预定的网真机器人功能,选择对的设备非常重要。
比如控制器,无线连接模块,mini音响,显示屏,电机以及其他机械组件。

4. 选择开发平台和操作系统

面对如此众多的设备,我需要找到一个高度整合的控制解决方案。

起初我尝试使用RasberryPI作为控制开发平台,但后来发现RasberryPI的中央处理器和集成显卡性能比较有限,难以支持例如WebRTC的视频/数据的直播需求。

于是我将注意力转向了刚推出不久的一个硬件开发方案(2016年夏天),LattePanda是一个微型电脑开发方案,是一台虽小却性能强劲的电脑,你可以在上面运行Linux或Windows10,并自带Wifi和蓝牙,上面甚至整合了一台Arduino用于数字、模拟电路的控制,并通过串口通讯和主体进行连接. 一句话:这简直是件神器。

刚开始开发的时候我尝试在LattePanda运行Linux Mint,但我发现寻找和安装众多的Linux硬件驱动简直是一场噩梦,一些触摸屏、5GHZ Wifi天线、蓝牙模块甚至就没有开发Linux相应的驱动,而windows系统几乎完美地绕开了这些问题,于是我将LattePanda又重新装回了Windows10。

Arduino与Windows的整合非常不错,在设备管理器中或者使用简单的Port list工具很方便就能确定ATMega具体链接到了Windows的哪个端口上,并直接运行Arduino IDE进行程序上传,非常方便。这块Arduino是leonado,可以直接对windows进行类似鼠标和键盘HID行为,这个设计可以说是用心良苦。

美中不足是Window占用了Arduino的硬串口,不过毕竟可以使用软件串口所以想接其他需要用串口的传感器应该问题不大。

Lattepanda产品详情页:http://www.dfrobot.com.cn/goods-1379.html

lTTi1t1.gif


5. 将扫地“狗”变成机器“人”

显然扫地狗和网真机器人的身高差太远了,我想将用于视频通话的显示器和摄像头置于合适的高度就必须设计和加工一个支架系统,并将其与设备安装到上面,并固定在扫地狗为基础的结构上。

于是我将一些想法画在了纸上…和窗上。

Telerumba4.jpg


6. 激光切割加工

三维打印明显难以满足体量偏大的组件加工,很快我提出了以有机玻璃结合单脚架的结构,使得机器人高度可灵活调节。

我决定通过激光切割的方式加工有机玻璃原材料,通过Adobe Illustrator我可以直接将设计绘制为CAD路径进行切割。我比较喜欢完全透明的有机玻璃以彰显机器人的技术细节,同时造价更为便宜。

切割一切顺利,接下来便是组装。



7. 处理器升温?设计热沉系统。

在组装前还有一个问题没有解决,就是进行视频通话的时候处理器升温比较明显,有时候可以接近70+°C, 长时间的高温必然影响处理器寿命,解决方案就是通过安装一个热沉导体,再通过一个微型风扇将其中的热空气吹走。这个微型风扇安装于用于保护LattePanda的有机玻璃面板上,指向LattePanda升温比较明显的背部处理器。



8. 将微电脑组件加装到主体结构上。

散热风扇可以穿过主体结构上的洞将高速旋转的风扇叶片保护在内部,这样恰好将天线暴露在外端,很好。


9. 通过自定义PCB管理错综复杂的跳线。

随着越来越多的设备添加到LattePanda上,跳线和数据线数量急剧上升,我需要一个线路管理方法。
我设计了一个简单的PCB,并用小型数控机床加工出来,其针脚可以直接插入LattePanda上的Arduino,来管理GPIO到扫地狗Mini DIN串口的跳线,在随后更新的版本里我又将NeoPixal和伺服电机的PWM电路整合在这块电路上,并加入了调试开关。

上面的这段短视频展示了这块电路的进化历程。


10. 制作MiniDIN数据线

扫地狗的串口采用七针Mini DIN,我从亚马逊上购买了这种接口,并根据需要焊上跳线,另一段则根据我的PCB制作了自定义接口。


11.安装其他部分:相机,扬声器,显示屏

在我为机器人接入360°相机同时,我也加装了一个方便于遥控驾驶的2D相机。

2D相机能为体验者提供比较好的视频质量和方向感,这台相机(摄像头)通过USB直接供电和回传视频,没有使用GoPro等独立电源相机需要单独充电的问题,也不需要额外的HDMI视频采集卡来做视频输入,并且可以让体验者自由在其与360°相机的视频源间切换。

蓝牙音箱则安装在2D相机的反方向,与LattePanda通过蓝牙无线连接。


Teleroomba上通过GoPro配件将迷你触摸屏固定在了单脚架结构上,由于lattePanda运行的Windows10是为触摸屏设计的,正好也让使用者更方便地和机器人显示屏上的界面进行交互和设置。

机器人的最顶端安装有NeoPixel 环状LED指示器和ThetaS 360°全景相机。

mQQ70oP.jpg


12. 开发软件控制系统

上图概括了一下软件系统的分布,Teleroomba的软件结构比较复杂,概括来讲包含控制界面,嵌入式部分的代码以及用于网络连接的服务器代码。

控制者端
支持用户界面以及连接输入设备,如操纵杆,VR头盔,采集数据并转化为遥控数据。(node.js)

机器人端
支持控制器与扫地狗的串口通信,文件系统,控制伺服电机以及控制LED指示器。(Node.js/Bash/C/Arduino)

网络连接/服务器
路由,伺服用户界面,建立WebRTC连接以及其他TCP通道。(Front-endJavaScript/Node.js)

视频通话使用了Google的WebRTC技术,技术特点是能够同时收发低延迟视频、音频媒体流和数据流,即进行视频通话时同步发送控制数据。用户界面显示全部为运行在Chrome浏览器中的网页应用。

更多关于WebRTC的内容:https://webrtc.org/



13. 机器人控制

方法一:游戏手柄

我找到了一个有些年头的Logitech EX3D游戏手柄。

在亚马逊上你仍然可以找到这件古董:
https://www.amazon.com/Logitech-Extreme-Joystick-Certified-Refurbished/dp/B00TQ8LNNA/
令我很惊讶的是,通过简单的检索,我居然发现有人居然写了一个node.js模块,可以轻松地得到通过USB传入的信息,随后我可以通过Web Socket将控制传入前端的WebRTC部分进行发送.


通过这个游戏手柄,我可以控制机器人的运动,运行速度,摄像头角度。为了让控制更直观,我开发了一个前端小程序来可视化游戏手柄的具体的移动矢量和实际输出值。



使用游戏手柄可以平滑地控制机器人的运行速度,平滑加速和减速。
机器人正面的屏幕上显示驾驶者,周围的人可以通过后置的无线音响听到他的讲话,并通过麦克风进行交流。



这个短视频显示摄像头角度是如何通过游戏手柄顶部的小手柄控制的。


方法二:键盘和鼠标。

我为没有游戏手柄的情况添加了虚拟手柄,通过鼠标拖拽实现机器人向各个方向的运行。


通过滑动条也可以控制摄像头的朝向。

GVJedmB.jpg

如果你有适于手机的VR头盔,将手机放入VR头盔, 头盔的朝向可以被直接传递给摄像头,与用户脸部方向同步。



VR头盔运动的实时同步

摄像头同步延迟非常低,让我非常惊讶。

在切换到头盔模式的同时,机器人上的显示器会切换为卡通人脸,其眼睛会与摄像头和操纵者视角朝向同步。

操纵者可以一边自由用头部改变摄像头视角一边用游戏手柄或键盘操纵机器人行进。



14. 下一步,360°全景视野

到了最重要的一个功能了,就是实时全景视频回传。
RicohthetaS 可以从其USB或HDMI端口进行视频流输出,但问题是我得到的源视频为两个半球的投影,所以第一件事就是需要将360°视频还原到球面上。

幸运的是我发现有篇博客提供了一段代码可以解决这个问题。
https://bl.ocks.org/mechamogera/5635338a1075baadba0b/

这段代码可以将两个半球投影还原到以three.js创建的两个半球球面上,随后我在此基础上提供了手动校准的功能以达到最好的拼接效果。

更多360°图像投影相关的解释和还原原理可以看这篇文章。
http://qiita.com/mechamogera/items/b6eb59912748bbbd7e5d/

上面的视频展示360°视频拼接系统是如何工作的。




15. 最终!

视频展示胜过千言万语。

在网真机器人行驶的同时,我能够得到看到360°全景的实时图像的每一个角落,进入球形视角,这些功能同时也可以运行在移动设备上,也就是说如果你有Google VR 纸盒或者类似的头盔,便可以体验更加沉浸式的全景视角。

这里有一个从Teleroomba上录制的360°视频。(录于NYUITP),你可以通过点击并拖动鼠标来观看360°全景视野。
https://youtu.be/tDMo28dYrG8


16. 其他功能

用户界面:专注于驾驶

我将Teleroomba的功能进行整理,并安排于这个可折叠的侧栏之中,这允许我全屏显示机器人相机回传图像。

PCXGs03.jpg


调试工具
这个专门为调试设计的状态显示工具以颜色区分具体信息,方便我快速定位系统问题。


LED 行进方向指示器
Teleroomba顶部安装了一个环状的NeoPixel来显示当前的行进状态。

rixzQCW.png

17. 用料清单

我总结了一份制作整个机器人的用料清单,总体开销大约在700美元左右,可以说比大多数在网上找到的网真机器人都要便宜了。除了一些我自定义的组件,大部分组件采购于于亚马逊。总体开发时间算下来大概是6个月。

我将具体的材料单以及购买链接记录在这个Google Doc内。
https://docs.google.com/document/d/1JzjGCMMSeq3ltRw8iQZK2rDNfjw0zbAjN0zkChpK6rI

uHJagcu.jpg
18. 结束与致谢

到这里我开发Teleroomba的故事差不多到这里就结束了,希望这篇博客对阅读它的人有所启发。

最后我想感谢我在NYU ITP的教授,同事以及朋友的帮助。特别感谢iRobot和DFRobot提供的产品开发平台。

关注更多我网站上使用DFRobot的项目http://rubinhuang.com

关于Rubin Huang

Rubin 本科毕业于北京航空航天大学新媒体艺术与设计学院,插画艺术专业。
后于2014年赴纽约大学人机交互专业InteractiveTelecommunication Program获得硕士学位并留校一年任研究员,现为互无线互联网技术公司UbiquitiNetworks产品经理。

LinkedIn链接





1973742214  高级技师

发表于 2018-3-23 20:36:09

佩服佩服,厉害厉害
回复 支持 反对

使用道具 举报

Mingming.Zhang  高级技师

发表于 2018-3-24 00:27:45

本帖最后由 Mingming.Zhang 于 2018-3-26 09:04 编辑

这才是我所追求的创客,干货满满
回复 支持 反对

使用道具 举报

hnyzcj  超级版主

发表于 2018-3-24 07:03:39

加一时日和缓冲,我也可以那样水平
回复 支持 反对

使用道具 举报

lkl0305  中级技师

发表于 2018-3-24 21:08:06

厉害了!
回复 支持 反对

使用道具 举报

KNIGHT-LEE  初级技师

发表于 2018-3-26 09:22:41

强,很有深度的作品
回复 支持 反对

使用道具 举报

35883953538  管理员

发表于 2018-3-26 16:21:31

hnyzcj 发表于 2018-3-24 07:03
加一时日和缓冲,我也可以那样水平

指日可待!~
回复 支持 反对

使用道具 举报

Ash  管理员

发表于 2018-3-26 19:28:15

收下我的膝盖
回复 支持 反对

使用道具 举报

robo027  初级技匠

发表于 2018-3-26 22:31:55

膜拜膜拜,这个一直是我想做的,但方案很简单:5.8G图传套+Arduino蓝牙小车。看完此贴,感觉又有动力了。
回复 支持 反对

使用道具 举报

Rubinhuang  学徒

发表于 2018-3-27 01:40:06

robo027 发表于 2018-3-26 22:31
膜拜膜拜,这个一直是我想做的,但方案很简单:5.8G图传套+Arduino蓝牙小车。看完此贴,感觉又有动力了。 ...

方案不错,不过Wifi的优点是可以实现超远距离连接
在这之前也有一个基于安卓和BLE Bluno的版本, 可以使用手机移动数据。
overview_full_height.jpg



之前也有过一个基于Arduino, 通过iOS设备采集图像并向局域网中推流的验证机。
视频和控制是分开的。

ios.jpg
回复 支持 反对

使用道具 举报

DFH1yCjgr5z  学徒

发表于 2018-3-27 17:23:39

佩服佩服,感觉有点费劲
回复 支持 反对

使用道具 举报

dexin1  中级技师

发表于 2018-3-28 00:08:18

技术到位 插图精美 强强强!!
回复 支持 反对

使用道具 举报

gray6666  中级技匠

发表于 2018-3-28 09:53:36

高大上。。。。。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

安卓机器人  初级技神

发表于 2018-3-29 07:56:41

STEAM教育典例
回复 支持 反对

使用道具 举报

1973742214  高级技师

发表于 2018-3-31 14:05:14

忙问下这个是干嘛用的,未来可以如何发展,有何应用?
回复 支持 反对

使用道具 举报

sophie  管理员

发表于 2018-4-3 10:23:17

1973742214 发表于 2018-3-31 14:05
忙问下这个是干嘛用的,未来可以如何发展,有何应用?

电子“化身”:网真机器人(内容来源:科学网)

未来十年,哪些技术会对我们的生活产生重大影响?近日,英国《新科学家》杂志遴选出了七项技术,并作了解读。今天我们先介绍其中的一项技术——网真机器人。

一般而言,人们在开会的时候肯定不会在同事面前跷着脚休息,但如果面对的是由上千公里之外另一位同事所操控的机器人呢,你还会觉得不礼貌吗?

这是一个与远程控制的网真机器人相关的礼仪问题。未来,这种网真机器人将会成为我们的电子“化身”,通过它,我们可以把自己“传送”到世界任何一个角落去。它将改变我们旅行及与他人互动的方式。

今天的网真机器人,例如VGo Communication公司的VGo和Anybots公司的QB,构造相对简单,只是一个装在轮子上的电视屏幕,配有摄像头和麦克风。它的控制者能够操纵着它四处移动,与人们交谈,控制方式主要是通过网络浏览器。

尽管这看起来有点像唬人的玩意儿,事实却是,网真机器人为它的操控者提供了在另一个地方可以自由移动的物质实体,而且能够有效地参与人群的交流与互动。

“它们有利于增进人与人之间密切的联系。”美国马萨诸塞大学洛厄尔分校机器人研究专家Katherine Tsui说。网真视频会议已经改变了商业运作的模式,并且部分满足了远程联系中人们对近距离的需求,而网真机器人则是未来进一步的发展趋势。

这类机器人能够从根本上提升那些居家一族的生活质量。Leila Takayama是美国加利福尼亚州门洛帕克市机器人技术公司Willow Garage的研究人员,他长期以来致力于研究不同年龄阶段的人们对网真机器人的接受程度,为此,他们还特意收集人们对于走出家门和在公园、博物馆周围散步的看法。

如果网真机器人变得流行,就会产生出新的社会规则。比如,你不能轻易地屏蔽掉一个机器人的视线,使它变得像一部电话,因为机器人操控者的眼睛正通过屏幕瞪着你。如果某人不回你的电子邮件或电话也许并不严重,但是当你操纵的机器人走近某一人群并试图开始交谈,而这些人却毫不理睬,就是另一回事了。

我们习惯于不像尊重人那样尊重机器人,因此,这项技术在多大程度上涉及到了私人空间、骚扰之类的问题;如果你关掉网真机器人身上某人的声音或不耐烦地将机器人推开,是否违反了已有的社会规范,这些问题都需要深入探讨。

回复 支持 反对

使用道具 举报

sophie  管理员

发表于 2018-4-3 10:25:09

1973742214 发表于 2018-3-31 14:05
忙问下这个是干嘛用的,未来可以如何发展,有何应用?

脑电波控制的网真机器人:让残疾人体验户外走动(内容来源:搜狐新闻)




(图片来源于:Alain Herzog / 瑞士洛桑联邦理工学院)

引言

由瑞士洛桑联邦高等理工学院开发,脑电波控制的网真机器人,让严重运动障碍的人们,体验更高级的独立能力。位于中欧的19个人参与了测试,其中9个四肢瘫痪。所有人,连接到一个大脑和机器的接口,来下达一般的导航指令来控制机器人。然后,机器人自己检测和避免障碍,调整步伐。描述这项研究的论文发表在Proceedings of the IEEE杂志上。

原理

机器人,基于费斯托公司的Robotino平台而设计,具有3个轮子,9个红外传感器,以及1个用于障碍检测的网络摄像头。研究人员增加了1个集成摄像头,以便它可以作为一个网真机器人使用。人们通过笔记本电脑摄像头控制机器人,通过它可以和他人进行skype会议和交流,显示屏幕上显示着他们的面孔。

这个半自动的机器人,由 TOBI(大脑-电脑交互工具)项目设计的电极镶嵌的帽子进行控制。这个项目从2008年到2013年运行,并且专注于开发实践技术,来提高残疾人的生活质量,帮助他们康复。接受测试者,学习操控机器人,第一步映射手和脚的运动,来帮助根据脑电波校准系统,然后演练两个运动影像任务。

尽管,控制机器人的人不告诉它 ,机器人仍然可以自动躲避障碍物。它不需要用户提供任何指令,也将继续按照指示的路径前进,直到给定指令让它停止。当机器人正处于既定路线上时,它允许用户稍作休息。这样可以防止用户变得疲惫。



(图片来源于:Alain Herzog / 瑞士洛桑联邦理工学院)

测试情况

瑞士洛桑联邦理工学院的研究人员雇佣了,9个具有运动障碍和10个健康的受测试者。他们来自意大利,德国和瑞士。然后,教会他们尝试使用机器人。这些机器人,在放置在瑞士洛桑联邦理工学院的实验室里。接受测试的人员,之前从未接触过机器人。他们使用他们的意念,通过网络,对机器人进行控制。只需要花费少于10天的时间进行培训,就可让所有受测试者掌握如何控制机器人。并且测试显示,健康的和残疾的受访者并没有区别。

研究人员希望意念控制的机器人们,使用不同的接口,或者包含更高级别的人工智能,成为严重残疾的人士日常生活的一部分,即使,他们的身体被限制在床上,他们仍然可以体验行走以及与人交谈。但是,首席研究员José del R. Millán没有进行任何预言。“这个会发生,”他说,“保险公司将会资助这些技术。”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail