前提:第一次接触ros2, 遇到的问题解决方式不一定准确,只是这次我尝试成功了,想和大家分享一下。
ubuntu20.04系统
目录
1.2 ros2的版本和ubuntu版本的对应关系,当下入门尤其是ubuntu20.04系统从哪个版本开始?
2 ros2内结合gazebo和rviz进行yolov8检测记录
2.1 在github 搜索 ros2 ultralytics
问题3:No module named 'vision_msgs'
问题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
gazebo详解:ROS入门(三):gazebo详解 - 知乎
(2).sdf, .urdf, .xacro三种文件后缀的关系
问题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并不是一个操作系统,而一般称之为元操作系统,即基于操作系统以上的类操作系统。
参考链接:
1.2 ros2的版本和ubuntu版本的对应关系,当下入门尤其是ubuntu20.04系统从哪个版本开始?
参考阅读的文档 ,一般目前ubuntu20.04系统说 galactic或foxy版本:
galactic 是 使用最顺畅的ros2版本,建议从这个版本开始。
foxy版本是长期支持的版本, 未来还会有更强大的的版本。可以慢慢升级。
参考链接:
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文件。
(1)XPath 语法
(2).sdf, .urdf, .xacro三种文件后缀的关系
ROS中urdf与xacro对比_xacro和urdf_rockshaw的博客-CSDN博客
gazebo模型之间的转换:xacro>urdf>sdf_xacro 转sdf_Nick.Q的博客-CSDN博客
(3)gazebo_ros_pkgs
model.sdf文档,pose 是相加的关系, 形状以pose为中心点
gazebo仿真环境搭建+配置+小车运动仿真_想与你共饮冰的博客-CSDN博客
(4)gz-sim
GitHub - gazebosim/gz-sim: Open source robotics simulator. The latest version of Gazebo.
问题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=""