Welcome::欢迎来访

============================================================================

欢迎阁下光临 云飞机器人实验室

博主 戴晓天 (Yunfei) 致力于嵌入式系统与机器人研究。

● 云飞机器人实验室是什么?

云飞机器人实验室是一个 “专注于嵌入式系统应用,致力于智能系统研究” 的个人科技博客。

实验室专注于嵌入式系统、计算机与机器人领域,包括嵌入式处理、程序语言、实时系统、机器人系统和智能控制等。

● 目标与愿景

云飞实验室的宗旨是:“让机器充满智慧”,旨在利用嵌入式和机器人技术改变人类的生活方式。

● 沟通与交流

欢迎其他有相关爱好的个人或组织与我沟通交流。同时本网站接受电子产品评测、电子类文章约稿等服务。如要交换链接请与我邮件联系,接受各种电子、科技与工程类博客。

● 版权声明

本网站所有内容除特别声明,均为云飞机器人实验室原创。作者保留对文章的一切权力。转载请注明原文出处,并保留原文的版式与结构。

============================================================================

Specials::特别专题>>

RaspberryPi_Logo arduino_logo_text gameduino2_logo ros_logo stm32_logo c-prog

============================================================================

News::网站动态 >>

2016/04/20   推荐博文: 树莓派3代介绍及历代树莓派比较

2014/10/29   Gameduino 2中文参考手册历时数月翻译完成,现已正式发布!点击下载

2014/08/03   项目上线: Gameduino 2 (Arduino图形界面扩展板)  点击访问

2013/06/11   项目上线: 妖姬 – 互联网时代的电子植物

2013/03/24   专栏: 树莓派Raspberry PI,点击访问

2013/01/11   项目上线: 机器人室内定位项目立项,点击查看

Read more »

This is a sticky post! continue reading?

Linux系统全方位调试与维护工具整理

俗话说:“工欲善其事,必先利其器。”

在多年维护和开发Linux服务器的过程中,我接触了一些常用的开发和调试工具。本文将这些工具整理在一起,便于指导读者选择正确的工具。文中对于工具只有简单的介绍,需要详细的用法可以--help或自行Google。

本文针对的环境是CentOS/RedHat服务器 (需要epel库)。其他发行版应该也有相应的命令,但我没有一一测试。

系统管理

  • ssh: 远程登录
  • last, lastlog: 查看用户登录历史
  • cron: 设置周期运行的定时任务
  • at: 设置运行一次的定时任务
  • screen/nohup: 在后台运行程序,程序不会随着shell关闭而退出
  • rsync: 文件夹同步
  • pv: 文件拷贝(重定向方法,含进度条,但会丢失文件的权限信息)
  • lshw: 显示硬件信息
  • lscpu: 显示CPU信息
  • dmesg: 显示系统日志

资源监控

通过查看系统资源使用,快速定位性能瓶颈与系统异常。

  • 内存
    • free: 当前内存使用情况
  • 硬盘
    • df: 硬盘空间使用情况
    • iotop: 磁盘IO使用实时监视
    • ncdu: 分析文件夹使用的磁盘大小
  • CPU
    • 见进程调试
  • 网络
    • nethogs: 监控当前活跃的网络连接
    • nload: 主机上传/下载流量监控
  • 综合
    • glances: 系统资源、进程查看工具(我的最爱)
    • linux-dash/pyDash: 系统资源监控(基于网页)

内核调试

  • perf
  • kgdb: 内核调试工具
  • lsmod: 显示所有被使用的module
  • vmstat

进程调试

  • ps: 查看当前进程
  • top: 查看当前进程以及进程资源占用情况(动态更新)
  • htop: top替代工具,信息丰富,可以查看树状进程信息
  • pidof: 按进程名查PID
  • skill: kill的升级版,通过名字(而不是PID)kill进程

文件调试

  • tree: 将文件夹按树形显示
  • lsof: 显示当前程序文件(包括虚拟文件)打开情况
  • mc: Midnight Commander知名文件管理器

