【声呐仿真】学习记录1.5-使用docker配置dave(先看这个!)、解决一些问题

本文主要是介绍【声呐仿真】学习记录1.5-使用docker配置dave(先看这个!)、解决一些问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【声呐仿真】学习记录1.5-使用docker配置dave、解决一些问题

  • docker配置dave
    • 1
    • 2
    • 3
  • 以下为未完全解决问题的随手记录,待日后解决再补充
    • 1.pcap、png解决,libusb未解决(不要修改libusb相关的)
    • 2.ISO C++
    • 3.换源
    • 4.自动安装相关依赖

docker配置dave

1

之前文章中手动配置的环境,在运行dave_demo的时候有报错,很长时间没能解决

所以又试了试官方提供的docker版本,可以正常运行demo

所以建议直接用docker配,除了最开始拉取docker镜像部分有差别,其它基本一样

步骤参考Docker环境|DAVE项目 — Docker Environment | Project DAVE

2

在执行./run.bash -c dockwater:noetic时,如果报错:在运行docker run …时,docker 未找到

关闭ssh,重新连接

然后使用以下命令创建容器(不要复制我的,可能会有信息不一样,复制你报错里的命令。然后可以参照我的,添加一下你需要的,命令介绍在之前的文章里有,dave官方的我也看不懂):

注意:可能需要删除官方命令中的–rm,我有这个参数的话就会失败(报错docker未找到)

docker run -it -p 50004:22 -v /home/ouc/ros_dave:/home/ouc --name dockwater_noetic_runtime --gpus all -v /dev:/dev -e DISPLAY -e TERM -e XAUTHORITY=/tmp/.dockerpznw0d90.xauth -v /tmp/.dockerpznw0d90.xauth:/tmp/.dockerpznw0d90.xauth -v /tmp/.X11-unix:/tmp/.X11-unix -v /etc/localtime:/etc/localtime:ro -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all 869c5ad477cb /bin/bash

3

创建完容器后,就按照我之前的文章,配置可视化、配置cuda、下载代码编译运行,选配ssh远程

运行demo结果如下:

roslaunch dave_demo_launch dave_demo.launch

在这里插入图片描述


以下为未完全解决问题的随手记录,待日后解决再补充

1.pcap、png解决,libusb未解决(不要修改libusb相关的)

在这里插入图片描述
WARNING ** io features related to openni2 pcap png will be disabled_io features related to openni will be disabled-

经查,png和usb系统都有:

locate libpng | grep cmake
locate libusb

在这里插入图片描述
只需安装pcap、配置:

sudo apt-get install libpcap-dev
sudo gedit `locate PCLConfig.cmake`

搜索openni(),在下面添加:

  elseif("${_lib}" STREQUAL "png")find_package(PNG)elseif("${_lib}" STREQUAL "pcap")find_package(PCAP)  elseif("${_lib}" STREQUAL "libusb-1.0")find_package(LIBUSB_1)

在这里插入图片描述
在这里插入图片描述

cp `locate libusb | grep cmake` /usr/share/cmake-3.16/Modules/FindLIBUSB_1.cmake
 sudo gedit /usr/share/cmake-3.16/Modules/FindPCAP.cmake
# - Try to find libpcap include dirs and libraries
#
# Usage of this module as follows:
#
#     find_package(PCAP)
#
# Variables used by this module, they can change the default behaviour and need
# to be set before calling find_package:
#
#  PCAP_ROOT_DIR             Set this variable to the root installation of
#                            libpcap if the module has problems finding the
#                            proper installation path.
#
# Variables defined by this module:
#
#  PCAP_FOUND                System has libpcap, include and library dirs found
#  PCAP_INCLUDE_DIR          The libpcap include directories.
#  PCAP_LIBRARY              The libpcap library (possibly includes a thread
#                            library e.g. required by pf_ring's libpcap)
#  HAVE_PF_RING              If a found version of libpcap supports PF_RING
#  HAVE_PCAP_IMMEDIATE_MODE  If the version of libpcap found supports immediate modefind_path(PCAP_ROOT_DIRNAMES include/pcap.h
)find_path(PCAP_INCLUDE_DIRNAMES pcap.hHINTS ${PCAP_ROOT_DIR}/include
)set (HINT_DIR ${PCAP_ROOT_DIR}/lib)# On x64 windows, we should look also for the .lib at /lib/x64/
# as this is the default path for the WinPcap developer's pack
if (${CMAKE_SIZEOF_VOID_P} EQUAL 8 AND WIN32)set (HINT_DIR ${PCAP_ROOT_DIR}/lib/x64/ ${HINT_DIR})
endif ()find_library(PCAP_LIBRARYNAMES pcap wpcapHINTS ${HINT_DIR}
)include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PCAP DEFAULT_MSGPCAP_LIBRARYPCAP_INCLUDE_DIR
)include(CheckCXXSourceCompiles)
set(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARY})
check_cxx_source_compiles("int main() { return 0; }" PCAP_LINKS_SOLO)
set(CMAKE_REQUIRED_LIBRARIES)# check if linking against libpcap also needs to link against a thread library
if (NOT PCAP_LINKS_SOLO)find_package(Threads)if (THREADS_FOUND)set(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})check_cxx_source_compiles("int main() { return 0; }" PCAP_NEEDS_THREADS)set(CMAKE_REQUIRED_LIBRARIES)endif (THREADS_FOUND)if (THREADS_FOUND AND PCAP_NEEDS_THREADS)set(_tmp ${PCAP_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})list(REMOVE_DUPLICATES _tmp)set(PCAP_LIBRARY ${_tmp}CACHE STRING "Libraries needed to link against libpcap" FORCE)else (THREADS_FOUND AND PCAP_NEEDS_THREADS)message(FATAL_ERROR "Couldn't determine how to link against libpcap")endif (THREADS_FOUND AND PCAP_NEEDS_THREADS)
endif (NOT PCAP_LINKS_SOLO)include(CheckFunctionExists)
set(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARY})
check_function_exists(pcap_get_pfring_id HAVE_PF_RING)
check_function_exists(pcap_set_immediate_mode HAVE_PCAP_IMMEDIATE_MODE)
check_function_exists(pcap_set_tstamp_precision HAVE_PCAP_TIMESTAMP_PRECISION)
set(CMAKE_REQUIRED_LIBRARIES)mark_as_advanced(PCAP_ROOT_DIRPCAP_INCLUDE_DIRPCAP_LIBRARY
)

2.ISO C++

在这里插入图片描述
不知道做了什么,突然成功了:
在这里插入图片描述

3.换源

ROS换源(除了清华之外的ROS源)-

Ubuntu22.04 解决 E: 无法定位软件包 yum_e: 无法定位软件包 libqt6opengl6-dev-
以上没解决

sudo cp -ra /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse保存退出
sudo apt-get update
sudo apt-get upgrade

遇到问题:
解决GPG 错误由于没有公钥,无法验证下列签名-

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys  xxx

解决后好了

在这里插入图片描述

4.自动安装相关依赖

rosdep install --from-paths src --ignore-src -r -y

这篇关于【声呐仿真】学习记录1.5-使用docker配置dave(先看这个!)、解决一些问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/925445

相关文章

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加