【复现】jake 3991/sonar-SLAM:用于多波束声纳机器人的水下SLAM

2024-04-01 19:04

本文主要是介绍【复现】jake 3991/sonar-SLAM:用于多波束声纳机器人的水下SLAM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

复现 jake 3991/sonar-SLAM:用于多波束声纳机器人的水下SLAM

  • 前言
  • 一、sonar-SLAM 过程
    • 1.python环境
    • 2.ros环境
    • 3.安装
    • 4.数据
    • 5.在线运行
      • 报错1:No module named 'bruce_slam'
      • 报错2:No module named 'ros_numpy'
      • 报错3:No module named 'sklearn'
      • 报错4:AttributeError: 'gtsam.gtsam.Rot3' object has no attribute 'quaternion'
      • 报错5:AttributeError: module 'numpy' has no attribute 'bool'.
      • 报错6:*** stack smashing detected ***: terminated
    • 6.离线运行
    • 7.其他

前言

jake 3991/sonar-SLAM:用于多波束声纳机器人的水下SLAM

一、sonar-SLAM 过程

1.python环境

sudo pip install cv_bridge gtsam matplotlib numpy opencv_python scikit_learn scipy Shapely tf tqdm pyyaml

message_filter 是roscpp和rospy的实用程序库。 它集合了许多的常用的消息“过滤”算法。

ROS系列(一):【环境配置】rosbag 包安装_安装rosbag-

pip install gnupg
pip install pycryptodome
pip install pycryptodomex
pip install pyyaml
pip install docutils 
pip install python-dateutil
pip install pyparsing  
pip install rosbag -i https://rospypi.github.io/simple/
pip install rospy -i https://rospypi.github.io/simple/

win10 + python3 + 安装rosbag & cv_bridge & sensor_msgs+解析bag文件生成pcd和图片

pip install sensor_msgs --extra-index-url https://rospypi.github.io/simple/

2.ros环境

ROS-Noetic是一个用于机器人软件开发的框架,全称为Robot Operating System Noetic。它是ROS(Robot Operating System)的一个版本,提供了一系列工具和库来支持机器人系统的开发、部署和运行。ROS-Noetic是ROS的第十一个正式版本,于2020年5月发布。
小鱼的一键安装系列 | 鱼香ROS

catkin-pybind11是ROS中的一个工具,用于在Python和C++之间进行交互。它基于pybind11库,允许开发者将C++代码封装为Python模块,并在ROS中使用这些模块。catkin-pybind11简化了ROS中Python和C++代码的集成过程,使得开发者可以更方便地编写跨语言的ROS软件。
pybind11的安装以及库的使用(ubuntu20.14)_ubuntu安装pybind11-

catkin-tools是ROS中的一个构建工具,用于构建和管理ROS软件包。它是对ROS中的catkin构建系统的增强版本,提供了更多的功能和灵活性。catkin-tools可以帮助开发者自动化构建过程,管理软件包之间的依赖关系,并提供了一组命令行工具来简化ROS软件包的开发和部署。它是ROS开发中常用的工具之一,被广泛应用于ROS社区中的项目。

sudo pip install catkin-tools

3.安装

【ROS笔记】工作空间(workspace)、功能包(package)的介绍及创建
Catkin工作空间 (重点)

mkdir -p ~/catkin_ws/src  # 创建了第二层级的文件夹src,这是放ROS软件包的地方
cd ~/catkin_ws/src        # 进入工作空间,catkin_make必须在工作空间这个路径上执行
catkin_init_workspace     # 初始化src目录,生成的CMakeLists.txt为功能包编译配置
#cd ~/catkin_ws   # 回到工作空间,catkin_make必须在工作空间下执行;
#catkin_make     # 开始编译,调用系统自动完成编译和链接过程,构建生成目标文件
#source ./devel/setup.bash
#echo $ROS_PACKAGE_PATH
#cd ./src
git clone https://github.com/jake3991/sonar-SLAM.git
git clone https://github.com/ethz-asl/libnabo.git
git clone https://github.com/ethz-asl/libpointmatcher.git
cd ./libpointmatcher
git checkout d478ef2eb33894d5f1fe84d8c62cec2fc6da818f
git clone https://github.com/jake3991/Argonaut.git 

catkin build 的使用-
catkin build和catkin_make的区别和使用-

ROS软件包:libnabo — ROS Package: libnabo
依赖性:- libnabo依赖于Eigen,一个现代的C++矩阵和线性代数库。- libnabo适用于Eigen的版本2或3。- libnabo还可以选择依赖于Boost(一个C++通用库)进行Python绑定。

按这里的教程操作:Ubuntu - libpointmatcher

下载和安装- MAVProxy文档

sudo apt-get install python3-dev python3-opencv python3-wxgtk4.0 python3-pip python3-matplotlib python3-lxml python3-pygame
pip3 install PyYAML mavproxy --user
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc

Argonaut/INSTALL.md at master · jake3991/Argonaut

sudo rosdep init
rosdep update

rosdep的主要用途是安装工作空间中ros包的依赖,首先切换到工作空间下,然后运行下述命令即可安装该工作空间的所有依赖:

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

在这里插入图片描述

4.数据

需科学上网
https://drive.google.com/file/d/1nmiFfyk8mVssLqgac7BOe4_RPBP6Wnc9/view?usp=sharing

在这里插入图片描述

5.在线运行

10.ROS的基础单元:Node节点和Package包_哔哩哔哩_bilibili

source catkin_ws/devel/setup.bash
roslaunch bruce_slam slam.launch
rosbag play your_data.bag

