目 录

  1. 广义机器人
  2. 机器人系统
  3. 运动规划
  4. 运动控制
  5. 运动感知
  6. 小结
  7. 参考文献

1. 广义机器人

这里所谓的广义机器人是包括:无人机、机械臂、腿足式机器人、轮式机器人,如图1所示,分别是大疆的无人机、新松的协作机械臂、优必选的仿人机器人和百度的无人车(哈哈,支持国产)

图1 广义机器人(侵删)

2. 机器人系统

图2 机器人系统

看上图,大致可以分为三个模块:运动规划、运动控制和运动感知(运动感知这个名词是我自己取的,为了对称,哈哈)

2.1 运动规划

按照高飞老师的《运动规划》课程的介绍,运动规划(Motion Planning)指的是两部分:前端路径规划(Path Finding,Path Planning,这些名词都差不多)与后端轨迹优化(Trajectory Optimization,Trajectory Generation,这些名词也都差不多)

也就是: [公式]

2.2 运动控制

这块是基于我自己的学习划分的,运动控制(Motion Control)是由双环控制系统组成(可能不是很准确,希望能跟大家交流讨论):外环设计控制策略(Control Strategy),内环设计控制模型(Control Model)

也就是: [公式]

2.3 运动感知

这个名词是自己取的,一般大家都强调规划与控制,其实感知也是非常重要的。运动感知(Motion Perception)主要也是包括两个部分:感知系统(Perception System)和观测器(Observer)

3. 运动规划

3.1 路径规划

  • 路径规划的定义:
  • 根据所得到的感知信息和预设目标位置,规划一条机器人从初始位置到目标位置的路径
  • 只考虑工作空间的几何约束,不考虑机器人的运动学模型和约束

需要注意的是:

  1. 感知信息:视觉检测?建图定位?这块一般会考虑多传感信息融合、状态估计等相关的知识
  2. 第二条其实不太准确,随着研究的深入,现在也有基于动力学的路径规划算法
  3. 低维、离散空间
  • 路径规划算法有三类:
  1. 基于搜索的算法:有Dijkstra算法、A*算法、JPS算法等
  2. 基于采样的算法:RRT算法、PRM算法等
  3. 动力学约束算法:State Lattice Search、Kinodynamic RRT*算法、Hybrid A*算法等

3.2 轨迹优化

  • 轨迹优化的定义:
  • 给定路径与机器人约束,生成一组控制序列,使得机器人从初始位姿移动到目标位姿
  • 考虑机器人的运动学模型和约束

需要注意的是:

  1. 轨迹优化其实是对路径的优化,为路径赋予时间尺度
  2. 高维、连续空间
  • 轨迹优化算法通常将问题转化为一个最优控制理论,求解优化问题的算法通常有:
  1. 解析法:变分法、极大值原理、动态规划等
  2. 数值法:直接配置法
  3. 动力学算法:MPC等

从变分法可以延伸出来的通用轨迹规划算法(拟合),通过直接配置法得到的多段轨迹规划算法(插值),从简化动力学得到的MPC算法,这都是后面需要整理的

4. 运动控制

4.1 控制策略

  • 控制策略的定义:
  • 基于任务的类型,可以把控制策略划分为:自由空间的位置控制与接触空间的力控制(更广泛地说:柔顺控制)策略
  • 通常控制策略是基于任务空间(操作空间,笛卡尔空间,或者说不是关节空间)
  • 控制策略的分类:
  1. 位置控制策略:这个其实和轨迹优化有重叠的部分,此外,还可以在任务空间做“位置闭环”
  2. 柔顺控制策略:柔顺控制分为被动柔顺(机械装置)和主动柔顺控制(力控制),最简单的是刚度控制、阻尼控制等这种纯力控制
  3. 组合控制策略:大家比较熟悉的力/位置混合控制、阻抗控制

其实更一般化地控制策略是:混合阻抗控制,融合了力位混合控制和阻抗控制的优点,将任务空间划分为位控子空间和力控子空间,然后分别在两个子空间进行阻抗设计

4.2 控制模型

  • 控制模型的定义:
  • 对外环的控制策略进行跟踪控制

看起来挺简单的,这么说直接用开环控制即可,但是开环控制通常不好使,因为有误差,所以引入了感知系统做闭环控制(或者说是反馈控制);单纯的反馈控制也不行啊,因为得知道你控制的是个啥吧,所以得对系统建模;还得知道外界的干扰也是个啥,所以得对扰动观测。

于是乎又存在三个问题:观测误差(来源于传感器噪声,微分噪声等)、建模误差(来源于未建模动态、模型不准等)和扰动误差(来源于外界干扰)

所以控制模型主要研究以下问题

  • 控制模型的分类:
  1. 无模型控制还是基于模型控制算法:典型的代表分别是PID算法和计算力矩法
  2. 解决建模误差的算法:系统辨识、自适应控制算法等
  3. 解决扰动误差的算法:鲁棒控制、ADRC为代表的扰动观测器算法等
  4. 解决观测误差的算法:以Kalman滤波器为代表的状态估计(这其实和运动感知有重叠的部分)

5. 运动感知

5.1 感知系统

  • 感知系统的定义:
  • 对自身状态和与外界交互状态进行测量的装置或系统
  • 内感系统:编码器、IMU等
  • 外感系统:激光、雷达、相机、GPS等

需要注意的是:我们不专门去研究它的工艺,至少需要了解如何去使用,或者说调库

5.2 状态估计

  • 状态估计的定义(这个话题其实有点大):
  • 运动规划需要状态估计:做建图,定位、导航等
  • 运动控制需要状态估计:信号滤波啊,机器人位置、速度等的估计

需要注意的是:这里面一方面是状态估计的算法,另外一方面是多传感器信息如何进行融合(融合:贝叶斯告诉我们,两个臭皮匠(两个不精确的传感器)顶个诸葛亮(一个不精确的传感器))

  • 状态估计的算法
  1. Luenberger观测器为代表的观测器模型
  2. Naïve Kalman滤波、EKF、UKF等
  3. 融合算法

6. 小结

现在主流都在做深度学习、强化学习等AI,作者在机器人传统算法也混了几年,深感迷茫,未来可能也不全是AI,传统算法也应该有一席之地吧。

接下来想将自己这几年学习的一些算法做个笔记,希望能够跟感兴趣的小伙伴一起交流学习,机器人传统控制不死!!!

凡心所向,素履以往;生如逆旅,一苇以航!

机器人方向很多,机械臂这块的服务机器人、协作机械臂、医疗机器人;腿足式机器人的双足机器人,四足机器人,多足机器人以及整个的仿人机器人;轮式机器人的AGV小车、自动驾驶;无人机;其他特种机器人等,可能行业不同,引起的规划、控制和感知均有所不同,希望所有爱好机器人规划、控制和感知的朋友们,一起努力!

参考文献

  1. LaValle S M. Planning algorithms[M]. Cambridge university press, 2006.
  2. matthewpeterkelly.com/t
  3. Siciliano B, Sciavicco L, Villani L, et al. Robotics: modelling, planning and control[M]. Springer Science & Business Media, 2010.
  4. Simon D. Optimal state estimation: Kalman, H infinity, and nonlinear approaches[M]. John Wiley & Sons, 2006.

深蓝学院的高飞老师的《运动规划》、高翔老师的《机器人学的状态估计》和任乾老师的《多传感器融合定位》(推荐!!

高飞主讲《移动机器人运动规划》shenlanxueyuan.com/cour

高翔主讲《机器人学中状态估计》shenlanxueyuan.com/cour

任乾主讲《多传感器融合定位》shenlanxueyuan.com/cour