在个人想象中机器人首先应该能自由的走来走去,而后应该能流利的与主人对话。朝着这个理想,我准备设计一个能自由行走,而且能够与人语音对话的机器人。实现的关键是让机器人能经过传感器感知周围环境,并经过机器人大脑处理并输出反馈和执行动做。本章节涉及到的传感器有激光雷达、IMU、轮式里程计、麦克风、音响、摄像头,和用于处理信息的嵌入式主板。关于传感器的ROS驱动程序开发和在机器人上的使用在后面的章节会展开,本章节重点对机器人传感器和嵌入式主板进行讲解,主要内容:html
1.ydlidar-x4激光雷达python
2.带自校准九轴数据融合IMU惯性传感器linux
3.轮式里程计与运动控制nginx
5.机器人大脑嵌入式主板性能对比django
6.作一个能走路和对话的机器人ubuntu
从事SLAM与机器人导航也有几年时间了,期间用过很多的嵌入式主板作开发。机器人是软硬件结合的一个实体,这里就对机器人的大脑(嵌入式主板)进行一些讨论。结合我用过的一些嵌入式开发板,展开对比分析,具体型号如图32。小程序
(图32)我用过的嵌入式板型号centos
树莓派一直很火,如今已经推出第三代了。这里放一张树莓派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帧之内。
萤火虫开发板仍是很强大的板子分RK3288和RK3399两个版本,先看一下官方的宣传广告。
(图36)Firefly-RK3399
如图36所示,RK3399双核CortexA72+四核CortexA53的CPU和2GB/4GB可选配的内存,一看这些配置就知道很强大,的确跑各类视觉算法很不错,不过1000RMB的售价感受有点小贵。
(图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计算集群
Jetson TX2的是能够做为核武器的处理器的(@~@),性能是十分强大的。简单的智能小车或者机器人不推荐使用TX2,性价比比较低。利用TX2作处理器,控制移动平台(高精度的小车底盘)作SLAM我以为是一个至关有意思的项目,TX2的处理能力很是适合实现机器视觉。
(图39)Nvidia-jetson-TX2
图39中左边是官方的开发板和扩展板,不过因为官方扩展板体积太大了用在不少地方不方便,因而网上推出了一款小巧的扩展板Connect Tech Inc很不错。
(图40)Nvidia-jetson-TX1/2性能参数
这个是性能表,看上去也是叼叼的,不过售价不便宜接近5000RMB。。。
前面介绍的都是ARM架构的主板,如今介绍一款X86架构的主板NUC。
(图41)Intel-NUC
以前用过Intel-NUC7-i7,19V供电65W功耗感受不适合嵌入式级别的应用场合,并且3000RMB的售价也无法和Nvidia-jetson-TX2比较性价比,因此不推荐在机器人上使用。
其实这是intel一个失败的尝试,主打物联网应用,CPU采用intel的Atom处理器,最大的亮点是能够在主板上直接扩展Ardunio单片机开发板。如图42。
(图42)Intel-Edison
其实我的不推荐用Edison来开发SLAM算法,不过也有公司作这方面的尝试,好比上海思岚科技的SLAMWARE-CORE就是Edison的模仿者。
(图43)SLAMWARE-CORE
其实Tango-phone是一个完整的AR方案,手机内集成了深度相机和VO视觉里程计。
(图44)Tango-phone
看网上的演示视频也是十分的炫酷,不过最终这个项目仍是没有在google中火起来,可能仍是存在很多问题的吧。
(图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技术交流群,一块儿讨论学习^_^
关于咱们:
视频教程: