我正在为一个自由浮动基座的机器人寻找末端执行器空间速度雅可比。由于基座是自由浮动的,雅可比应该包含一个基本部件和一个机械手注释(参见https://spart.readthedocs.io/en/latest/Tutorial_Kinematics.html#jacobians)。
V_ee =末端执行器空间速度
J_b =基雅可比分量
J_m =机械手雅可比部件
V=广义速度
V_ee = J_b,J_m v
到目前为止,我一直在使用SPART工具箱在Matlab (https://github.com/NPS-SRL/SPART)中完成这个任务,现在我要迁移到Drake了。我尝试在CalcJacobianSpatialVelocity中使用MultiBodyPlant,与SPART相比,Jacobian是正确的。但是,Jacobian的基分量都是零。这与我所期望的和SPART不同,对于一个自由浮动的基础来说,基本的速度贡献了最终的效应空间速度。
在这里可以找到这个问题的一个示例复制:https://colab.research.google.com/github/vyas-shubham/DrakeTests/blob/main/freeFloating/computeJacobian.ipynb
我想我要么在使用德雷克的时候犯了这些错误:
中。
发布于 2022-01-03 23:01:46
您的代码是相对于目标的追赶者的Jacobian;它们之间没有浮动基(因此jacobian wrt到浮动基数的值应该是零)。我想,也许,你想让frame_A=world_frame
postCaptureTargetJacobian = postContactPlant.CalcJacobianSpatialVelocity(context=postCaptureContext,
with_respect_to=JacobianWrtVariable.kV,
frame_B=target_frame,
p_BP=np.zeros(3),
frame_A=world_frame,
frame_E=world_frame)PS -我在你的笔记本上添加了这个单元格来快速检查你的运动树。
from IPython.display import display, SVG
import pydot
display(SVG(pydot.graph_from_dot_data(postContactPlant.GetTopologyGraphvizString())[0].create_svg()))PPS --感谢你在笔记本中策划了这个例子。这让我很容易看一看。
https://stackoverflow.com/questions/70555272
复制相似问题