You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用GetMyContextFromRoot遇TypeError,如何解决Drake机器人轨迹规划问题?

解决Drake中GetMyContextFromRoot()的TypeError问题

错误原因

你遇到的TypeError是因为GetMyContextFromRoot()方法在Drake的Python绑定中不支持关键字参数,你传入的root_context=context是关键字传参方式,不符合方法的参数要求。

修正代码

将获取plant上下文的代码行修改为位置传参即可:

sim_time_step = 0.0
builder = DiagramBuilder()
plant, scene_graph = AddMultibodyPlantSceneGraph(
    builder, time_step=sim_time_step)
parser = Parser(plant)
parser.AddModelFromFile("robot.urdf")
plant.Finalize()

diagram = builder.Build()
context = diagram.CreateDefaultContext()
# 去掉关键字参数,改用位置传参
plant_context = plant.GetMyContextFromRoot(context)

额外提示(针对DirectCollocation需求)

  • 由于你使用的是连续时间(time_step=0.0)的MultibodyPlant,后续配置DirectCollocation时,确保使用对应连续系统的DirectCollocation类。
  • 若URDF包含接触标签,默认弹塑性接触模型会自动启用,若有特殊接触需求可在plant.Finalize()前提前配置参数。
  • 后续将plant和plant_context传入求解器时,需确保上下文已完成初始状态设置(比如指定初始关节位置、速度)。

内容的提问来源于stack exchange,提问作者Grama Shourie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 09:53:18