ros2内结合gazebo和rviz进行yolov8检测记录

news2024/10/5 13:01:37

前提:第一次接触ros2, 遇到的问题解决方式不一定准确,只是这次我尝试成功了,想和大家分享一下。

ubuntu20.04系统

目录

1. ros2

1.1 ros2是啥?

1.2 ros2的版本和ubuntu版本的对应关系,当下入门尤其是ubuntu20.04系统从哪个版本开始?

1.3 对应版本的安装

1.4 ros2 入门命令的一些理解

2 ros2内结合gazebo和rviz进行yolov8检测记录

2.1 在github 搜索 ros2 ultralytics

 2.2 安装使用

2.3 在安装pathfinder时学习到的只是和运行遇到的bug和解决办法,如下:问题1:AttributeError: 'module' object has no attribute 'Interpreter'

参考链接:AttributeError: 'module' object has no attribute 'Interpreter' · Issue #63 · ros/genmsg · GitHub问题2:No module named 'roslaunch'

问题3:No module named 'vision_msgs'

问题4:no module named msg

问题5:SetuptoolsDeprecationWarning: setup.py install is deprecated

问题6:PackageNotFoundError: "package 'gazebo_ros' not found

问题7:cannot get plugin param value for wait_at_waypoint

问题8:package slam-toolbox not found

问题9:package m-explore not found

问题10:package pathfinder not found

3. ROS入门

3.1 ROS开发常用工具Rviz和Gazebo

gazebo详解:ROS入门(三):gazebo详解 - 知乎

3.2 ROS软件包的“启动文件”,即launch文件。

(1)XPath 语法

(2).sdf, .urdf, .xacro三种文件后缀的关系

(3)gazebo_ros_pkgs

(4)gz-sim

问题11:question: incompatible QoS

问题12:question: RuntimeError: CUDA error: no kernel image is available for execution on the device


1. ros2

1.1 ros2是啥?

ROS/ROS 2并不是一个软件,而是一系列软件的集合。包含如硬件驱动程序、网络模块、通信架构和机器人算法实现等等。

ROS并不是一个操作系统,而一般称之为元操作系统,即基于操作系统以上的类操作系统

参考链接:

ROS/ROS 2 介绍

一、ROS2简介_高自期许的博客-CSDN博客

1.2 ros2的版本和ubuntu版本的对应关系,当下入门尤其是ubuntu20.04系统从哪个版本开始?

参考阅读的文档 ,一般目前ubuntu20.04系统说 galactic或foxy版本:

galactic 是 使用最顺畅的ros2版本,建议从这个版本开始。

foxy版本是长期支持的版本, 未来还会有更强大的的版本。可以慢慢升级。

参考链接:

Tutorials — ROS 2 Documentation: Galactic documentation

ROS与操作系统版本对应关系_ros版本与ubuntu对应版本_万俟淋曦的博客-CSDN博客

1.3 对应版本的安装

galactic 官方安装指南连接:Ubuntu (Debian) — ROS 2 Documentation: Galactic documentation

(1)问题1:ubuntu系统下anaconda3和ros不共存解决办法ubuntu系统下anaconda3和ros不共存
        会报:Import Error:No module named rospkg

        解决办法:参考链接:ROS - 汇总ROS与Anaconda冲突的解决办法_wx60ee4c080349a的技术博客_51CTO博客

(2)问题2:就是在安装时遇到过网络连接不好?

        解决办法:上网搜搜设置源

(3)问题3:在运行rosdep那一步时报的如下错误:

ERROR: default sources list file already exists:etc/ros/rosdep/sources.list.d/20-default.list

        解决办法: 

$ sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
$ sudo rosdep init
$ rosdep update

1.4 ros2 入门命令的一些理解

$ . ~/ros2_galactic/install/local_setup.bash
$ ros2 run demo_nodes_cpp talker

其中, 这个命令对应的是  /opt/ros/galactic/lib/demo_nodes_cpp/talker 路径

(1) teleop_twist_keyboard 命令:这个命令在gazebo运行时, 在终端输入

$ ros2 run teleop_twist_keyboard teleop_twist_keyboard

