机器人基础

概述

系统概述

  • 和计算机系统类似,机器人包含三个部分:输出、决策/运动规划、输入。
    • 输出:移动机器人的移动、在空间中的位姿,机械臂的运动、末端的位姿,机械手手指的运动、开启与闭合,或类人形手的关节状态等
    • 决策/运动规划(TAMP,task and motion planning):解决方案很多,决策可以分为不同层级,如上层作为MDP解决,端到端、强化学习,或者遥操作与low-level control相结合的方式解决问题。
    • 输入(非必须)一般通过人的遥操作、其自身的传感器数据,或将二者结合。在开环任务中输入不是必要的。比如运动轨迹预先设计好的操作。 固定场景(highly structured),出于节约成本的考虑,在不会出现不确定性/异常的情况下忽略输入

机器人仿真

  • 仿真的意义
    • 加速测试速度
    • 检验操作的安全性
    • 创造一些实际中暂时没有条件实现或难以实现的场景,或者扩大实验的规模
  • 基于物理规律的仿真,训练与验证

参考书籍/资料

  • Spinger Handbook of Robotics Bruno Siciliano et al.
    • 百科全书型
  • Robotics Modeling, Planning and Control by Bruno Siciliano et al.
    • 百科全书型
  • Robot Modeling and Control by Mark W. Spong et al.
    • 串联机械臂的正向运动学、速度运动学、逆向运动学
  • Modern Robotics: Mechanics, Planning, and Control by Kevin M. Lynch et al.
    • 串联机械臂的运动学,重点是POE法
  • Kinematics equations for differential drive and articulated steering by Thomas Hellstrom
    • 移动机器人入门材料
  • The Wiki for Robot Builders - Robotics Knowledgebase

输出:机器人运动与控制的基础Foundation

机器人的输出(运动控制)系统概览

运动学Kinematics

正向运动学

逆向运动学

速度运动学 Velocity Kinematics - Jacobian

动力学Dynamics

运动规划,Motion planning, path and trajectory planning

  • 规划可分为任务规划(task planning)和动作规划(motion planning),统称为运动规划TAMP (task and motion planning)

控制Control

  • 搜索算法也可以间接达到控制的效果,最终目的是通过一个一一映射的函数实现时间复杂度O(1)的搜索
  • 传统控制理论:单输入单输出
  • 现代控制理论:多输入多输出
  • 强化学习
    • 通过不对物理性质进行建模的方法找出状态,输入到下一状态的映射关系 强化学习中的模型model-based和model-free:从概率分布的角度建模,并非从物理层面通过算式完成拟合
    • 需要思考的几个问题:
      • 如何选择状态?可以与运动规划的表征建立联系,强化学习可以用来解决规划问题(习得策略policy)
      • 存在多个起始状态?部分状态在数学上是等价的,但是未加以区分使得状态空间过大?例如机器人的起始姿态、通过不同视角观察同一姿态、类似于图像处理的平移/旋转不变性,如何压缩空间?
      • 如何将long horizon变为short horizon?从而解决奖励稀疏和训练时间长的问题
        • 通过subgoal,将motion policy变为local (control?)
    • 控制与强化学习的关系
    • MDP
  • MPC
  • 系统辨识 System Identification
  • 博弈论 Game Theory
  • 形式化方法Formal method,增强系统的安全性

输入:感知基础

  • 常用的感知传感器(分类不绝对):
    • 机器视觉:RGB、点云、RGB-D、LiDar
    • 获取单点的距离信息:超声波传感器、ToF传感器
    • 力传感器、触觉(要求存在接触)
      • 力矩传感器,如六维力传感器,三个方向和三个旋转,由扭力梁、应变片、压电陶瓷或其他传感器构成
      • 触觉传感器,如GelSight,通过处理视觉图像将纹样转化为纹理信息,或将气压变化的信息转化为力的信息
    • 声音(用的相对较少)

机器视觉

2D视觉

  • 设计一个软件上独立的相机模块,其数据的通信形式的考虑:
    • 只以连续publish的形式同时发布未经处理的图像和内参,每帧图像理论上应与该帧的内参K对齐,原因是考虑相机如果具有变焦能力,K可能随时间变化
  • 处理RGB图像
  • 使用OpenCV处理图像
  • bird-eye-view representation (BEV),常用于无人驾驶车辆的图像表征

3D视觉:点云

对于不同类型的机器人任务,应用不同的感知方式

使用机械臂操纵物体:固定视角,active perception,和interactive perception

  • active perception:通过相机的移动,调整其位姿获取更好的视角,选择bext next view,方法如Greedy Next-Best-View (GNBV)
  • interactive perception:通过机械臂或其它装置与环境的交互,改善视角
  • 一般采用的运动规划方法:预定义的运动(predefined action primitives)、启发式(heuristic),或其它方法(如端到端)

手部操作:in-hand perception,视觉与触觉,多模态感知的融合

Representation

  • 任务规划的表示
  • 交互物体的表示(object representation):
    • Points:无物体边界(object boundary),缺乏拓扑
    • Mesh:具有拓扑结构,处理复杂物体或者拓扑结构变化时难于优化
    • NeRF(Neural Radiance Fields)和Gaussian Splatting:直接从RGB信息中学得,无物体边界
    • Differentiable Poisson solver(刚体)
    • Particle Filter

实践

系统架构

Matlab Robotics Toolbox

ROS & ROS 2