Category Archives: Journal

「机器说」- 机器人领域一周关键词 (170531)

# Alpha GO 2.0

上周最大的看点就是Alpha GO与柯杰的巅峰对战了。在经过一年的迭代之后,Alpha Go 2.0终于登上神坛,最终以三局全胜拿下了比赛。根据之前几个月Alpha GO在平台上对决的不败表现来看,柯杰本来就胜望不大,这次比赛的结果也就在预料之中了。然而这次Alpha GO的胜利却有标志性的意义:那就是人工智能已经可以挑战人类认为的“高级”活动了。随着这场胜利到来的是新的一波“人工智能威胁论”:如果机器不仅可以完成普通的体力劳动,还可以完成脑力甚至是创造力的活动,那么很多工作都会被机器人取代。每一次生产工具的革新都将带来社会分工的变革:从工业革命的历史中看,具有人工智慧的机器人势必会蚕食大量原本属于工人的工作;然而社会的进步就是以这种牺牲为代价的,通过工具改良提高的社会总体产值,会反过来影响这些因为新技术失业的人,迫使他们转向新的行业。我们不能还和18世纪一样,因为工具威胁到了自己的工作,就加入了反对的阵营。我们不能忽略这种革新是良性的。当然,想要机器与人和谐相处,我们需要对它们有足够多的认知和控制。但正如凯文凯利说的一样:我们为了达成目标所赋予机器的自由,最终会让我们失去对它们的控制,这是必然的、也是需要我们接受的。

# DJI Spark

“晓” (DJI Spark) 是大疆继Phantom和Mavic之后的新一代无人机。本次大疆瞄准了小型、自拍无人机市场,独特的人脸识别开机起飞与手势识别操控,彻底让Spark摆脱遥控器控制。“晓”的最终售价应该是在3000元左右,是Mavic的一半。当时Mavic出来的时候就心动的想买一个,这次Spark的定价总算是在一般用户的承受范围之内了。然而我还是对这款无人机的定位表示怀疑:

  • 体积上的缩小势必降低了整体性能(最高航速、续航时间、成像清晰度4K降到了1080P,抗风性也会下降);
  • 和Mavic相比,Spark的价格虽然亲民,但是功能上越来越接近“玩具”级别。普通人可能不愿意花这个价格买一个不上不下的产品,可能更愿意买各方面都比较成熟的Mavic,尤其是便携性上Spark也没有太大优势。加上现在越发收紧的无人机管制,可能真正的用户需求量不会很大。

无论如何,这是大疆从专业级向业余级过渡的产品,也让大疆产品线的层次越发分明。

(信息来源 – 机器人Robotics China)

# FCIS

FCIS (Fully Convolutional Instance-aware Semantic Segmentation) 是在COCO-16上获奖的图像分割算法,该算法可以识别、标记图像中的物体种类,从而进行精细的图像分割:

该项目最近在Github上开源了,项目地址在:https://github.com/msracver/FCIS. 我并不太了解图像分割技术,所以没有去了解具体的技术细节,有需要的读者请自行解读。

# Deep Voice 2.0

百度研究院近日发布了一款基于神经网络构建的文本-语音转化 (Text-to-Speech) 系统Deep Voice 2.0,这是今年二月份发布的Deep Voice的第二版。但当时的系统只能转化20小时语音,而且只有一种声音。不到三个月的时间,这个系统得到大幅升级,能够生成数百个小时的语音,拥有数百种声音。我去Baidu Research的相关网页体验了一下,生成的合成语音真假难辨:http://research.baidu.com/deep-voice-2-multi-speaker-neural-text-speech/. 这项技术配合已经比较成熟的Voice Recognition,就可以完成语音信息的输入-输出闭环了。然而相比主流的语音生成模型技术,通过神经网络生成似乎缺乏灵活性,这个技术百度要如何完善和应用也还不明朗。

(信息来源 – 新智元)


「机器说」by 云飞机器人实验室:关注机器人技术的最新发展,三分钟为你解读每周机器人领域的核心关键词。每周一篇,在我的微博、知乎专栏和云飞机器人实验室网站同步更新。


 

「机器说」- 机器人领域一周关键词 (170521)

# Google I/O大会

