机器人笔记 - Introduction
总览
为了使机器人和智能机器执行复杂的任务,它们需要具有执行感知和规划的能力。 感知和规划涉及使用传感器来感知环境,并对传感器数据进行处理以做出适当的决策。
传统工业机器人
传统工业机器人控制使用机械臂和大量预编程的动作。
特点:使用"teach box"进行编程,重复性动作,高速,少量感应操作,高精度动作,预计划的轨迹和任务策略。
"teach box"是一种设备,用于注册和存储机械运动或过程,以便以后由电子或计算机系统调用和执行。 该术语尤其适用于可编程机器人。
当前机器人趋势
从工业的领域逐渐移向了:
- 娱乐行业
- 个人服务
- 医药,手术
- 工业自动化 (挖矿,收割…)
- 危险环境 (太空,水下)
- 自动驾驶
机器人控制
一个机器人被定义为由电脑控制的拥有一定自由度的机器。机器人有多种形态和尺寸,比如机械手,移动机器人,潜水器和无人机等。同时,机器人可以在结构化或者非结构化的环境中运行。
结构化环境: 是一个添加了许多为了方便机器人操作的特性的非自然环境。
非结构化环境:是一个没有为了方便机器人而被进行修改的自然或者人类环境。
一个机器人通常带有能感知环境的传感器以及任务目标。
一个机器人通常拥有三个阶段的操作。
- 感应
- 处理 (解释并计划)
- 行动
planning用来决定如何完成目标(对于预编程的机器人,planning阶段可能不被需要)。路径规划包含了决定如何通过已知信息以及可用的自由度在环境中移动。
机器人控制可能拥有多个子任务:
- 机制的理解和建模 (运动学,动力学)
- 可靠地控制执行器 (闭环控制)
- 任务的生成 (路径规划)
- 传感器集成 (选择或者融合各种类型的传感器)
- 应对噪音和不确定性 (滤除传感器噪声和执行器不确定性)
- 执行灵活的控制策略 (以备应对新情况)
机器人在非结构环境下的需求:
- 自治 (Autonomy) : 机器人必须能够在没有人工干预的情况下实现任务目标。同时,能够根据传感器信息执行自己的决策。
- 临场能力 (Improvisation) :机器人需要知道何时到达目标。更重要的是,懂得在何时放弃一个目标并实现另一个目标。
- 适应 (Adaption) : 机器人必须能够适应环境的变化,并可能从以往的经验中学习。
自主控制
机器人自主执行任务必须解决:
- 机器人机制的建模 (运动学,动力学, 测距法)
- 机器人传感器的选择 (视觉感应,声呐,主动或者被动传感器)
- 执行器的底层控制 (轮子或腿,闭环反应控制)
- 控制架构 (传统规划架构,基于行为的控制架构或者混合架构)
机制建模
- 雅可比矩阵(Jacobian matrices) 可以计算执行器的速度和配置如何转换为机器人的速度
- 前向运动学(Forward kinematics) 描述了机器人手臂关节角度配置如何转换为世界上的位置
- 逆运动学(Inverse kinematics)计算到达空间中特定点所需的关节角度构型。
移动机器人测距法(Odometry)
在移动机器人中,相同的关节角度配置无法识别唯一位置。为了跟踪机器人,有必要逐步更新位置。 此过程称为测距法(或航位推测法)。
机器人巡航
路径规划涉及计算机器人的轨迹,以使其达到期望的目标而不会遇到障碍物。
- 最佳路径可能难以计算。 特别是对于不能沿任意方向移动的机器人(即非完整机器人)。
- 最短的距离路径很危险,因为它们会掠过障碍物。
- 机器人手臂的路径必须考虑整个机器人(而不仅仅是终端执行器)。
感应器
为了在非结构化环境中准确完成任务,机器人必须能够对周围环境的变化做出动态反应。因此,机器人需要传感器来感知环境。不同的机器人使用一组不同的传感器。来自传感器的信息必须以某种方式集成到机器人的控制中。
分类:
- 内部传感器 (Internal Sensors) 可测量机器人配置 (如,编码器测量关节的旋转角度)
- 接近传感器 (Proximity sensors) 用于测量环境中物体的距离或位置,还可以将其用于帮助确定机器人的位置。(如,红外线感应器,超声波传感器和激光测距仪)
- 计算机视觉(Computer vision)为机器人提供了被动观察环境的能力(如,立体视觉系统)。
非结构环境中机器人系统的不确定因素:
- 感应器不确定性 (传感器读数不准确或者不可靠)。
- 不可观察性 (环境的各个方面无法被观察到,以及最初环境未知的状态)
- 动作不确定性 (执行的动作可能失败,行动有不确定的结果)。
控制架构
协商式机器人控制架构 (Deliberative Robot Control Architectures)
在协商控制架构中,机器人首先通过推理其动作的结果来计划任务的解决方案,然后执行该解决方案。控制过程要经过一系列的排序,模型更新和计划步骤。
优点:
- 推理突发事件。
- 计算给定任务的解决方案。
- 目标导向的策略
缺点:
- 在存在不确定性的情况下解决方案往往比较脆弱。
- 需要频繁的重新计划。
- 对变化和意外情况的反应相对较慢。
基于行为的机器人控制架构 (Behavior-based Robot Control Architecture)
在基于行为的控制体系结构中,机器人的动作由一组并行的反应性行为 (reactive behavior) 决定,这些行为将传感器输入和状态映射到动作。基于行为的反应式控制结合了相对简单的行为,每个行为均实现特定的子任务,以实现整体任务。
- 机器人可以快速响应变化。
- 系统不依赖于完整的环境知识。
- 突发情况可能预测确切行为变得困难。
- 难以确保完成整体任务。
*包容架构 (Subsumption Architecture) : 当行为具有明显的层次结构时。行为按照严格的优先级顺序排列,只要不禁止,较高优先级的行为将包含较低的优先级行为。
优点:
- 对变化做出快速反应。
- 不依赖准确的模型。
- 整个世界就是机器人自身最好的模型。
- 无需重新计划。
缺点:
- 难以预估行为组合会产生什么影响。
- 难以制定能够实现复杂,创新任务的策略。
- 当有新任务时,控制系统需要被重新设计。
混合控制架构 (Hybrid Control Architectures)
混合架构将反应式控制与抽象任务计划 (abstract task planning) 相结合。
- 抽象任务计划层 (Abstract Task Planning Layer) : 做出协商决定并制定目标导向策略。
- 反应行为层 (Reactive Behavior Layer) : 提供反应性的行动,并控制传感器和执行器。
优点:
- 允许基于目标的策略。
- 确保对外部的意外改变做出快速反应。
- 减少计划的复杂性。
缺点:
- 行为选择限制了可能的任务范围。
- 必须对行为交互进行良好的建模,以便能够制定计划。
自动机器人的学习和适应
学习解释传感器信息
识别环境中的物体很困难。通常,我们不可能对所有必需的对象进行预编程。而传感器提供大量的数据,因此机器人应该要会学习解释传感器的信息。
学习新的策略和任务
新任务必须在现场在线被学习。并且,不同的情况需要有针对现有任务的新策略。
调整现有控制策略
目标和路径可以被动态变化。系统也应该必须感知和探索环境的变化。
机器人系统的学习方法
通过教学的监督学习
机器人可以从用户提供的正确策略的直接反馈中学习。(机器人学习用户提供的确切策略)
从演示中学习(模仿)
机器人通过观察执行特定动作的人类或者其他机器人来学习。
机器人必须有能力去“理解”观察所得以及将其映射到自身的功能上。
通过探索学习
机器人可以通过尝试不同的动作并观察其结果来自主学习。
机器人学习能得到最优奖励的策略。
自动机器人应该能在没有用户输入的情况下学习新任务。学习执行任务以优化机器人获得的奖励。(强化学习)
- 这个奖励必须由用户或者环境来提供,包括了:间歇的用户反馈或者指示了不安全或者不方便行为的负反馈。
- 机器人必须探索自己做出的动作以确定其作用是什么:
(1) 行动会改变环境的状态。
(2) 动作获得不同的奖励。 - 在学习过程中,机器人必须保持一定的安全水平。