Teach repeat replan 安装中遇到的问题记录

Teach repeat replan 安装中遇到的问题

一、onboard部分

硬件:大疆A3飞控 intel NUC intel realsenseD435i
环境:ubuntu16.04 ros-kinetic

(1) realsense 驱动

在自己安装realsense-ros时出现缺少 ddynamic_reconfigure等类似内容,是因为realsense后续版本中删除了自带的ddynamic_reconfigure文件夹,从老版本realsense驱动(2.2.2)中复制了ddynamic_reconfigure到新版本文件夹中,可成功编译
(Teach repeat replan 中realsense具备此文件夹,不需要自己配置)

(2) dji onboardSDK-ros

原本在自己的工作空间中安装了osdk3.8及ros版本,在编译trr时出现错误

error: ‘class DJI::OSDK::MissionManager’ has no member named ‘hotptCounter’

经过查找是因为OSDK3.8中对相关功能进行了改动,后续将原本安装的OSDK3.8(非ros版本)降级为OSDK3.7后顺利编译通过

(3) 运行/install_tools.sh时出现错误

文件内容为

sudo apt-get install -y ros-kinetic-joy &
sudo apt-get install -y libnlopt-dev &
sudo apt-get install -y libf2c2-dev &
sudo apt-get install -y libarmadillo-dev &
sudo apt-get install -y glpk-utils libglpk-dev &
sudo apt-get install -y libcdd-dev &
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test &
sudo apt-get update &
sudo apt-get install -y gcc-7 g++-7 &
sudo update-alternatives --install -y /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5 &
sudo update-alternatives --install -y /usr/bin/gcc gcc /usr/bin/gcc-7 50 --slave /usr/bin/g++ g++ /usr/bin/g++-7

可以直接分别执行
在运行到最后两行时报错,显示优先级需要是整数?十分困惑
后来尝试删除了 -y 参数,可以顺利运行
即使用

sudo update-alternatives --install  /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5 &
sudo update-alternatives --install  /usr/bin/gcc gcc /usr/bin/gcc-7 50 --slave /usr/bin/g++ g++ /usr/bin/g++-7

二、ground 部分

当前使用ubuntu20.04作为系统环境,使用适配的ros-noetic
(选择20.04是由于所使用的笔记本为华硕天选4800H+2060,2060为2020年新版本显卡,安装其他版本ubuntu后无法安装显卡驱动,如果有解决方法请联系我)

(1)OOQP安装

MA27是OOQP的依赖。
在安装MA27时容易出现找不到fortran77等情况,在配置这些环境时容易出现其他错误导致系统环境出现问题。选择换用其他版本的安装文件
ma27:https://github.com/HITSZ-LeggedRobotics/ma27
安装命令:

bash ./configure CPPFLAGS="-fPIC" CFLAGS="-fPIC" FFLAGS="-fPIC"
sudo make install

ooqp:https://github.com/emgertz/OOQP
首先在ma27/src中复制libma27.a文件到ooqp文件夹下

安装命令:
./configure
make
sudo make install

即可成功安装ooqp

(2)ground station部分

编译顺序

创建新的catkin_ws后复制整个文件夹到src文件夹后,使用catkin_make无法成功编译,是由于地面站部分分解成文件夹存在互相依赖的情况。
按照以下顺序依次将文件夹中的子文件夹放入catkin_ws/src中,每次放入一个子文件夹后执行catkin_make.
我所使用的安装顺序:
utilspolyhedron_generatorglobal_mappingglobal_plannersimulationjoy_ctrl

子文件夹编译时出现的问题:

cuda版本选择

polyhedron_generator
注意camkelist中是否启用cuda,以及cuda的版本选项
查看不同显卡、cuda版本对应的arch型号可以参考http://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
我所使用的nvidia2060对应cuda11,为turing架构显卡,cmakelist中将原本的

set(CUDA_NVCC_FLAGS 
  -gencode arch=compute_61,code=sm_61;
) 

修改为

set(CUDA_NVCC_FLAGS 
  -gencode arch=compute_75,code=sm_75;
) 

PCL库问题

global_mapping
显示error: #error PCL requires C++14 or above
在cmakelist中添加

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

global_planner
出现同样的PCL问题,同样解决。同时需要注意camkelist中是否启用cuda

猜你喜欢

转载自blog.csdn.net/weixin_44413712/article/details/115063366