前提:第一次接触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=""