当前位置: 首页 > news >正文

Linux 35.5 + JetPack v5.1.3@FC-Planner编译安装

Linux 35.5 + JetPack v5.1.3@FC-Planner编译安装

  • 1. 源由
  • 2. 编译&安装
    • Step 1:依赖库安装
    • Step 2:克隆工程
    • Step 3:编译工程
    • Step 4:LKH编译
    • Step 5:安装工程
  • 3. 问题汇总
    • 3.1 Killed signal terminated program cc1plus
    • 3.2 swarm_exploration/plan_env - OpenCV
    • 3.3 FC-Planner替换LKH
    • 3.4 程序异常退出
  • 4. 总结
  • 5. 附录
    • 5.1 LKH-3安装
    • 5.2 FC-Planner采用三方库(推荐)
    • 5.3 YSU-STAR/FC-Planner

1. 源由

FC-Planner是一种复杂三维场景快速空中覆盖规划框架。

这个就是非常吸引人的东东,因为之前有简单呃呃了解过手持式三维光学扫描:(当然应该不仅限这几家,很多国外公司)

  • 思看科技(杭州)
  • 先临三维(杭州)
  • 海克斯康(青岛)

据了解手持式三维扫描主要是光学的扫描和建模,主要是精度和误差方面的问题。

而这个可以大面积、体积下的进行3D重建,对于今后的三维空间重建,包括虚拟化AR/VR都会有很大的处境,尤其是快速建模方面。

PS:相信大家在异形上看到过普罗米修斯那集,哪个探测球,就是利用这种三维技术,快速对外星飞船进行了3D重建。

2. 编译&安装

注1:不清楚ROS版本的,请先查看下版本,注意要ROS而非ROS2。

$ rosversion --distro
noetic

注2:基于FC-Planner最新github上的代码版本。

$ git log -n 1
commit bf57e48414b9de547b18d294f665d23cb3986fee (HEAD -> master, origin/master, origin/HEAD)
Author: Chen-Albert-FENG <chen835110460@qq.com>
Date:   Thu May 23 01:19:29 2024 +0800[pref]: remove deprecated functions

Step 1:依赖库安装

$ sudo apt-get install cpufrequtils libompl-dev

Step 2:克隆工程

$ git clone https://github.com/HKUST-Aerial-Robotics/FC-Planner.git

注:若存在网络问题,请使用git协议clone代码。git协议始终比https稳定,但需要注意ssh key的安装问题。

Step 3:编译工程

$ cd FC-Planner
$ catkin config -DCMAKE_BUILD_TYPE=Release
$ catkin build --cmake-args -Wno-dev

Step 4:LKH编译

这里埋下一个伏笔:因为笔者一开始并未注意这个,而且在RACER上面,这个LKH3.0.6版本已经安装,所以压根没有运行下面以下命令。

$ cd src/hierarchical_coverage_planner/solution/LKH
$ make

人总是有固定的思维逻辑,并且人总是容易忽视一些感觉自己知道的事情。如果严格的按照CheckList思想来做,这里就已经出问题了。

注:如果遇到了这个问题,可以参考补充里面笔者的处理方法。或者根据3.2章节的内容进行代码版本确认。

Step 5:安装工程

略,因为暂时不涉及软件的部署应用,相关模拟命令参考:

  • 运行Rviz虚拟环境
$ source devel/setup.bash && roslaunch hierarchical_coverage_planner rviz.launch
  • 运行模拟程序
$ source devel/setup.bash && roslaunch hierarchical_coverage_planner mbs.launch
  • 操作:先点击[2D Nav Goal]操作;然后点击[2D Pose Estimate]操作。
    在这里插入图片描述

在这里插入图片描述

3. 问题汇总

3.1 Killed signal terminated program cc1plus

[ 91%] Building CXX object hierarchical_coverage_planner/CMakeFiles/hcplanner_exec.dir/src/hcplanner.cpp.o
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [hierarchical_coverage_planner/CMakeFiles/hcplanner_exec.dir/build.make:63: hierarchical_coverage_planner/CMakeFiles/hcplanner_exec.dir/src/hcplanner.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2916: hierarchical_coverage_planner/CMakeFiles/hcplanner_exec.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 92%] Linking CXX executable /home/daniel/HKUST/FC-Planner/FC-Planner/devel/lib/viewpoint_manager/viewpoint_manager_node
[ 93%] Linking CXX executable /home/daniel/HKUST/FC-Planner/FC-Planner/devel/lib/viewpoint_manager/skeleton_viewpoint_node
/usr/bin/ld: warning: libopencv_features2d.so.4.2, needed by /usr/lib/aarch64-linux-gnu/libopencv_calib3d.so.4.2.0, may conflict with libopencv_features2d.so.409
[ 93%] Built target skeleton_viewpoint_node
[ 93%] Built target viewpoint_manager_node
[ 95%] Building CXX object hierarchical_coverage_planner/CMakeFiles/hcplanner.dir/src/hcopp.cpp.o
[ 95%] Building CXX object hierarchical_coverage_planner/CMakeFiles/hcplanner.dir/src/hcsolver.cpp.o
[ 95%] Building CXX object hierarchical_coverage_planner/CMakeFiles/hcplanner.dir/src/hctraj.cpp.o
[ 96%] Linking CXX shared library /home/daniel/HKUST/FC-Planner/FC-Planner/devel/lib/libhcplanner.so
[ 96%] Built target hcplanner
make: *** [Makefile:141: all] Error 2
Invoking "make -j6 -l6" failed

解决方案: c++: fatal error: Killed signal terminated program cc1plus on Jetson Orin Nano #9