5月17日,谷歌在山景城举办了本年度的谷歌I/O开发者大会。本次大会上谷歌重申了自己AI first的战略,不断将最新的机器学习技术应用到语音识别和图像处理产品中。此外,谷歌宣布了下一代的TPU,Cloud TPU,其实是将多块TPU集成组合到一个TPU版图上:

这种任意组合的方式可以让谷歌根据应用需求更自由的选择配置,为自己的ML服务提供原动力。谷歌提到自己也将提供TPU云租赁服务。

谷歌将人工智能方面的工作综合到Google.ai之下,并提出AutoML的方法 – 用神经网络(一个基于RNN的控制器)来设计神经网络的结构。 这种方法我理解的就是通过实验-反馈的方法来获得最优架构的过程。

最后,谷歌发布了用于移动端的机器学习库 – TensorFlowLite,希望助力移动端语音识别、视觉搜索和增强现实的发展。

谷歌在ML和AI上一直独领群雄,而且一直是做让大众和用户受益的产品。这次I/O大会提到的将Google Assitant广泛应用到硬件产品中,也是我十分看好的应用。虽然亚马逊现在先行一步,已经将Alexa做在Echo上。但是谷歌凭借其在语音识别和硬件上的经验,应该很容易就可以后来居上。

(信息来源 – 机器之心)

# Google Lens

Google Lens是在本次谷歌I/O大会上发布的一款图像识别和理解软件。发布会上demo了这款软件实现拍照识花、拍WiFi密码自动连接路由、通过店面照片调取评价等功能。

之所以单独说这个软件,是因为我个人觉得这个会是划时代的killer级应用。目前谷歌积累了大量图像识别和图像语义理解的技术,和Google Assistant的语音技术结合后,实际上就解决了机器人的一个大问题 – 自然语言交互接口。通过看和听两种感官,实现对命令和意图的理解。虽然这个demo展示的功能很少,但是如果这个idea实现,那么机器可以将“视听 – 理解 – 行动”这个链条中最重要的“理解”给填补上。我们离真正的通用人工智能也就不远了。至少,可以通过视觉的额外输入,来和语音形成互补或加强。比如拍一张照片后问:“这个狗的品种是什么?”未来可应用的空间其实非常大。

(信息来源 – Techcrunch)

# 激光雷达之争

近日Waymo指控Uber盗用激光雷达专利的官司有了新进展。涉事前Waymo员工被停工,相关窃取机密文件也被要求归还Waymo. 这起案件被看作自动驾驶专利案的开端。激光雷达在整个自动驾驶层面的地位毋庸置疑,也是各大公司在实现自动驾驶道路上的兵家必争之地。相比国外公司,中国公司在自动驾驶专利上的布局还不足。等到技术差异化越来越小时,势必需要依赖核心专利来增强自己的竞争力,国内的自动驾驶公司现在要慢慢在技术专利上积攒优势。

(信息来源 – 车云)

关注「机器说」by 云飞机器人实验室:关注机器人技术的实际发展,三分钟看完每周机器人领域的核心关键词。每周一篇,微博、知乎专栏、博客同步更新。

使用Markdown进行写作和文字记录

1. 背景

Markdown是一种语法简洁的标记语言 (Markup Language)。Markdown可以使用任何一种纯文本编辑器进行编辑,同时可以渲染、生成HTML。Markdown虽然是标记语言,但是和HTML比起来具有更好的可读性。与富文本(Rich Format Text, RTF)格式相比,Markdown的纯文本特性让使用者可以更加关注内容,专注于文字的表达。我多年前在友人的推荐下开始尝试用Markdown写作。我一开始并不习惯这种所写和所得分离的方式,但是之后也慢慢习惯、喜欢上了这种内容与格式分离的文字编辑方式。此文我整理了我关于Markdown的认识(本文也是通过Makrdown书写的),同时我推荐大家开始尝试用Markdown生产笔记、日记、文档、博客等文字信息。

2. 使用Markdown的好处

