SLAM+语音机器人DIY系列:(三)感知与大脑——5.机器人大脑嵌入式主板性能对比
摘要
在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话。朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人。实现的关键是让机器人能通过传感器感知周围环境,并通过机器人大脑处理并输出反馈和执行动作。本章节涉及到的传感器有激光雷达、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.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
随机推荐
- BZOJ_4269_再见Xor_线性基
BZOJ_4269_再见Xor_线性基 Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. Input 第一行 ...
- Github泄露扫描系统
Github leaked patrol Github leaked patrol为一款github泄露巡航工具: 提供了WEB管理端,后台数据库支持SQLITE3.MYSQL和POSTGRES 双引 ...
- phpstorm 下载以及安装
phpstorm都知道编写php代码比较高效,这里不多说. 关键是用它就要破解,毕竟不想花钱买,在网上找了好多方法,怎么尝试都不管用,后来我只是把版本替换为2017.1(最新版才是2017.3,版本差 ...
- C++的代理类
怎样在一个容器中包含类型不同,但是彼此有关系的对象?众所周知,C++的容器只能存放类型相同的元素,所以直接在一个容器中存储不同类型的对象本身是不可能的,只能通过以下两种方案实现: 1. 提供一个间接层 ...
- PostCSS 基本用法
1.postcss相关网站 https://www.postcss.com.cn/ https://www.ibm.com/developerworks/cn/web/1604-postcss-css ...
- 分析Class类和ClassLoader类下的同名方法getResourceAsStream
在读取本地资源的时候我们经常需要用到输入流,典型的场景就是使用Druid连接池时读取连接池的配置文件.Java为我们提供了读取资源的方法getResourceAsStream(),该方法有三种: Cl ...
- Vue 进阶之路(六)
上篇文章我们分析了一下 vue 中的条件渲染,本篇我们说一下 vue 中的列表渲染和 set 方法. <!DOCTYPE html> <html lang="en" ...
- 啥?客户叫在DataGridView的左上角添加CheckBox?
效果图是这样的,如何把CheckBox放到左上角是最重要的. 添加方法 InitColumnInfo() 方法,代码如下. private void InitColumnInfo() { ; Data ...
- WinForm加载外部类库项目的集成开发模式
在项目开发中有一定的团队用到了Nuget.Coding:但是这用起来还是不太方方便,在Winform中呢,我们可以把一个人的项目当作一个类库项目,因为它生成的是一个dll文件,也就是单一文件,拥有了它 ...
- TensorFlow从1到2(一)续讲从锅炉工到AI专家
引言 原来引用过一个段子,这里还要再引用一次.是关于苹果的.大意是,苹果发布了新的开发语言Swift,有非常多优秀的特征,于是很多时髦的程序员入坑学习.不料,经过一段头脑体操一般的勤学苦练,发现使用S ...