报错1:No module named ‘bruce_slam’

问题1:没有catkin build
问题2:没有下载catkin版本的Pybind 11
解决:在src里git,然后build
在这里插入图片描述
在这里插入图片描述
git到ws/src:
wxmerkt/pybind11_catkin:Pybind 11的Catkin包装器
catkin build

Ubuntu20.04 编译 pcl1.8可能出现的问题_error: invalid initialization of reference of type-

set(PCL_DIR "/usr/include/pcl-1.10")
find_package(PCL 1.10 REQUIRED)

/usr/include/pcl-1.10/pcl/point_types.h:550:1: error: ‘plus’ is not a member of ‘pcl::traits’-

# 在bruce_slam 的cmake文件里添加
set(CMAKE_CXX_STANDARD 14)

几乎完成编译·问题#7 ·jake 3991/sonar-SLAM — Almost Completed Compile · Issue #7 · jake3991/sonar-SLAM
在这里插入图片描述

报错2:No module named ‘ros_numpy’

git 再 build

git clone https://github.com/eric-wieser/ros_numpy.git                    

eric-wieser/ros_numpy:用于将ROS消息转换为numpy数组和从numpy数组转换ROS消息的工具

报错3:No module named ‘sklearn’

pip install scikit-learn

报错4:AttributeError: ‘gtsam.gtsam.Rot3’ object has no attribute ‘quaternion’

gtsam · PyPI — gtsam · PyPI

GTSAM 4.2可以从python使用 pip install gtsam 。所有可用的轮子都可以在pypi上找到。

AttributeError:‘gtsam.gtsam.Rot3’ object has no attribute ‘quaternion’ ·问题#11 · jake3991/sonar-SLAM

pip install gtsam==4.1.1

报错5:AttributeError: module ‘numpy’ has no attribute ‘bool’.

AttributeError: module 'numpy' has no attribute 'bool'.
`np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.

报错6:*** stack smashing detected ***: terminated

看看是不是报错5的问题
之前运行正常,第二天突然又报错,尝试了重启虚拟机,删除又恢复catkin_ws/src/sonar-SLAM/bruce_slam/rviz/video.rviz后又正常运行

6.离线运行

source catkin_ws/devel/setup.bash
roslaunch bruce_slam slam.launch file:=path_to_data/your_data.bag

请添加图片描述

7.其他

不支持mapping_node.py中的占用网格映射系统
不能用mapping_node.py创建一个地图,它发布的主题似乎是空的
创建地图·问题#12 ·jake 3991/sonar-SLAM — creating a map · Issue #12 · jake3991/sonar-SLAM

这很正常这些标记警告通常存在,我们必须对标记做一些花哨的技巧,使这些漂亮的线条显示出来,RVIZ显示警告。
pcl导入错误·问题#9 ·jake 3991/sonar-SLAM — pcl import error · Issue #9 · jake3991/sonar-SLAM

这篇关于【复现】jake 3991/sonar-SLAM:用于多波束声纳机器人的水下SLAM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

基于树梅派的视频监控机器人Verybot

最近这段时间做了一个基于树梅派 ( raspberry pi ) 的视频监控机器人平台 Verybot ,现在打算把这个机器人的一些图片、视频、设计思路进行公开,并且希望跟大家一起研究相关的各种问题,下面是两张机器人的照片:         图片1:                   图片2                    这个平台的基本组成是:

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

【机器人工具箱Robotics Toolbox开发笔记(二十)】机器人工具箱SerialLink I类函数参数说明

机器人工具箱中的SerialLink表示串联机器人型机器人的具体类。该类使用D-H参数描述,每个关节一组。SerialLink I类包含的参数如表1所示。 表1 SerialLink I类参数 参  数 意    义 参  数 意    义 plot 显示机器人的图形表示 jacobn 工具坐标系中的雅可比矩阵 plot3D 显示机器人3D图形模型 Jacob_dot

机器人助力上下料搬运,加速仓库转运自动化

近年来,国内制造业领域掀起了一股智能化改造的浪潮,众多工厂纷纷采纳富唯智能提供的先进物流解决方案,这一举措显著优化了生产流程,实现了生产效率的飞跃式增长。得益于这些成功案例,某信息技术服务企业在工厂智能物流建设的进程中,也选择了与富唯智能合作。 为了应对日益增长的物料搬运需求,匹配成品输出节拍,该公司引入了富唯智能复合机器人AMR与搬运机器人AGV,实现了仓库成品搬运自动化,大幅减少人工

【最新华为OD机试E卷-支持在线评测】机器人活动区域(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 最新华为OD机试目录: https://blog.

Dify.ai:部署自己的 AI 应用、知识库机器人,简单易用

Dify.ai:部署自己的 AI 应用、知识库机器人,简单易用 今天,来分享下 Dify.AI 这个产品,一句话介绍:可供普通人简单易用的部署生成出一个 AI 应用。这是一种使用人工智能技术来帮助团队开发和运营 AI 应用的工具。 什么是 Dify.ai Dify.ai 是一个易于使用的 LLMOps 平台,旨在帮助更多的人创建可持续的、AI 原生的应用。通过对各种应用类型的可视化编排,Di

【vulhub】thinkphp5 2-rce 5.0.23-rce 5-rce 漏洞复现

2-rec 1.启动环境  cd /.../vulhub/thinkphp/2-rce # cd进入2-rce靶场文件环境下docker-compose up -d # docker-compose启动靶场docker ps -a # 查看开启的靶场信息 2.访问192.168.146.136:8080网页 3.构造payload http