先说一下Markdown语言的优势:

  • 记录速度快:比起其他文字格式,Markdown可以更快地记录信息,编辑过程只需要键盘参与。基本的文字格式 (如标题,粗体,斜体等)可以通过快捷键实现,利用序号、列表功能还可以快速生成层次化的段落结构。
  • Markdown是纯文本格式,可以用普通文本编辑器编辑(nano, VIM, Notepad++等),方便修改和共享。
  • 可移植性好。工具是不断变迁的,对于富文本工具而言,更换工具就意味着文字格式无法完美保留(当初从写字板到word);而对于Markdown而言,因为源文件本身并没有格式编码,所以更换工具几乎不会影响版式。不同工具的渲染结果也几乎没有差别。
  • 重内容,轻版式。很多时候我们会浪费很多精力在文字的排版和格式统一上,而Markdown简单清晰的编辑方式,让我们可以集中于内容的编辑。
  • 可以生成HTML。Markdown在设计时就完全兼容HTML,可以直接插入HTML代码(但是不推荐,会影响纯文本的优点)。Markdown配合不同的CSS可以渲染成不同风格的网页,Markdown还可以导出为pdf。除此之外还可以渲染成多种格式(大多数编辑器有导出功能,或者用Pandoc转换)。
  • 图文分离,备份或者传播时简单、信息的体积小。

3. 使用Markdown的坏处

然而Markdown也并非完美:

  • 所见非所得。编辑器和Live Preview是独立的系统,如果需要实时预览,则需要编辑工具的支持。
  • 插图不方便。在富文本系统中可以直接copy + paste,而一般的Markdown系统则需要单独的文件夹存储图片,还需要额外输入图片路径。
  • 文字的表示形式有限。相比富文本,Markdown无法随心所欲地修改文字的属性(字体、颜色、大小等)。如果需要特殊的文字格式,需要插入额外的html属性,但是这些会破坏纯文本的移植性。
  • 页面版式、布局相对固定。总体来说只能是线性的记录方式。如果需要自由的图文混排,其他工具如Word或者Onenote是更好的平台。

Read more »

如何构建和管理自己的知识系统

1. 背景

三年前,我在做硕士毕业设计的时候第一次使用Evernote(印象笔记)收集资料,之后就一直使用Evernote记录一些备忘和生活琐事,但也没有形成相对完整的系统。开始读博士之后,我习惯随手在论文上记批注和笔记,觉得这样个人观点和原文的耦合度会比较高。但是等到要检索和引用资料时,脑中对这些知识点有些印象,可很多资料就是找不到出处,这时又要重新谷歌或者去翻文件夹。这让我思考是否需要将笔记做成电子形式,这样检索和使用的时候会比较方便,知识也能线性积累。去纸化的过程是比较痛苦的,因为我们从小到大习惯了纸质笔记这种记录方式。我们的工具十分简单(纸和笔),却可以记录各种类别的信息(文字、结构图、流程图、批注)。然而到了电子时代,我们可用的工具很多,但却很难形成和纸质笔记相比的“灵活性”。当然,相比传统的笔记方式,电子笔记可以多次修改、任意排序和整理、发布和分享、互相引用与检索,但有的时候却不如传统笔记那么“直观”和“简单”(想想用pdf做标注 v.s. 在书上直接做批注 或是 用画图软件画一个流程图 v.s. 在纸上随手画一个流程图)。在过去的一年时间里,我一直在思考和实践电子化笔记系统的可行性,以及如何凸显和最大程度发挥电子笔记的优势。而我发现,电子笔记不仅有上述提到的几个优势,还可以成为构建和强化知识系统的有力工具。

这里,我将一切广义上可以提高人对某一事物或领域的认知或记忆的信息(以文字为主)称为知识,而将通过计算机、平板、手机等手段记录个性化知识的方式称为电子笔记。此文分享了我对于知识和记笔记的理解,以及通过电子化工具构建知识系统的思考和经验。

2. 为什么需要记笔记?

