如何解决将OMPL与Drake一起使用
我正在尝试在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>
我类似地使用现货库,它们似乎运行良好。不知道在OMPL方面我出了什么问题。我检查了drakes git问题,发现曾经尝试进行集成,但是现在删除了该分支,并且提出的解决方案似乎在我的系统上不起作用。
解决方法
我发现在drake
项目中使用cmake
作为外部库是最容易的。 ompl
可以很好地工作。这是一个快速示例,将drake
和ompl
都导入为外部库并解决了一个简单的计划问题。
https://github.com/DexaiRobotics/drake-torch/tree/master/examples/drake-ompl
使用dexai2/drake-torch/cpu-nightly-ros
泊坞窗制作输出和视频,可在此处使用:https://hub.docker.com/r/dexai2/drake-torch/tags
顺便说一句,根据您使用的Ubuntu版本,您可能需要更改gcc版本-例如对于Ubuntu 20.04,您需要在gcc-9
中指定的g++-9
和CMakeLists.txt
,在18.04上需要gcc-7
和g++-7
。在此处查看注释:https://drake.mit.edu/developers.html#id10
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。