腿足机器人之二- 运动控制概览

news/2025/2/19 3:04:19/

腿足机器人之二运动控制概览

    • 高层运动规划
      • MPC
      • RL
    • 中层逆运动学和逆动力学
    • 底层执行器控制
    • 传感器校正

上一篇博客是腿足机器人的骨架和关节的机械和电气组件,关节不仅需要通过机械设计实现复杂的运动能力,还必须通过电子组件和控制系统来精确控制这些运动。

和人类类似,本篇博客介绍腿足机器人运动系统的设计,机器人关节的控制系统是其运动的大脑,负责解读传感器反馈并向执行器发送指令,以精确调节位置、速度和扭矩。这一系统由传感器、控制器和执行器共同工作,确保运动控制的准确性和效率。

腿足机器人的所有运动,最终都会反应在对关节的控制上,大体上关节的运动一般采用运动学和强化学习两类方法,如运动学逆解算法用于规划关节角度(如肘式/膝式腿的几何求解),强化学习(RL)优化步态生成,如NVIDIA Isaac Lab端侧部署方案。

机器人上的各个传感器连续监测关节的位置、速度及其他相关参数,并向控制器提供反馈。控制器将这一反馈与期望的设定值进行比较,生成纠正信号以调整关节的运动。这种反馈回路允许实时调整,确保关节即使在外部干扰或负载变化的情况下也能准确地遵循预定轨迹。

闭环控制系统提供高精度和稳定性,非常适合需要精确定位和运动控制的应用,如机器人手术和制造过程。

早期机器人运动控制以波士顿波力Spot机器人为典型代表,其采用的PD+前馈控制技术,可以见第三篇博客。
而当前较新主流腿足机器人运动控制以PD+MPC/强化学习为主,流程大致可以分为高层运动规划、中层逆运动学与逆动力学以及底层执行器控制三层。本篇博客先概览简要介绍各个部分,以建立top-down机器人运动控制的整体概念。

一个完整的动作流程大致如下:

传感器数据(IMU、关节编码器、力传感器)→ MPC规划/RL规划 → 逆运动学 → 关节目标角度 → PD控制器 → 电机驱动信号

高层运动规划

在接收到运动指令(行走、奔跑)之后,高层算法(模型预测控制(MPC)或者强化学习(RL)算法)负责全局规划,底层PD确保实时跟踪,两者协同实现动态运动。

MPC

在奔跑/行走的动作规划和控制中,高层运动规划模块主要完成步态生成和轨迹生成两部分。其运行频率在50-100Hz(每10-20ms规划一次)。

对于步态生成则可基于机器人动力学模型,滚动规划未来几步的质心(CoM)轨迹和足端接触力,确保动态平衡,在行走的时候,计算支撑多边形内的零力矩点(ZMP)位置,防止跌倒。躯干姿态和加速度可以使用IMU测量,足端接触力科使用六轴力传感器测量,关节的角度和速度使用关节编码器测量。

对于轨迹生成包括足端轨迹和质心轨迹,足端轨迹指的是规划摆动退的抛物线轨迹(奔跑时)或直线轨迹(行走时),质心轨迹是指通过简化模型(如倒立摆模型)生成质心高度和水平位置的变化曲线。

以ANYmal机器人为例
在这里插入图片描述

传感器数据--->MPC估计--->生成$\theta_{desired}$--->PD控制器--->电机驱动
  • MPC层:每50ms计算一次未来0.5秒的足端轨迹和接触力
  • PD层:以1kHz频率跟踪关节角度,公式:
    τ = K p ( θ d e s i r e d − θ ) + K d ( θ ˙ d e s i r e d − θ ) \tau =K_p(\theta_{desired}-\theta) + K_d(\dot \theta_{desired}-\theta) τ=Kp(θdesiredθ)+Kd(θ˙desiredθ)

模型预测控制存在如下挑战:

挑战解决方案
模型不准确自适应控制(如在线参数估计) + 鲁棒PD参数
执行器延迟提高控制频率 + 预测滤波(如卡尔曼滤波)
地面接触突变阻抗控制(调节PD的 K p K_p Kp为虚拟刚度, K d K_d Kd为虚拟阻尼)
实时计算资源限制简化模型(如单刚体模型) + 代码优化(定点运算、并行计算)
齿轮箱背隙、电机饱和等非线性问题通过前馈和抗饱和策略避免性能下降
多关节联动导致力矩耦合结合解耦控制或全状态反馈(如LQR)
地面反作用力突变力传感器反馈 + 自适应阻抗控制(动态调整 K p K_p Kp K d K_d Kd)