上一节聊了我为什么需要将笔记电子化的动机,现在简单说一下我们为什么需要记笔记。每个人都有这样的经历:和别人聊天时,总是有一些感觉在嘴边的东西,大脑却无法回忆起来;或者某天去超市购物时,明明觉得需要买什么,却怎么也想不起来。不管我们认不认同,人脑的潜力不是无限的。理解我们自身局限性的其中之一,就是认识到人脑是有局限性的,并且记忆的容量是有限的。所以构建一个笔记/知识信息系统,就是要补偿人脑的这种局限性,将笔记系统作为我们的第二大脑。这个观点已经得到了主流大众的认可。我们知道记笔记需要花费时间,这种时间实际上是一种对未来的投资。我们一般记录事情的动机有两个:一是为了增强对摄取信息的认知;二是为了日后需要的时候可以回想起来。大部分人也应该可以认同记笔记是强化知识的重要手段。除此之外,记笔记的核心价值是“使用”。也就是说,一个好的笔记应该是有使用价值的。一个shopping list可以让你在逛超市的时候买齐所有的东西;一篇日记让你可以回忆过去自己经历的事情;一篇论文笔记让人在需要的时候可以快速回忆起论文的核心观点;一个programming reference可以让你在编程的时候快速想起API的用法,而不用每次都去Google. 这些都是使用价值,是你记录时投资时间换来的回报。记录信息的本质是提供使用价值,所以评价一个笔记系统也应该用”可使用性”为评价方式。有一种观点是:现在(几乎)所有的信息都能在因特网上搜索到,所以需要信息的时候都可以即刻去搜索。这种观点本身没有问题,但是以目前的搜索技术和因特网的归档程度而言,这种方式的时间开销更高:因为你要从海量信息中筛选、判断、提炼出你想要的那一部分信息。而笔记则是“一次记录,多次使用”,一劳永逸。并且有新的知识点时,可以修改、完善之前的知识(另一点电子笔记的优势就是修改起来十分简单)。我们记笔记,就是让笔记成为知识的载体,也是为了日后需要这个知识时提供便捷。

Read more »

你好,2017!

又是新的一年。岁月匆匆,不给人时间回头看看,就又让人上路了。

今年更新了10篇左右的博文:

  • 新增的”C语言深度”专题来源于我在嵌入式课程助教过程中发现的C语言的错误使用。我觉得C和C++是机器人领域最重要的两个语言,所以希望在这方面增加一些内容。
  • 另几篇博文是介绍新发布的树莓派3代的。今年除了树莓派3,还入手了若干树莓派Zero。因为Zero很难买到,所以一下屯了5、6个。这批Zero准备用在智能家庭的节点中,但是应用场景目前还不明确,所以没有给大家做专题介绍。

明年的工作计划:

  • 承诺的智能家庭系统还没有完全开发完成,全部完成后会找时间公布。目前已完成的部分:中心服务器的部署,NAS,多媒体中心,一个传感器节点部署好了(已经上报了半年的温湿度数据)。二氧化碳、PM2.5传感器和无线组网模块选购好了,但还没有时间调试。另一个困难是控制数据的下发和传感器数据、系统参数的展现,我想基于BS架构(Flask + socket.io / Node.js + Ajax)。我没有网页编程的基础,而且中间涉及Real-time和asynchronous的问题,所以还没有时间解决。
  • More topics on Robotics. 实验室还是以机器人为主题的,去年有点跑偏了(嵌入式系统),今年重新回归到主题上。重点我想要关注的内容点有:增强学习、概率决策、机器视觉、ROS、机器(深度)学习。
  • 博主现在长期在国外生活,关于将网站转换为全英文的想法已有很久。但是还是一直很挣扎,考虑到很多内容对国内的读者会有帮助,所以今年还是保留双语写作。

最后祝大家2017年工作、学习顺利!

近日关注的几个KickStarter项目

KickStarter是国外最著名的众筹网站。项目发起者可以在只有基本idea的情况下提前发布产品信息,以获得来自个人的资金支持,达到满意的标准后再进行产品的实际生产,从而减少了产品发售的风险。 这几天在KS上比较热门的科技项目都是智能设备/可穿戴设备,这里我聊一聊几个我最近关注的项目。

1. Sweep激光雷达

项目主页:https://www.kickstarter.com/projects/scanse/sweep-scanning-lidar/description

sweep
▲ 图1. Sweep低成本激光雷达

激光雷达是机器人常用的传感器外设,用于快速扫描、感知环境存在中的障碍物。激光雷达通过激光旋转扫射,再测量激光返回时间的方式,对周围障碍物的距离进行快速估算。传感器输出的点云数据可以进行三维建模,最终辅助机器人进行导航。目前常用的激光传感器品牌为 HOKUYO,售价在几万至几十万元。传统的激光雷达使用光学振镜进行激光扫描,通过计算激光束相位差进行距离计算。而低成本的激光雷达通过电机控制激光的发射角度,使用视觉原理进行距离估算。在牺牲了扫描速度的情况下,大幅度降低了成本。关于低成本激光雷达的设计原理,可以参照CSK兄的博文:自制低成本3D激光扫描测距仪(3D激光雷达)

