机器人学
规划与集群
机器人地图的分类
- 尺度地图(Metric Map):使用坐标来表示地点
- 常用于地图构建(Mapping)、定位(Localization)和同时定位与地图构建(Simulataneous Localization And Mapping)
- 拓扑地图(Topological Map): 用点与边来表示,与图论相关
- 常用于路径规划(Path Planning)
- 语义地图:用标签的集合来表示地点和道路
- 常用于人机交互(Human Robot Interaction)
占据栅格地图(Occupancy Grid Map)
特点: - 最为稠密 - 有结构的 - 直接索引查询
占据率(Occupancy): 用\(p(s=1)\)来表示一个点为Free状态的概率,用\(p(s=0)\)来表示为Occupied状态的概率.最终用\(Odd(s)=\frac{p(s=1)}{p(s=0)}\)来表示一个点的状态
八叉树地图
特点: - 稀疏 - 有结构的 - 直接索引查询
点云地图
- 无顺序
- 无法索引查询
ESDF地图
- 欧式符号距离函数ESDF(Euclidean Signed Distance Function)
- 增量式更新,全局地图
- 分批更新,局部地图
路径搜索
- 基于采样的方法
- PRM(Probabilistic Road Map)
- RRT(Rapidly-exploring Random Trees)
- RRT*
- 基于搜索的方法:均有一个对应的状态空间图
- 图搜索:DF,BFS
- Dijkstra,A*
- JPS(Jump Point Search)
PRM
- 均匀生成采样点
- 删除与障碍物接触的点
- 在距离为r的圆内的点为领域点,将其连接
- 碰撞检查:连线是否与障碍物相交
优点:产生的roadmap可以被复用 缺点:对于给定的起点和终点并不是最短的路径,效率较低
RRT
- 概率采样
- 与最近点相连接,生成树
优点:容易添加对目标点的引导,增加效率 缺点:无法删除已生成的树,不一定是最短
RRT*
- 增加了Rewrite函数,判断从初始点开始有没有更优的连接方案,重布线
Dijkstra
贪心搜索:每次都走所有未走边中的最小边 优点: - 实现简单且总能找到最短路径 缺点: - 效率较低:需要遍历图中大部分节点 - 实时性差:不能快速适应环境变化
A*
- 增加了对距离目标点的预测方向,有目的性 优点:
- 效率高:通过启发函数,可以减少要遍历的节点数量
- 准确性:总能找到最短路径
- 灵活性:能够通过修改启发函数来对算法进行定制
缺点: - 启发式函数的选择对算法性能影响大 - 在高度动态的环境中仍然面临挑战
JPS
- 在图上搜索
轨迹生成
- 轨迹光滑性通过轨迹参数化形式保证
群体机器人
群体行为特点
- 有限的局部信息,个体对于整体结构没有全局性了解
- 简单的个体规则,个体遵从简单行为规则,而形成全局结构
- 全局结构涌现出有利功能
自然界生物是如何在动态环境中执行复杂的任务,且没有任何控制和集中式的协调?
大量个体仅能观察部分的环境信息是如何解决全局的问题?
群体的认知能力是如何从个体有限的认知能力中涌现出来的?
群体机器人的定义
- Dorigo and Sahin(2004)
集群机器人是研究如何设计大量相对简单的物理个体,以便从个体之间以及个体与环境之间的局部交互中涌现出所需的集体行为。
- Sharkey(2007)
可拓展的群体机器人 - 实用的极简群体机器人 - 受自然启发的极简群体机器人
群体智能的关键机制
通过局部的个体之间相互作用涌现出具有全局效果的结构 - 聚合(Aggregation) - 图案形成(Pattern Formation) - 自组装(Self-assembly) - 群体搬运(Collective Transport) - 群体探索(Collective Exploration)
集群算法
基于Virtual Structures的编队控制VRB(virtual rigid body)
目标: - 保持队形:整个集群用virtual structure 表示为一个世界坐标系下的整体 - 导航要求:到达目标位置 - 避障
实现: - 保持队形 - 在世界坐标系下,考虑VRB的轨迹,规划虚拟刚体质心的轨迹 - 在局部参考坐标系下,考虑控制每个独立个体的轨迹 - 避障
虚拟势场法Vittual potential field(VPF) - 编队势能场:吸引到达目标位置 - 相互躲避势能场:排斥相互远离 - 优点:实时性强、防突发威胁强 - 缺点:局部困扰现象
VO(Velovity Obstacle)
优点:复杂度低 缺点:每个机器人都只考虑其他机器人的当前行为,而不考虑它们的决策
算法细节: - 将自身视为之质点,将自身圆半径加在对方身上,设置虚拟的速度障碍,速度矢量不能落在障碍区中
改进: RVO(reciprocal velocity Obstacle) - 对于避障职责的分配
生物群落模型
目标:实现像鸟群一样的一致飞行,每个个体由三股力决定 - 短距离:与邻居、障碍物的排斥速度 - 中距离:运动对齐速度,越偏离斥力越大 - 长距离:远方目标的引力,一定范围里维持
难点 参数繁多且参数敏感 解决:进化算法调参
机器人视觉
被动视觉传感器
- 定义:不依赖于特殊的照明投射装置,仅通过图像建立被测物与相机之间的相对位置关系,从而获取被测物表面的三维信息
- 原理:借助外部光源的漫反射并结合小孔成像
- CCD传感器:成像面的一块具有反光能力的芯片
缺点: - 无法获得物体的深度和大小 - 弱光环境下无法成像
双目相机可以获得深度,通过视角差和目距来计算深度
主动视觉传感器
- 定义:需要向被测物体投射光源
图像函数
图像时定义在CCD阵列下的离散函数 \(\(I:(u,v) \in [0,W-1]\times[0,H-1] \rightarrow q \in \mathbb{R}^N\)\) \(\(q=I(x)\)\)
W,H分别为像素格数
- 用\(c_x\),\(c_y\)表示图像坐标系下的光心
- 引入R,t表示实际世界坐标和相机中心之间的位姿
镜头畸变
- 利用棋盘格作为已知尺寸的物体,利用平面特性方便求解
- 棋盘格的角点检测相对简单,可靠性高
- 基于指定尺寸平面,可以估计出平面和相机的外参,也就是相机在世界坐标系下的位姿
- 如果在世界坐标系下,增加一个虚拟点,可以计算出在图像中的成像
外部定位
- 确定机器人在世界(全局)坐标系中的位置/位姿,进行导航规划
GPS:全球定位系统 - 多卫星的距离测量定位 - 信号多路径时需要更多卫星保证可靠性
视觉定位
基于空间标识的定位原理 - 激光反射板、特定标志牌 - 三个路标能够确定机器人的位置和姿态
概率融合能够避免非唯一数据关联引起的歧义。
轮式里程估计误差
- 系统误差
- 轮半径误差
- 安装精度误差
- 编码器精度误差
- 采样精度误差
- 齿轮减速比精度
- 偶然误差
- 地面不平
- 轮子打滑
脉宽调制技术
- 动力源直接供电,但开关由小功率控制信号来控制,从而调制成大功率的控制电压
- 电路中的高速开关将供给电机的连续电流离散化
- 电源供给的能量收到离散电流的控制
-
当开关速度远大于电机响应速度时,开关对电机转速平稳性的影响可以忽略不计
-
开关闭合-断开一个周期时间,记为\(T_c\)
- 开关频率,即开关的速度记为\(f_c=1/T_c\)
- 在一个周期内,开关闭合时间占整个周期的比例称为占空比\(d = t_1 / T_c \times 100%\)
把连续变化的控制电压转化为固定频率的方波信号,方波占空比与电压大小成正比,利用方波信号控制电机调速的技术称为脉宽调制技术
控制
开环控制
- 利用电压与速度的对应关系,直接改变输入电压实现转速控制
- 利用速度对时间的积分估计电机转过的角度,实现位置控制
闭环控制
- 使用传感器检测速度(或位置)的实际输出值,以期望速度值与实际速度值之间的差值作为输入,经过控制器处理后生成电压控制信号,又称闭环反馈控制或伺服控制。
优点:调速刚性好,精度高,响应快,抗干扰能力强 缺点:系统复杂,可靠性低,成本高
在动态性能要求不高的场合,为降低系统应用的复杂度,可采用步进电机或舵机来替代伺服系统.
步进电机
- 通过脉冲信号控制,线性开环控制
- 步距角常见为\(1.8^\circ (0.9^\circ,3.6^\circ,7.5^\circ)\)
组合方案:步进电机+步进驱动器+伺服控制器 优点: - 可实现精密位置控制 - 简单易用 - 成本低 缺点: - 存在“丢步”现象导致精度下降,对负载波动适应性差
传动
传功比(减速比):指减速机构输入速度与输出速度之比
减速作用:减小速度、增大力矩
齿轮传动
- 分度圆d:齿轮上一个人为地约定的轮齿计算的基准圆,规定分度圆上的模数和压力角为标准值。分度圆又称节圆。
- 模数m:人为地把\(p_i / \pi\)规定为一些简单的有理数,该比值称为模数,用m表示。
- 国标压力角的标准值为\(20\circ\)
- 两齿轮正确啮合的条件:模数相等,啮合处压力角相等.
齿轮基本参数的计算公式
- 分度圆直径 \(d=mz\)
- 基圆直径 \(d_b = mz \cos{\alpha}\)
- 基圆上的齿距\(P_b = \pi m \cos{\alpha}\)
定轴轮系的传动比计算 \(i_{1,5}=\frac{\omega_1}{\omega_5} = (-1)^3\frac{z_2}{z_1} \cdot \frac{z_3}{z_{2'}} \cdot \frac{z_5}{z_{3'}}\)