会显示,然后,就在这个终端界面按键盘上的字符可以控制小车或者机器人的移动。

2 ros2内结合gazebo和rviz进行yolov8检测记录

2.1 在github 搜索 ros2 ultralytics

得到三个repos,然后最后一个结合了gazebo可以添加一些静态模型仿真。

 2.2 安装使用

参考链接:https://github.com/hcdiekmann/ultralytics_ros2

                 https://github.com/hcdiekmann/pathfinder
 

2.3 在安装pathfinder时学习到的只是和运行遇到的bug和解决办法,如下:

问题1:AttributeError: 'module' object has no attribute 'Interpreter'

解决办法:

$ pip uninstall em
$ pip install empy

参考链接:AttributeError: 'module' object has no attribute 'Interpreter' · Issue #63 · ros/genmsg · GitHub

问题2:No module named 'roslaunch'

 $ sudo apt install python3-roslaunch

问题3:No module named 'vision_msgs'

$ sudo apt-get install ros-galactic-vision-msgs

问题4:no module named msg

解决办法:参考链接:no module named msg 解决方法_no module named 'vision_msgs_豌豆生的博客-CSDN博客

问题5:SetuptoolsDeprecationWarning: setup.py install is deprecated

解决办法:降档使用setuptools

$ pip install setuptools==58.2.0

参考链接:玩转ROS2的填坑之路-SetuptoolsDeprecationWarning: setup.py install is deprecated_腾腾任天真的博客-CSDN博客

问题6:PackageNotFoundError: "package 'gazebo_ros' not found

解决办法:通过命令apt进行安装gazebo_ros',这托托的是因为我不知道导致一开始没安装。

$ sudo apt install ros-galactic-gazebo-*

参考链接:ROS2-Gazebo仿真_ros2安装gazebo_zzw-111-bit的博客-CSDN博客

问题7:cannot get plugin param value for wait_at_waypoint

解决办法:

$ sudo apt install ros-galactic-navigation2
$ sudo apt install ros-galactic-nav2-bringup
$ sudo apt install ros-galactic-turtlebot3-gazebo

参考链接:

【ROS】ROS2导航Nav2:简介、安装、测试效果、错误处理_郭老二的博客-CSDN博客

问题8:package slam-toolbox not found

解决办法:

$ sudo apt-get install ros-galactic-slam-toolbox

参考链接:ROS2与SLAM入门教程-slam-toolbox建图 - 创客智造/爱折腾智能机器人

问题9:package m-explore not found

解决办法:

$ sudo apt install ros-galactic-multirobot-map-merge
$ sudo apt install ros-galactic-explore_lite

参考链接:GitHub - hrnr/m-explore: ROS packages for multi robot exploration

问题10:package pathfinder not found

解决办法:

# /opt/ros/galactic/lib/python3.8/site-packages/xacro/__init__.py

def eval_extension(s):
    if s == '$(cwd)':
        return os.getcwd()

# 变成

def eval_extension(s):
    # if s == '$(cwd)':
    return os.getcwd()

3. ROS入门

Rviz需要已有的数据,而Gazebo可以创造数据。

我们可以在Gazebo中创建一个机器人世界,不仅可以仿真机器人的运动功能,还可以仿真机器人的传感器数据,而这些数据就可以放到Rviz中显示,所以使用gazebo的时候,经常也会和rviz配合使用。

机器人操作系统(ROS)提供了Gazebo与RViz两个仿真环境其各有各的用处,Gazebo多用于仿真环境的搭建如房间、马路等, RViz多用于传感器的配置如摄像头、激光雷达等。

3.1 ROS开发常用工具Rviz和Gazebo

gazebo详解:ROS入门(三):gazebo详解 - 知乎

3.2 ROS软件包的“启动文件”,即launch文件。

ROS入门(二):launch文件解析 - 知乎

(1)XPath 语法

XPath Tutorial

(2).sdf, .urdf, .xacro三种文件后缀的关系

ROS中urdf与xacro对比_xacro和urdf_rockshaw的博客-CSDN博客

