SLAM+语音机器人DIY系列:(三)感知与大脑——6.做一个能走路和对话的机器人

摘要                                              

在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话。朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人。实现的关键是让机器人能通过传感器感知周围环境,并通过机器人大脑处理并输出反馈和执行动作。本章节涉及到的传感器有激光雷达、IMU、轮式里程计、麦克风、音响、摄像头,和用于处理信息的嵌入式主板。关于传感器的ROS驱动程序开发和在机器人上的使用在后面的章节会展开,本章节重点对机器人传感器和嵌入式主板进行讲解,主要内容:

1.ydlidar-x4激光雷达

2.带自校准九轴数据融合IMU惯性传感器

3.轮式里程计与运动控制

4.音响麦克风与摄像头

5.机器人大脑嵌入式主板性能对比

6.做一个能走路和对话的机器人



6.做一个能走路和对话的机器人  

在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话。朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人。为了更形象的表达我的想法,我的小学五年级的绘画水平也是豁出去了,如果有大神路过,恳请多多包涵,画好后的样子大概就是这样啦,如图46

(图46)想象中的机器人

有了想法,接下来就要开始亲自动手DIY了。体验动手乐趣的同时,以玩耍的形式融入当下前沿的SLAM、自动导航、图像识别、语音识别、自然语言处理等技术,提高自己的同时找到属于儿时的那一份快了。

说干就干,首先需要准备好激光雷达、IMU、底盘、音响、麦克风、摄像头这些传感器,然后还要准备一块树莓派3开发板作为机器人的大脑。其实这些知识已经通过前面的文章打好了基础,所以就好办多了,准备好这些东西就好了,如图47

(图47DIY部件准备

准备好传感器和树莓派3后,就可以进行组装了。经过紧张有趣的组装后,一台有趣的机器人就被DIY出来了,这时候终于可以看到传说中的机器人的真容了,如图48,虽然机器人的真实样子没有想象中的那么有艺术感,但科技感十足有木有@^@

(图48DIY出来的机器人真容

麻雀虽小五脏俱全,现在就来对这个会说话会走路的机器人做一做剖析吧。机器人的骨架是由亚克力板和铜柱组合而成;两个带编码器的减速电机和一个万向轮作为运动执行机构;可充电锂电池给整个机器人供电;stm32电机控制板用于控制电机运动并提供里程数据,是底盘的核心部件;激光雷达提供环境障碍信息,用于SLAM建图和避障导航;IMU用于在里程计数据融合、SLAM建图、导航中提供惯导数据;免驱USB声卡、音响、四麦阵列指向性麦克风作为语音交互过程中的输入输出部件;摄像头用于物体识别、物体跟踪、环境监控、视觉辅助定位;树莓派3是整个机器人的中央处理单元,各个传感器的ROS驱动、SLAM算法、导航算法、语音交互、自然语言处理算法、图像处理算法都将运行在上面。为了更好的理解机器人的工作原理,这里给出机器人的硬件框架,如图49

(图49)机器人硬件框架

机器人的硬件搭建完毕后,就要赋予机器人灵魂了。这里说的灵魂就是我们的软件及算法,包括各个传感器的ROS驱动、轮式里程计与IMU融合、激光SLAM建图、自主导航避障、语音识别、语音合成、自然语言处理、物体识别、物体跟踪、远程视频监控、视觉辅助定位、机器人与工作PCAndroid手机之间的通信等。为了更好的理解机器人的工作原理,这里给出机器人的软件框架,如图50

(图50)机器人软件框架

做了如此长的铺垫,大家肯定已经等不及要亲自动手去开发机器人上的软件代码了。别急,接下来的章节将跟你娓娓道来,让你体验动手写程序真正的快乐$^$

后记                                              

------SLAM+语音机器人DIY系列【目录】快速导览------

第1章:Linux基础

1.Linux简介

2.安装Linux发行版ubuntu系统

3.Linux命令行基础操作

第2章:ROS入门

1.ROS是什么

2.ROS系统整体架构

3.在ubuntu16.04中安装ROS kinetic

4.如何编写ROS的第一个程序hello_world

5.编写简单的消息发布器和订阅器

6.编写简单的service和client

7.理解tf的原理

8.理解roslaunch在大型项目中的作用

9.熟练使用rviz

10.在实际机器人上运行ROS高级功能预览

第3章:感知与大脑

1.ydlidar-x4激光雷达

2.带自校准九轴数据融合IMU惯性传感器

3.轮式里程计与运动控制

4.音响麦克风与摄像头

5.机器人大脑嵌入式主板性能对比

6.做一个能走路和对话的机器人

第4章:差分底盘设计

1.stm32主控硬件设计

2.stm32主控软件设计

3.底盘通信协议

4.底盘ROS驱动开发

5.底盘PID控制参数整定

6.底盘里程计标

第5章:树莓派3开发环境搭建

1.安装系统ubuntu_mate_16.04

2.安装ros-kinetic

3.装机后一些实用软件安装和系统设置

4.PC端与robot端ROS网络通信

5.Android手机端与robot端ROS网络通信

6.树莓派USB与tty串口号绑定

7.开机自启动ROS节点

第6章:SLAM建图与自主避障导航

1.在机器人上使用传感器

2.google-cartographer机器人SLAM建图

3.ros-navigation机器人自主避障导航

4.多目标点导航及任务调度

5.机器人巡航与现场监控

第7章:语音交互与自然语言处理

1.语音交互相关技术

2.机器人语音交互实现

3.自然语言处理云计算引擎

第8章:高阶拓展

1.miiboo机器人安卓手机APP开发

2.centos7下部署Django(nginx+uwsgi+django+python3)

----------------文章将持续更新,敬请关注-----------------

 

如果大家对博文的相关类容感兴趣,或有什么技术疑问,欢迎加入下面的《SLAM+语音机器人DIY》QQ技术交流群,一起讨论学习^_^

关于我们:

视频教程:

 

https://www.bilibili.com/video/av61448040

posted @ 2019-02-19 17:16 小虎哥哥爱学习 阅读(...) 评论(...) 编辑 收藏