RL

强化学习的目标是通过试错学习最优策略(Policy),其输出形式取决于具体任务和算法设计。在腿足机器人中,RL的输出通常分为两类:

输出类型描述示例优点缺点
直接关节控制RL策略直接输出各关节的目标角度或扭矩,无需中间计算策略网络输出12个关节的目标角度(对应机器人自由度)1.无需依赖精确的动力学模型,RL通过仿真学习直接优化关节动作; 2.适合复杂动作(如翻滚、跳跃),传统模型难以精确建模1. 需要大量训练数据,计算成本高 2.可解释性差,难以手动调整策略
高层指令生成RL输出末端执行器轨迹(如足端位置)或质心运动指令,需通过IK转换为关节角度RL规划足端轨迹,再通过逆运动学求解关节角度1.结合传统控制方法(如IK),提高稳定性和可解释性 2.减少RL策略的复杂度(输出维度更低)依赖逆运动学求解的准确性,可能受模型误差影响

上面的两种在业界都有案例,比如OpenAI的Dactyl机械手通过RL直接控制关节扭矩实现灵活操作,而MIT Cheetah 3通过RL优化足端轨迹,再通过IK控制关节。也有在RL+IK的基础上再结合MPC的混合架构,如适应复杂地形的波士顿动力Atlas机器人

RL方法的一个挑战是获得训练数据,在机器人行走之前,采集数据的成本是高昂的,所以一般训练都是先基于仿真环境,在在仿真中定义奖励函数(如前进速度、能量效率、姿态稳定性),然后通过PPO或SAC算法优化策略模型预测结果,然后再迁移到实际的环境中。

挑战解决方案
RL训练效率低使用仿真-现实迁移(Sim2Real)技术,结合域随机化(Domain Randomization)
IK求解不唯一引入优化目标(如最小能量、关节力矩平滑),通过QP求解唯一解
实时性不足部署轻量化神经网络(如TinyML),推理加速框架tensorRT,或使用分层控制(高频PD + 低频RL更新)

现代系统(如ANYmal、Unitree)倾向于结合RL高层规划与传统控制(IK+PD),兼顾学习能力与实时可靠性。

中层逆运动学和逆动力学

运动学关注的是机器人在不受外力影响时的运动状态,如位置、速度和加速度。而动力学则考虑在实际运动过程中力和扭矩如何影响机器人的运动,这包括了对刚体的质量分布及其与关节相互作用的分析。这两个领域是理解机器人如何与外界相互作用并执行任务的基础,对优化机器人的设计和功能至关重要。

在高层中主要是机器人质心规划,逆运动学(IK)是将质心轨迹和足端轨迹映射到各关节角度。例如,给定足端目标位置 ( x , y , z ) (x,y,z) (x,y,z),根据足端轨迹方程(如抛物线轨迹,根据 v v v水平速度, h h h抬腿高度, T T T摆动时间)求解髋、膝、踝关节的角度 ( θ h i p , θ k n e e , θ a n k l e ) (\theta_{hip}, \theta_{knee}, \theta_{ankle}) (θhip,θknee,θankle),这可以使用雅可比矩阵或者数值优化方法(如梯度下降)实时计算求解。

逆动力学则是计算关节所需要的力矩 τ \tau τ,满足运动学和动力学约束:
τ = M ( q ) q ¨ + C ( q , q ˙ ) q ˙ + G ( q ) + J T F e x t \tau = M(q) \ddot q + C(q,\dot q)\dot q + G(q) +J^{T}F_{ext} τ=M(q)q¨+C(q,q˙)q˙+G(q)+JTFext

其中 M M M是惯性矩阵, C C C是科氏力, G G G是重力, J J J是雅可比矩阵, F e x t F_{ext} Fext是地面反作用力。

底层执行器控制

腿足机器人的驱动器控制算法(如PID和PD)是实现其运动稳定性和动态响应的核心技术。
PID/PD):跟踪高层指令,实现高频率(1-10kHz,即每0.1~1ms更新一次)的精确执行。
以PD控制为例,为了跟踪关节目标角度 q d e s i r e d q_{desired} qdesired和速度 q ˙ d e s i r e d \dot q_{desired} q˙desired,需要给电机一定的力矩,其计算如下:

τ f b = K p ( q d e s i r e d − q a c t u a l ) + K d ( q ˙ d e s i r e d − q ˙ a c t u a l ) \tau_{fb}=K_p(q_{desired}-q_{actual})+K_d(\dot q_{desired}-\dot q_{actual}) τfb=Kp(qdesiredqactual)+Kd(q˙desiredq˙actual)