gazebo模型之间的转换:xacro>urdf>sdf_xacro 转sdf_Nick.Q的博客-CSDN博客

(3)gazebo_ros_pkgs

ROS入门(四):ROS与gazebo联合仿真 - 知乎

model.sdf文档,pose 是相加的关系, 形状以pose为中心点

gazebo仿真环境搭建+配置+小车运动仿真_想与你共饮冰的博客-CSDN博客

(4)gz-sim

GitHub - gazebosim/gz-sim: Open source robotics simulator. The latest version of Gazebo.

https://www.youtube.com/watch?v=CsGXmG6WS40

问题11:question: incompatible QoS

New publisher discovered on topic '/camera/image_raw', offering incompatible QoS. No messages will be sent to it. Last incompatible policy: RELIABILITY_QOS_POLICY

解决办法:

[ROS2] QOS profile options and subscribing problem · Issue #187 · ros-visualization/rqt · GitHub

Ros2 Galactic Nav2 - /scan offering incompatible QoS - ROS Answers: Open Source Q&A Forum

问题12:question: RuntimeError: CUDA error: no kernel image is available for execution on the device

解决办法:

shell  : $ export CUDA_VISIBLE_DEVICES=""

 

 

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

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

相关文章

【物理摩擦力图像】对摩擦力大小的因素研究图像

