摘要
在我的想象中机器人首先应该能*的走来走去,然后应该能流利的与主人对话。朝着这个理想,我准备设计一个能*行走,并且可以与人语音对话的机器人。实现的关键是让机器人能通过传感器感知周围环境,并通过机器人大脑处理并输出反馈和执行动作。本章节涉及到的传感器有激光雷达、IMU、轮式里程计、麦克风、音响、摄像头,和用于处理信息的嵌入式主板。关于传感器的ROS驱动程序开发和在机器人上的使用在后面的章节会展开,本章节重点对机器人传感器和嵌入式主板进行讲解,主要内容:
5.机器人大脑嵌入式主板性能对比
从事SLAM与机器人导航也有几年时间了,期间用过不少的嵌入式主板做开发。机器人是软硬件结合的一个实体,这里就对机器人的大脑(嵌入式主板)进行一些讨论。结合我用过的一些嵌入式开发板,展开对比分析,具体型号如图32。
(图32)我用过的嵌入式板型号
5.1.树莓派3
树莓派一直很火,现在已经推出第三代了。这里放一张树莓派0、树莓派2、树莓派3的全家福吧,如图33。
(图33)树莓派全家福
接下来看看具体的性能参数,如图34。如果想了解更多关于树莓派的资料,可以阅读树莓派的wiki教程https://en.wikipedia.org/wiki/Raspberry_Pi。
(图34)树莓派性能参数
树莓派3,售价200RMB左右,CPU是1.2Ghz ARM-Cortex-A53,内存1GB,板载wifi模块,还有一个多媒体显示GPU(不过感觉没什么用)。CPU和内存配置算的的上是同等价位嵌入式主板的战斗机了,板载wifi这个也很实用。虽然树莓派支持安装很多种linux系统,由于我这里要跑ROS机器人系统,所以我选择了安装ubuntu-mate-16.04, ubuntu-mate-16.04 LTS实际上是ubuntu-16.04 LTS的一部分,为桌面、Raspberry Pi 2和3单片机准备的,这也是Ubuntu MATE的首个LTS长期支持版,亮点在于包含MATE 1.12.1桌面环境,针对平板支持多点触控和“自然滚动”,对多屏幕设置提供更好的支持,更好的会话管理,扩展的systemd支持,改进过的Power小程序——可显示产品型号和提供商信息等内容。
(图35)ubuntu-mate-16.04系统界面
安装好ubuntu-mate-16.04操作系统后,上电可以看到图35所示的系统界面,就可以安装kinetic版本的ROS了,然后就可以验证SLAM算法了。Gmapping激光SLAM建图和ros-navigation自动导航跑的都很顺畅;google-cartographer进行建图和重定位也没什么问题;跑ORB-SLAM2的Mono模式就不太行了,帧率5帧以内。
5.2.Firefly-RK3399
萤火虫开发板还是很强大的板子分RK3288和RK3399两个版本,先看一下官方的宣传广告。
(图36)Firefly-RK3399
如图36所示,RK3399双核CortexA72+四核CortexA53的CPU和2GB/4GB可选配的内存,一看这些配置就知道很强大,的确跑各种视觉算法很不错,不过1000RMB的售价感觉有点小贵。
5.3.Nvidia-jetson-TK1
(图37)Nvidia-jetson-TK1
Tegra K1是Nvidia推出的一款AI级别的嵌入式主板,ARM-Cortex-A15的CPU,192个CUDA核心的kepler架构的GPU,2GB内存,如图37。有人用Tegra K1做了一个计算集群,感觉还挺有意思的,如图38。
(图38)Nvidia-jetson-TK1计算集群
5.4.Nvidia-jetson-TX2
Jetson TX2的是可以作为核武器的处理器的(@~@),性能是十分强大的。简单的智能小车或者机器人不推荐使用TX2,性价比比较低。利用TX2做处理器,控制移动平台(高精度的小车底盘)做SLAM我觉得是一个相当有意思的项目,TX2的处理能力非常适合实现机器视觉。
(图39)Nvidia-jetson-TX2
图39中左边是官方的开发板和扩展板,不过由于官方扩展板体积太大了用在很多地方不方便,于是网上推出了一款小巧的扩展板Connect Tech Inc很不错。
(图40)Nvidia-jetson-TX1/2性能参数
这个是性能表,看上去也是叼叼的,不过售价不便宜接近5000RMB。。。
5.5.Intel-NUC
前面介绍的都是ARM架构的主板,现在介绍一款X86架构的主板NUC。
(图41)Intel-NUC
之前用过Intel-NUC7-i7,19V供电65W功耗感觉不适合嵌入式级别的应用场合,而且3000RMB的售价也没法和Nvidia-jetson-TX2比较性价比,所以不推荐在机器人上使用。
5.6.Intel-Edison
其实这是intel一个失败的尝试,主打物联网应用,CPU采用intel的Atom处理器,最大的亮点是可以在主板上直接扩展Ardunio单片机开发板。如图42。
(图42)Intel-Edison
其实个人不推荐用Edison来开发SLAM算法,不过也有公司做这方面的尝试,比如上海思岚科技的SLAMWARE-CORE就是Edison的模仿者。
(图43)SLAMWARE-CORE
5.7.Google-Tango-phone
其实Tango-phone是一个完整的AR方案,手机内集成了深度相机和VO视觉里程计。
(图44)Tango-phone
看网上的演示视频也是十分的炫酷,不过最终这个项目还是没有在google中火起来,可能还是存在不少问题的吧。
5.8.总结
(图45)性能对比
最后,总结一些各个开发板的性能对比,见图45。玩机器人和SLAM的朋友们,如果是中低端需求推荐树莓派3,高端需求推荐jetson-TX2。
后记
------SLAM+语音机器人DIY系列【目录】快速导览------
第1章:Linux基础
第2章:ROS入门
第3章:感知与大脑
第4章:差分底盘设计
第5章:树莓派3开发环境搭建
第6章:SLAM建图与自主避障导航
2.google-cartographer机器人SLAM建图
第7章:语音交互与自然语言处理
第8章:高阶拓展
2.centos7下部署Django(nginx+uwsgi+django+python3)
----------------文章将持续更新,敬请关注-----------------
如果大家对博文的相关类容感兴趣,或有什么技术疑问,欢迎加入下面的《SLAM+语音机器人DIY》QQ技术交流群,一起讨论学习^_^
SLAM+语音机器人DIY系列:(三)感知与大脑——5.机器人大脑嵌入式主板性能对比的更多相关文章
-
SLAM+语音机器人DIY系列:(三)感知与大脑——2.带自校准九轴数据融合IMU惯性传感器
摘要 在我的想象中机器人首先应该能*的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能*行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...
-
SLAM+语音机器人DIY系列:(三)感知与大脑——1.ydlidar-x4激光雷达
摘要 在我的想象中机器人首先应该能*的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能*行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...
-
SLAM+语音机器人DIY系列:(三)感知与大脑——3.轮式里程计与运动控制
摘要 在我的想象中机器人首先应该能*的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能*行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...
-
SLAM+语音机器人DIY系列:(三)感知与大脑——4.音响麦克风与摄像头
摘要 在我的想象中机器人首先应该能*的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能*行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...
-
SLAM+语音机器人DIY系列:(三)感知与大脑——6.做一个能走路和对话的机器人
摘要 在我的想象中机器人首先应该能*的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能*行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...
-
SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图
摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能*行走的生命.本章将围绕机器人SLAM建图.导航避障 ...
-
SLAM+语音机器人DIY系列:(二)ROS入门——6.编写简单的service和client
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
-
SLAM+语音机器人DIY系列:(四)差分底盘设计——4.底盘ROS驱动开发
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
-
SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
随机推荐
-
Android中关于dip和px以及转换的总结
我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼.在Android中支持的描述大小区域的类型有以下几种: px(pixels)——像素:不同的设备显示效果相同,一般我 ...
-
在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问
补充资料 本网络中使用LINUX服务器,web服务器是由APACHE搭建,IP地址为192.168.1.5,后台页面为/admin/login.jsp . 如何设置后台页面LOGIN.JSP只允许19 ...
-
【转载】OLE DB, ADO, ODBC关系与区别
原文:OLE DB, ADO, ODBC关系与区别 OLE DB, ADO, ODBC 一. ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(W ...
-
Unity脚本——Csharp
打印输出: Debug.Log(""); 游戏流程函数: Awake():在对象被创建的时候调用. Start():在Awake()方法之后执行.在脚本禁用后不会执行. updat ...
-
5、sha1加密的一个坑
OC语言写的sha1加密算法,在网上随手可以搜索到(如下便是),但是我不得不说有一些人不责任,没有提醒大家导入必要的系统头文件,从而导致错误 + (NSString *) sha1:(NSString ...
-
学习笔记——抽象工厂模式Abstract Factory
在工厂模式的基础上,通过为工厂类增加接口,实现其他产品的生产,而不用一类产品就增加一个工厂. 依然以<真菌世界>游戏故事类比,树作为工厂,如果现在有两类树,一类生产快速弄真菌飞机和20毫米 ...
-
app后端设计(6)-- LBS
在LBS的应用中,一个基本的需求是查找附近的用户,现在有两种做法: 1. 使用mysql的空间数据库,具体做法参考:http://blog.sina.com.cn/s/blog_a48af8c0010 ...
-
python进程和线程(五)
python的进程 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Python提供了非常好用的多进程包m ...
-
Appium发送中文或其他语言的问题
1. 需要在配置信息中增加'unicodeKeyboard' = “True”字段,如下: def driver_weixin(platformVersion="6.0.1",de ...
-
spark sql运行原理
Spark sql 对SQL语句的处理,先将SQL语句进行解析(parse)形成一个tree,然后使用Rule对Tree进行绑定,优化等处理过程,通过模式匹配对不同类型的节点采用不同操作.查询优化器是 ...