sweep-demo
▲ 图2. Sweep工作在四轴飞行器上(慢速摄影)

以下是由IEEE Spectrum网站整理的Sweep与其他常见激光雷达的参数对比。Sweep的价格只有专业激光雷达的1/5,但刷新速度(Scan Rate)只有专业传感器的1/4。其检测距离精度为1cm,精度为1 – 2%,可以满足一般的机器人地图构建与导航应用。图表中的 robopeak 现改名为 SLAMTECRPLIDAR 也在最近推出了新款 RPLIAR A2,在性能上相比一代做了很大提升 (10Hz刷新率),价格和Sweep也很相似。目前Sweep的众筹已经结束,最终筹款$272,990,共有1,010个支持者。官网上可以预购,价格为$255,折合人民币1680元。

sweep-spec
▲ 图3. Sweep与其他激光雷达的参数对比

 

2. Pebble 2智能手表

项目主页:https://www.kickstarter.com/projects/597507018/pebble-2-time-2-and-core-an-entirely-new-3g-ultra

pebble_cover
▲ 图4. Pebble智能手表第二代

大名鼎鼎的智能手表先祖Pebble再次回到KickStarter。这次他们带来的是最新的两款手表产品:Pebble 2和Pebble Time 2。前者是廉价型,后者为Premium高级版本。这次新版本的Pebble相比上一代的主要改变有:

1、增加了心率传感器。现在心率传感器已经是智能手表的标配了,Pebble自然要与时俱进;
2、增加了麦克风外设,支持语音信息回复,应该还可以通过Google Voice (Android) 和Siri (iOS) 进行语音控制);
3、核心处理器从Cortex M3升级为M4,有更大的信号处理能力;
4、在增加了额外的传感器之后,防水能力从50m下降到30m,但是依然足够日常使用;
5、Pebble Time 2实际上是上一代的Pebble Time Steel,Pebble Steel这个型号可能不会再推出。

pebble
▲ 图5. Pebble 2和Pebble Time 2

pebble2_colors
▲ 图6. Pebble 2有五种可选颜色

新产品的两个版本Pebble 2和Pebble Time 2两者的主要区别有:

1、Pebble Time 2的屏幕尺寸更大 ,同时使用的是彩色e-ink屏,而Pebble 2是黑白灰度e-ink屏 (e-ink即Kindle所使用的电纸屏,功耗极低);
2、外观和材质上,Pebble Time 2更佳,Pebble 2则看上去比较廉价;
3、当然,Pebble Time 2的价格比Pebble 2多70%。

Read more »

如何做一个好的博客

我从2010年开始写博客。在过去的五年多时间里,除了自然而然增长的博文数量外,我的博文质量也在潜移默化的提高。然而这种质量的提高并不完全是自然形成的,这是需要不断思考博客的核心价值,同时在不断迭代的设计中艰难地产生的。每个人对自己的博客有一个定位,也有自己对于好博客的一套衡量标准。我从我自己以往产生的经验,来谈谈我眼中的好博客应该是什么样子的。

首先,一个好的博客需要是原创的,至少是半原创的。没有人喜欢整个网站全是复制-粘贴来的博文,这不光来自复制过程中产生的版式错误,而是这种复制的方式的本质是欠思考的、不系统的。行为上的懒惰必然导致思维上的懒惰,这样得来的文章只会显得杂乱无章,而不能体现任何博主自身的意图。可惜的是,这样的博客占了很大一部分。我想很多人也许并无意将自己的博客给别人看,而只是作为自己知识的索引。然而即使是这样,系统的整理也是必须的。这是一个吸收与理解知识的最好机会,有时甚至比文章自身带来的价值更大。

