在当今数字化时代,智能终端技术正以前所未有的速度发展,深刻地影响和改变着我们的生活和工作方式。从智能家居到工业自动化,从智慧城市到无人驾驶,智能终端技术的应用前景无限广阔。为了满足这一领域日益增长的人才需求,培养具有创新精神和实践能力的智能终端应用开发者,编写了这本教材。
本书旨在为读者提供一个全面、系统的智能终端应用开发学习路径。无论是初学者还是有一定基础的专业人士,都能通过本书的学习,掌握智能终端开发的核心知识与技能。本书特别注重理论与实践相结合,强调动手操作能力的培养,以期读者能够学以致用,解决实际问题。
本书共分为14章,内容涵盖树莓派的简介与操作、编程环境搭建、文件传输与串口通信以及K210和YOLO v3等先进技术。书中还深入讲解了ROS的基础知识、常用组件、机器人平台、SLAM建图与自主导航、机器人视觉、MoveIt!与机械臂控制以及语音功能和多机器人系统的综合应用。本书具有以下特色。
(1) 系统性: 从智能终端的基本概念到复杂系统的应用开发,本书提供了一个连贯的学习路径,帮助读者逐步建立起完整的知识体系。
(2) 实用性: 每章都配有实践指导和案例分析,使读者能够通过动手实践巩固理论知识。
(3) 前沿性: 涵盖了当前智能终端领域的最新技术,如ROS(机器人操作系统)、机器人视觉、语音识别等,确保读者能够掌握行业最新动态。
(4) 扩展性: 本书不仅介绍了基础开发技能,还探讨了多机器人系统的综合应用,为读者提供了广阔的技术视野和发展空间。
在本书编写过程中,得到了许多同行和专家的宝贵意见与支持,在此向所有提供帮助和支持的个人和机构表示衷心的感谢。
最后,希望本书能够成为读者在智能终端应用开发领域的良师益友,激发创新思维,培养实践技能,共同推动智能科技的发展。
编者
2025年5月
第1章树莓派概述
1.1树莓派
1.1.1树莓派发展历史
1.1.2树莓派家族
1.2树莓派扩展板
1.2.1HiFi DAC扩展板
1.2.2树莓派瑞士军刀扩展板
1.2.3其他扩展板
1.3操作系统的选择与安装
1.3.1Raspberry Pi OS
1.3.2NOOBS
1.3.3Ubuntu MATE
1.3.4Snappy Ubuntu Core
1.3.5DietPi
1.3.6RISC OS
1.3.7Windows 10 IoT
1.3.8系统的安装
1.4操作系统初始化
1.4.1显示设置
1.4.2更改区域
1.4.3修改密码
1.4.4其他工作
1.4.5关闭树莓派
第2章树莓派的网络连接
2.1有线网络配置
2.1.1有线连接路由器
2.1.2直连计算机
2.2无线网络配置
2.2.1通过图形化用户界面配置
2.2.2通过修改配置文件连接WiFi
2.3树莓派静态IP地址配置
2.3.1通过图形化界面设置静态IP地址
2.3.2通过修改网络接口文件设置静态IP地址
2.4利用SSH远程控制树莓派
2.4.1SSH简介
2.4.2SSH认证
2.4.3无显示屏启用SSH
2.4.4使用图形化用户界面启用SSH
2.4.5使用终端启用SSH
2.4.6PuTTY通过密码建立SSH连接
2.4.7PuTTY通过SSH key建立SSH连接
2.5利用VNC远程控制树莓派
2.5.1VNC简介
2.5.2安装VNC
2.5.3开启VNC
2.5.4使用VNC远程登录树莓派
2.5.5无法显示桌面的问题
第3章树莓派的基本操作
3.1系统目录
3.2常用的Linux终端快捷键
3.3磁盘管理
3.3.1df命令
3.3.2fdisk命令
3.3.3du命令
3.4文件管理
3.4.1SSH远程连接下的文件管理
3.4.2VNC远程连接下的文件管理
3.5配置NFS服务端
3.5.1NFS简介
3.5.2NFS的工作原理
3.5.3安装NFS服务器组件
3.5.4启动NFS服务
3.6配置NFS客户端
3.6.1安装NFS客户端组件
3.6.2从服务端挂载共享文件
3.6.3卸载文件
第4章树莓派编程环境
4.1Python概述
4.1.1什么是Python
4.1.2Python的特点
4.2Python程序开发
4.2.1部分控制语句
4.2.2迭代器和生成器
4.2.3表达式
4.2.4对象的方法
4.3运行Python程序
4.3.1Thonny Python的界面
4.3.2Thonny的View选项
4.3.3Thonny的Options选项
4.3.4编写Python程序
第5章WinSCP
5.1WinSCP的安装
5.2导入文件至树莓派
5.3从树莓派中导出文件
第6章树莓派的串口通信
6.1什么是串口通信
6.1.1串口通信的原理
6.1.2串口通信的方式
6.1.3串口通信接口标准
6.2树莓派串口
6.3利用串口与计算机通信
第7章K210芯片和YOLO v3简介
7.1K210
7.1.1K210简介
7.1.2基于K210芯片的开发环境搭建
7.1.3K210芯片的基础功能
7.1.4K210芯片的高级功能
7.2YOLO v3
7.2.1YOLO v3简介
7.2.2训练YOLO v3模型
第8章ROS简介与基础
8.1初识ROS
8.1.1ROS简介
8.1.2ROS的历史
8.1.3ROS的特点
8.2ROS的安装与配置
8.3ROS架构
8.3.1ROS架构简介
8.3.2文件系统
8.3.3计算图
8.3.4开源社区
8.4通信机制
8.4.1话题通信机制
8.4.2服务通信机制
8.4.3参数管理机制
8.4.4话题和服务的区别
8.5ROS开发基础
8.5.1小乌龟例程
8.5.2创建工作空间和功能包
8.5.3自定义软件包
8.5.4深入工作空间
8.5.5创建自定义的ROS消息和服务
8.5.6话题通信的开发
8.5.7服务通信的开发
第9章ROS常用组件
9.1rosbag数据记录与回放
9.1.1录制数据(创建.bag文件)
9.1.2录制所有发布的话题
9.1.3检查并回放.bag文件
9.1.4录制数据子集
9.1.5rosbag录制和回放的局限性
9.2launch文件
9.2.1介绍
9.2.2命令用法
9.2.3传递参数
9.2.4解析 launch 文件
9.3TF
9.3.1TF的作用
9.3.2TF示例
9.3.3TF的使用方法
9.4rqt工具箱
9.4.1日志输出工具(rqt_console)
9.4.2计算图可视化工具(rqt_graph)
9.4.3数据绘图工具(rqt_plot)
9.4.4参数动态配置工具
9.5RViz三维可视化工具
9.5.1安装并运行RViz
9.5.2数据可视化
9.5.3插件扩展机制
第10章机器人平台
10.1机器人的定义与组成
10.1.1机器人的定义
10.1.2机器人的组成
10.2激光雷达
10.2.1激光雷达简介
10.2.2激光雷达的参数
10.3深度相机
10.3.1深度相机简介
10.3.2深度相机分类
10.4机器人教学平台介绍
10.5运行机器人
10.5.1配置环境变量
10.5.2远程连接机器人
10.5.3验证配置
10.5.4键盘控制机器人移动
第11章SLAM建图与自主导航
11.1基础理论
11.1.1SLAM简介
11.1.2传感器简介
11.2准备工作
11.3传感器信息
11.3.1环境深度信息
11.3.2里程计信息
11.4SLAM建图算法
11.4.1GMapping算法
11.4.2Hector算法
11.4.3cartographer
11.5机器人导航
11.5.1导航功能包
11.5.2机器人的导航配置
11.5.3机器人导航实践
11.5.4多点连续导航
第12章机器人视觉
12.1摄像头标定
12.2ROS图像数据
12.2.1机器人的二维图像数据
12.2.2三维点云数据
12.3OpenCV库
12.3.1OpenCV安装
12.3.2机器人中的文件结构
12.3.3OpenCV 图像处理示例
12.4二维码识别
12.4.1识别功能包
12.4.2生成二维码标签
12.4.3摄像头识别二维码
12.5视觉目标追踪
12.5.1KCF算法简介
12.5.2KCF物体跟踪算法使用
12.6深度相机与VSLAM
12.6.1深度相机模拟激光雷达
12.6.2ORBSLAM
12.6.3ORBSLAM 2
12.7RTABSLAM三维建图
12.7.1RTABSLAM介绍
12.7.2机器人RTAB建图
12.7.3机器人RTAB导航
第13章语音功能
13.1语音识别框架
13.2TTS文字转语音
13.2.1获取科大讯飞公司授权ID
13.2.2配置xtark_audio功能包
13.2.3运行xtark_audio功能包
13.3配置语音识别功能包
13.3.1下载SDK
13.3.2替换资源
13.3.3配置语音参数
13.4语音识别功能包
13.4.1功能介绍
13.4.2使用语音识别功能包
13.4.3语音识别功能包使用技巧
第14章综合应用多机器人系统
14.1网络配置
14.2软件包部署
14.3文件说明
14.4软件包应用
14.4.1多机器人驱动
14.4.2多机器人通信示例
14.4.3多机器人独立控制/同时控制
14.4.4多机器人导航框架
参考文献