我想做轨道优化阿特拉斯机器人模型在德雷克。不考虑垃圾狗示例和这存储库,我尝试了跳转运动优化这里。基本上,我更改了in_stance序列,添加了Initial guess of q,并添加了一个不同的q_cost。
但是似乎很难得到最优解,SNOPT输出是:
SNOPTA EXIT 10 -- the problem appears to be infeasible
SNOPTA INFO 13 -- nonlinear infeasibilities minimized这是一个视频来显示优化的轨迹。
我有一些想法来探索改进解决方案的方法:
x和z轴angular_momentum,而不限制y轴angular_momentum。我不知道我应该先做哪一件,或者我错过了一些重要的事情,而这个问题是无法解决的?
谢谢你的建议!
谢谢你的快速回复:戴洪凯。我检查了matlab的版本,并在这里和testJump.m上找到了讨论。
我使用q类添加了对InverseKinematics的初步猜测。尝试添加接触力轨迹和CoM轨迹的初始猜测。
在testJump.m中,这是你最初的猜测吗?这不是一个运动轨迹的初步猜测,对吗?
x_seed = zeros(cdfkp.num_vars,1);
x_seed(cdfkp.h_inds) = 0.06;
x_seed(cdfkp.q_inds(:)) = reshape(bsxfun(@times,qstar,ones(1,nT)),[],1);
x_seed(cdfkp.com_inds(:)) = reshape(bsxfun(@times,com_star,ones(1,nT)),[],1);
x_seed(cdfkp.lambda_inds{1}(:)) = reshape(bsxfun(@times,1/num_edges*ones(num_edges,4,1),ones(1,1,nT)),[],1);
x_seed(cdfkp.lambda_inds{2}(:)) = reshape(bsxfun(@times,1/num_edges*ones(num_edges,4,1),ones(1,1,nT)),[],1);发布于 2021-08-08 06:28:44
result.GetInfeasibleConstraints(prog),它返回违反约束的列表,然后您可以尝试放松/删除约束。您可以调用prog.RemoveConstraint()函数来删除约束,也可以使用constraint.UpdateLowerBound()、constraint.UpdateUpperBound()放宽约束界限。对于阿特拉斯跳跃运动,我们有一个Matlab实现。如果您查看一下德雷克的旧matlab版本,那么在文件夹纸中,它使用这个纸中的思想实现了阿特拉斯跳跃运动的轨迹优化。
在testJump.m中,我没有使用运动轨迹作为初步猜测。我计算了站立在地面上的机器人的初始姿态,接触力在每条腿上均匀分布。
TestJump.m中还有其他细微之处:
MathematicalProgram中使用MathematicalProgram方法。https://stackoverflow.com/questions/68698187
复制相似问题