【问题标题】:Apply a User-defined Force on a Solid Node in Webots在 Webots 中的实体节点上应用用户定义的力
【发布时间】:2021-03-31 15:40:28
【问题描述】:

我一直在尝试使用此函数通过 matlab 代码在 Webots 中的机器人上名为“LLarm”的实体节点上添加 5KN 力:

void wb_supervisor_node_add_force('LLarm', 5000, true)

但我收到此错误: 'char' 类型的输入参数的未定义函数 'void'。 atlas_matlab 中的错误(第 12 行) 无效 wb_supervisor_node_add_force('LLarm', 5000, true) 启动器中的错误(第 161 行) 评估(WEBOTS_CONTROLLER_NAME);

【问题讨论】:

  • 第二个参数应该是一个数组。力被描述为沿 X、Y 和 Z 轴的 3 维向量。
  • 谢谢,注意到了。但我面临第一个论点的问题。关于如何将实体节点(第一个输入参数)引入此函数的任何想法?
  • 您必须获得对 Solid 节点的引用。例如,您可以使用wb_supervisor_node_get_from_def 函数来实现它:cyberbotics.com/doc/reference/…

标签: webots node-supervisor


【解决方案1】:

力被描述为沿 X、Y 和 Z 轴的 3 维向量,请参见此处:
https://cyberbotics.com/doc/reference/supervisor?tab-language=matlab#wb_supervisor_node_add_force

您必须获得对 Solid 节点的引用,请参见此处:
https://cyberbotics.com/doc/reference/supervisor?tab-language=matlab#wb_supervisor_node_get_from_def

最后,您的代码应如下所示:

node_ref = wb_supervisor_node_get_from_def('LLARM_DEF'); % Set DEF for your solid
wb_supervisor_node_add_force(node_ref, [x, y, z], true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多