序言...................................................................................... . III 前言...................................................................................... . V 第 1 章Roban 机器人概述................................................................. 1 1.1 Roban 机器人简介................................................................. 1 1.1.1 Roban 机器人系统........................................................... . 1 1.1.2 Roban 机器人关节运动模型................................................... . 4 1.1.3 Roban 机器人控制框架....................................................... . 6 1.2 操作Roban 机器人............................................................... . 6 1.2.1 无线网络设置............................................................... . 6 1.2.2 远程登录Roban 机器人........................................................ 8 1.2.3 使用VS Code 开发...........................................................11 第 2 章Python 编程基础................................................................ . 15 2.1 Python 语法..................................................................... . 15 2.1.1 Python 运行方式.............................................................15 2.1.2 Python 程序书写格式.........................................................18 2.1.3 变量、数据类型、表达式.....................................................19 2.1.4 条件语句.................................................................. . 22 2.1.5 while 循环语句............................................................. . 24 2.1.6 continue 与break 语句....................................................... . 26 2.1.7 列表...................................................................... . 27 2.1.8 元组与字典................................................................ . 30 2.2 Python 函数..................................................................... . 31 2.2.1 函数定义.................................................................. . 32 2.2.2 函数参数.................................................................. . 33 VIII 2.2.3 Python 模块................................................................ . 35 2.3 Python 对象与类................................................................ . 36 2.3.1 类的定义与使用............................................................ . 37 2.3.2 类的继承.................................................................. . 38 2.4 文件和异常..................................................................... . 39 2.4.1 文本文件读写.............................................................. . 40 2.4.2 二进制文件读写............................................................ . 42 2.4.3 异常...................................................................... . 43 第 3 章ROS 使用概述....................................................................45 3.1 ROS 简介....................................................................... . 45 3.2 程序包与节点....................................................................46 3.2.1 程序包与节点介绍......................................................... . 46 3.2.2 节点的编译与运行......................................................... . 47 3.3 话题与服务..................................................................... . 49 3.3.1 ROS 话题................................................................. . 49 3.3.2 ROS 消息与消息类型....................................................... . 50 3.3.3 ROS 服务................................................................. . 53 3.4 launch 文件与参数.............................................................. . 56 3.4.1 launch 文件介绍.............................................................56 3.4.2 机器人实践.................................................................59 3.5 常用调试工具rqt.................................................................61 3.5.1 rqt_plot ................................................................... . 61 3.5.2 rqt_img_View ............................................................. . 61 3.5.3 rqt_graph ................................................................. . 62 3.6 ROS 配置实践.................................................................. . 63 3.6.1 ROS 编译环境搭建与测试................................................... . 63 3.6.2 ROS 话题................................................................. . 70 3.6.3 ROS 服务................................................................. . 78 3.7 主从机配置..................................................................... . 86 3.7.1 获取IP 地址和Hostname .................................................... . 86 IX 3.7.2 修改对应的hosts ........................................................... . 87 3.7.3 配置主从关系...............................................................87 3.8 ROS CvBridge 实践...............................................................88 3.8.1 将ROS 图像消息转换为OpenCV 的图像...................................... . 88 3.8.2 将OpenCV 图像转换为ROS 图像消息........................................ . 88 3.8.3 在计算机上显示Roban 机器人摄像头数据......................................89 第 4 章同步定位与地图构建............................................................ . 90 4.1 SLAM 简介..................................................................... . 90 4.2 图像的接收和发布.............................................................. . 91 4.2.1 初始化和配置...............................................................91 4.2.2 主要功能实现...............................................................93 4.3 定位和图像追踪——ORB-SLAM2............................................... . 97 4.3.1 数据接收和程序初始化..................................................... . 97 4.3.2 点云地图创建/重用......................................................... . 99 4.4 八叉树图层的截取以及平面地图的生成..........................................102 4.4.1 八叉树图层的截取........................................................ . 102 4.4.2 平面地图的生成.......................................................... . 103 4.5 路径规划...................................................................... . 104 4.6 行走实现...................................................................... . 107 4.6.1 路径分析..................................................................107 4.6.2 行走控制..................................................................110 第 5 章V-REP 使用概述............................................................... . 113 5.1 V-REP 使用简介............................................................... . 114 5.1.1 前言......................................................................114 5.1.2 安装带有ROS 的V-REP ................................................... . 116 5.1.3 V-REP 的简单使用........................................................ . 122 5.1.4 理解RosInterface ...........................................................128 5.2 V-REP 中的Roban 机器人...................................................... . 138 5.2.1 导入Roban 机器人........................................................ . 138 5.2.2 BodyHub 简介与启动...................................................... . 140 5.2.3 关节运动控制............................................................ . 148 5.2.4 仿真中的步态运行........................................................ . 159 5.3 V-REP 传感器使用............................................................. . 166 5.3.1 视觉传感器.............................................................. . 166 5.3.2 接近传感器.............................................................. . 177 5.4 V-REP 使用实践............................................................... . 181 5.4.1 过坑路段..................................................................182 5.4.2 雷区路段..................................................................186 5.4.3 踢球进洞路段............................................................ . 192 第 6 章Roban 机器人运动控制基础.................................................... . 199 6.1 关节............................................................................199 6.1.1 头部关节..................................................................200 6.1.2 手臂关节..................................................................201 6.1.3 髋关节....................................................................202 6.1.4 腿部关节..................................................................202 6.1.5 伺服电机..................................................................204 6.2 完整动作执行...................................................................205 6.3 运动控制...................................................................... . 207 6.3.1 舵机参数设置............................................................ . 208 6.3.2 关节位置控制............................................................ . 208 6.3.3 步态控制..................................................................211 6.4 运动学正解.................................................................... . 215 6.4.1 运行IK 节点............................................................. . 215 6.4.2 计算四肢末端位置........................................................ . 215 6.5 运动学逆解.................................................................... . 218 6.5.1 机器人扭腰.............................................................. . 218 6.5.2 扭腰中IK 逆解的处理..................................................... . 223 6.5.3 机器人晃腰.............................................................. . 227 6.6 自动避障实践...................................................................230 6.6.1 3D 相机的原理........................................................... . 230 6.6.2 设计思路以及步骤........................................................ . 231 6.6.3 示例代码..................................................................232 XI 第 7 章双足步行基础.................................................................. . 235 7.1 机器人运动学...................................................................235 7.1.1 坐标变换..................................................................236 7.1.2 人形机器人运动学模型.................................................... . 239 7.1.3 正运动学..................................................................239 7.1.4 逆运动学..................................................................242 7.2 ZMP 的含义................................................................... . 246 7.2.1 ZMP 与地面反力.......................................................... . 246 7.2.2 ZMP 分析................................................................ . 248 7.2.3 ZMP 的测量.............................................................. . 252 7.2.4 ZMP 与机器人运动.........................................................256 7.3 基于线性倒立摆的双足步态生成............................................... . 258 7.3.1 质心轨迹生成............................................................ . 258 7.3.2 足端轨迹生成............................................................ . 261 7.3.3 台阶及斜坡地形的步态规划................................................ . 263 7.4 机器人静步态实践............................................................. . 267 7.4.1 五次样条插值............................................................ . 267 7.4.2 实现机器人双足支撑情况下的重心位置移动...................................268 7.4.3 实现摆动脚轨迹规划以及摆动脚的运行...................................... . 270 7.5 机器人上楼梯实践............................................................. . 276 7.5.1 第一阶段..................................................................276 7.5.2 第二阶段..................................................................278 7.5.3 第三阶段..................................................................279 7.5.4 第四阶段..................................................................281 第 8 章人机交互........................................................................283 8.1 音频处理...................................................................... . 283 8.1.1 语音识别..................................................................285 8.1.2 语音合成..................................................................289 8.1.3 聊天机器人综合应用...................................................... . 293 8.2 视频处理...................................................................... . 297 8.2.1 视频设备简介............................................................ . 297 XII 8.2.2 图像处理工具............................................................ . 300 8.2.3 颜色检测..................................................................309 8.3 综合应用...................................................................... . 323 8.3.1 基本原理..................................................................323 8.3.2 主要接口..................................................................324 8.3.3 运行方式..................................................................324 8.4 颜色识别实践...................................................................324 8.4.1 HSV 颜色模型介绍........................................................ . 324 8.4.2 识别小球..................................................................325 8.4.3 追踪小球..................................................................327 8.4.4 追踪多种颜色小球........................................................ . 328 8.5 人脸识别实践...................................................................330 8.6 数字识别实践...................................................................348 8.6.1 深度学习之Keras ......................................................... . 348 8.6.2 使用模型进行数字识别.................................................... . 355 参考文献................................................................................ . 358