其次,是核心主题。所谓主题,就是整个博客中的博文是耦合或者是弱耦合的。制造主题的方式有很多,其中之一就是采用博文系列或专题的方式。比如云飞实验室以机器人和嵌入式为主题,也开发了热门的树莓派、Arduino和STM32等专题。正如写文章一样,博文的内容大多是围绕一个主题的。如果偏题太多,同样就会失去博客自己的特色。记住,你的博客是一个博客,而不是一个分享一切信息的网站。想要很好的做到这一点,你需要有自己假象的用户。比如对我自己而言,我的假象用户是嵌入式工程师,机器人爱好者,Makers。我每考虑创作写一篇博文,都会首先站在读者的角度去考虑。我会去判断这篇博文对读者的价值是多少?他们是否感兴趣?能不能帮助他们/引发更深层的扩展和思考?在这个过程中会有很多取舍。可能会遇到你很想发布,然而偏离主题,远离读者的博文。这是需要避免的。

再者,我就觉得是博客设计。我所说的设计,不仅包括网站的CSS版式,也包含了文章内部的组织。总体上来说,就是要做到简洁。简洁就是去除不必要的元素,避免华而不实的特效、动画、插件等。这些元素有时会破坏博客整体的平衡性,也会让读者分散精力。简洁可以给读者创造出纯净的阅读体验。而美就会略为主观了。我所理解的美,包括文章的段落结构,图片的尺寸、配色、位置,示例代码的优美性。以我的经验来看,美是需要用心才能做到的。需要让自己变得沉静,敏感,细腻。美的产生与其说是与生俱来,不如说是精雕细琢的产物。对美的感受也有进化的过程(但我觉得总体上是向正方向前进的)。很多时候,我会去看自己很久之前的博文,如果觉得做的还不够好,会再仔细修改。我也经常从别人的网站和博客中吸取经验,学习如何更好的排版、安插图片和代码等。这些需要一个人的审美层次,然而更多时候是花费时间和精力去雕琢而成的。

这些是我多年来一直在思考和遵循的原则,今日突然想与诸位分享之,便有此文。

戴晓天
2016年04月21日 于 英国约克

两轮自平衡机器人 | 研究计划

我一直对自平衡小车十分感兴趣,最早在关注Segway的时候就想玩一玩自平衡算法(当时大约还是2010年)。然而那时一无业余时间,二无设计能力,于是搁浅至今。今年5月份回国的时候,这个想法重新占上心头,于是在淘宝选够了一款评价较好的平衡车,总价不过400大洋。谁知回到英国,自己又懈怠了下来,除了偶尔拿出来当玩具玩两下,也没有仔细深入研究。这样下去自然不行,然而深入研究确实需要不少精力,只能在此痛下决心一定要把里因外果弄清楚。

虽然之前没有正式做过平衡车,然后对于这个系统还是有所了解的,其中存在的研究问题大概如下:

● 硬件设计:电机选型、电机驱动、速度反馈传感器、惯性传感器MEMS、电源、电池、MCU、通信。因为硬件设计实在繁琐,其中原理并不复杂,调试却颇费功夫,所以直接购买硬件成品;

● 系统建模:两轮自平衡的系统模型与一阶倒立摆应该是一样的。系统模型并非必须,但是通过系统模型可以了解系统特性,也可以做一些软件仿真,方便控制器的参数调节。系统的最终模型可以是s域的传递函数模型 (transfer function) 也可以是时域的状态空间模型 (state-space model);

● 传感器数据处理:主要是对惯性传感器的数据进行滤波与分析。滤波的目的是排除系统的动态扰动以及传感器的动态噪声,主要算法应该是互补滤波器 (Complementary Filter) 和卡尔曼滤波器 (Kalman Filter)。互补滤波器的算法实现较简单,而卡尔曼滤波器虽然复杂但可以和状态空间模型结合,设计性能更佳的LQG控制器;

● 控制器设计:常用的为PID控制器和状态空间下的LQR (Linear Quadratic Regulator) 或LQG (Linear-Quadratic-Gaussian) 控制器;

● 任务设计及实时性保证:整个软件有实时性要求,倾向于使用免费的FreeRTOS实时操作系统。操作系统采用静态优先级调度,优先级基于任务周期。系统中的主要任务有:传感器采集任务、传感器滤波与分析任务、控制器任务、电机转速调制任务、通信任务。

整个研究对我来说有三个目的:
1)研究运动传感器数据滤波与处理;
2)研究系统建模与控制器设计;
3)研究FreeRTOS的使用方法以及验证相关的实时性理论。

因为还未阅读相关资料,以上设计计划可能还有遗漏、错误之处,日后发现再做修正。