摩擦力与编程 两个相互接触并挤压的物体,当它们发生相对运动或具有相对运动趋势时,就会在接触面上产生阻碍相对运动或相对运动趋势的力,这种力叫做摩擦力(Ff或f)。 摩擦力与正压力(B物体上的A物体产生的压…

数据库实验—复杂查询

查询20161151班的学生在大学一年级选修的课程情况,查询结果要显示学号(Sno)、姓名(Sname)、专业名(Mname)、选课的课程号(Cno)、选课的课程名称(Cname)及成绩(Grade),并按照学号、课程号升序排序 select Sno, Sname,Mname, Cno,Cname,Grade f…

Windows11安装WSL2(Ubuntu20.04)

以管理员身份打开 PowerShell,输入以下命令安装: wsl --install dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /no…

【历史上的今天】6 月 29 日:SGI 和 MIPS 合并;微软收购 PowerPoint 开发商;新闻集团出售 Myspace

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 6 月 29 日,在 2008 年的今天,CNNIC 发布《第 22 次中国互联网络发展状况统计报告》,截至 2008 年 6 月底,中国…

draggable里包裹的卡片,卡片里有个input,点击input聚焦无效。

在input标签上加pointerdown.stop.native <el-input placeholder"请输入" pointerdown.stop.native v-model"dataForm.nickName" :style"{width:180px}" suffix-icon"el-icon-search" lazy />

TLD7002学习笔记(三)-使用S32K144EVB烧录TLD7002

文章目录 1. 前言2. 烧录数据准备2.1 OTP Wizard的下载与安装2.2 OTP Wizard的配置2.3 OTP寄存器烧录数据提取 3. OTP烧录和仿真的流程3.1 OTP烧录流程3.2 OTP仿真流程 4. 验证测试4.1 测试代码4.2 测试环境4.3 测试情况 5. 参考资料 1. 前言 本篇文章是TLD7002学习笔记的第三…

设计模式第18讲——中介者模式

目录 一、什么是中介者模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 代码结构 5.1 抽象中介者&#xff08;Mediator&#xff09;——LogisticsCenter 5.2 抽象同事类&#xff08;Colleague&#xff09;——Participant 5…

Beego之Bee安装(Windows)以及创建,运行项目

一.简介 Bee是什么&#xff1f; bee工具是一个为了协助快速开发 Beego 项目而创建的项目&#xff0c;通过 bee 可以很容易的进行 Beego 项目的 创建、热编译、开发、测试和部署 Beego中文文档 Beego中文文档: Beego简介 安装前提 在安装bee之前&#xff0c;首先得提前安装好Go的…

【T3】打开财务报表提示不能登陆到服务器,请检查服务器配置。

【问题描述】 在使用畅捷通T3软件的时候&#xff0c; 打开【财务报表】提示&#xff1a;不能登陆到服务器&#xff08;GUPR7FM&#xff09;&#xff0c;请检查服务器配置。 但是打开【总账系统】&#xff0c;填制凭证、查看报表等操作都正常。 【解决方法】 由于操作【总账系…

【Java高级编程】Java反射机制

Java反射机制 1、反射的概述1.1、本章的主要内容1.2、关于反射的理解1.3、体会反射机制的“动态性”1.4、反射机制能提供的功能1.5、相关API 2、Class类的理解与获取Class的实例2.1、Class类的理解2.2、获取Class实例的几种方式2.3、总结&#xff1a;创建类的对象的方式2.4、Cl…

生产者与消费者问题

本篇文章我们使用C探讨一下生产者与消费者问题. 1. 多线程的引入 我们学习了操作系统, 知道了进程和线程的概念, 但是如果不进行代码实战的话, 会很难理解它们. 特别是编程的初学者(比如我), 在了解了进程和线程后通常会感到疑惑: 多线程怎么用? 为啥我平时写代码没有使用到…

ATM机项目实战——准备

项目介绍 大概功能&#xff1a; 实现一个模拟ATM机存款、取款、转账功能的一个系统&#xff0c;可以查看打印交易明细&#xff0c;后台用户可以管理用户账户卡信息。 适合人群&#xff1a; 在校计算机专业的大学生&#xff0c;愿意从事JAVA开发的人群&#xff0c;具体基础的…

记一次系统的jar包本地化方案

重在思路 行内容器环境,tomcat版本是8.5,导致jar包冲突,优先调用了jar包中的方法,致使同名同路径下,改写的类方法失效,报java.lang.NoSuchMethodError错误,删除对应class后需要重新更新jar包到行内maven私服仓库,流程复杂,且不清楚哪些地方依然有重写方法的地方,设置tomcat加载…

基于SSM+jsp的二手车交易网站设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

DBeaver mysql socks5 代理

DBeaver mysql socks5 代理 测试连接报错 Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.切换代理&#xff0c;连接成功 参考 DBeaver 文档 代理配置

谈一谈面试算法的几个常见误区

下一篇我们就开始梳理面试算法的体系了&#xff0c;今天呢&#xff0c;有个问题有必要谈一下——如何正确对待算法&#xff0c;如何征服算法。 目录 1.如何平常心对待算法 2.关于准备算法面试的一些误区 1.如何平常心对待算法 在老师之前算法班的群里&#xff0c;有位同学分…

vue3创建项目(五)vite配置端口号

Vue3配置代理跨域和服务端口等配置&#xff0c;可以在 vite.config.js 进行配置。(类似用 vue-cli 的 vue.config.js&#xff09; https://cn.vitejs.dev/config/第一步&#xff1a;首先在根目录下面创建vue.config.js import { defineConfig } from vite import vue from vite…

CubeMx打不开/不兼容大于java8的解决方案

最近在学习stm32&#xff0c;需要用到cubemx&#xff0c;但是软件都装好了却死活打不开 最后才发现是java版本的问题&#xff0c;cubemx只支持java8(至少java14,16,17,20亲测都不行) 于是便把java8又装了回来&#xff0c;但是又有新问题 不知道为什么&#xff0c;即便环境变量已…

Hologres弹性计算在OLAP分析上的实践和探索

作者&#xff1a;王奇 阿里云Hologres研发 简介&#xff1a; 1、本文介绍了OLAP分析在大数据分析中的位置 2、分析并介绍目前大数据OLAP遇到的分析性能、资源隔离、高可用、弹性扩缩容等核心问题 3、解析阿里云Hologres是如何解决极致性能、弹性、业务永续、性价比等核心刚需的…

从0到1 关于MySQL的数据库和表

一个字&#xff1a;细腻。 目录 1. 下载和安装MySQL及其可视化工具 2. 启动MySQL和客户端连接 3. 创建和查看数据库和表 1. 下载和安装MySQL及其可视化工具 下载和安装MySQL推荐博客&#xff1a; mysql数据库安装&#xff08;详细&#xff09;_体会&#xff01;的博客-CSD…