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

news2024/12/23 16:39:40

【声呐仿真】学习记录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 mode
 
find_path(PCAP_ROOT_DIR
    NAMES include/pcap.h
)
 
find_path(PCAP_INCLUDE_DIR
    NAMES pcap.h
    HINTS ${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_LIBRARY
    NAMES pcap wpcap
    HINTS ${HINT_DIR}
)
 
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PCAP DEFAULT_MSG
    PCAP_LIBRARY
    PCAP_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_DIR
    PCAP_INCLUDE_DIR
    PCAP_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.list

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1613441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【保姆级讲解下gateway基本配置】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

1、揭开程序运行的神秘面纱

要深入理解JVM技术,我们必须先搞清楚一个基本问题:我们日常编写的Java代码是如何被执行的呢? 让我们逐步解析这个问题。首先,假设我们已经编写了一些Java代码,这些代码通常会包含许多以“.java”为后缀的源文件&#…

《深入浅出.NET框架设计与实现》笔记2——C#源码从编写到执行的流程

中间语言(Intermediate Language,IL) C#编译器在编译时,会将源代码作为输入,并以中间语言形式输入出,该代码保存在*.exe文件中或*.dll文件中。 公共语言运行时(CLR) 可以将IL代码…

ROS机器人入门第七课:参数服务器

文章目录 ROS机器人入门第七课:参数服务器一、参数服务器介绍二、参数操作1.参数服务器新增(修改)参数2.参数服务器获取参数3.参数服务器删除参数 ROS机器人入门第七课:参数服务器 一、参数服务器介绍 参数服务器在ROS中主要用于实现不同节点之间的数据…

【第34天】SQL进阶-SQL高级技巧-Window Funtion(SQL 小虚竹)

回城传送–》《100天精通MYSQL从入门到就业》 文章目录 零、前言一、练习题目二、SQL思路初始化数据什么是Window Funtion窗口函数的分类语法结构第一种写法:第二种写法: 实战体验序号函数:row_number()序号函数:rank()序号函数&…

AI大模型量化格式介绍(GPTQ,GGML,GGUF,FP16/INT8/INT4)

在 HuggingFace 上下载模型时,经常会看到模型的名称会带有fp16、GPTQ,GGML等字样,对不熟悉模型量化的同学来说,这些字样可能会让人摸不着头脑,我开始也是一头雾水,后来通过查阅资料,总算有了一些…

Leetcode144_二叉树的前序遍历

1.leetcode原题链接:. - 力扣(LeetCode) 2.题目描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入&#xf…

如何在PostgreSQL中使用CTE(公共表表达式)来简化复杂的查询逻辑?

文章目录 解决方案步骤示例代码 结论 在处理复杂的SQL查询时,我们经常会遇到需要多次引用子查询或中间结果的情况。这可能会使得查询变得冗长且难以理解。为了解决这个问题,PostgreSQL(以及其他一些SQL数据库系统)引入了公共表表达…

变频器基础原理

文章目录 0. 基本知识1.三相的电压之和为02.正弦交流相量的相量表示法(相量只是表示正弦量,而不等于正弦量 ;只有正弦量才能用相量表示)引入相量表示法目的:一种正弦量的产生方式:正弦量的相量表示,使用欧拉公式表示复数 3.用复数表示正弦量&…

使用JavaScript收集和发送用户设备信息,后端使用php将数据保存在本地json,便于后期分析数据

js代码部分 <script> // 之前提供的JavaScript代码 fetch(https://api.ipify.org?formatjson).then(response > response.json()).then(data > {const deviceInfo {userAgent: navigator.userAgent,platform: navigator.platform,language: navigator.language,…

晶圆制造之MPW(多项目晶圆)简介

01、MPW是什么&#xff1f; 在半导体行业中&#xff0c;MPW 是 "Multi Project Wafer" 的缩写&#xff0c;中文意思是多项目晶圆。MPW 的主要思想是将使用相同工艺的多个集成电路设计放在同一晶圆片上进行流片&#xff08;即制造&#xff09;。这种方法允许多个设计共…

数码摄影色彩构成,数码相机色彩管理

一、资料描述 本套摄影色彩资料&#xff0c;大小58.54M&#xff0c;共有6个文件。 二、资料目录 《抽象彩色摄影集》.阿瑟.pdf 《色彩构成》.pdf 《色彩学》.星云.扫描版.pdf 《摄影色彩构成》.pdf 《数码相机色彩管理》.pdf 数码摄影进阶之4《色彩篇》.pdf 三、资料下…

算法课程笔记——STL题目

长度为2的字符串&#xff0c;当in下标为一&#xff0c;也就是\n,当i&#xff01;n&#xff0c;就是输出空格 &&且 city从citys里面取 加速后就不能混用scanf

HANA SQL消耗内存和CPU线程的限制参数

HANA再处理大数据表相关的复杂Sql时&#xff0c;如果没有设置Memory和CPU线程上限的话&#xff0c;会将HANA的资源占用殆尽&#xff0c;造成HANA无法响应其他Sql请求&#xff0c;导致表现在应用服务器上就是系统卡顿的情况。解决上述问题的办法就是按照下图设置Memory(图1&…

Rust序列化和反序列化

Rust 编写python 模块 必备库 docker 启动 nginx 服务 NGINX 反向代理配置

使用QGIS创建Hexbin地图

Binning是一种用于显示点特征密度的制图技术。分箱涉及将均匀形状的网格覆盖到点数据集上。然后为网格中的每个单元格分配落在其中的点数。然后采用分级颜色分类来直观地显示哪些单元格包含最多数量的点。可以采用不同尺寸的形状&#xff0c;例如矩形、菱形和六边形。 什么是 …

FreeSWITCH 1.10.10 简单图形化界面19 - FreeSWITH性能测试之2核2G和4核4G

FreeSWITCH 1.10.10 简单图形化界面19 - FreeSWITH性能测试之2核心2G和4核心4G 界面预览00、先看使用手册0、先安装FreeSWITCH0、测试备注1、2核心2G内存200分机未开启录音呼叫开启录音呼叫 300分机未开启录音呼叫开启录音呼叫 400分机未开启录音呼叫开启录音呼叫 2、4核心4G内…

《大话西游2》本人收集的十二个单机版游戏,有详细的视频架设教程,云盘下载

《大话西游2》是一款经典的大型多人在线角色扮演游戏&#xff0c;也是一款国风经典的游戏。 有能力的可以架设个外网&#xff0c;让大家一起玩。 《大话西游2》本人收集的十二个单机版游戏&#xff0c;有详细的视频架设教程&#xff0c;值得收藏 下载地址&#xff1a; 链接&…

华为开源自研AI框架昇思MindSpore应用案例:数据处理性能优化

如果你对MindSpore感兴趣&#xff0c;可以关注昇思MindSpore社区 数据是整个深度学习中最重要的一环&#xff0c;因为数据的好坏决定了最终结果的上限&#xff0c;模型的好坏只是去无限逼近这个上限&#xff0c;所以高质量的数据输入&#xff0c;会在整个深度神经网络中起到积极…

ubuntu安装QEMU

qemu虚拟机的使用&#xff08;一&#xff09;——ubuntu20.4安装QEMU_ubuntu安装qemu-CSDN博客 遇到的问题&#xff1a; (1)本来使用git clone https://github.com/qemu/qemu.git fatal: 无法访问 https://github.com/qemu/qemu.git/&#xff1a;GnuTLS recv error (-110): …