首页 > 解决方案 > 如何在汽车中创建新的演示?

问题描述

我正在尝试从drake/automotive/automotive_demo.cc. 作为第一步,我试图复制automotive_demo.ccautomotive_demo.py进入不同命名的文件(test.cctest.py),然后运行bazel run automotive:test -- --num_simple_cars=1​​. 我修改automotive/BUILD.bazeltest.py考虑到新的依赖项。

问题是在 I 之后bazel run,模拟器窗口打开但没有汽车被渲染。最终它只是崩溃并出现以下错误:

[lcm-spy] ClassDiscoverer: java.lang.NoClassDefFoundError: apple/laf/AquaPopupMenuUI
[lcm-spy]                  jar: ../com_jidesoft_jide_oss/jide-oss-2.9.7.jar
[lcm-spy]                  class: com/jidesoft/plaf/aqua/AquaJidePopupMenuUI.class
...
[drake_visualizer] Qt WebEngine seems to be initialized from a plugin. Please set Qt::AA_ShareOpenGLContexts using QCoreApplication::setAttribute before constructing QGuiApplication.
...
[lcm-spy] LCM: Disabling IPV6 support
[lcm-spy] LCM: TTL set to zero, traffic will not leave localhost.
[lcm-spy] java.net.SocketException: Can't assign requested address

这是一个(未解决的)Github 问题,指出问题test是“自定义插件”。但如果automotive_demo可以工作,肯定有办法重现这种行为test吗?我还尝试grep了 ping QGuiApplication 并且只找到了一系列二进制文件,所以我不知道如何按照错误消息的建议进行操作。

标签: drake

解决方案


不幸的是,在 Mac 上尝试您的步骤时,我无法重现您的特定错误。我不认为将test目标名称作为目标名称会导致问题(至少我没有遇到问题)。

请确保:

  1. 你能跑bazel run automotive:demo -- --num_simple_car=1吗?
  2. 重命名automotive_demo.*为之后test.*,在您的BAZEL.build,test.py文件中正确映射以下内容:demo->testautomotive_demo-> test_cc(或您选择的任何唯一名称)?

推荐阅读