网络调试

  • curl: 发送HTTP, REST请求
  • tcpdump: 抓包工具,通过自带的与或非逻辑可以组合成复杂的过滤条件
  • wireshark: 类似tcpdump的老牌抓包神器
  • nmap: 网络开放端口扫描
  • ip: 网络管理工具集
  • fping: ping升级版
  • netstat
  • nicstat
  • iptraf

程序调试

  • gdb: gnu项目下的代码调试器
  • strace: 打印出进程调用了哪些系统调用。
  • ldd: 查看程序依赖库。
  • objdump: 打印目标码和反汇编结果。
  • xargs: 读取输入流并将读取的文本作为指定命令行工具的命令行参数。
  • ipcs: 显示进程间通信设施状态

其他工具

  • vim/nano: 文本编辑器
  • grep, sed: 文本信息处理
  • awk: 表处理,很强大的二维表处理功能,可以对格式化文本输出进行处理
  • jq: 命令行的json查询和格式化工具,适合查看REST接口的输出

References

[1] 用十条命令在一分钟内检查Linux服务器性能, http://www.infoq.com/cn/news/2015/12/linux-performance
[2] Linux Performance, Brendan D. Gregg, http://www.brendangregg.com/linuxperf

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

# 智能语音音箱之争

最近几周“智能音箱”这个概念被炒得很火,各个公司都陆续推出/或宣布将要推出自己的智能音箱产品。本周的机器说就和大家聊聊我对智能音箱的看法。

使智能音箱成为现阶段焦点的起源,是亚马逊Amazon在2015年6月推出的Echo智能音箱。这款音箱在传统的无线音箱基础上,增加了语音交互的功能。借助内置的Alexa语音识别系统,Echo可以实现语音购物、定时提醒、音乐播放,以及通过第三方app与其他硬件设备对接等功能。


▲ 图. 亚马逊Echo音箱

亚马逊的Echo推出之后,又推出了一款名为Amazon Dot的小型设备(实际就是Echo去除了发声单元,保留360度全向麦克风)。谷歌也在去年11月宣布了自己的智能音箱产品:Google Home Smart Speaker. 这款设备是继Google Chromecast, Chromecast Audio和Pixel手机之后的又一个硬件产品。不得不说,谷歌的产品从设计感和美学的角度上就完爆了Amazon.


▲ 图. Google Home Smart Spearker

至此之后,今年6月在苹果的WWDC 2017发布大会上,苹果竟然也推出了自己的智能音箱产品:Apple HomePod. 与其他两家竞争对手主推“智能”不同,Apple打的一手苹果的情怀:HomePod是iPod的扩展和延续,是未来家庭中的新音乐中心。这就决定了Apple HomePod会更注重音质。苹果也是很早就在布局智能家居战略,其“HomeKit”系统正在扩大完善。有消息称,苹果将简化硬件验证环节,让更多的厂家可以加入到其智能家居的阵营。


▲ 图. Apple的HomePod


▲ 图. 官方的HomePod结构图

这样看来,各个公司卖音箱只是第一步,实际都是要和自己的虚拟/实体业务进行捆绑,扩大自己系统的影响力。从亚马逊来看,Echo是一个好的验证Alexa的平台。目前Alexa的用户数远比不上Google Assistant和Siri,所以亚马逊也希望通过这款产品,提高在智能硬件上的竞争力,与自己完全的虚拟经济实行对接。而谷歌则一直善于研发智能硬件设备,也有着把科技带入寻常家的愿景。至于苹果,自然不想在这场竞争中失利,何况自己的Siri和在AI领域的积累也不少。苹果也需要摆脱自己全靠系统集成的形象。

智能音箱实际上是之前智能家居浪潮的新一波,得益于基于深度学习的语音识别技术。未来以AI作为中控的智能家居系统,可能不仅仅是科幻电影里面的憧憬了。也许未来的中控系统不是智能音箱,也许每一个设备都可以作为控制的入口。未来生活的形式或许现在还很难想象的到。

附. 国内同类型产品

  • 京东:叮咚
  • 阿里:天猫精灵 x1
  • 百度:度秘(Duer)
  • 腾讯:智能音箱“耳朵”

「机器说」by 云飞机器人实验室

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

更多机器人和嵌入式系统的技术文章可访问云飞机器人实验室


 

「机器说」- 机器人领域一周关键词 (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 »