$ catkin_make -j1

3.2 swarm_exploration/plan_env - OpenCV

$ git diff FC-Planner/src/plan_env/CMakeLists.txt
diff --git a/FC-Planner/src/plan_env/CMakeLists.txt b/FC-Planner/src/plan_env/CMakeLists.txt
index 06cc294..14773af 100755
--- a/FC-Planner/src/plan_env/CMakeLists.txt
+++ b/FC-Planner/src/plan_env/CMakeLists.txt
@@ -47,4 +47,5 @@ add_library( plan_envtarget_link_libraries( plan_env${catkin_LIBRARIES}${PCL_LIBRARIES}
+    ${OpenCV_LIBS})

3.3 FC-Planner替换LKH

直接替换LKH3.0.6版本二进制:

$ pwd
/home/daniel/HKUST/FC-Planner/FC-Planner/src/hierarchical_coverage_planner/solution/LKH
$ cp /usr/local/bin/LKH LKH

3.4 程序异常退出

  • c++: fatal error: Killed signal terminated program cc1plus on Jetson Orin Nano #9
  • Jetson Orin Nano | FC-Planner Demo Exception Quit

**解决方案:**使用d47fe78和6d9b2d6之后的版本。

或者采用笔者的方法,将RACER下的LKH-3.0.6复制到对应的目录下替换LKH可执行文件,请参考:《Linux 35.5 + JetPack v5.1.3@RACER编译安装》

4. 总结

总体来说,非常高兴看到这个效果,后续逐步研究深入吧。

  • How to change a different structure, such as a bridge to do the simulation? #10
  • FC-Planner is extended to multi-UAV autonomous reconstruction as FC-Hetero

Jetson Orin Nano | FC-Planner simulation

5. 附录

5.1 LKH-3安装

LKH-3 是 LKH-2 的扩展,用于解决受约束的旅行商和车辆路径问题。

注:推荐LKH-3.0.6,当前最新版本LKH-3.0.9。

$ wget http://akira.ruc.dk/~keld/research/LKH-3/LKH-3.0.6.tgz
$ tar xvfz LKH-3.0.6.tgz
$ cd LKH-3.0.6
$ make
$ sudo cp LKH /usr/local/bin

5.2 FC-Planner采用三方库(推荐)

修改LKH相关脚本和路径(理论上,未尝试过):

./hierarchical_coverage_planner/src/hcsolver.cpp:97:      string command_ = "cd " + GlobalSolver_ + " && ./LKH " + GlobalPar_;
./hierarchical_coverage_planner/src/hcsolver.cpp:987:    local_command_ = "cd " + GlobalSolver_ + " && ./LKH " + LocalParF_;
./hierarchical_coverage_planner/launch/pipe.launch:96:  <param name="hcplanner/global_solver" value="$(find hierarchical_coverage_planner)/solution/LKH" type="string"/>
./hierarchical_coverage_planner/launch/mbs.launch:96:  <param name="hcplanner/global_solver" value="$(find hierarchical_coverage_planner)/solution/LKH" type="string"/>
./hierarchical_coverage_planner/launch/christ.launch:97:  <param name="hcplanner/global_solver" value="$(find hierarchical_coverage_planner)/solution/LKH" type="string"/>

5.3 YSU-STAR/FC-Planner

$ git log -n 1
commit 6c7677d46563cc2f2d2e771b07ffe2642ecd26b1 (HEAD -> master, origin/master, origin/HEAD)
Author: Chen-Albert-FENG <chen835110460@qq.com>
Date:   Thu Jun 6 00:29:56 2024 +0800[docs]: add pacifico demo

上述git版本存在问题汇总里面同样的问题,估计后续的版本会更新吧。

相关文章:

  • 深入解析Java扩展机制:SPI与Spring.factories
  • Python的登录注册界面跳转汽车主页面
  • Rust : windows下protobuf尝试
  • 生物神经网络 原理分析研读02
  • Python流动性做市风险获利 | 信息不对称买卖数学模型
  • 澳大利亚和德国媒体投放-国外新闻发稿-海外软文推广
  • pxe自动装机
  • 内部类(超详细)
  • [数据集][目标检测]盲道检测数据集VOC+YOLO格式2173张1类别
  • TSINGSEE青犀视频汇聚机房动环智能监控方案,提升机房安全稳定性
  • <vs2022><问题记录>visual studio 2022使用console打印输出时,输出窗口不显示内容
  • 如何在virtualbox上安装Linux系统(centerOS)
  • Java常见错误-内部类-简要分析
  • 贰[2],VisionMaster/.NetCore的WPF应用程序调用控件
  • 佛教祭拜小程序-寺庙小程序-纪念馆小程序
  • 【node学习】协程
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 2017-08-04 前端日报
  • Android交互
  • es6
  • Logstash 参考指南(目录)
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • React-Native - 收藏集 - 掘金
  • Solarized Scheme
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 对象管理器(defineProperty)学习笔记
  • 前端工程化(Gulp、Webpack)-webpack
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 山寨一个 Promise
  • 实现简单的正则表达式引擎
  • 我与Jetbrains的这些年
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (笔试题)分解质因式
  • (排序详解之 堆排序)
  • (一)u-boot-nand.bin的下载
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)ABI是什么
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • . Flume面试题
  • .gitignore文件—git忽略文件
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net core 连接数据库,通过数据库生成Modell
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .NET Micro Framework初体验
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • /etc/fstab 只读无法修改的解决办法
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @Documented注解的作用
  • [ C++ ] template 模板进阶 (特化,分离编译)