多机编队—(1)ubuntu 配置Fast_Planner

devtools/2024/12/23 1:53:29/

文章目录

  • 前言
  • 一、Could not find package ...
  • 二、使用error: no match for ‘operator=’...
  • 总结


前言

最近想要做有轨迹引导的多机器人编队,打算采用分布式的编队架构,实时的给每个机器人规划出目标位置,然后通过Fast_Planner生成避障路径,再通过改进的mpc进行跟踪。先记录下配置Fast_Planner时遇到的问题。


一、Could not find package …

如果出现这样的报错:
(1)通过:sudo apt-get install ros-melodic-提示缺少的包的名字进行安装。
(2)如果上面的方法不管用,需要根据提示解决:
例如:CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by “NLopt”
with any of the following names:

NLoptConfig.cmake
nlopt-config.cmake

在这里插入图片描述
通过与github Fast_Planner原功能包进行对比,发现在(fast_planner/baspline_opt/CMakeList.txt)目录下
我的:/CMakeList.txt

cmake_minimum_required(VERSION 2.8.3)
project(bspline_opt)
find_package(NLopt REQUIRED)
set(NLopt_INCLUDE_DIRS ${NLOPT_INCLUDE_DIR})find_package(Eigen3 REQUIRED)
find_package(PCL 1.7 REQUIRED)find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgsvisualization_msgscv_bridgeplan_env
)catkin_package(INCLUDE_DIRS includeLIBRARIES bspline_optCATKIN_DEPENDS plan_env
#  DEPENDS system_lib
)include_directories( SYSTEM include ${catkin_INCLUDE_DIRS}${Eigen3_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS}${NLOPT_INCLUDE_DIR}
)set(CMAKE_CXX_FLAGS "-std=c++14 ${CMAKE_CXX_FLAGS} -O3 -Wall")add_library( bspline_opt src/bspline_optimizer.cpp )
target_link_libraries( bspline_opt${catkin_LIBRARIES} ${NLOPT_LIBRARIES})  

github Fast_Planner /CMakeList.txt

cmake_minimum_required(VERSION 2.8.3)
project(bspline_opt)find_package(Eigen3 REQUIRED)
find_package(PCL 1.7 REQUIRED)find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgsvisualization_msgscv_bridgenloptplan_env
)catkin_package(INCLUDE_DIRS includeLIBRARIES bspline_optCATKIN_DEPENDS plan_env
#  DEPENDS system_lib
)include_directories( SYSTEM include ${catkin_INCLUDE_DIRS}${Eigen3_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS}
)set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS} -O3 -Wall")add_library( bspline_opt src/bspline_optimizer.cpp )
target_link_libraries( bspline_opt${catkin_LIBRARIES} )  

即去掉find_package(NLopt REQUIRED)在后面find_package中加上nlopt。其他的根据提示缺什么包装什么即可,如果遇到有的包找不到就去原仓库中找一找。

二、使用error: no match for ‘operator=’…

如果出现这样的报错:

error: no match for ‘operator=’ (operand types are ‘Eigen::internal::enable_if<true, Eigen::IndexedView<Eigen::Matrix<double, -1, -1>, double, double> >::type {aka Eigen::IndexedView<Eigen::Matrix<double, -1, -1>, double, double>}’ and ‘double’)
i * (i - 1) * (i - 2) * j * (j - 1) * (j - 2) * pow(ts, i + j - 5) / (i + j - 5);

根据提示找到:fast_planner/poly_traj/include/poly_traj/polynomial_traj.h
根据提示的行数将for循环的圆括号里的double改为int,注意是两个!
在这里插入图片描述


总结

(未完待续)…


http://www.ppmy.cn/devtools/108886.html

相关文章

HarmonyNext动画大全03-帧动画

HarmonyNext动画大全03-帧动画 介绍 帧动画Animator和属性动画animation、显式动画animateTo的区别在于帧动画是通过返回应用onFrame逐帧回调的方式&#xff0c;让开发者在 应用侧的每一帧都可以设置属性值&#xff0c;从而实现设置了该属性值对应组件的动画效果。并且可以轻…

QT Android开发之Android端usb调试模式设置与问题解决

一.QT android开发android端usb调试模式设置 QT android开发环境搭建完成后,android设备需要打开usb调试模式才能正常连接,下面以小米ipad为例进行设置(其他手机和ipad设置方法类似) 1.问题: 笔者当时想拷贝ipad内文件到pc上,安装了360手机助手,用了几次后突然发现QT…

《OpenCV计算机视觉》—— 图像轮廓检测与绘制

文章目录 一、轮廓的检测二、轮廓的绘制图像轮廓检测与绘制的代码实现 三、轮廓的近似 一、轮廓的检测 轮廓检测是指在包含目标和背景的数字图像中&#xff0c;忽略背景和目标内部的纹理以及噪声干扰的影响&#xff0c;采用一定的技术和方法来实现目标轮廓提取的过程注意:做轮…

2024高教杯数学建模A题思路

问题1:舞龙队沿螺距为55 cm 的等距螺线顺时针盘入 分析: 龙头速度:龙头前把手的行进速度始终保持1 m/s。螺线参数:螺距为55 cm,即0.55 m。初始条件:龙头位于螺线第16圈A点处。思路: 确定螺线方程:根据螺线的性质,建立极坐标方程,表示螺线各点的位置。计算时间步长:…

dp(背包问题) 恰好、至少、至多初始化

状态表示的初始化(一般情况) f[i][j] i:前i件物品 体积至少为j 枚举体积时可以是负数(体积为负数时等价于体积为0) max f[i][j] {-0x3f} f[i][0] 0 min f[i][j] { 0x3f} f[i][0] 0 cnt f[0][0] 1 体积至多为j 枚举体积时不能是负数 max f[i][j] 0 min f[i][j] {0x3f}…

【知识分享】MQTT实战-使用mosquitto客户端连接emqx服务器

一、简介 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的、基于发布/订阅模式的通信协议&#xff0c;旨在实现物联网设备之间的低带宽、高延迟的通信。MQTT协议设计简洁&#xff0c;使用TCP/IP协议进行通信&#xff0c;适用于各种网络环境&am…

非阻塞io(设置方式),fcntl(介绍,使用)

目录 非阻塞式io 一般 通用方法 -- fcntl() 介绍 函数原型 cmd 应用 示例 普通read 加入fcntl() 非阻塞式io 一般 我们之前使用过的recv()函数中,有一个flags参数,它可以设置io方式为非阻塞方式 其他函数也有,但每次使用都需要设置,未免有点麻烦,我们有更通用的方法 …

深度学习:怎么看pth文件的参数

.pth 文件是 PyTorch 模型的权重文件&#xff0c;它通常包含了训练好的模型的参数。要查看或使用这个文件&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 确保你有模型的定义 你需要有创建这个 .pth 文件时所用的模型的代码。这意味着你需要有模型的类定义和架构。 2. …