path_optimizer 复现
文章目录
- 一. 安装依赖
- 1. package依赖
- 2. cmake 版本问题
- 3. eigen 版本问题
- 4. 安装osqp和osqp-eigen
- 5. gflags安装
- 二. 运行结果
参考: LiJiangnanBit/path_optimizer_2
感谢作者贡献的很好的开源项目,记录一下复现过程中的问题
一. 安装依赖
1. package依赖
首先 clone 下来放到 src 中,这两个 package 也需要 clone 下来放到 src 中
- ros_viz_tools
- tinyspline_ros
2. cmake 版本问题
需要 3.8 以上的版本,我的电脑是3.5的,需要先卸载,之后安装,参考我的博客:
- cmake 升级
3. eigen 版本问题
由于通过终端命令行安装的电脑里的 eigen 版本是 3.2.9 不满足要求,编译会报错:
CMake Error at cmake/OsqpEigenDependencies.cmake:12 (find_package):Could not find a configuration file for package "Eigen3" that is compatiblewith requested version "3.2.92".The following configuration files were considered but not accepted:/usr/lib/cmake/eigen3/Eigen3Config.cmake, version: unknownCall Stack (most recent call first):CMakeLists.txt:75 (include)-- Configuring incomplete, errors occurred!
See also "/home/seivl/my_lib/osqp-eigen/build/CMakeFiles/CMakeOutput.log".
先卸载了,再安装高版本的:
- 卸载 eigen
- 添加链接描述
卸载:
sudo rm -rf /usr/include/eigen3
sudo rm -rf /usr/lib/cmake/eigen3
安装:从这里下载:eigen 下载
mkdir build
cd build
cmake ..
sudo make
sudo make install
安装在这个目录:
/usr/local/include/eigen3/
要修改到这里:
usr/local/include
执行:
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
4. 安装osqp和osqp-eigen
需要依赖osqp-eigen,又要首先安装osqp,没安装的话也是会编译报错:
seivl@seivl-Default-string:~/my_lib/osqp-eigen/build$ cmake ..
CMake Error at cmake/OsqpEigenDependencies.cmake:13 (find_package):By not providing "Findosqp.cmake" in CMAKE_MODULE_PATH this project hasasked CMake to find a package configuration file provided by "osqp", butCMake did not find one.Could not find a package configuration file provided by "osqp" with any ofthe following names:osqpConfig.cmakeosqp-config.cmakeAdd the installation prefix of "osqp" to CMAKE_PREFIX_PATH or set"osqp_DIR" to a directory containing one of the above files. If "osqp"provides a separate development package or SDK, be sure it has beeninstalled.
Call Stack (most recent call first):CMakeLists.txt:75 (include)
它们的安装参考这里,很详细了:
- osqp和osqp-eigen
5. gflags安装
正常编译会报错:
CMake Error at path_optimizer_2/CMakeLists.txt:27 (find_package):By not providing "Findgflags.cmake" in CMAKE_MODULE_PATH this project hasasked CMake to find a package configuration file provided by "gflags", butCMake did not find one.Could not find a package configuration file provided by "gflags" with anyof the following names:gflagsConfig.cmakegflags-config.cmakeAdd the installation prefix of "gflags" to CMAKE_PREFIX_PATH or set"gflags_DIR" to a directory containing one of the above files. If "gflags"provides a separate development package or SDK, be sure it has beeninstalled.-- Configuring incomplete, errors occurred!
See also "/home/seivl/pnc_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/seivl/pnc_ws/build/CMakeFiles/CMakeError.log".
Makefile:870: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
亲测直接使用终端命令行安装还是会报错,需要自己下载源码安装:
- gtest 和 gflags 安装使用
编译会遇到以下错误:
[ 92%] Linking CXX shared library /home/seivl/pnc_ws/devel/lib/libpath_optimizer_2.so
/usr/bin/ld: /usr/local/lib/libgflags.a(gflags.cc.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libgflags.a: 无法添加符号: 错误的值
collect2: error: ld returned 1 exit status
path_optimizer_2/CMakeFiles/path_optimizer_2.dir/build.make:412: recipe for target '/home/seivl/pnc_ws/devel/lib/libpath_optimizer_2.so' failed
make[2]: *** [/home/seivl/pnc_ws/devel/lib/libpath_optimizer_2.so] Error 1
CMakeFiles/Makefile2:1633: recipe for target 'path_optimizer_2/CMakeFiles/path_optimizer_2.dir/all' failed
make[1]: *** [path_optimizer_2/CMakeFiles/path_optimizer_2.dir/all] Error 2
Makefile:145: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
问题解决:
- 遇到libgflags.a(gflags.cc.o): relocation R_X86_64_32 against `.rodata.str1.1’ ca时
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON -DGFLAGS_NAMESPACE=google -G "Unix Makefiles" ../
make
sudo make install
sudo ldconfig
二. 运行结果
path_optimizer 复现相关推荐
- Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易
近日,PyTorch 社区发布了一个深度学习工具包 PyTorchHub, 帮助机器学习工作者更快实现重要论文的复现工作.PyTorchHub 由一个预训练模型仓库组成,专门用于提高研究工作的复现性以 ...
- 【目标检测】yolo系列:从yolov1到yolov5之YOLOv1详解及复现
检测器通常能够被分为两类,一类是two-stage检测器,最具代表的为faster R-CNN:另一类是one-stage检测器,包括YOLO,SSD等.一般来说,two-stage检测器具有高定位和 ...
- CV算法复现(分类算法2/6):AlexNet(2012年 Hinton组)
致谢:霹雳吧啦Wz:https://space.bilibili.com/18161609 目录 致谢:霹雳吧啦Wz:https://space.bilibili.com/18161609 1 本次要 ...
- 【神经网络】(17) EfficientNet 代码复现,网络解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 复现 EfficientNet 卷积神经网络模型. EfficientNet 的网络结构和 MobileNetV3 比较相似,建议大家在学 ...
- 【神经网络】(16) MobileNetV3 代码复现,网络解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 MobileNetV3 轻量化网络模型. MobileNetV3 做了如下改动(1)更新了V2中的逆转残差结构:(2)使用NAS搜索 ...
- 【神经网络】(15) Xception 代码复现,网络解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 Xception 神经网络模型. 在前面章节中,我已经介绍了很多种轻量化卷积神经网络模型,感兴趣的可以看一下:https://blo ...
- 【神经网络】(14) MnasNet 代码复现,网络解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 复现谷歌轻量化神经网络 MnasNet 通常而言,移动端(手机)和终端(安防监控.无人驾驶)上的设备计算能力有限,无法搭载庞大的神经网络 ...
- 【神经网络】(13) ShuffleNetV2 代码复现,网络解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 复现轻量化神经网络 ShuffleNetV2. 为了能将神经网络模型用于移动端(手机)和终端(安防监控.无人驾驶)的实时计算,通常这些设备 ...
- 【神经网络】(11) 轻量化网络MobileNetV1代码复现、解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 复现轻量化神经网络模型 MobileNetV1.为了能将神经网络模型用于移动端(手机)和终端(安防监控.无人驾驶)的实时计算,通常这些设备 ...
最新文章
- 打开黑色_表哥出差带回来一箱苹果,打开后发现是黑色的,大家表示都没见过...
- 用mysqlbinlog查看row格式的事件
- Python笔记-weditor的安装及基本使用
- 第七章—JavaScript数组
- ShellCode初体验
- leetcode-345-Reverse Vowels of a String
- 微信iOS版内测暗黑模式;涉嫌恶意举报,社交平台Soul运营合伙人被批捕;AWS推出基于Linux开源操作系统 | 极客头条...
- python中List和Tuple的区别
- JSP概述--JSP的起源,本质,运行原理
- Unity渲染管线,初探SRP
- BZOJ-1827 [Usaco2010 Mar]gather 奶牛大集会
- ps 图片文字改黑白
- CentOS 8 如何更换yum源
- 【报告分享】2021年度小红书高效种草营销手册-标记我的生活-小红书(附下载)
- android短信发送流程,Android 发送短信程序
- YOLOv5 + Tesseract-OCR 实现车牌号文本识别
- 【小知识】linux hash命令
- word论文计算机,计算机网络专业毕业论文 Microsoft Word 文档.doc
- 大数据精准营销之客户细分
- fopen函数的type字段
热门文章
- 虚幻图文笔记:TravelFailure: ClientTravelFailure, Reason for Failure: ‘Failed to load package ‘问题的解决
- 360广告投放是怎么收费的,360信息流推广怎么收费
- 51nod 1596搬货物
- windows制作docker镜像_电脑技术之Windows系统篇-PE系统的制作及GHO镜像系统恢复
- 解决align-items失效,无法居中问题
- python入门学习之元祖tuple
- unet详解_Unity3D 网络组件UNet详解
- Bochs源码分析 - 14:bochs关于实地址模式下IVT表的管理
- 实验课排课功能使用说明
- 声明类person,该类定义了两个数据成员,一个带参的构造方法,一个具有两个参数的构造方法,一个方法prin()