drake - 如何在汽车中创建新的演示?
问题描述
我正在尝试从drake/automotive/automotive_demo.cc
. 作为第一步,我试图复制automotive_demo.cc
并automotive_demo.py
进入不同命名的文件(test.cc
和test.py
),然后运行bazel run automotive:test -- --num_simple_cars=1
. 我修改automotive/BUILD.bazel
并test.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 并且只找到了一系列二进制文件,所以我不知道如何按照错误消息的建议进行操作。
解决方案
不幸的是,在 Mac 上尝试您的步骤时,我无法重现您的特定错误。我不认为将test
目标名称作为目标名称会导致问题(至少我没有遇到问题)。
请确保:
- 你能跑
bazel run automotive:demo -- --num_simple_car=1
吗? - 重命名
automotive_demo.*
为之后test.*
,在您的BAZEL.build
,test.py
文件中正确映射以下内容:demo
->test
和automotive_demo
->test_cc
(或您选择的任何唯一名称)?
推荐阅读
- c# - ASP.NET MVC 使用 FormCollection 从 DropDownList() 获取值
- django - Django中的渐进式Web应用程序,我把文件放在哪里?
- mapbox-android - MapBox Android - 从 5.1.5 迁移到 6.5.0 时查找等效表达式的问题
- android - 上下文菜单上的图标未显示?
- java - 如何使用两个对象字段对列表进行排序?
- python - 摆脱 Dict 的括号和不需要的单词[Python]
- php - 为什么 use 语句不能将命名空间的 PHPMailer 类导入 php-shell 中的全局范围?
- c - strchr() 在看似没有的地方找到 '\n'
- java - 如何在 JPA 存储库方法中使用部分复合键来获取数据?
- ruby - Ruby 正则表达式 - 跨行单匹配