由于机器人自重、惯性带来的影响,可以加上逆动力学计算的理想力矩 τ f f \tau_{ff} τff,则最终的力矩可以表示为:
τ = τ f f + τ f b \tau = \tau_{ff} + \tau_{fb} τ=τff+τfb
这一力矩通过液压阀或者电机驱动器转为物理动作。

传感器校正

开篇提到一个完整动作流程的第一步是传感器的数据获取,然后才是估计姿态,这是因为传感器有噪声、环境也不确定性,此外还有动态系统的随机性。这里使用到的是概率机器人理论(后续博客揭示),这里简要看一下。

腿足机器人需要实时估计自身姿态(如躯干角度、关节位置)和运动状态(如速度、加速度),但传感器数据(IMU、编码器、力传感器)通常包含噪声。其核心思想是先不参考传感器数据,会有一个先验状态,然后结合传感器对状态进行修正,使用到的方法有卡尔曼滤波、粒子滤波等。

此外在腿足机器人动态环境中运动时,需考虑障碍物位置、地面摩擦系数等不确定性因素。概率方法用于增强规划的鲁棒性,会使用概率路线图(Probabilistic Roadmap, PRM)、蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)等方法评估候选路径和不同动作序列成功的概率。

概率方法的核心作用

控制流程概率方法解决的问题
状态估计卡尔曼滤波、粒子滤波传感器噪声与动态不确定性
运动规划PRM、MCTS环境障碍物与地形不确定性
强化学习随机策略、熵正则化探索-利用权衡与策略鲁棒性
模型预测控制高斯过程、随机MPC动力学模型误差与外部干扰
足地交互贝叶斯估计、概率摩擦锥接触状态与地面特性不确定性

http://www.ppmy.cn/news/1573255.html

相关文章

Docker的前世今生及安装与使用命令详解

在云原生时代,容器技术已经成为软件开发与部署的关键工具。其中,Docker 凭借其轻量、灵活和高效的特性迅速走红。本文将带你走进 Docker 的历史沿革,了解其从前世到今生的发展历程,并详细介绍如何安装 Docker 以及常用的操作命令。…

Django 创建表时 “__str__ ”方法的使用

在 Django 模型中,__str__ 方法是一个 Python 特殊方法(也称为“魔术方法”),用于定义对象的字符串表示形式。它的作用是控制当对象被转换为字符串时,应该返回什么样的内容。 示例: 我在初学ModelForm时尝…

Ollama+DeepSeek+Open-WebUi

环境准备 Docker Ollama Open-WebUi Ollama 下载地址:Ollama docker安装ollama docker run -d \ -v /data/ollama/data:/root/.ollama \ -p 11434:11434 \ --name ollama ollama/ollama 下载模型 Ollama模型仓库 # 示例:安装deepseek-r1:7b doc…

SpringMVC重定向接口,参数暴露在url中解决方案!RedirectAttributes

OK,首先描述下业务场景,终端数量限制登录 1.首先访问项目login的get接口 2.输入账号密码点击登录后,会请求login的POST接口 3.后台对终端数量逻辑处理不允许登录跳回到登录页面 4.因代码原因需在后台进行多次重定向接口,最后跳…

说下JVM中一次完整的GC流程?

大家好,我是锋哥。今天分享关于【说下JVM中一次完整的GC流程?】面试题。希望对大家有帮助; 说下JVM中一次完整的GC流程? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 JVM中的一次完整的垃圾回收(GC)流程可以概括为…

【Spring Boot】网页五子棋项目中遇到的困难及解决方法

目录 一、HikariPool-1 - Starting异常二、Invalid bound statement (not found)异常三、The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary异常四、The server time zone value时区报错异常五、补充知识点…

deepseek:三个月备考高级系统架构师

一、备考总体规划(2025年2月11日 - 2025年5月) 1. 第一阶段:基础夯实(2025年2月11日 - 2025年3月10日) 目标:快速掌握系统架构师考试的核心知识点。 重点内容: 计算机组成原理、操作系统、数据…

12、《Spring Data JPA:极简数据库操作实战》

《Spring Data JPA:极简数据库操作实战》 开篇:为什么需要Spring Data JPA? 在Java企业级开发中,数据库操作往往是业务代码的核心,但传统的JDBC或ORM框架(如MyBatis)需要开发者编写大量模板化…