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

news/2024/7/11 0:01:46 标签: YOLO, ros2, ultralytics, gazebo, rviz2

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

ubuntu20.04系统

目录

ros2-toc" style="margin-left:0px;">1. ros2

ros2%E6%98%AF%E5%95%A5%EF%BC%9F-toc" style="margin-left:40px;">1.1 ros2是啥?

ros2%E7%9A%84%E7%89%88%E6%9C%AC%E5%92%8Cubuntu%E7%89%88%E6%9C%AC%E7%9A%84%E5%AF%B9%E5%BA%94%E5%85%B3%E7%B3%BB%EF%BC%8C%E5%BD%93%E4%B8%8B%E5%85%A5%E9%97%A8%E5%B0%A4%E5%85%B6%E6%98%AFubuntu20.04%E7%B3%BB%E7%BB%9F%E4%BB%8E%E5%93%AA%E4%B8%AA%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%EF%BC%9F-toc" style="margin-left:40px;">1.2 ros2的版本和ubuntu版本的对应关系,当下入门尤其是ubuntu20.04系统从哪个版本开始?

1.3 对应版本的安装

ros2%20%E5%85%A5%E9%97%A8%E5%91%BD%E4%BB%A4%E7%9A%84%E4%B8%80%E4%BA%9B%E7%90%86%E8%A7%A3-toc" style="margin-left:40px;">1.4 ros2 入门命令的一些理解

ros2%E5%86%85%E7%BB%93%E5%90%88gazebo%E5%92%8Crviz%E8%BF%9B%E8%A1%8Cyolov8%E6%A3%80%E6%B5%8B%E8%AE%B0%E5%BD%95-toc" style="margin-left:0px;">2 ros2内结合gazebo和rviz进行yolov8检测记录

ros2%20ultralytics-toc" style="margin-left:40px;">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

gazebo_ros'%C2%A0not%C2%A0found-toc" style="margin-left:80px;">问题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%E8%AF%A6%E8%A7%A3%EF%BC%9AROS%E5%85%A5%E9%97%A8%EF%BC%88%E4%B8%89%EF%BC%89%EF%BC%9Agazebo%E8%AF%A6%E8%A7%A3%20-%20%E7%9F%A5%E4%B9%8E-toc" style="margin-left:0px;">gazebo详解:ROS入门(三):gazebo详解 - 知乎

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

(1)XPath 语法

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

gazebo_ros_pkgs-toc" style="margin-left:120px;">(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


ros2">1. ros2

ros2%E6%98%AF%E5%95%A5%EF%BC%9F">1.1 ros2是啥?

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

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

参考链接:

ROS/ROS 2 介绍

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

ros2%E7%9A%84%E7%89%88%E6%9C%AC%E5%92%8Cubuntu%E7%89%88%E6%9C%AC%E7%9A%84%E5%AF%B9%E5%BA%94%E5%85%B3%E7%B3%BB%EF%BC%8C%E5%BD%93%E4%B8%8B%E5%85%A5%E9%97%A8%E5%B0%A4%E5%85%B6%E6%98%AFubuntu20.04%E7%B3%BB%E7%BB%9F%E4%BB%8E%E5%93%AA%E4%B8%AA%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%EF%BC%9F">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

ros2%20%E5%85%A5%E9%97%A8%E5%91%BD%E4%BB%A4%E7%9A%84%E4%B8%80%E4%BA%9B%E7%90%86%E8%A7%A3">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

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

ros2%E5%86%85%E7%BB%93%E5%90%88gazebo%E5%92%8Crviz%E8%BF%9B%E8%A1%8Cyolov8%E6%A3%80%E6%B5%8B%E8%AE%B0%E5%BD%95">2 ros2内结合gazebo和rviz进行yolov8检测记录

ros2%20ultralytics">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博客

gazebo_ros'%C2%A0not%C2%A0found" style="margin-left:0px;text-align:left;">问题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%E8%AF%A6%E8%A7%A3%EF%BC%9AROS%E5%85%A5%E9%97%A8%EF%BC%88%E4%B8%89%EF%BC%89%EF%BC%9Agazebo%E8%AF%A6%E8%A7%A3%20-%20%E7%9F%A5%E4%B9%8E">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博客

gazebo_ros_pkgs" style="margin-left:0pt;text-align:left;">(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.niftyadmin.cn/n/481447.html

相关文章

k8s pod 容器间测试接口

1、配置k8s 详细的配置参考官网 https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux/2、获取pod节点PODID信息 kubectl get pod -n global3、进入到pod容器内部 kubectl exec -it PODID -n global -- bash4、安装CURL apt install curl5、调用测试接口 …

【Python】字符串格式化前世今生

▒ 目录 ▒ 🛫 问题描述环境 1️⃣ 《%》方式格式化语法%后面的参数说明 2️⃣ str.format优点指定位置:参数可以不按顺序关键字参数列表索引对象数字格式化 3️⃣ f-string 语法语法示例格式化一个表达式转义符号格式化 datetime 对象 🛬 结…

uni-app滚动分页 兼容(App 小程序 H5)

因为手机端本身屏幕空间不大 所以大家一般都会选择用滚动分页 首先 我在根目录下创建了一个 api目录 下面创建了一个bookApi.js 其中写了一个请求函数 getBookList 根据当前页 page 和 每页展示多少条 pageSize 获取数据 那么 我的组件代码是这样的 <template><scro…

常见的远程协助软件简介

1.RayLink远程控制软件 RayLink是一个支持多系统多设备间相互远程控制的软件&#xff0c;是具有远程制作、远程办公、远程游戏、远程协助等需求的IT技术、游戏玩家、网络办公等这些人的最佳选择。通过使用RayLink&#xff0c;可随时随地远程控制其他电脑或手机&#xff0c;远程…

太酷了!活体检测眨眼、张嘴、点头、摇头动作一网打尽:人脸面部活体检测系统【含Python源码+PyqtUI界面+原理详解】

基本功能演示 摘要&#xff1a;活体检测是用于判断捕捉到的人脸是真实人脸&#xff0c;还是伪造的人脸攻击的一种技术手段。本文详细介绍了其实现的技术原理&#xff0c;同时给出完整的Python实现代码&#xff0c;并且通过PyQT实现了UI界面&#xff0c;更方便进行功能的展示。该…

<List<Map<String, String>>> List Map转List对象案例

原始数据&#xff1a;{001张三, 002李四, 003王五, 004赵六} 目标数据&#xff1a; { “data”: [ { “key”: “001”, “title”: “张三”, “value”: “001” }, { “key”: “002”, “title”: “李四”, “value”: “002” }, { “key”: “003”, “title”: “王五”…

Windows上安装Redis教程

Windows上安装Redis教程 一、下载 Redis1. 下载 Redis 压缩包2. 把下载好的压缩包移动到自己的安装目录下 二、安装 Redis三、配置 Redis3.1 配置 Redis 环境变量3.2 配置 Redis 后台服务 一、下载 Redis 1. 下载 Redis 压缩包 我这里下载的是 Redis 5.0 下载地址&#xff1a;…

Android UI框架之 XUI

安卓的原生View确实有点不太好看&#xff0c;如果要想漂亮起来。。需要定义各种资源文件。。麻烦。。 市面上好用的三方UI也不少。。但有的不齐全。。 今天推荐一款比较好用的UI框架&#xff1a;XUI XUI包含的组件还是比较丰富的&#xff1a; TextView、Button、EditText、Ima…