返回列表 发布新帖

关于Model_base开源代码的移植,是否对于直腿模型会更好一些?曲腿模型真的很难改

105 2
发表于 2025-3-31 21:02:22 | 查看全部 阅读模式
尊敬的青龙开发人员,以及社区的大佬们:

      青龙的开源代码给定了一个md文件,大致把移植的方法都写了出来,即对上关节,然后修改手臂,腰等关节的索引,对上pino(运动学cpp)和wbc_priorty(wbc参数),然后微调一下关节的pd参数即可。我用宇树h1模型进行迁移的时候,非常顺利,一天搞定,唯一遇到的问题在于,需要在主cpp文件中将期望基座高度进行微调。对于mpc算法中的Ic和m(惯性张量和质量)甚至不需要进行修改,也能取得很好的效果。(这里还需要问一下,惯性张量的计算思路,是否是从每个肢体连杆的末端link乘以空间转化矩阵,往回迭代,最后在base_link叠加?我尚未写demo验算)。
      
       但是近期手头有一个曲腿,无腰关节模型(解释一下: 这里的直腿和曲腿模型是指,将urdf扔进rviz,默认情况下腿是直立的,还是膝盖存在初始角度的模型),我在迁移的时候遇到了很多问题,下面我依次展开。

      1、对于腰部关节的处理,在pino文件中,是将J_hip_link绑定成了Pinocchio库计算腰关节的雅可比矩阵。同时注释了另外一种方法,即将其赋值为J_hip_roll_l,也就是左腿的hip_roll关节的雅可比。由于没有腰部关节,我选择了注释的这种,但是修改为左右腿雅可比之和除以2,由此后续的hip_link_pos,rot也都得到了定义。在部分wbc任务中,也有这部分参数在。

      2、在刚开始的3秒位置控制时,我出现过,ankle_pitch关节和roll关节,在最大极限力矩值反复正负号变化,导致机器人漂浮向前的问题。注意,脚部是始终保持触地的,但是脚掌会不停的沿着y轴抬起落下,然后机器人就在环境中漂浮。  该问题已解决,请将pd控制的参数狠砍,同时请注意一下前三秒的pvt控制是对于关节角度的变化进行了限幅的,也可以通过在这里尝试一下。

      3、3s到5s,是位控站稳到力控站稳的阶段,在该阶段计算时,如果采用walk_mpc_wbc.cpp demo编译的程序,则会出现计算足端力巨大的问题(无论是是相比于我自己移植的宇树h1,还是青龙原本代码)。当然我只修改了质量,未改Ic。别问为什么不改IC,宇树h1我连质量都没改,一直没在这里出现力大这么多倍的情况。为了一步步debug,我就先去跑了walk_wbc.cpp 的demo。在这一阶段,又出现2中的问题,踝关节的力矩反复在幅值横跳。该问题也解决了。适当缩减pd参数,然后采取限幅的pvt计算关节力矩的方法。

      4、 5s之后,开始行走。这里我说一下walk_wbc.cpp中的超参数设置的问题。首先,wbc需要mpc计算的足端力,项目中这一部分是Fr_ff,也就是前馈力。注意,由于该cpp未采取mpc,所以每个循环开始的时候,该力是预设的,均为0 0 370 0 0 0;0 0 370 0 0 0;左右腿两个6D力,简单来说,就是每个足端只受重力的一半。但是青龙的质量为77.89kg,对不上重量。我的模型重量为54kg,我将该力设置为270,严格来说,也许低一些更合适。 这部分最终的结果是,机器人走一步弹一步,整体的动作有一种漂浮感。同时,脚掌很难竖直踩着地面,踩中了,也会马上把机器人弹起来。并且,机器人迈不开腿。

由于此处无法附上视频,我大概讲述一下青龙原版走的过程,以及我改出来的宇树h1的样子。

      1、0-3s内   青龙原本的模型是直立,然后逐渐膝盖有角度,下压到预备行走的角度。这部分在mjxml文件和cpp的demo文件中均存在高度设置。宇树h1是此时一直站立不动。而我的曲腿模型是,站立往上,达到预设高度。

      2、3-5s内,青龙不变;宇树h1由于开始力控,逐渐向下,膝盖达到运动时的角度;我的曲腿模型还是向上走,基座达到了一个比设置的高度更高的位置,拉了基座的信息看了也确实如此。

     3、 5s之后,青龙和宇树h1,均是左胯一步(此时右腿不动),左腿到位之后,右腿开始swing,然后正常行走的步态。但是我的曲腿模型,突然一个下蹲,然后左腿迈动,此时右腿是站不住的,他会往右边偏斜,然后由于开始的下移,感觉整体的力就失控,开始脚掌一触地就弹一下,然后踉跄的小走两步,失去平衡摔倒,或者是一条腿迈出去了,另外一条腿无法摆动,劈叉摔倒。

目前的情况是,我基本pd参数和wbc里面的任务权重参数都在猛猛尝试,上下移动的幅度基本为5,但是始终无法解决问题。

大概的问题就如上,曲腿模型的基础效果和直腿完全相反,所以我给了本帖子这样的标题。

写信来,也就是想问问看有无大佬也遇到过相似的问题,或者如果开发组的大佬能直接指点,我感激不尽。

由于无法展示视频,有兴趣研究的大佬,可以加我微信xhc17718293055,备注一下即可。如果有能帮我解决的大佬,也可有偿(还是学生,实力不够强大


评论2

VitaLv.9 发表于 2025-4-1 13:50:29 | 查看全部
同学码字辛苦辽~ 我找技术老师帮看看~
用户f1d3f53abc32楼主Lv.1 发表于 2025-4-2 10:23:28 | 查看全部
Vita 发表于 2025-4-1 13:50
同学码字辛苦辽~ 我找技术老师帮看看~

麻烦大佬啦

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2025 OPENLOONG. All Rights Reserved. Powered by Discuz!
  • 关注B站
  • 关注抖音
  • 关注微信公众号
Copyright © 2025 开发者论坛 - OpenLoong 版权所有 All Rights Reserved.
关灯 在本版发帖 返回顶部
快速回复 返回顶部 返回列表