我正试图在drake上使用ompl,但在drake中使用ompl头文件时遇到了问题。我使用默认安装路径安装了ompl,并在drake中进行了以下更改:
将以下内容添加到工作区:
new_local_repository(
name = "ompl",
path = "/usr/local/include/ompl-1.5/ompl",
build_file = "ompl.BUILD",
)ompl.BUILD:
cc_library(
name = "ompl",
hdrs = glob(["**"]),
includes = ["include"],
visibility = ["//visibility:public"],
linkstatic = 1,
)在我的存储库的BUILD.bazel中:
drake_cc_binary(
name = "ompl_ex",
srcs = ["src/ompl_ex.cc"],
data = [],
test_rule_args = ["--target_realtime_rate=0.0"],
deps = [
"@gflags",
"@ompl//:ompl",
],
)ompl_ex.cc
#include <memory>
#include <limits.h>
#include <unistd.h>
#include <fstream>
#include <string>
#include <gflags/gflags.h>
#include <iostream>
#include <ompl/config.h>
#include <vector>
namespace drake {
namespace ompl {
int DoMain(){
std::cout<<"the function is working"<<std::endl;
return 0;
}
} // namespace examples
} // namespace drake
int main(int argc, char* argv[]) {
gflags::ParseCommandLineFlags(&argc, &argv, true);
return drake::ompl::DoMain();
}我得到的错误是:
infinite_horizon_ltl/src/ompl_ex.cc:10:10: fatal error: ompl/config.h: No such file or directory
#include <ompl/config.h>我以类似的方式使用spot库,它们似乎工作得很好。在OMPL的情况下,我不确定我弄错了什么。我检查了drakes git问题,发现有人试图集成,但分支现在被删除了,并且提出的解决方案似乎在我的系统上不起作用。
发布于 2020-10-02 01:35:08
我发现在cmake项目中将drake作为外部库使用是最容易的。这在ompl中工作得很好。这里有一个快速示例,它同时导入drake和ompl作为外部库,并解决了一个简单的规划问题。
https://github.com/DexaiRobotics/drake-torch/tree/master/examples/drake-ompl
输出和视频是使用dexai2/drake-torch/cpu-nightly-ros docker生成的,该docker可在以下位置获得:https://hub.docker.com/r/dexai2/drake-torch/tags
另外,根据您使用的Ubuntu版本,您可能需要更改您的gcc版本-例如,您需要在Ubuntu20.04的CMakeLists.txt中指定的gcc-9和g++-9,以及18.04上的gcc-7和g++-7。点击此处查看备注:https://drake.mit.edu/developers.html#id10
https://stackoverflow.com/questions/64083644
复制相似问题