【问题标题】:Vehicle modelisation on WeBotsWeBots 上的车辆建模
【发布时间】:2019-02-19 17:18:03
【问题描述】:

我想知道车辆的物体是如何在 WeBots 及其动力学方程中建模的。我知道可以使用两种类型的控制:使用巡航速度,目标是最终速度但加速度恒定(与 PROTO 文件中的 time0to100 值成比例),以及使用控制车辆扭矩的油门。

由于我想在高频下使用控制器来控制车辆,因此逼真地模拟真实车辆的唯一选择是扭矩控制。但要在这种情况下预测车辆的行为,我需要知道如何计算扭矩、传输方程以及如何使用 ODE 实现所有这些。我阅读了 Car 和 Driver 库页面,然后两者都有一些关于系统如何工作的详细信息和描述,但这些解释还不够详细。我还想了解轮胎和沥青之间的相互作用是如何建模的。

谢谢,

【问题讨论】:

    标签: webots


    【解决方案1】:

    控制扭矩确实是最现实的选择。

    关于方程式,这里详细描述了各种发动机模型:https://www.cyberbotics.com/doc/automobile/driver-library#engine-models

    此外,变速箱和阿克曼机构用于将扭矩从电机转换/传输到两轮/四轮,这没有记录,但可以在此处访问代码(部分特定于车辆): https://github.com/omichel/webots/blob/master/projects/default/libraries/vehicle/c/driver/src/driver.c#

    特别是发动机型号+变速箱在这里实现: https://github.com/omichel/webots/blob/master/projects/default/libraries/vehicle/c/driver/src/driver.c#L126

    然后在 2/4 轮之间拆分: https://github.com/omichel/webots/blob/master/projects/default/libraries/vehicle/c/driver/src/driver.c#L299

    关于轮胎和沥青之间的相互作用,这被定义为 Webot 中的常规接触属性(然后用于创建 ODE 接触接头:http://ode.org/wiki/index.php?title=Manual#Contact):

    https://www.cyberbotics.com/doc/reference/contactproperties

    【讨论】:

    • 查看driver.c后可以看出,在扭矩控制中没有考虑车辆的动力学(例如负载转移)。它们是否在动画中车辆的旋转和平移矩阵中考虑?我只是想了解所用模型的完整性。
    • driver.c 只负责计算车轮关节所需的扭矩,然后 ODE(Webots 使用的物理引擎)负责计算车辆的动力学。您将在此处找到有关 ODE 如何计算动态的所有必需信息:ode.org/wiki/index.php?title=Manual#Introduction
    • 是的,我确实明白 ODE 负责计算动态解。我问的是使用车辆动力学,双轨,单轨模型,轮胎-道路界面建模等。所有这些都是在ODE中实现的吗?因为直觉上车辆的分辨率应该在外面(但我还在浏览图书馆)。如果它在里面,对不起坚持。如果不是,我应该注意我在 WeBots 中的发展。
    • 轮胎/道路接口由 Webbots ContactProperties 管理,因此 ODE 接触点。关节的刚度(悬架、扭矩等)由 ODE 处理。关节的控制确实在 driver.c 中“外部”处理并使用 Ackerman 车辆动力学(接近双轨模型),它根据驱动程序库的输入独立处理每个车轮。如果需要,可以编辑 driver.c 以更改此模型。我希望这符合您的期望。
    • 是的,确实如此。这正是我想知道的。由于车辆动力学的每个部分都在不同的库中实现,因此有时很难连接所有点。谢谢。
    猜你喜欢
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    相关资源
    最近更新 更多