|
楼主 |
发表于 2014-9-1 17:57:05
|
显示全部楼层
21. 开源机器视觉软件(或开源数字摄影测量软件)
机器视觉,或计算机视觉,与数字摄影测量系统,利用传感器获得的光谱、电磁波谱、或其他波动信息,测量物体几何或特性,重建三维图形,识别物体。
UESOFT设想利用现有开源视觉软件库,开发可以运行在手机或嵌入式系统的开源机器视觉软件,用于物联网或各种测量。
有一些开源的计算机视觉库或应用如opencv,openmvg,openrtm,openvgr,bigSFM,bundler,cmvs,pmvs,openvss
开源摄影测量:ossim
开源机器人:ROS、Gazebo、Poppy Humanoid、iCub、Jasmine、ROP、OpenROV、Open Hand、YARP、Orocos、DFrobot、linuxCNC。
开源无人车:ardurover
开源无人机:ardupilotmega(apm)、arducopter、Pixhawk、Paparazzi(PPZ) 、OpenPilot、TauLabs、cc3d、mwc
21.1 开源sfm
21.1.1 OpenMVG
openMVG 是一款c/c++写成的开源的sfm(struct-from-motion)软件、它在某些方面要优于Bundler、可以利用N幅任意拍摄的照片、重建场景的三维模型。SFM 指的是在计算机视觉中的从运动到结构,以及在摄影测量中的空中三角测量与光束法平差。
21.1.2 Bundler http://www.cs.cornell.edu/~snavely/bundler/
在sift匹配处理之后根据匹配关系生成track匹配链,有矛盾的链(同一张图片中有两个特征点)则其中所有包含的特征去除;
Bundler需要求解的参数太多,而两相机模型相对容易计算,然后在这个初始的模型上增加相机,(种子重构、生长策略)
主要步骤为:
1.选择稳健的初始匹配点对
存在很多启发式算法,这里采用的是图片对之间至少需要100个匹配特征,并且num(Homography)/ num(Fmarix)的值要尽量小;
当匹配间的视差太大并且场景不是平面的话(平面遮挡方面没有什么影响)不太适合
2.初始化两相机SFM模型
内参未知(多义性)假设只存在焦距一个未知变量
求解本质矩阵(脱离内参信息)5点算法求解
3.存在与模型连通的图片(track信息),执行下面操作
选出其中对当前重构出来点可见最多的图片计算这个相机的参数(直接线性变换DLT)
三角化求解出新的三维点(这张图片引入的还未重构的track)
使用集束调整(Bundler Ajustment)优化模型(相机参数与三维点坐标)
调整相机参数和点坐标,最小化g(重投影误差累积值)
最小化的理想目标自然是完全契合,这是一个overconstrained最优化问题,自然归结于最小二乘法求解超定线性系统
猜测初始 然后不停优化迭代直至收敛 (高斯-牛顿算法 改进版 LM算法 林德伯格-马奎特算法)
SFM增长速度是图片的四次方(实际使用中似乎没有这么夸张呀?)
城市级建模
划分子集单独重构,然后融合?(使用同一照片作为主平面,如果主平面C取远点 R取坐标平面应该是可行的,迭代求解出的参数差异并不影响世界坐标系的一致性 但Bundler标定出来的P似乎没有标准主平面的样子)
21.1.3 bigSFM http://www.cs.cornell.edu/projects/bigsfm/
BigSFM: Reconstructing the World from Internet Photos
Our group is working on building a 3D model of the world from online photo collections, and our research spans several areas, from image features, to large-scale image matching, to structure-from-motion optimization, to applications such as location recognition. This page summarizes our work, has links to code and datasets we have made available, and has a description of each project.
bigsfm:来自互联网的照片改造世界
我们的团队正在建立一个世界的3D模型,从网上照片集,我们的研究跨越几个领域,从图像特征,到大规模的图像匹配,从运动优化的结构,如位置识别应用。此页总结了我们的工作,链接到我们已经提供的代码和数据集,并有每一个项目的描述。
21.1.4 照片重建的主要步骤:http://www.zhihu.com/question/29082659
http://www.zhihu.com/question/29885222?sort=created
1.找出各张图片中的特征点,进行两两匹配;
要求能够精确识别物体的局部特征,并且进行快速准确的匹配。现常用的算法是SIFT (Scale Invariant Feature Transform)方法。SIFT由David Lowe在1999年提出,在2004年加以完善。SIFT在数字图像的特征描述方面当之无愧可称之为最红最火的一种,许多人对SIFT进行了改进,诞生了SIFT的一系列变种。SURF算法就是SIFT改进之一,降低了SIFT计算复杂度。SIFT已经申请了专利。
http://www.cnblogs.com/tornadome ... /08/17/2644903.html
SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关,对于光线、噪声、微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。
2.根据匹配结果,利用射影定理计算得到相机位置等场景信息;
此步又称运动恢复结构(Structure from Motion),或稀疏重建(Sparse Reconstruction)。结果的衡量标准是准确性,现常用的算法是基于Lecenberg-Marquardt算法的Bundler。
3.运用场景信息与原始照片,得到照片中物体的3D点云;
此步又称密集重建(Dense Reconstruction)。运用多视立体重建(Multi-view Stereo Reconstruction),得到3D点云。点云质量受到处理图像精度的执行效率、重建精度和完整性影响,目前最好的算法是PMVS。
4.根据3D点云构建3D模型;
将点连成面,才可在一般三维建模软件中使用。现常用的是泊松表面重建算法(Possion Surface Reconstruction)。
21.1.5 多视角重建 Multi-view Reconstruction
多视角重建是一整套成像技术:它指的是从可能结合局部运动信号的二维图像序列中估计出相应三维结构的过程。它是计算机视觉和视觉感知的研究领域。从生物视觉角度看,多视角重建指的是人类(其他生物)可以对一个移动的物体或场景所投影的二维(视网膜)图像重建出相对应的三维结构。
在现实世界中我们周围的物体都是三维的,但我们通过眼睛观察到的是物体的二维图像,需要再经过人的视觉系统来恢复所观测物体的三维信息。多视角重建就是要使计算机具有人类视觉系统的功能,能够通过拍摄到的二维图像信息,重建出物体的三维结构,从而使机器具备认知世界的能力。
从二维图像获取三维信息:人类通过在所处环境中活动来感知大量的三维结构信息。当观察者移动或物体围绕观察者移动时,信息的获取是随着图像处理来进行的。从运动中发现结构和从立体视觉发现结构均呈现出一个相同的问题,需要发现图像和3D对象重建之间的联系。为了寻找图像之间的联系,需要从一张接一张的图像中跟踪例如对应角点(多个方向的梯度边缘)等一些图像特征。
解决方案
1.FIT3D(从2D到3D)--Matlab Toolbox by Isaac Esteban
2.多视角重建工具箱 for Matlab
3.Matlab的多视图几何功能
4.结构与运动的工具包
5.Bundler - 无序的照片集的多视角重建
6.Libmv-关于运动库的C++结构
7.openMVG-开放的多视图几何库+多视角重建演示
8.MicMac-一个多视角重建的开放源代码发布
9.Python Photogrammetry GUI工具箱-一个开源的多视角重建GUI(简单多视角和密集的点云估计发射器)
10.运动的非刚性结构的Matlab代码
11.SBA
12.Ceres求解一般非线性最小二乘法
相关软件
1.Smart3DCapture--一个使用Acute3D技术的完整的照相测量解决方法
2.VisualSFM:可视的多视角重建系统 visualsfm程序有方便的GUI工具,可以帮助您使用运动恢复结构(SFM),利用多核并行特征检测,特征匹配的束调整,实现高效视觉三维场景重建。注:visualsfm是免费供个人使用,非营利或学术。VisualSFM系统的开发者 Changchang Wu 原来是北卡大学的博士,华盛顿大学计算机系的博士后,后来去了Google工作。主要研究3D方面的项目。这个重建系统集合了很多高效的并行处理程序例如: SIFT on GPU(SiftGPU), Multicore Bundle Adjustment, and Towards Linear­time Incremental Structure from Motion. 这些程序都是作者changchang wu之前的小项目。其中GUI SfM 系统和 SiftGPU 已经成为了北卡大学的课程作业(国内课程有没有这么高端的作业?)。这个VisualSFM系统运行效率非常高。
3.SFM工具包:一个基于开源软件的完整的照相测量解决方法。
4.MountainsMap SEM软件用来扫描电子显微镜。3D是通过倾斜样品+照相测量得到的。
5.MetaIO Toolbox:多视角重建是为了在移动设备上增强现实感。
Voodoo摄像机跟踪器:一个虚拟与真实场景的集成工具。
21.1.5 SLAM and MonoSLAM http://blog.csdn.net/wliked/article/details/6227454
MonoSLAM的概念来自于SLAM(Simultaneous Localization and Mapping),是Robotics中的一种定位算法。 orbslam,orbslam2
让机器人知道自己在那里(Localization),可以用GPS,但是误差有点大(5米左右?),而且还必须在室外。怎么才能让机器人在室内,或者更精确地知道自己的位置呢?SLAM就是一种方法。
基本的想法是,如果我是一个机器人,我知道两个定点1:(x1,y1)和定点2:(x2,y2),我现在可以看见定点1,测量一下,离它5米,把头向右转过30度角后,可以看见离定点2,测量一下,离它10米。然后解一个三角形,我就知道自己在那里了(Localization),位置准确度和测量精度有关(转角,距离),通常可以控制在很小。
但是问题又来了,每次我走几步,就得回头看看定点1和定点2,才知道自己在哪里。这一步三回头的走法,真是一件非常二的事情。于是聪明勤劳勇敢的博士生们想出来一个方法,在第一步的时候,一旦我知道自己在哪里,我就添加几个定点:定点3,定点4,定点5……。因为知道自己的坐标,我可以测量出这些新定点离我多远,加上自己的坐标,就知道这些定点在哪里(Mapping)。以后的定位(Localization)就可以用这些新定点。多了这些定点后,以后再走路,哇身边都是定点,腰不酸腿不疼,知道自己在哪里了。
所以SLAM就是指,同时(Simultaneous)知道自己的位置(Localization)和(And…) 新的定点的位置((feature) Mapping)。因为不管是测量距离,还是计算自己的转角,或记录行走的距离(利用Odometer)都会有noise,而直接计算SLAM,noise会叠加。所以一般SLAM要有一个Kalman Filter的过程。ICRA 10的一篇文章就讨论了为什么需要Filter. (ICRA 10: Why Filter?) .如果对SLAM还有兴趣,可以看看这个Oxford的Summer School。
而MonoSLAM,是Andrew Davison提出来的利用一个摄像头来做SLAM的方法,也叫Real-Time Structure From Motion。在这里,定点变成了visual feature,测量定点的位置转变为match feature, then triangulate. 一个2004年的demo 。当摄像头在空间里忘乎所以地移动时,MonoSLAM都可以利用feature matching,知道摄像头的位置,和那些feature的位置。demo中的右图的黄线,是camera的trajectory。而椭圆表示对于新加的feature的不确定性。paper
可以看到在demo中,虽然知道摄像头的位置,但是mapping的feature很少很稀疏,这样不好不强大。经过了6年,随着CPU、GPU越来越可怕,人民生活越来越幸福,Andrew Davison这个组终于在CVPR 10搞出了dense live MonoSLAM:利用GPU计算PTAM,然后Mesh成Surfeace。请看demo。有点长,请耐心,最后的小车的激情一跃很精彩。project page
SLAM和MonoSLAM在网上都有很多现成的code。像MRPT (跨平台),Andrew Davison的SceneLib (Linux)
21.1.6 几个SLAM应用
三维感知部分并不是什么新东西,计算机视觉或机器人学中的SLAM(Simultaneous Localization And Mapping,即时定位与地图构建)就是做这个的,已经有30年的历史了。设备通过各种传感器(激光雷达,光学摄像头,深度摄像头,惯性传感器)的融合将得出设备自己在三位空间中的精确位置,同时又能将周围的三位空间实时重建。
最近SLAM技术尤其火爆,去年(2014)到今年(2015)两年时间内巨头们和风投收购和布局了超级多做空间定位技术的公司。因为目前最牛逼的3大科技技术趋势:无人车,虚拟现实,无人机,他们都离不开空间定位。SLAM是完成这些伟大项目基础中的基础。我也研究SLAM技术,所以接触的比较多,为了方便大家了解这个领域,这里简单提几个SLAM界最近的大事件和人物:
1、(无人车)Stanford的机器人教授Sebastian Thrun是现代SLAM技术的开创者,自从赢了DARPA Grand Challenge的无人车大赛后,去了Google造无人车了。SLAM学术圈的大部分研究派系都是Sebastian徒子徒孙。
2、(无人车)Uber在今年拿下了卡耐基梅隆CMU的NREC(国家机器人工程研发中心),合作成立高等技术研发中心ATC。这些原来做火星车的定位技术的研究人员都去Uber ATC做无人车了。
3、(虚拟现实)最近Surreal Vision被Oculus Rift收购,其中创始人Richard Newcombe是大名鼎鼎的DTAM,KinectFusion(HoloLens的核心技术)的发明人。Oculus Rift还在去年收购了13th Labs(在手机上做SLAM的公司)。
4、(虚拟现实)Google Project Tango 今年发布世界上第一台到手就用的商业化SLAM功能的平板。Apple五月收购Metaio AR,Metaio AR 的 SLAM 很早就用在了AR的app上了。Intel 发布Real Sense,一个可以做SLAM的深度摄像头,在CES上Demo了无人机自动避障和自动巡线功能。
5、(无人机)由原来做Google X Project Wing 无人机的创始人MIT机器人大牛Nicholas Roy 的学生Adam Bry创办的Skydio,得到A16z的两千万估值的投资,挖来了Georgia Tech的SLAM大牛教授Frank Dellaert 做他们的首席科学家。(相关内容:http://www.cc.gatech.edu/~dellae ... Frank_Dellaert.html)
SLAM作为一种基础技术,其实全世界做SLAM或传感器融合做得好的大牛可能不会多于100人,并且大都互相认识。这么多大公司抢这么点人,竞争激烈程度可想而知,所以Magic Leap作为一个创业公司一定要融个大资,才能和大公司抢人才资源。
Q5. Magic Leap的感知部分的技术是怎么样的?
这张照片是Gary教授在Magic Leap Stanford 招聘会中展示了Magic Leap在感知部分的技术架构和技术路线。可以看到以Calibration为中心,展开成了4支不同的计算机视觉技术栈。
1、从图上看,整个Magic Leap感知部分的核心步骤是Calibration(图像或传感器校准),因为像Magic Leap或Hololens这类主动定位的设备,在设备上有各种用于定位的摄像头和传感器, 摄像头的参数和摄像头之间关系参数的校准是开始一切工作的第一步。这步如果摄像头和传感器参数都不准,后面的定位都是无稽之谈。从事过计算机视觉技术的都知道,传统的校验部分相当花时间,需要用摄像头拍摄Chess Board,一遍一遍的收集校验用的数据。但Magic Leap的Gary,他们发明了一种新的Calibration方法,直接用一个形状奇特的结构体做校正器,摄像头看一遍就完成了校正,极为迅速。这个部分现场不让拍照。
2、有了Calibration部分后,开始最重要的三维感知与定位部分(左下角的技术栈),分为4步。
2.1 首先是Planar Surface Tracking(平面表面跟踪)。大家可以在虚拟太阳系的Demo中看到虚拟太阳在桌子上有反光,且这个反光会随着设备佩戴者的移动而改变位置,就像是太阳真的悬在空中发出光源,在桌子表面反射产生的。这就要求设备实时地知道桌子的表面在哪里,并且算出虚拟太阳与平面的关系,才能将太阳的反光的位置算出来,叠在设备佩戴者眼镜相应的位子上,并且深度信息也是正确的。难点在平面检测的实时性和给出平面位置的平滑性(否则反光会有跳变)从Demo中可以看出Magic Leap在这步上完成得很好。
2.2 然后是Sparse SLAM(稀疏SLAM);Gary在Info Session上展示了他们实时的三维重构与定位算法。为了算法的实时性,他们先实现了高速的稀疏或半稀疏的三维定位算法。从效果上看,和目前开源的LSD算法差不了太多。
2.3 接着是Sensors; Vision and IMU(视觉和惯性传感器融合)。
导弹一般是用纯惯性传感器做主动定位,但同样的方法不能用于民用级的低精度惯性传感器,二次积分后一定会漂移。而仅靠视觉做主动定位,视觉部分的处理速度不高,且容易被遮档,定位鲁棒性不高。将视觉和惯性传感器融合是最近几年非常流行的做法。
举例:
Google Tango在这方面就是做IMU和深度摄像头的融合,做的很好;大疆的无人机Phantom 3或Inspire 1将光流单目相机和无人机内的惯性传感器融合,在无GPS的情况下,就能达到非常惊人的稳定悬停;Hololens可以说在SLAM方面是做得相当好,专门定制了一个芯片做SLAM,算法据说一脉相承了KinectFusion的核心,亲自测试感觉定位效果很赞(我可以面对白色无特征的墙壁站和跳,但回到场中心后定位还是很准确的,一点都不飘。)
2.4 最后是3D Mapping and Dense SLAM(3D地图重建)。下图展示了Magic Leap山景城办公室的3D地图重建:仅仅是带着设备走了一圈,就还原了整个办公室的3D地图,并且有很精致的贴图。书架上的书都能重建的不变形。
因为AR的交互是全新的领域,为了让人能够顺利地和虚拟世界交互,基于机器视觉的识别和跟踪算法成了重中之重。全新人机交互体验部分需要大量的技术储备做支持。
接下来的三个分支,Gary没有细讲,但是可以看出他们的布局。我就随便加点注解,帮助大家理解。
3.1 Crowdsourcing众包。用于收集数据,用于之后的机器学习工作,要构建一个合理的反馈学习机制,动态的增量式的收集数据。
3.2 Machine Learning & Deep Learning机器学习与深度学习。需要搭建机器学习算法架构,用于之后的识别算法的生产。
3.3 Scenic Object Recognition场景物体识别。识别场景中的物体,分辨物体的种类和特征,用于做出更好的交互。比如你看到一个小狗的时候,会识别出来,然后系统可以把狗狗p成个狗型怪兽,你就可以直接打怪了。
3.4 Behavior Recognition行为识别 。识别场景中的人或物的行为,比如跑还是跳,走还是坐,可能用于更加动态的游戏交互。顺便提一下,国内有家Stanford校友办的叫格林深瞳的公司也在做这个方面的研究。
跟踪方面
4.1 Gesture Recognition手势识别。用于交互,其实每个AR/VR公司都在做这方面的技术储备。
4.2 Object Tracking物体追踪。这个技术非常重要,比如Magic Leap的手捧大象的Demo,至少你要知道你的手的三维位置信息,实时Tracking,才能把大象放到正确的位子。
4.3 3D Scanning三维扫描。能够将现实物体,虚拟化。比如你拿起一个艺术品,通过三维扫描,远处的用户就能够在虚拟世界分享把玩同样的物体。
4.4 Human Tracking人体追踪。比如:可以将现实中的每个人物,头上可以加个血条,能力点之类。
5.1 Eye Tracking眼动跟踪。Gary解释说,虽然Magic Leap的呈像不需要眼动跟踪,但因为要计算4维光场,Magic Leap的渲染计算量巨大。如果做了眼动跟踪后,就可以减少3D引擎的物体渲染和场景渲染的压力,是一个优化的绝佳策略。
5.2 Emotion Recognition情感识别。如果Magic Leap要做一个Her电影中描绘的人工智能操作系统,识别主人情感,可以做出贴心的情感陪护效果。
5.3 Biometrics生物识别。比如要识别现实场景中的人,在每个人头上显示个名字啥的。人脸识别是其中一种,国内有家清华姚班师兄弟们开公司Face++就是干这个干的最好的。
总结:简单来讲感知这个部分Magic Leap其实和很多其他的公司大同小异,虽然有了Gary的加盟,野心非常的宽广,但这部分竞争非常激烈。
Q6: 就算Magic Leap已经搞定了感知和显示,那么接下来的困难是什么?
1、计算设备与计算量
Magic Leap要计算4维光场,计算量惊人。不知道Magic Leap现在是怎么解决的。如果Nvidia不给造牛逼的移动显卡怎么办?难道自己造专用电路?背着4块泰坦X上路可不是闹着玩的。
下图是,今年我参加SIGGraph 2015里,其中一个VR演示,每个人背着个大电脑包玩VR。10年后的人类看今天的人类追求VR会不会觉得很好笑,哈哈。
2、电池!电池!电池!所有电子设备的痛
3、一个操作系统
说实话,如果说“世界就是你的新桌面”是他们的愿景,现在的确没有什么操作系统可以支持Magic Leap愿景下的交互。他们必须自己发明轮子。
4、为虚拟物体交互体验增加物理感受
为了能有触感,现在交互手套,交互手柄都是 VR 界大热的话题。从目前的专利上看,并没有看出Magic Leap会有更高的见地。说不定某个Kickstarter最后能够独领风骚,Magic Leap再把他收了。
21.2 开源机器人 http://robot.ofweek.com/2016-06/ART-8321205-8440-29105638.html
OFweek机器人网讯:本文介绍了一些最受用户欢迎的开源机器人技术,包括ROS,Gazebo,Poppy Humanoid,iCub及Jasmine等。
MRPT(Mobile Robot Programming Toolkit)移动机器人编程工具箱是移动机器人C++库(Mobile robotics C++ libraries),为开发者提供可移植的并经充分测试的程序和开发库,这些库覆盖了机器人研究领域常见的数据结构和算法。该库以BSD协议开源发布。
gmop3d
gmop3d 是一款机械手臂(轴旋转运动)或工业机器人的运动仿真软件,它仅仅提供算法,不依赖任何第三方软件包,不依赖G代码、QT、boost, 是一个纯粹的C语言代码程序。
六轴机械手臂,第一版的算法仅仅支持三轴的机械手臂仿真算法。
模型,第一版仅支持立方体,支持立方体的位置移动, XYZ任意方向旋转,和任意尺寸,仿真的精度也可以任意调整, 支持5个面的逐点坐标位置和机械手协同运动仿真。算法仅仅使用了三角函数和逼近理论提高精度,精度可以计算到1e-9m,最多可以计算到小数点后10位。仿真环境依赖openSCAD.因为这个软件生成的是一个openSCAD程序,然后利用openSCAD的自动加载和编译, Automatic Reload and Compile功能实现运动仿真。
仿真的速度极其慢,因为openSCAD的 Automatic Reload and Compile功能是一秒钟一次,所以仿真的画面是1秒钟一个,后期肯定可以调整的。
OpenSCAD is a software for creating solid 3D CAD objects.
It is free software and available for Linux/UNIX, MS Windows and Mac OS X.
http://www.openscad.org/
OpenServo http://www.robotsky.com/e/DoPrint/?classid=31&id=475
从名字就可以看到,这是一个开源的伺服马达(RC servos )控制器。电路板可以直接替代伺服马达,例如Futaba S3003,HiTec HS-311等内置的模拟电路,现在通过I2C来控制伺服马达。
主要的特征包括:
高性能的AVR 8位处理器。
廉价的 MOSFET驱动实现紧凑的H-Bridge。
基于 I2C/TWI接口的控制和反馈。
控制伺服马达的速度和位置。
反馈信息包括伺服马达的位置、速度、电压和功率。
支持先进的基于曲线的运动控制。(需要其它软件和硬件,请看文章后面部分)
伺服马达的配置信息保存在EEPROM。
免费的C开发工具。
基于 I2C/TWI接口的启动程序
Windows图形界面编程器。
低价格。
硬件
目前OpenServo的硬件版本为 2.1。这个版本是基于AVR ATmega8或AVR ATmega168 MCUs,这两个MCUs分别内置了8K和16K Flash内存。MOSFET是 International Rectifier IRF7309或其它类似的产品(电流类似或更大)。
电路图(点击放大)
作者提供两种PCB电路设计,请到这里下载:http://www.headfuzz.co.uk/?q=openservopcb21
带金手指的PCB是作者提供的其中一种接口
软件:
软件部分包括如下几部分:
开发工具:用于开发 OpenServo的软件。
伺服马达启动程序:初始化OpenServo。
伺服马达控制程序:用于控制OpenServo的程序。
http://wiki.ros.org/Robots/Jaguar
aguar - All terrain unmanned ground vehicle
ROS Software Maintainer: Dr Robot Inc
Dr Robot is a manufacturer of mobile robots and robot systems. We provide robots and manipulators for a wide range of applications.
Sparki http://www.robot-china.com/news/201604/19/32559.html
Sparki 是一家在任何意义上都完全开源的机器人学平台。它上面的电路图、3D 建模文件和其底层的源代码都是开源的。Sparki 被设计用来帮助从小学生到成年人的学习者们制造出价格合理的初级机器人。它提供距离传感器、加速度计、红外通讯、罗盘、光传感器、循线器(line-follower)等。Sparki 机器人靠轮子行走,不过它还有一个用脚行走的近亲 Hexy the hexapod,该项目也是一个开源平台项目。
TurtleBot 是基于ROS的另一家机器人平台,它既提供来自几家制造商的元件套装,也提供完全开源的说明书。这可以帮助你用上网笔记本电脑、Kinect 体感外设和 Kobuki 移动平台来建造自己的机器人,或者在 iRobot Create 开发平台上建造机器人。
PLEN是早在2007年就已经推出的,当时号称是“高性能先进可编程仿人机器人。”如今8年过去了,刚刚问世的PLEN2体积更小,而价格不到其上一版3000美元售价的一半。
PLEN2可以步行向前和向后,拿起小物件、轮滑、舞蹈、踢或驾着自己的“车”到处跑。厂家在宣传中标榜其为“镜子机器人”,PLEN2可模仿人类的动作,可用于每个人,从儿童到研究者;或用于任何目的:娱乐、教育甚至医疗。完全组装的PLEN2大约有20厘米高,体重600克,并有18个关节,具备高度的可操作性高度。
不过PLEN2真正的改进,还在于其先进的开源软件和可定制的3D打印硬件。该机器人套件本身包含Arduino和ROS兼容控制电路板、伺服电机及各种配件,任何年龄的创客无论其技术或知识背景如何,可以开箱就组装PLEN2。
厂商还将免费提供主要零部件的3D数据,这意味着如果您有一台3D打印机就可以轻松地为其定制自己喜欢的外形。而开源的Arduino兼容软件则意味着,即使您是一位编程新手也可以很容易修改其程序和技术规格以满足自己的特殊需求。而技术专家和研究人员也可以用ROS中间件编程,开发专业的机器人技术。
ROS
ROS(Robot Operating System)是一组开源软件库和工具,能够帮助软件开发人员创建机器人应用程序。ROS的前身是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而建立的交换庭(switchyard)项目。到2008年,主要由Willow Garage继续该项目的研发。ROS发布在开源BSD许可,带有强大的开发工具、最新算法、硬件抽象、设备驱动程序、库、观察仪、消息传递、软件包管理甚至更多功能。发布于 2014-10-14 作者:morphinum 本来WG(Willow Garage)就没几个人... 一部分人去了Google, 一部分建了个公司做open source (http://Open Source Robotics Foundation)管理ROS的一部分, 一部分人留下来做了ClearPath并管理PR2, 没体现出什么趋势, 还是一贯的硬件创业风险大不赚钱. PR2这种一个300多k的大家伙只能卖给不差钱的学校和不差钱的公司. 不差钱的学校和公司就那么几个. 而且机器人又不是消耗品, 所以卖几年就卖不动了, 倒闭是迟早的事.
链接:http://www.zhihu.com/question/25956239/answer/31842820
Gazebo
Gazebo是一个机器人模拟器,用来创建机器人的嵌入式应用程序,使快速测试算法、设计机器人并在现实场景中执行回归测试变成可能。Gazebo也可以准确有效地模拟在复杂的室内外环境中的多机器人。Gazebo不但可以对标准的机器人传感器(例如惯性度量单元IMU、GPS接收器和单筒相机monoCamera)进行建模,而且还可以对机器人环境中使用的真实固形体物理部件进行建模。同时,Gazebo还具有一个强大的物理引擎,为用户提供高质量的图形以及多种编程和图形界面。
Poppy Humanoid
Poppy Humanoid是一个基于3D打印技术的开源仿生平台,由开源硬件模型、一个使用Python语言和RESTAPI的开源软件库、模拟器以及可视化编程语言组成。
iCub
iCub是一个开源的认知仿生机器人平台,由意大利科学家们制作发布。它配有53个发动机用来支持头部、胳膊和手、腰和腿部的运动。另外,它能够看和听,通过使用加速器和陀螺仪还具备人类外形和行为意识。这是意大利理工学院的成果:一种能够在不断的失败尝试中汲取经验并最终学会履行复杂任务的机器人技术。
Jasmine
Jasmine是一个用于群研究的微型机器人平台。在GPL许可下,Jasmine所有的硬件和软件都是开放的,包括部分列表、电路板和底盘设计以及软件。而且它不依赖于浏览器、DOM或任何Java Script框架,因此它适用于网站、Node.js项目,或任何JavaScript可以运行的地方。
ROP
ROP(Robotic Open Platform)希望能在Open Hardware许可下,为机器人社区提供可用的机器人硬件设计,利用CAD图纸、电计划及所需的文档来建造机器人。
OpenROV
OpenROV(open-source remotely operated vehicle)是由Eric Stackpole和David Lang发起的一种低成本远程机器人潜艇项目,用于水下勘探和教育。而且它还是遥控的微型潜艇,约2.5公斤重、15cmx20cmx30cm大。OpenROV也是一个开源硬件项目,为用户提供水下部分和如何组装的说明列表。
Open Hand
Yale Open Hand Project是一个主动促进机械臂设计使用的项目,通过快速成型技术来设计和建造,以鼓励更多的变化和创新机械硬件。该项目的目的是提供一系列开源设计,并通过社区的贡献来完善设计,并提供大量基于该平台的修改和变种。
YARP
YARP(Yet Another Robot Platform)是一个使用C++编写的开源软件包,用于连接机器人的传感器、处理器和制动器。
The Orocos Project
Orocos Project(Open Robot Control Software)网站是一个便携式C++语言库,用于机器和机器人的控制改进。
硬件开源项目
有几家开源无人飞行器利用了像 OpenPilot 或 Ardupilot 系统这样的项目。例如,ArduPilot Copter 无人机可以被组装成直升机、四旋翼飞行器或者其他配置,既可以自己动手 DIY,也可以从若干制造商那里购买元件套装和部件组装它。
软件开源项目
机器人不只是一套金属骨架。它需要某种智能才能听从直接命令或自己做出某些初步决定,以便提供服务。这里是几个有趣的机器人软件方面的开源项目。
对初学者入门而言,LeJOS 或许是一个好的机器人软件项目。它实质上是乐高 Mindstorms 机器人固件的一种替代物。你可以依靠它来用 Java 编程语言为乐高机器人编程。
Rock,即「机器人建造工具包」,是一种基于 Orocos RTT (Real Time Toolkit, 实时工具包)的软件框架。它被设计成可扩展的,并包括一些已有应用程序的驱动程序。
ROS,即「机器人操作系统」,是一个用来为机器人写软件的框架,它包括多种用来简化编程过程的工具和库。它被设计用来为协作研发服务,拥有模块化组件和全球性社区。在中国,已经有 ROS 中文社区的存在。http://blog.csdn.net/hcx25909/article/details/8811313
ROS有很多强大功能,如rviz、tf、gazebo。
rviz是ROS中一款强大的3D可视化工具,它被频繁使用。必须要弄明白它,详细的教程可以参考wiki: http://www.ros.org/wiki/rviz
我们可以在rviz里面创建自己的机器人,并且让机器人动起来。还可以创建地图,显示3D点云等等。这些显示是通过消息的订阅来完成的,机器人通过ROS发布数据,rviz订阅消息接收数据,然后显示,这些数据有一定的格式,可以参考下面的链接: http://www.ros.org/wiki/rviz/DisplayTypes
rviz使用了urdf,urdf统一机器人描述格式是表示机器人模型的一种XML格式,也包括一个用于urdf的C++解析器,参考wiki: http://www.ros.org/wiki/urdf
tf是ROS中的坐标变换系统,在机器人的建模仿真中经常用到。ROS中主要有两种坐标系:(1)固定坐标系:用于表示世界的参考坐标系;(2)目标坐标系:相对于摄像机视角的参考坐标系。教程见:http://www.ros.org/wiki/tf
gazebo是ROS中的物理仿真环境,gazebo本身就是一款机器人的仿真软件,基于ODE的物理引擎,可以模拟机器人以及环境中的很多物理特性,可以稍了解这个软件,并不必定用它开发。教程见:http://www.ros.org/wiki/simulator_gazebo/Tutorials
PR2 机器人是ROS的主要维护者(Willow Garage)针对ROS量身定做的机器人,有两个运行ubuntu和ROS的电脑,和两个机器臂以及很多传感器,功能强大,售价昂贵,国内很少见到,基本都是在国外的研究所里。这款机器人的ROS包比较多,从仿真到导航,所以代码具有比较高的参考价值,当然新手还是先看看其他机器人的代码再来挑战PR2吧,代码比较庞杂。 wiki:http://www.ros.org/wiki/Robots/PR2
TurtleBot 是另一家机器人平台,它既提供来自几家制造商的元件套装,也提供完全开源的说明书。这可以帮助你用上网笔记本电脑、Kinect 体感外设和 Kobuki 移动平台来建造自己的机器人,或者在 iRobot Create 开发平台上建造机器人。TurtleBot机器人应该算是应用ROS小型移动机器人的典型代表了,资料、文档和代码比较多,主要在建立模型和导航定位方面,代码比较容易理解,可以作为新手参考的最佳机器人了,上面rviz中显示的那个机器人就是它了。 wiki:http://www.ros.org/wiki/Robots/TurtleBot
Husky、Erratic 这两款机器人和TurtleBot机器人类似也采用了ROS,都是小型的轮式移动机器人,同样可以作为新手学习的参考:
http://www.ros.org/wiki/Robots/Husky
http://www.ros.org/wiki/Robots/Erratic
在你开始随意装配硬件之前,你需要定一个计划。在现实世界中,机器人的运行受到重力、地形、天气等限制。在纸上设计了看起来不错的机器人,并不意味着在现实中可行。所以,为什么不先对你的机器人进行功能性模拟呢?
机器人模拟器
Gazebo 是著名的非盈利开源组织 Apache 许可采用的完整模拟解决方案,有着先进的 3D 图形、虚拟感应器功能,还有一个应用广泛的命令行工具集合。此外,Gazebo 还能在云中运行模拟,支持多种插件和数种建立模型常用的机器人平台。
Morse(模块化开源机器人模拟引擎 the Modular Open Robots Simulation Engine)是 BSD 协议开源项目,是一款通用的多机器人仿真平台,主要特点是能控制实际仿真的自由度,可以自由设计符合自己需求的组件模型。它提供了大量可配置的传感器和执行器模块,高度的可扩展性,提供人与机器人的交互仿真。Morse 使用 Python 编程,也可使用 Blender 游戏引擎进行渲染。Morse 专注于学术型机器人模拟,目前有5所学校和科研机构使用。
V-REP 是 GPL 协议许可的虚拟机器人实验平台,在 Windows 系统、Mac 、Linux 系统上都能运行。V-REP 支持多种编程方式(嵌入式脚本、插件、附加组件、ROS节点、远程客户端应用编程接口、或自定义的解决方案)和语言(C/C++、Python、Java、Lua、Matlab、Octave和Urbi),既能模拟先进的物理情境,也能模拟从近距离传感器和视觉传感器上获得的数据。
RTSS http://rtss.sourceforge.net/
SCILAB/SCICOS机器人工具箱(RTSS)已在跨系研究中心“E. Piaggio”由学生Matteo Morelli开发完成,它是意大利比萨大学工程学院本科机器人课程的一个项目。
RTSS灵感来自Peter I. Corke教授编写的MATLAB机器人工具箱。
RTSS是自由软件,发布它希望它有用,但没有任何担保。
介绍和主要特点
RTSS提供了许多功能,用于机器人领域探索运动学、动力学和轨迹生成等方面。它是用于建模和仿真机器人,以及用于分析从真正的机器人实验中获得的结果。
Scilab的宏库
RTSS是基于串联操纵运动学和动力学的一个非常通用的表示方法。这些参数被封装在Scilab对象和模型,这些模型由众所周知的机器人如puma560和Stanford arm提供。
机器人调色板
RTSS还包括用于构建机器人的运动学和动力学模型的Scicos块库。
演示
RTSS是几个示范脚本,显示工具箱可以有效地用于研究的机器人。演示给用户洞察RTSS用于
表示坐标系的刚体运动
计算笛卡尔和关节空间轨迹
求解正、逆运动学问题
创建机器人运动的图形动画
学习微分运动和机械手雅可比矩阵
求解正、逆动力学问题
构建Scicos机器人的运动学、动力学模型
21.3 开源无人机
21.3.1 Paparazzi(PPZ) http://www.leiphone.com/news/201406/paparazzi-open.html
Paparazzi(PPZ) 是一个软硬件全开源的无人机飞控系统项目,它始于2003年,旨在通过来自社区的意见和鼓励建立一个非常强大和灵活的自动驾驶系统。
它是一整套完整成熟的解决方案,内容不仅覆盖了飞行器上的软硬件,包括传感器、电压调节器、GPS 接收机、自动驾驶软件及算法;同时也包括地面站相关软硬件,包括各种调制解调器、天线等设备;同时,它还有一个不断进化的用户友好的地面控制站软件。
PPZ 装备的无人机的体系结构如上图所示,可以理解为在普通飞行器(普通航模)和航模标配的遥控单元上,加装自动飞控板、相关传感器、无线Modem,同时配置地面控制站(PC、调制解调器、天线),让飞行器最后实现自动驾驶飞行或者接受地面站的指令自主调整姿态飞行。
PPZ 系统的关键特性是使用红外线感应器和飞行姿态惯性测量传感器,通过计算来提供强大而准确的姿态估计,让飞行器不需要地面手动控制校准,即能自动调整飞行状态。控制者只需要在地面站上给飞行器设定任务,剩下的则交给飞行器则自己去完成。所有的飞控、导航、姿态调整、任务执行等工作,都是由飞控板全自动完成。地面人员也可以随时在自动控制和手动控制两种状态间自由切换。
灵活的 PPZ
通过不同的设置,PPZ 既可以用于驱动固定翼飞机,也可以用于旋翼机。下图以一台固定翼飞机为例,说明装配 PPZ 飞控仪的飞机的机舱布局图,当然不同的情况可以有调整,配置也丰简由人。
 Autopilot Control Board 自动控制板
 Battery 电池
 Datalink Radio-Modem & Antenna 数据传输调制解调器和天线
 GPS Receiver GPS 接收机
 IR Sensor Board (if no IMU) 红外传感板(如果没有 IMU)
 Motor & Controller 马达和控制器
 RC Receiver & Antenna 遥控接收器和天线
 Servos 伺服系统
 Payload (Example: Camera & Video Transmitter) 负载(诸如摄像机、视频传输)
PPZ 的灵活性体现在它可以根据用途特点和侧重点(飞行速度、飞行距离、滞空时间、负载能力、价格),选择不同的飞行器,配置不同的飞控板、传感器、通讯模块和外设。
通过多年的发展和进化,PPZ 的飞控板共衍生出了十几款型号。这些飞控板在不同的年代被设计出来,不断完善进化,并出于不同的目的增减板载接口和模块从而派生出不同的型号。比如2013年夏季为发布的 Lisa/S 型飞控板,只有2.8克的重量, 成为全球最轻的通用飞控板。与之相关的,PPZ 有一个很大的硬件兼容列表,涵盖不同厂家的各种模块,诸如传感器(红外、陀螺仪、GPS、惯性测量、空速)、调制解调器、遥控器、模拟/数字视频系统、天线等。
类似装配台式电脑,用户可以完全根据自己的需求选择相关配置,建成一套地空无人机系统,而配置则可以异常灵活。以通讯模块为例:如果你只是在视距范围内玩玩,可以省略 GPS,配置短距离的2.4G 调制解调器,纯手动控制;如果想实现远距离的完全自主驾驶,则可以配置 GPS加上远距离无线调制解调器实现飞行数据回传和控制;又如果在电信运营商信号覆盖的区域内玩,则可以用3G 通讯模块传输数据给地面站。
除了使用硬件列表上的设备外,PPZ 的大部分型号飞控板还有 GPIO 接口,因此可以通过编程来控制外接设备。最常见的例子,就是控制外挂相机进行航拍。
所有的配置数据,都在设计和装配调试无人机的时候,通过一个管理中心系统(Paparazzi Center)进行配置,并以 xml 文件的形式保存。
强大的 PPZ
图为 PPZ 地面控制站(GCS)软件界面,可以看到卫星地图、飞机的飞行计划以及实际飞行轨迹、飞机的实时姿态数据以及各种控制按钮。
PPZ 是一个开源的项目,它的强大来自于全球各地的无人机爱好者和一些大学研究机构的贡献。 在我刚开始搜索 PPZ 资料时候,偶尔看到被提及“卡尔曼滤波”以及“四元数算法”等。呃,那些名字真的看不懂是啥玩意儿,但是我知道它们肯定都很厉害而且已经在 PPZ 上被实现。不过我还是做了相关搜索,这些都是用于自动驾驶以及飞行姿态调整的算法。PPZ 为了适用于飞行器的各种姿态调整,做了很高标准的实现。而其中有些功能,在某些商业公司卖的飞控上都没有实现(可能觉得飞机不会在倒着飞的时候突然切换控制权)。
PPZ 不同于普通的纯粹以代码为中心的开源软件项目,它利用 github 托管代码和硬件原理图、CAD设计稿等设计资料。成功将 PPZ 跑起来需要主板与各种外围传感器、舵机马达的适配、矫正、调试,以及为航空载机做恰当的参数设定,这需要一定的经验。PPZ 把它的主网站构建成为一个 WIKI,使得任何人都可以注册帐号后上去编辑和完善条目,补充和分享自己的经验。这样一来,PPZ 就汇集了全球各地精英爱好者的智慧,以及各种一手实验数据和经验。此外开源的优点,让 ppz 可以利用开源社区的各种高质量软件(例如 gpsd),避免重复的劳动从而专注于自动导航相关的研究与实现。开放性,促使 PPZ 发展的非常强大。
PPZ 的业内地位和影响
PPZ 在业界有较高的知名度并曾多次摘取多项荣誉。目前 PPZ 官网最新的新闻消息显示,在不久前于9月结束的国际微型飞行器会议和飞行比赛(IMAV 2013)中,PPZ 驱动的飞机,获得户外组第一名,室内组操作第一名,室内自主控制第三名的成绩。其中,用到了最新的只有2.8克重量的 Lisa/S 飞控板。可见 PPZ 在业内应用的广泛程度及其实力。
毫无疑问,现在在做无人机项目的公司,几乎都会学习和了解过 PPZ 项目。之前雷锋网报道过的《全球最小的无人机是把双刃剑》 http://www.leiphone.com/d-promise-n-peril-of-drone.html 中的最小无人机使用的就是 Lisa/S 飞控板。
PPZ 将它的设计理念和算法,不仅以代码形式保存在 github 的代码库中,而且也以可阅读的知识文章的形式分享在 wiki 中。所以,如果一个企业要做一个无人机相关的研究开发,PPZ 应该会给予巨大的帮助和启发。估计一般的公司几乎不可能完全独立于 PPZ 之外做出一套能够与 PPZ 比肩的系统。初创公司如果按照 PPZ 的全开源软硬件设计和兼容硬件列表,找一个载机(或者自己设计一款)并作恰当的适配,则可以快速推出自己的产品——往往是初创企业推出产品的捷径。但是需要注意的是——由于 PPZ 是开源的,竞争对手也能推出类似的同质化的产品, 所以如何在 PPZ 光环之外,作出自己的特色,往往是这些企业最需要考虑的。类似以前 MTK 方案从业者在手机行业的情况,大家拿到手的方案是相同的,最后看谁做出来的产品有特色能卖的更好,就需要自己的神通了。
个人如何开始使用 PPZ
PPZ 非常适合模型爱好者和 geek 来玩。对于个人 DIY 爱好者,PPZ 官方网站的 wiki 知识库, 已经涵盖了基本所有需要的知识,所以官网应该是一个不错的开始点。国内的一些模型论坛,已经有不少玩家在交流和分享经验,可以上去找找。搜索优酷 PPZ,也能出来不少视频,这些都是前辈玩家贡献的知识。
对于初级个人玩家来说,Ubuntu Linux 做为官方推荐的地面站操作系统以及编译环境,可能需要一段过程适应。另外,各种传感器、电路板是一个比较麻烦的问题。开源硬件不像开源软件那样成本仅为一台电脑和一些带宽,毕竟硬件需要掏钱真材实料去购买焊接制作电路板,门槛稍高。 如果玩家只想体验组装、调试和飞行的乐趣,官网上有列出销售控制板和配套硬件的厂商(国外厂商多);另外,淘宝上也有 Lisa/M 的飞控板,也许可以一试。
PPZ 项目是无人机方面一个开放的大知识库,无论个人、公司、研究机构都能从中获益良多。 相信 PPZ 未来在无人机领域还会发挥更大的影响力,引领无人机领域更进一步。
Paparazzi(PPZ)
Paparazzi(PPZ)是一个软硬件全开源的项目,它始于2003年,开发目标是建立一个配置灵活且性能强大的开源飞控项目。PPZ的一大特点是,该开源飞控方案中除了常见的飞控硬件、飞控软件和地面站软件之外,还包含地面站硬件,包括各种调制解调器、天线等设备。从功能上讲,PPZ已经接近一个小型的无人机系统了。
该开源项目的另一个特点是采用ubuntu操作系统,它将全部地面站软件和开发环境集成于该系统下,官方称之为Live CD。一张CD加飞控硬件就可完成从开发到使用的全部工作。
PPZ目前最流行的硬件版本是Paparazzi(PPZ)Lisa/M v2.0。该硬件拥有大量的扩展接口,并且使用可扩展的单独的IMU传感器板。这也是早期开源飞控比较流行的做法,这样可以像DIY台式计算机那样,随着传感器升级而不断升级IMU硬件。
21.3.2 linux推出无人机开源软件平台项目Dronecode
时间:2014-10-15 08:59 来源:网易科技 作者:佚名 http://www.china-cloud.com/yunzi ... 20141015_42992.html
据国外媒体报道,随着美国联邦航空管理局(FAA)开始在电影布景、农场、石油钻塔等地释放无人机,这一新生行业终于开始蓬勃发展。一个新的Linux基金会合作项目无人机代码计划(Dronecode)将为无人机提供常见的开源软件基础。这一最新提案将使用克里斯·安德森( Chris Anderson)创立的无人机公司3D Robotics提供的APM/ArduPilot UAV软件平台,这一概念最初就是由安德森提出的。Dronecode的创始成员包括因特尔、高通、3D Robotics和百度。
到目前为止,Dronecode已经吸引了1200名开发商并被商用无人机制造商例如加拿大无人机初创企业精准鹰(PrecisionHawk)、Walkera 和DroneDeploy所采用。Dronecode将为私有和商用无人机发展开辟新的道路。除了代码和其它资源,这一提案还保证将提供中性领导并为被批准的项目提供资金支持。这或将刺激无人机市场,预计它在10年内将价值1000亿美元。但正如安德森所认为的,Dronecode将为业务爱好者带来更舒适简单的生活。“在无人机发展早期,即使是专家也一起放飞无人机。”
DroneCode:开源无人机航空操作系统
英文网址:https://www.dronecode.org/英文网址
DroneCode:开源无人机航空操作系统是由 Linux Foundation 联合 12 家技术公司宣布推出的免费开源项目,旨在为无人机航空操作系统、导航工具等系统及工具的开发者提供一个庞大的开源代码库,从而促进整个应用生态的健康发展。
随着飞控、传感、大数据等技术的成熟,无人机成为最近几年热门的技术领域,这种颠覆性的技术在农业、能源、建筑、快速响应、新闻、物流运输等行业都有着广阔的应用前途,不仅Amazon、Google等巨头热衷参与,成千上万的独立开发者也希望涉足。
但是开发者们没有必要从头开发无人机的一切,因为很多人已经在无人机系统方面做了不少工作,其中有很多无人机项目都是用 Linux 代码编写的,但此前都属于零散分布的情况。这个新项目的推出,就是为了将许多分散的资源合并到一起,为无人机系统和工具开发者提供一个免费开源的公共平台,以及共同的沟通和治理工具。3D Robotics、Skycatch、DroneDeploy、HobbyKing、Horizon Ag、PrecisionHawk、Agribotix、Walkera 等已经在使用这个平台。
该项目将由 Linux Foundation 负责监管,此外 3D Robotics CEO Chris Anderson 以及 Box CEO Aaron Levy 也将提供协助。项目的其他创办会员包括 Robotics、百度、Box、DroneDeploy、英特尔、高通、jDrones、Laser Navigation、SkyWard、Squadrone System、Walkera 以及 Yuneec。
根据 Linux Foundation 执行董事 Jim Zemlin 的介绍,目前已经有 1200 多位开发者在为 Dronecode 项目工作,其中有些项目每天收到的贡参与献代码多达 150 份。
21.3.3
Arduino飞控 无人机为何迅速爆红?开源才是幕后“英雄” http://www.pcpop.com/doc/1/1128/1128060.shtml
Arduino 是较早的开源飞控,由Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis 和 Nicholas Zambetti于2005年在意大利交互设计学院合作开发而成。Arduino公司首先为电子开发爱好者搭建了一个灵活的开源硬件平台和开发环境,用户可以从Arduino官方网站取得硬件的设计文档,调整电路板及元件,以符合自己实际设计的需要。
Arduino可以通过与其配套的Arduino IDE软件查看源代码并上传自己编写的代码,Arduino IDE使用基于C语言和C++的Arduino语言,十分容易掌握,并且Arduino IDE可以在Windows、Macintosh OSX和Linux三大主流操作系统上运行。
随着该平台逐渐被爱好者所接受,各种功能的电子扩展模块层出不穷,其中最为复杂的便是集成了MEMS传感器的飞行控制器。为了得到更好的飞控设计源代码,Arduino公司决定开放其飞控源代码,他们开启了开源飞控的发展道路。著名的开源飞控WMC和APM都是Arduino飞控的直接衍生产品,至今仍然使用Arduino开发环境进行开发。
APM飞控
APM(ArduPilotMega)是在2007年由DIY无人机社区(DIY Drones)推出的飞控产品,是当今成熟的开源硬件项目。APM基于Arduino的开源平台,对多处硬件做出了改进,包括加速度计、陀螺仪和磁力计组合惯性测量单元(IMU)。由于APM良好的可定制性,APM在全球航模爱好者范围内迅速传播开来。通过开源软件Mission Planner,开发者可以配置APM的设置,接受并显示传感器的数据,使用google map 完成自动驾驶等功能,但是Mission Planner仅支持windows操作系统。
目前APM飞控已经成为开源飞控成熟的标杆,可支持多旋翼、固定翼、直升机和无人驾驶车等无人设备。针对多旋翼,APM飞控支持各种四、六、八轴产品,并且连接外置GPS传感器以后能够增稳,并完成自主起降、自主航线飞行、回家、定高、定点等丰富的飞行模式。APM能够连接外置的超声波传感器和光流传感器,在室内实现定高和定点飞行。
PX4和PIXHawk
PX4是一个软硬件开源项目(遵守BSD协议),目的在于为学术、爱好和工业团体提供一款低成本、高性能的高端自驾仪。
这个项目源于苏黎世联邦理工大学的计算机视觉与几何实验室、自主系统实验室和自动控制实验室的PIXHawk项目。PX4FMU自驾仪模块运行高效的实时操作系统(RTOS),Nuttx提供可移植操作系统接口(POSIX)类型的环境,例如:printf()、pthreads、/dev/ttyS1、open()、write、poll()、ioctl()等。软件可以使用USB bootloader更新。
PX4通过MAVLink同地面站通讯,兼容的地面站有QGrounDControl和Mission Planner,软件全部开源且遵守BSD协议。
由3DR联合APM小组与PX4小组于2014年推出的PIXHawk飞控是PX4飞控的升级版本,拥有PX4和APM两套固件和相应的地面站软件。该飞控是目前全世界飞控产品中硬件规格最高的产品,也是当前爱好者手中最炙手可热的产品。
PIXHawk拥有168MHz的运算频率,并突破性地采用了整合硬件浮点运算核心的Cortex-M4的单片机作为主控芯片,内置两套陀螺和加速度计MEMS传感器,互为补充矫正,内置三轴磁场传感器并可以外接一个三轴磁场传感器,同时可外接一主一备两个GPS传感器,在故障时自动切换。
基于其高速运算的核心和浮点算法,PIXHawk使用最先进的定高算法,可以仅凭气压高度计便将飞行器高度固定在1米以内。它支持目前几乎所有的多旋翼类型,甚至包括三旋翼和H4这样结构不规则的产品。它使飞行器拥有多种飞行模式,支持全自主航线、关键点围绕、鼠标引导、“FollowMe”、对尾飞行等高级的飞行模式,并能够完成自主调参。
PIXHawk飞控的开放性非常好,几百项参数全部开放给玩家调整,靠基础模式简单调试后亦可飞行。PIXHawk集成多种电子地图,爱好者们可以根据当地情况进行选择。
OpenPilot与Taulabs
OpenPilot是由OpenPilot社区于2009年推出的自动驾驶仪项目,旨在为社会提供低成本但功能强大的稳定型自动驾驶仪。这个项目由两部分组成,包括OpenPilot自驾仪与其相配套的软件。其中,自驾仪的固件部分由C语言编写,而地面站则用C++编写,并可在Windows、Macintosh OSX和Linux三大主流操作系统上运行。
OpenPilot的最大特点是硬件架构非常简单,从它目前拥有的众多硬件设计就可以看出其与众不同之处。官方发布的飞控硬件包括CC、CC3D、ATOM、Revolution、Revolution nano等,衍生硬件包括Sparky、Quanton、REVOMINI等,甚至包含直接使用STM32开发板扩展而成的FlyingF3、FlyingF4、DiscoveryF4等,其中CC3D已经是300mm以下轴距穿越机和超小室内航模的首选飞控,而DiscoveryF4被大量用于爱好者研究飞控,Quanton更是成为了Taulabs的首选硬件。
下面我们来说说Openpilot旗下最流行的硬件CC3D。
此飞控板只采用一颗72MHz的32位STM32单片机和一颗MPU6000(集成3轴陀螺仪、3轴加速器)就能够完成四旋翼、固定翼、直升机的姿态控制飞行(注意,该硬件可进行的是三自由度姿态控制,而不是增稳),电路板大小只有35mm×35mm。
与所有开源飞控不同,它不需要GPS融合或者磁场传感器参与修正,就能保持长时间的姿态控制。以上所有功能全部使用一个固件,通过设置便可更改飞机种类、飞行模式、支持云台增稳等功能。
其编译完的固件所需容量只有大约100KB,代码效率令人惊叹,是所有飞控程序员学习的楷模。其地面站软件集成了完整的电子地图,可以通过电台实时监测飞机状态。
TauLabs飞控是OpenPilot飞控的衍生产品。当前TauLabs最流行的硬件叫做Quanton,由原OpenPilot飞控小组成员独立完成。
它继承了OpenPilot简单高效的特点,并扩展了气压高度计和三轴磁场传感器,将主控单片机升级为带有硬件浮点运算的Cortex-M4核心。该飞控是最早支持自动调参的开源飞控产品,带有模型辨识算法,能够在飞行中进行自整定姿态PID控制参数。TauLabs能够完成许多高级飞行模式,连接外置GPS后可使多旋翼具备定高、定点、回家等功能。飞控集成了电子地图,且界面非常友好,使用向导模式进行初始化,初学者可以简单上手。
Multi Wii Copter (MWC)
Multi Wii Copter(MWC)飞控是一款典型的Arduino衍生产品,是专为多旋翼开发的低成本飞控,它完整地保留了Arduino IDE开发和Arduino设备升级和使用的方法。由于成本低、架构简单、固件比较成熟,因此该飞控在国内外拥有大量爱好者。除了支持常见的四、六、八旋翼以外,该飞控的最大特点是支持很多奇特的飞行器类型,比如三旋翼、阿凡达飞行器(BIcopter avatar style)、Y4型多旋翼(其中两轴为上下对置)等,使得该飞控的开发趣味性较强,容易博得大家的喜爱。
KKMulti Copter
KK飞控是源于韩国的一款开源飞控项目,也是第一种广为大众接受的多旋翼飞控,在开源飞控发展的初期,该飞控的横空出世对整个四旋翼行业是一种震撼。
该飞控只使用三个成本低廉的单轴陀螺,配合一台最简单的四通道遥控设备,就能控制常见的三、四、六旋翼飞行器,并且支持“十字”型,X型、H型和上下对置等多种布局。该飞控使用三个可调电阻调整感度作为调参方法,保留了早期航模陀螺仪的特征。作为多旋翼飞控起始的重要见证,这款“古董”级经典飞控,依然拥有众多玩家。
Autoquad飞控和ESC32电调
Autoquad飞控来自德国,作为早期开源飞控,Autoquad功能非常强大,但是受限于当时的传感器产品,它不得不采用大量模拟MEMS传感器。
所谓模拟传感器指的是传感器芯片内部不集成数模转换器(ADC)和运算核心,而直接将微机械传感器的变化通过放大和硬件滤波后以电压的形式输出,需要主控单片机进行AD采集。
因为传感器在不同温度环境下,输出值会受到影响,模拟MEMS传感器给参数校准带来了不少麻烦。很多玩家在第一次使用该飞控时,不得不借助电冰箱来进行传感器校准,而一些厂家为了保证批量产品的稳定性,只能在飞行器上对电路板进行加温,使其保持温度恒定。
但是,这种校准方法却为一些骨灰级玩家带来了额外的乐趣,很多人反而乐此不疲。对于大多数普通爱好者而言,这实在是一项难度不小的工作。随着带有出厂校准的数字传感器的普及,Autoquad作为历史的积淀,也完成了它的使命。
但是,该开源项目的另一个分支ESC32电调却逐渐在玩家中被接受了。该电调是第一个采用数字接口进行控制的电调产品,玩家可以通过串口、I2C接口和CAN接口来控制电机的转速,这比传统的PWM接口信息速度要快很多倍。常见的PWM电调波形更新速度为每秒钟四百次,而数字接口的更新速度可达到百万次。尤其是对于动力变化非常敏感的多旋翼飞行器来说,这种高速通信是非常必要的。该电调还支持转速闭环,并且能够针对电机进行详细调参,这些功能都是传统航模电调不能比拟的。
当然,Autoquad也在进步,它发布了全新的飞控产品Autoquad M4,对主控单片机和传感器进行了全面升级,采用常见的STM32F4单片机和数字传感器。但是面对PIXHawk、APM等已经成熟多年的先进飞控产品,它已经从前辈沦落为后起之秀。
所以说,开源飞控很大程度上促进了四旋翼飞行器这类产品飞入寻常百姓家,无人机技术的发展,甚至还能帮你完成飞行的梦想。
21.3.4 开源无人机视觉平台Percepto
一家名为 Percepto 的创业团队在 Indiegogo 上发起了一个同名开源项目,是一个可以安装在现有无人机上的计算机视觉组件,目标是搭建一个集硬件、驱动、算法、安全、机身控制于一体的平台,让更多的开发者在这上面为无人机开发应用。
在决心向着这么一个宏大的目标奋斗之前,Percepto 开发过对特定物体进行跟踪拍摄的无人机应用,现在则是希望让更多的无人机爱好者和开发者参与到这一领域中,发掘无人机更大的价值和乐趣,此外 Percepto 还计划将自身积累的机器视觉技术平台一并开放出来,这样后续的开发者就可以在其现有视觉技术和视觉软件基础上开发自己的应用。
机器视觉恰恰是无人机实现自主操作的核心技术,包括了障碍物识别、自主导航、飞行姿态矫正等多个方面,和高通 Cargo 无人机平台,以及应用在 AscTec 的 Firefly 无人机上的英特尔 RealSense 3D 相机系统类似。
Percepto:为无人机赋予视觉 自动跟踪拍摄
2015-08-12 18:11:55 36氪 http://tech.china.com/news/company/892/20150812/20182988.html
Percepto是以色列一家为无人机做计算机视觉的初创公司,它提供一套完整的硬件、软件解决方案,将计算机视觉技术和开源的开发平台提供给无人机制造公司,从而让无人机在实际商用中功能更强大。
具体来说,Percepto 在硬件端提供一个小型装置和一个微型摄像头,将这两个设备连接到无人机上可以让无人机拥有 “视觉” 能力,能够智能识别周围环境,避障,对物体进行追踪拍摄和 360 度环绕拍摄,以及与移动目标保持固定距离等。
虽然目前市面上已经有一些无人机拥有计算机视觉能力,但 Percepto 的愿景是希望专门针对这个领域提供服务,并与其他无人机进行合作从而提高无人机在计算机视觉功能方面的整体平均水平。
当然,仅做计算机视觉并不能满足 Percepto 的野心,它的更大价值在于开放开源的开发平台。Percepto 不仅让开发者在此平台上开发有关无人机的应用程序(软件免费),还向开发者开放了硬件设备的源代码,包括避障、避免撞击、导航、操控等诸多功能程序,从而聚集广大开发者的智慧,拓展更多无人机应用的新技能。
Percepto 的联合创始人兼 CEO Dor Abuhasira 说,Percepto 提供的软件开发工具包(SDK)可以帮助企业节省 70%的时间去开发操控无人机的应用程序。团队希望通过这样的开放平台打造商用无人机领域计算机视觉的标准化平台。
Percepto 创立于 2014年,目前团队只有 7 个人。近日,它刚刚获得了 100 万美元种子轮融资,早期投资方可谓非常有名,包括时代华纳的前 CEO Richard Parsons,著名创投家、达拉斯小牛队老板 Mark Cuban,以及中国著名天使投资人徐小平等。
今年3月,Percepto 曾在indiegogo上进行众筹,获得了 10 万美金的众筹成绩。早期众筹支持者将于今年10月获得第一批产品。
21.3.5 ArduPilotMega (APM)
ArduPilotMega (APM) 是市面上最强大的基于惯性导航的开源自驾仪
特性包括:
免费开源固件,支持飞机(ArduPlane),多旋翼 (四旋翼、 六旋翼、八旋翼等), 直升机(ArduCopter)和地面车辆(ArduRover)。
通过点击式的工具简单设置和上传固件,无须编程。(但是你想搞搞代码的话,可以使用简单的嵌入式编程工具: Arduino)
通过点击式的桌面程序完全的规划任务脚本
可以支持上百个三维航点
使用强大的 MAVLink 协议,支持双向遥测和飞行中控制命令
多种免费地面站,包括 HK GCS, 支持任务规划、空中参数调整、视频显示、语音合成和完整的带回放的数据记录
跨平台。支持Windows、Mac 和 Linux。在 Windows 下使用图形任务规划设置工具 (Mac 下可用模拟器) 或在任何操作系统下使用命令行界面。三种操作系统上都有可用的地面站程序。基于 Arduino 编程环境,也是完全跨系统的。
自动起飞,降落和特殊的动作命令,例如视频和照相控制
完整支持 Xplane 和 Flight Gear 半硬件仿真
包括继电器,可以触发任何设备,可以根据任务脚本控制
硬件包括:
三轴陀螺仪
三轴加速度计
测量高度的空气压力传感器
10Hz GPS 模块
监视电池状态的电压传感器
4Mb板上数据记录存储器。任务数据自动记录,并可以导出为 KML 格式
内建硬件失效处理器,在失控时可以返回出发点
(可选) 三轴磁力计
(可选) 空速传感器
(可选) 电流传感器
Ardupilot历史
2007年5月 – 克里斯·安德森用乐高 mindstorm搭建无人机时,建立了 DIYDrones.com .
2008年9月– Jordi 制作了一个可以自动飞行的传统直升机无人机并赢得了第一届Sparkfun AVC大赛.
2009年 – 克里斯·安德森和Jordi Munoz 成立了3D Robotics(3DR)
2009年5月 – Jordi/3DRobotics 发布了第一款Ardupilot板子 (使用红外温度传感器)
2009年11月 – Jordi创建了ardupilot代码仓库
2009年11月 – Jordi, Doug Weibel, Jose Julio编写了第一版使用William Premerlani的DCM算法的ArduIMU
2009年11月 至 2010年2月 – Jason从头开始重写了 (v2.5),包括了使用中断驱动的遥控信号输入, 遥控油门保护, 返航, 悬停, 绕圈, 垂直航路修正, 更佳的稳定性, 全数字电传操纵, 系统事件, 四通道RC输出, 2线通信的数传. (Post)
2009年12月 – Doug 推出改进的 Ardupilot v2.4,第一次支持基于IMU的飞行器任务飞行
2010年 – 3d Robotics 推出了APM1
2010年初 – Doug and Jason 发布了Ardupilot 2.6 ,改善了油门控制, 支持ArduIMU
2010年夏天 – APM Code development:
Jason – 任务脚本, 飞行模式, 导航
Jose – 代码库, DCM, 硬件传感器支持
Doug – 高级飞行控制, 飞行日志记录, DCM
MikeS – 参数, CLI, 高速串口, 高级硬件优化
2010年5月 – Ardupilot合并了AeroQuad (包括Jani Hirvinen),开始在ArduCopterNG(海盗)进行工作。
2010年6月 – APM 1 在SW上实现了自主任务脚本飞行
2010年6月 – APM1首次让固定翼飞机实现了自主飞行
2010年6月 – Jason 开发了可以在Xplane上运行的基于Perl的半实物仿真,来测试新的APM任务脚本命令 (后来整合进了Mavlink)
2010年8月 – Jani/jDrones 收到了一款作为原始标准的四轴飞行器机架DIY套件
2010年十月 – ArduCopterNG (AeroQuad/ArduCopter 合并后的代码) 工程被Ardupilot团队放弃了,移交给了 ArduPirates 团队以得到更长远的发展. Jason在ArduPlane的基础上使用另一种控制逻辑重写了ArduCopter,使其更加自主化。增加了悬停模式, 绕圈模式, 返航, 任务脚本, 失控保护, 起飞, 降落, 等等.
2010年8月 – Michael Oborne发布了Mission Planner
2010年8月 – Randy增加了对TradHeli 的支持
2010年12月– 从初始的ArduCopterNG的代码上进行了扩展的MegaPirates成为了ardupilot第一个成功的分支
2011年4月 – Jason在Sparkfun AVC上实现了 Arducopter的第一次完全自主任务飞行
2011年 – 3D Robotics发布了APM2
2011年11月 – Tridge创建了AutoTester
2012年 – 3D Robotics发布了APM2.5/2.6
2012年2月 – Jason让Randy来接管并成为了Arducopter的首席开发者, Doug离开了团队去获取他的博士学位而Tridge接管了ArduPlane
2012年2月 – Marco Robustini加入并领导ArduCopter的测试者
2012年7月 – 苏黎世联邦理工学院(Lorenz Meier,MikeS) / 3D Robotics发布了PX4
2012年8月 – Pat Hickey 简化了硬件抽象层 (AP_HAL) 并增加了对其它板子的支持
2012年10月 – Rob Lefebvre实现了TradHeli的第一次自主任务飞行
2012年10月– Tridge and CanberraUAV 使用APM2 & Pandaboard赢得了Outback无人机挑战
2012年11月 – 第一款APM2.5的山寨版出现了
2012年12月 – Randy and Leonard 在ArduCopter(AC2.9)中加入了基于惯导的高度自动控制,得益于Jonathan Challinger成功设计出了3阶互补滤波器的原型
2013年1月 – ardupilot的代码从googel code搬到了github
2013年1月/2月 – 安卓版的地面站出现了 (Arthur的DroidPlanner , Kevin Hester的AndroPilot)
2013年4月 – Paul Riseborough, Brandon Jones, Tridge编写了ArduPlane的基于L1控制器的航点飞行
2013年5月 – Leonard and Randy 为ArduCopter的航线飞行加入了惯性导航的支持(AC3.0)
2013年7月 – Paul Riseborough, Tridge给ArduPlane整合进了速度和高度控制
2013年9月 – Mike McCauley, Tridge增加了对Flymaple板子的支持
2013年11月 – ETH (Lorenz Meier,MikeS) / 3D Robotics发布了Pixhawk
2014年1月 – Paul Riseborough, Tridge增加了扩展卡尔曼滤波器(EKF),使飞控能得到更加可靠的姿态和位置信息
2014年5月 – Emile Castelnuovo and Tridge增加了对VRBrain板的支持
2014年8月 – 首次实现了ArduPlane基于Linux控制板的飞行 (PixhawkFire)
2014年9月 – Tridge & Canberra无人机使用了基于arduplane的固定翼无人机赢得了Outback挑战 (Tridge’s debrief).
2014年10月 – 开源无人机项目DroneCode启动
2014年10月 – 第一个有关ArduPlane的报道:在佛罗里达州被成功使用于搜救,包括搜寻一架失踪的轻型飞机
21.4 开源无人车
21.4.1 恩智浦开源自动驾驶计算平台Bluebox 打造现实无人汽车
3sNews地理信息产业网 2016-05-17 11:06:40 阅读(102) 评论(0)
3sNews讯 由恩智浦(NXP)研发的Bluebox平台将为汽车制造商提供现成的一体化自动驾驶计算解决方案。BlueBox是专为自动驾驶设计的中央计算引擎。不仅能够为无人驾驶提供人工智能,还为车间通讯和多重传感器提供接口支持,充当车辆的 “神经系统”,传统汽车制造商使用该方案能够轻松开发四级无人驾驶汽车,即能够真正实现自主式无人自动驾驶。
BlueBox引擎是一个基于Linux语言的开源平台,汽车制造商可以自行根据需要定制。公司称,BlueBox已经出货,全球五大汽车制造商的中的四家都已经收到了BlueBox。从2015年9月起,公司就已经为这些优选的客户发货。
BlueBox引擎结合了雷达、LIDAR(激光探测与测量)、视觉传感以及加载的车联网(Vehicle to Everything, V2X)系统,来将车辆周围的情景建模,进行安全决策,来保护车辆及乘客。所有的计算元素使用了量产或样本的NXP芯片,让系统做好了上路准备。
在无人驾驶车辆系统中,多个传感器数据流都汇入BlueBox引擎,数据流结合起来,将车辆周围的物理环境创造一个360°实时模型。平台具有NXP芯片支持的LIDAR系统、雷达和视觉节点,NXP S32V处理器从中获取传感数据输入,通过传感融合能力创造一个地图。S32V包括了图形引擎,专门带有高质量图形处理加速器,还带有汽车级别的功能性安全引擎。
恩智浦是一家新近独立的半导体公司,由飞利浦公司创立,已拥有五十年的悠久历史,主要提供工程师与设计人员各种半导体产品与软件,为移动通信、消费类电子、安全应用、非接触式付费与连线,以及车内娱乐与网络等产品带来更优质的感知体验。(整理|3sNews 陈浩丽)
21.4.2 谷歌开源tensorflow
|
|