电子书 编程

移动机器人编程:Python 与 C 语言实践(第二版)(英

¥1.90 已售 0
✓ 自动发货 ✓ 永久有效 ✓ 售后保障

资源介绍

文版电子书) 核心内容架构 (一)机器人硬件基础(第 1 章) 书中首先介绍移动机器人硬件构成,以作者团队开发的 “EyeBot 机器人家族” 为案例,该家族包含轮式、履带式、腿式、飞行及水下机器人等多种类型,均配备摄像头、距离传感器和触摸屏 LCD 界面。 执行器:重点讲解驱动机器人运动的电机,说明电机需通过电机驱动芯片(如 EyeBot I/O 控制器)与树莓派(Raspberry Pi)连接,因电机所需电流远超微控制器引脚供应能力。还介绍了脉冲宽度调制(PWM)技术,通过快速开关全电压模拟低电压,实现电机速度控制,以及差动驱动系统的工作原理,即通过独立控制两个轮式电机,实现机器人直线行驶、曲线行驶和原地转向。 传感器:详细阐述三类核心传感器。轴编码器通过光学原理(如带槽圆盘或反射圆盘)提供电机速度和位置反馈,辅助实现速度与位置控制,但长距离行驶易因误差累积导致定位失效;红外距离传感器(PSD)利用红外光束反射计算距离,部分高精度传感器采用激光飞行时间原理;摄像头作为复杂传感器,能输出高分辨率图像,书中推荐根据处理速度需求选择合适分辨率,如 QQVGA(160×120)适合快速验证概念。 处理器与 I/O 接口:以树莓派结合 EyeBot - 8 接口板为例,说明接口板提供的多种接口功能,如电机驱动、编码器输入、伺服输出等,还介绍了机器人硬件组装方式,包括载体板选择、电池安装(推荐带保护电路的 18650 锂电池)及各组件的堆叠安装。 通信与用户界面:机器人通过树莓派内置 WiFi 模块实现无线通信,默认 WiFi 热点、IP 地址、用户名和密码便于连接,支持多机器人组网;触摸屏显示器可显示传感器数据、接收用户指令,在真实机器人和仿真环境中功能一致。 仿真系统:介绍 EyeSim 仿真系统,能模拟多种机器人运动,且仿真程序可直接移植到真实机器人,无需修改代码,还支持 VR 版本(如 Oculus Quest 设备),最新版 EyeSim - VR 由团队多次重构,保证运动模拟的真实性。 (二)机器人软件基础(第 2 章) 该章节围绕 EyeSim 仿真系统和 RoBIOS(Robot Basic I/O System)操作系统展开,讲解机器人软件开发的基础流程与核心功能。 软件安装:不同操作系统安装要求不同,Windows 版 EyeSim 自动安装 Cygwin 包,Mac OS 用户需单独安装 XQuartz 库,Linux 用户无需额外包,软件可从指定网址下载,还需根据需求安装 OpenCV 等额外库用于图像处理。 编程语言入门:分别给出 Python 和 C 语言的基础编程示例,如控制机器人直线行驶。Python 通过导入 “eye” 模块调用 RoBIOS API,代码简洁易交互;C 语言需包含头文件、定义主函数,且需编译后运行,书中提供编译脚本和 Makefile 简化操作。 基础功能实现:介绍驱动机器人完成特定动作(如正方形轨迹行驶)的编程方法,强调 VWWait 函数的重要性,防止后续指令覆盖当前驱动指令。还讲解 SIM 脚本和环境文件的使用,可快速搭建复杂仿真场景,以及触摸屏显示与按键输入、距离传感器数据读取与应用、摄像头图像采集与显示、机器人间无线通信(基于 WiFi 的 RADIO 系列函数)和多任务处理(使用 pthreads 库)等功能的实现。 IDE 工具推荐:推荐适合 Python 和 C/C++ 开发的 IDE,如 Thonny、PyCharm(Python)和 CLion(C/C++),这些工具支持单步调试、断点设置等功能,能提高开发效率。 虚拟现实应用:介绍基于 EyeSim 的 VR 版本,可在 Oculus/Meta Quest 等设备上运行,用户能在虚拟场景中与机器人交互,还可使用 C# 编写新应用程序。 (三)进阶驱动算法(第 3 章) 深入探讨多种机器人驱动算法,从简单随机行驶到复杂曲线行驶,满足不同场景需求。 随机行驶:模拟早期扫地机器人的随机驱动算法,机器人直线行驶至障碍物后,后退短距离并随机转向,还可扩展算法,添加传感器数据显示和摄像头图像采集功能,支持多机器人在同一环境中安全运行。 目标点行驶:介绍四种从 A 点到 B 点的行驶方法。“转向 - 直线” 法先计算目标方向和距离,旋转机器人后直线行驶;“圆形轨迹” 法通过计算圆弧半径和弧长,控制机器人沿圆弧行驶;“狗曲线” 法通过持续微调机器人朝向,逐步接近目标;“样条曲线” 法(如 Hermite 样条)可指定机器人到达目标点时的朝向,适用于机器人足球等对朝向有要求的场景。 (四)其他关键技术章节 激光雷达传感器(第 4 章):激光雷达(Lidar)通过旋转激光束生成大量距离数据,相比摄像头更易处理距离信息,但成本较高。书中介绍激光雷达扫描数据的获取与显示方法,以及如何通过分析扫描数据识别环境中的角落和障碍物,还给出相关编程示例,如在 C 和 Python 中实现激光雷达数据的采集与可视化。 机器人群体(第 5 章):讲解机器人群体的搭建与控制,通过 SIM 脚本和环境文件中的占位符快速部署大量机器人,支持不同类型机器人混合部署。介绍 “跟随” 应用场景,如单个或多个机器人跟随引导机器人行驶,通过特定传感器(如高位激光雷达)识别引导机器人,还需处理机器人间的碰撞 avoidance。 壁障行驶(第 6 章):壁障行驶是机器人导航的基础功能,书中介绍标准壁障算法的四个步骤,还提供简化的壁障程序示例,通过读取 PSD 传感器数据控制机器人行驶方向,同时指出该程序的局限性,如对复杂环境适应性差,需进一步优化。 其他驱动系统(第 7 章):除差动驱动外,还介绍阿克曼转向(汽车常用,需独立转向机构)、全向驱动(如麦卡纳姆轮机器人,可向任意方向移动)、滑移转向(适用于户外复杂地形,但室内易磨损电机)和履带驱动(适用于不平坦地形,需 3D 路径规划算法)等驱动系统,给出相应的硬件连接和编程示例。 水上与水下机器人(第 8 章):介绍自主 boats 和水下机器人(AUV)的设计与仿真,包括硬件构成(如太阳能驱动的双体船、多推进器水下机器人)、仿真环境搭建(通过世界文件设置水域、地形和纹理)以及相关功能实现(如水下机器人的下潜和移动控制)。 迷宫导航(第 9 章):迷宫导航是机器人导航的经典问题,书中介绍 “沿墙行驶” 算法(如靠左墙行驶),通过 PSD 传感器检测墙壁,控制机器人在迷宫中行驶,还讲解如何提高算法鲁棒性,如通过比例控制(P - control)补偿机器人行驶误差,以及使用激光雷达提升导航性能,介绍递归迷宫探索算法和洪水填充(Flood - Fill)算法用于寻找最短路径。 导航技术(第 10 章):区分已知环境和未知环境下的导航。未知环境中使用 DistBug 算法,结合壁障行驶和目标点行驶,实现路径寻找;已知环境中使用占用网格地图表示环境,通过四叉树算法分解环境,生成无碰撞路径,再利用 A * 等算法寻找最短路径,书中给出相关算法的实现步骤和编程示例。 机器人视觉(第 11 章):机器人视觉是重要的感知手段,书中介绍摄像头图像的采集与显示,以及边缘检测(如 Laplace 算子、Canny 边缘检测)、颜色检测(将 RGB 图像转换为 HSI 格式,提高颜色检测的鲁棒性)和运动检测(通过对比连续图像的差异检测运动目标)等视觉处理技术,还介绍 OpenCV 库的使用,实现更复杂的图像处理功能。 学习型机器人(第 12 章):以 “Starman” 步行机器人为例,介绍使用遗传算法(GA)优化机器人运动模式。遗传算法通过模拟生物进化过程,对机器人的运动参数(如肢体关节角度序列)进行迭代优化,逐步提升机器人的运动性能,书中详细讲解遗传算法的实现步骤,包括基因编码、适应度函数设计、选择、交叉和变异操作等。 交通模型(第 13 章):以 Carolo - Cup 等自主模型车竞赛为背景,介绍小型机器人在交通场景中的应用开发,包括车道检测与保持、交叉口和斑马线识别、交通标志识别(使用 HOG 特征等方法)以及端到端学习(基于深度神经网络,直接从图像数据学习驾驶决策)等技术,还讨论相关技术在真实自动驾驶中的扩展应用。 自动驾驶汽车(第 14 章):从机器人过渡到自动驾驶汽车,介绍电动汽车驱动系统、线控驱动系统(实现转向、制动和加速的电子控制)、传感器与安全系统(如激光雷达、雷达、摄像头等传感器的融合,以及多层安全机制),还介绍 Formula - SAE 自主赛车的设计与仿真,包括赛道锥桶检测与跟踪算法的实现,以及校园和公共道路场景下的自主导航技术。 展望与附录(第 15 章及附录):展望移动机器人领域的发展方向,鼓励读者结合 EyeSim 仿真系统和真实机器人开展更多实验,还推荐 ROS(Robot Operating System)用于复杂机器人项目开发。附录部分详细列出 RoBIOS - 7 库的函数,包括 LCD 显示、按键输入、摄像头控制、图像处理、系统功能、定时器、通信、音频、距离传感器、伺服电机与电机控制、V - Omega 驱动接口、数字与模拟 I/O、红外遥控和无线通信等系列函数,为编程提供全面参考。 三、书籍特色与价值 理论与实践结合:书中既有扎实的理论知识讲解,又提供丰富的编程示例和实验任务,读者可通过仿真系统快速验证理论,再将程序移植到真实机器人,降低实践门槛。 软硬件协同:以 EyeBot 机器人家族和 EyeSim 仿真系统为核心,实现软硬件紧密结合,确保仿真与真实环境的一致性,减少程序移植的难度。 循序渐进:内容从基础硬件软件知识,逐步过渡到进阶算法和复杂应用,符合读者的学习规律,适合不同层次的读者(如学生、机器人爱好者和工程师)。 实用性强:书中提供大量可直接使用的代码、脚本和配置文件,还推荐实用的开发工具和资源,读者可快速上手开发机器人应用,解决实际问题。 覆盖范围广:涵盖轮式、履带式、腿式、水上、水下和自动驾驶汽车等多种移动机器人类型,以及驱动、感知、导航、通信和学习等关键技术,为读者提供全面的移动机器人编程知识体系。