首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自由浮动基机器人空间速度雅可比的基元为零

自由浮动基机器人空间速度雅可比的基元为零
EN

Stack Overflow用户
提问于 2022-01-02 10:36:58
回答 1查看 93关注 0票数 3

我正在为一个自由浮动基座的机器人寻找末端执行器空间速度雅可比。由于基座是自由浮动的,雅可比应该包含一个基本部件和一个机械手注释(参见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

我想我要么在使用德雷克的时候犯了这些错误:

  • 使用了错误的CalcJacobianSpatialVelocity。这是不可能的,因为操纵者雅可比是正确的,而基础框架也是正确的(在
  • 中只有一个框架)。也许我需要在URDF中不同地指定一个浮动基,以便德雷克将其包含在Jacobian计算中?

中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-03 23:01:46

您的代码是相对于目标的追赶者的Jacobian;它们之间没有浮动基(因此jacobian wrt到浮动基数的值应该是零)。我想,也许,你想让frame_A=world_frame

代码语言:javascript
复制
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 -我在你的笔记本上添加了这个单元格来快速检查你的运动树。

代码语言:javascript
复制
from IPython.display import display, SVG
import pydot
display(SVG(pydot.graph_from_dot_data(postContactPlant.GetTopologyGraphvizString())[0].create_svg()))

PPS --感谢你在笔记本中策划了这个例子。这让我很容易看一看。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70555272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档