四足机器人质心准静态控制器(一)

2023-10-09 11:10

本文主要是介绍四足机器人质心准静态控制器(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:

        之前古月居邀请着出四足机器人课程来着,但是由于时间和其他原因最后没有录播,这里就粗糙的介绍下,大概分为四章,大家可以直接白嫖,对应的工程参考代码可以到我的GitHub上参考。

         对于控制刚体机器人来说,控制策略构建大概可以三部来实现。 首先是构造模型,模型可以是全动力学模型,或者是低维的替代模型。 优化目标一般是 状态跟踪误差最小,能量消耗最小,等等为目标。 优化方法 一般针对模型的优化目标采取对应的方法。以质心准静态控制为例,我们构建的二次型优化目标可以使用QP来求解。

足式机器人由于高维度的关节空间,对于某些运动模式来说还是非自然稳定的,另外还要考虑于复杂地形交互,因此足式机器人控制问题非常的棘手。 所以目前来说没有一种有效的能具有通用性的解决方案,还处于百家争鸣的时期。但是,仍有许多方法在仿真和实际中取得良好的效果。这些方法最基本的思想 就是替代,简化。 由于这些替代或者简化的方法可能要求机器人机器人惯量质量更加的集中。 这里放了几张四足机器人的图片,大家可以观察其中的共有特性。在视觉上,驱动单元全部集中于躯干,留下纤细的腿。这就是为了简化控制策略,而进行的硬件上的设计。当然,这里只是为了说明控制策略可以得到简化,他们的实际控制也有可能不是这样。 这样子的做法,现在已经是几乎为四足的主流,这在国内许多的初创公司设计的四足上可以看到。

下面为大家介绍最简单的三种简化思想的控制策略。

虚拟模型控制

         虚拟模型控制是目前已知最简单的力控策略。它用了一种非常直观的方法进行产生虚拟力,再映射到关节空间。 虚拟模型是指利用假想的出来的一些机械结构,在空间中可以维持机器人某些状态的。机械组件和机器人某些部位的链接一般使用弹簧阻尼器。 它不局限于某种特定的模型,是一种约束思想。 以最左边的图来看,可以发现一个二维平面的双足机器人被挂在一个架子上,站立高度和姿态都被行架所维持。 中间的四足机器人相对来讲,约束则更加直接,直接在俯仰角和Z轴使用弹性阻尼件进行约束。 最右边这个看起来则比较复杂,论文作者提出了一种所谓的虚拟悬挂模型,解决了一个很小的问题。点足机器人站立平衡问题,具体的可以看我古月居博客的解析。 现在这个虚拟模型控制是作为一种非常基本和底层的策略,经常用于闭环跟踪轨迹。在实际控制中,弹簧阻尼器可以认为就是PD控制器。 当然它也可以非常复杂,利用超级多的机械组件,也可能产生一些极好的效果,但是目前来说没有设计的依据。人的经验也仅仅局限于比较简单的机械组件。

低维模型

         低维现在一般所指的就是 LIPM ,SLIP 模型。 由于足式机器人具有很多的关节,直接做轨迹规划没有那么容易。于是大家就依据足式动物或者机器人与地面交互的经验,简化出相对来说容易处理的模型。 构建出来的低维模型可以用来做约束轨迹的生成,构建的实际机器人动力学通过闭环控制来逼近这段轨迹,当然还要遵从一定的约束,比如说地面摩擦和末端相对世界坐标系的静止约束。。还有的是用低位模型来进行 落脚点规划,好的落脚点规划可以维持机器人来回运动在一个稳定范围内,而且在受了扰动后可以快速恢复。这个大家下来可以阅读一些相关文献。

模型预测控制

         最最最火的就是MIT近年来所提出的,简化单刚体动力学的MPC模型。相信很多小伙伴已经开始钻研他们的开源软硬件方案。 这方面的内容,网上很多,所以就不再进行阐述了。 这里给出这个方案的介绍是为了对比一般的质心准静态控制器 ,区分他们有什么不同。

准静态控制器

         这个准静态控制是非常接近WBC的,WBC其实还需要将机器人腿部惯量及动力学第二项考虑进来。但是有的论文也将这种质心准静态控制说成是全身控制器。 准静态的意思是这个我个人的理解是其模型接近于静态力学。 该方法,对比MIT的MPC其实就是省略了在未来长时间跟踪轨迹优化的部分。对比虚拟模型控制,本质上就是在质心用6个自由的弹簧阻尼器约束后又添加了优化分配力的过程。 所以以这个为学习的基础那么,对学习其他控制器方法和过程都会有一个比较好的理解。也会更加容易入手。 然后,掌握这个基础其实也就可以自己去实现一套MIT的MPC方案。也可以结合全身动力学去探索WBC的控制方法。

这篇关于四足机器人质心准静态控制器(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/172418

相关文章

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

基于树梅派的视频监控机器人Verybot

最近这段时间做了一个基于树梅派 ( raspberry pi ) 的视频监控机器人平台 Verybot ,现在打算把这个机器人的一些图片、视频、设计思路进行公开,并且希望跟大家一起研究相关的各种问题,下面是两张机器人的照片:         图片1:                   图片2                    这个平台的基本组成是:

C++/《C++为什么要有静态成员函数》

摘要        本文说明了什么是静态成员变量,什么是静态成员函数的概念,讨论了访问私有静态成员变量的三个方法。得出用静态成员函数访问静态私有成员变量是最佳方法即回答了“C++为什么要有静态成员函数“的问题。 类的静态成员 我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是

c++的静态变化!

静态成员   对于非静态成员,一个类的每个对象都自己存有一个副本,每个对象根据自己拥有的非静态的数据成员来区别于其他对象。而静态成员则解决了同一个类的多个对象之间数据和函数的共享问题。   静态数据成员   静态数据成员的作用是:实现同一类的不同对象之间的数据共享。   #include<IOSTREAM>   using namespace std;   class Po

本地如何快速启动静态服务器

本地快速启动静态服务器 有许多第三方库可以帮助你快速启动一个静态服务器,甚至无需编写代码。通过命令行运行这些库后,它们会自动启动一个服务器并打开指定端口,展示当前目录下的文件内容: 电脑得提前安装NodeJS 1、http-server http-server 是一个轻量级的命令行工具,允许你快速启动一个静态文件服务器。 安装 npm install -g http-server

jmeter之仅一次控制器

仅一次控制器作用: 不管线程组设置多少次循环,它下面的组件都只会执行一次 Tips:很多情况下需要登录才能访问其他接口,比如:商品列表、添加商品到购物车、购物车列表等,在多场景下,登录只需要1次,我们期望的是重复执行登陆后面的接口来做压测,这就和事务相关,例如 事务1: 登录—>添加购物车 事务2: 登录—>购物车列表 事务3: 登录—>商品列表—>添加购物车 … 一、仅一次控制器案例 在

为控制器的方法添加必要参数

前言:做这个系统时,要求每次调用接口时要传操作人、操作人电脑ip、菜单id,然后计入log。本来前端读取到然后加入请求头,后端写入log即可。但是老大要求后端也要把控必传参数,避免前端忘记。所以就写了这个。IOperationFilter 这个是百度知道的。主要用于在Swagger生成的API文档中动态地添加或修改操作(即API接口)的元数据。 用处:可以自动地为 Swagger/OpenAPI

【机器人工具箱Robotics Toolbox开发笔记(二十)】机器人工具箱SerialLink I类函数参数说明

机器人工具箱中的SerialLink表示串联机器人型机器人的具体类。该类使用D-H参数描述,每个关节一组。SerialLink I类包含的参数如表1所示。 表1 SerialLink I类参数 参  数 意    义 参  数 意    义 plot 显示机器人的图形表示 jacobn 工具坐标系中的雅可比矩阵 plot3D 显示机器人3D图形模型 Jacob_dot

机器人助力上下料搬运,加速仓库转运自动化

近年来,国内制造业领域掀起了一股智能化改造的浪潮,众多工厂纷纷采纳富唯智能提供的先进物流解决方案,这一举措显著优化了生产流程,实现了生产效率的飞跃式增长。得益于这些成功案例,某信息技术服务企业在工厂智能物流建设的进程中,也选择了与富唯智能合作。 为了应对日益增长的物料搬运需求,匹配成品输出节拍,该公司引入了富唯智能复合机器人AMR与搬运机器人AGV,实现了仓库成品搬运自动化,大幅减少人工

IBM Storwize V7000存储控制器故障节点报错574

背景:由于客户机房搬迁,需要下电迁移设备。该存储自2016年投入生产使用后,从未关过机,已正常运行七八年时间,期间只更换过硬盘,无其他硬件故障。 在GUI界面点击关闭系统后,大概等了40分钟,存储仍未关机,所有硬盘状态灯绿色常亮,面板无报错。到设备后面看控制器的状态,发现node2已经正常关机了,node1仍然在运行,又等了大概20分钟还没有关机,直接将电源线给拔掉了。 再次上电以后,发现