小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
使用小鱼的ROS2 yolov5 功能包时出现错误
-
@2241773397 foxy版本应该需要切换下分支
-
@小鱼 鱼哥,纯小白,切换分支什么意思
-
@小伊 伊哥,什么叫foxy版本需要切换一下分支
-
在软件开发和版本控制的上下文中,“foxy版本需要切换一下分支”这一表述通常意味着在使用版本控制系统(如Git)管理项目时,当前的工作或代码状态是基于“foxy”分支的,但出于某种需要(如开发新功能、修复bug、合并代码等),需要切换到另一个分支上去。这里,“foxy”很可能指的是项目中的一个特定分支名称,而不是一个通用的版本控制术语。
分支切换的含义
在Git这样的分布式版本控制系统中,分支是用来并行开发不同功能或修复不同问题的一种手段。每个分支都包含了项目的一个独立版本,可以在不影响其他分支的情况下进行更改和提交。切换分支意味着将当前的工作目录从一个分支的代码状态切换到另一个分支的代码状态。
切换分支的原因
- 开发新功能:当需要开发新功能时,可以在新的分支上进行开发,以保持主分支的稳定性。
- 修复bug:如果在主分支上发现了bug,可以创建一个新的分支来修复它,以避免在修复过程中引入新的问题。
- 合并代码:当其他分支上的开发完成后,需要将其合并到主分支上。在合并之前,需要切换到主分支。
切换分支的步骤
在Git中切换分支通常遵循以下步骤:
- 查看当前分支:使用
git branch
命令查看当前所有的分支,并用星号(*)标记当前所在的分支。 - 切换到目标分支:使用
git checkout <branch-name>
命令切换到指定的分支。从Git 2.23版本开始,推荐使用git switch <branch-name>
来切换分支,而git checkout
则用于恢复工作树文件。 - (可选)创建新分支并切换:如果目标分支不存在,可以使用
git checkout -b <new-branch-name>
或git switch -c <new-branch-name>
命令创建新分支并立即切换到该分支。
注意事项
- 在切换分支之前,请确保当前分支上的所有更改都已提交,否则这些未提交的更改可能会被Git自动暂存起来,并在切换回该分支时恢复。
- 如果希望将当前分支的更改带到其他分支,可以使用
git stash
命令将更改暂存起来,然后在目标分支上使用git stash pop
或git stash apply
来恢复这些更改。 - 切换分支时,请确保当前工作目录是干净的,即没有未跟踪的文件或已修改但未提交的更改。可以使用
git status
命令来检查当前工作目录的状态。
综上所述,“foxy版本需要切换一下分支”意味着在版本控制系统中,需要将当前的工作状态从“foxy”分支切换到另一个分支上去,以继续不同的开发任务或解决不同的问题。
以上为生成回答,仅供参考~
-
@2241773397 解决了吗,我也是会出现这个报错
-
-
@1787515053 在 使用小鱼的ROS2 yolov5 功能包时出现错误 中说:
@小鱼 在 使用小鱼的ROS2 yolov5 功能包时出现错误 中说:
foxy版本应该需要切换下分支
@小鱼 是切换代码的github的代码branch的分支吗
-
是的,@小鱼 提到的“切换分支”通常指的是在GitHub等代码托管平台上切换代码的branch(分支)。在使用小鱼的ROS2 yolov5功能包时,如果遇到与ROS2发行版(如foxy)不兼容的问题,可能需要切换到与该发行版相对应的分支。
以下是一些关于如何切换GitHub代码分支的详细步骤:
-
查看当前分支:
- 使用
git branch
命令查看当前存在的分支。当前使用的分支会在列表前面标有*
号。
- 使用
-
切换分支:
- 如果需要切换到已存在的与ROS2 foxy版本兼容的分支,可以使用
git checkout 分支名
命令。例如,如果有一个名为foxy-compatible
的分支,可以运行git checkout foxy-compatible
。 - 如果不确定哪个分支与foxy版本兼容,可以查阅小鱼的ROS2 yolov5功能包的GitHub仓库的文档或发布说明,通常会有相关信息。
- 如果需要切换到已存在的与ROS2 foxy版本兼容的分支,可以使用
-
更新工作目录:
- 切换分支后,Git会自动更新工作目录中的文件,以匹配所选分支的最新代码。
-
编译和运行:
- 在切换到正确的分支后,按照功能包的安装和编译指南进行编译和运行。这通常包括使用
colcon build
命令编译项目,并运行相应的ROS2节点。
- 在切换到正确的分支后,按照功能包的安装和编译指南进行编译和运行。这通常包括使用
-
验证结果:
- 运行节点后,可以通过订阅相关的话题或使用
ros2 topic echo
命令来查看检测结果,以确保功能包正常工作。
- 运行节点后,可以通过订阅相关的话题或使用
请注意,在切换分支之前,最好确保工作目录中的修改已经提交或保存,以避免不必要的代码冲突或丢失。此外,如果在切换分支后遇到任何问题,可以查阅GitHub仓库的文档、发布说明或问题跟踪器以获取帮助。
以上为生成回答,仅供参考~
-
-
运行
ros2 run yolov5_ros2 yolo_detect_2d --ros-args -p device:=cpu -p image_topic:=/image
日志
dhx@dhx:~/yolov5_ws$ ros2 run yolov5_ros2 yolo_detect_2d --ros-args -p device:=cpu -p image_topic:=/image
/opt/ros/foxy/bin/ros2:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import load_entry_point
WARNING ️ Python>=3.10 is required, but Python==3.8.10 is currently installed
[476.7030836014194, 0.0, 400.5, 0.0, 476.7030836014194, 400.5, 0.0, 0.0, 1.0] [0.0, 0.0, 0.0, 0.0, 0.0]
在另一个中断运行
ros2 run image_tools cam2image --ros-args -p width:=640 -p height:=480 -p frequency:=30.0 -p device_id:=-1正常发送
第一个终端就会报错
dhx@dhx:~/yolov5_ws$ ros2 run yolov5_ros2 yolo_detect_2d --ros-args -p device:=cpu -p image_topic:=/image
/opt/ros/foxy/bin/ros2:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import load_entry_point
WARNING ️ Python>=3.10 is required, but Python==3.8.10 is currently installed
[476.7030836014194, 0.0, 400.5, 0.0, 476.7030836014194, 400.5, 0.0, 0.0, 1.0] [0.0, 0.0, 0.0, 0.0, 0.0]
/home/dhx/.local/lib/python3.8/site-packages/yolov5/models/common.py:709: FutureWarning:torch.cuda.amp.autocast(args...)
is deprecated. Please usetorch.amp.autocast('cuda', args...)
instead.
with amp.autocast(autocast):
[INFO] [1731588917.369804689] [yolov5_ros2]: image 1/1: 480x640 1 person
Speed: 1.8ms pre-process, 50.7ms inference, 0.6ms NMS per image at shape (1, 3, 480, 640)
Traceback (most recent call last):
File "/home/dhx/yolov5_ws/install/yolov5_ros2/lib/yolov5_ros2/yolo_detect_2d", line 33, in <module>
sys.exit(load_entry_point('yolov5-ros2==0.0.0', 'console_scripts', 'yolo_detect_2d')())
File "/home/dhx/yolov5_ws/install/yolov5_ros2/lib/python3.8/site-packages/yolov5_ros2/yolo_detect_2d.py", line 163, in main
rclpy.spin(YoloV5Ros2())
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/init.py", line 191, in spin
executor.spin_once()
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/executors.py", line 719, in spin_once
raise handler.exception()
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/task.py", line 239, in call
self._handler.send(None)
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/executors.py", line 429, in handler
await call_coroutine(entity, arg)
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/executors.py", line 354, in _execute_subscription
await await_or_execute(sub.callback, msg)
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/executors.py", line 118, in await_or_execute
return callback(*args)
File "/home/dhx/yolov5_ws/install/yolov5_ros2/lib/python3.8/site-packages/yolov5_ros2/yolo_detect_2d.py", line 109, in image_callback
detection2d.id = name
AttributeError: 'Detection2D' object has no attribute 'id'
dhx@dhx:~/yolov5_ws$ -
@1787515053 在 使用小鱼的ROS2 yolov5 功能包时出现错误 中说:
运行
ros2 run yolov5_ros2 yolo_detect_2d --ros-args -p device:=cpu -p image_topic:=/image
日志
dhx@dhx:~/yolov5_ws$ ros2 run yolov5_ros2 yolo_detect_2d --ros-args -p device:=cpu -p image_topic:=/image
/opt/ros/foxy/bin/ros2:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import load_entry_point
WARNING ️ Python>=3.10 is required, but Python==3.8.10 is currently installed
[476.7030836014194, 0.0, 400.5, 0.0, 476.7030836014194, 400.5, 0.0, 0.0, 1.0] [0.0, 0.0, 0.0, 0.0, 0.0]
在另一个中断运行
ros2 run image_tools cam2image --ros-args -p width:=640 -p height:=480 -p frequency:=30.0 -p device_id:=-1正常发送
第一个终端就会报错
dhx@dhx:~/yolov5_ws$ ros2 run yolov5_ros2 yolo_detect_2d --ros-args -p device:=cpu -p image_topic:=/image
/opt/ros/foxy/bin/ros2:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import load_entry_point
WARNING ️ Python>=3.10 is required, but Python==3.8.10 is currently installed
[476.7030836014194, 0.0, 400.5, 0.0, 476.7030836014194, 400.5, 0.0, 0.0, 1.0] [0.0, 0.0, 0.0, 0.0, 0.0]
/home/dhx/.local/lib/python3.8/site-packages/yolov5/models/common.py:709: FutureWarning:torch.cuda.amp.autocast(args...)
is deprecated. Please usetorch.amp.autocast('cuda', args...)
instead.
with amp.autocast(autocast):
[INFO] [1731588917.369804689] [yolov5_ros2]: image 1/1: 480x640 1 person
Speed: 1.8ms pre-process, 50.7ms inference, 0.6ms NMS per image at shape (1, 3, 480, 640)
Traceback (most recent call last):
File "/home/dhx/yolov5_ws/install/yolov5_ros2/lib/yolov5_ros2/yolo_detect_2d", line 33, in <module>
sys.exit(load_entry_point('yolov5-ros2==0.0.0', 'console_scripts', 'yolo_detect_2d')())
File "/home/dhx/yolov5_ws/install/yolov5_ros2/lib/python3.8/site-packages/yolov5_ros2/yolo_detect_2d.py", line 163, in main
rclpy.spin(YoloV5Ros2())
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/init.py", line 191, in spin
executor.spin_once()
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/executors.py", line 719, in spin_once
raise handler.exception()
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/task.py", line 239, in call
self._handler.send(None)
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/executors.py", line 429, in handler
await call_coroutine(entity, arg)
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/executors.py", line 354, in _execute_subscription
await await_or_execute(sub.callback, msg)
File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/executors.py", line 118, in await_or_execute
return callback(*args)
File "/home/dhx/yolov5_ws/install/yolov5_ros2/lib/python3.8/site-packages/yolov5_ros2/yolo_detect_2d.py", line 109, in image_callback
detection2d.id = name
AttributeError: 'Detection2D' object has no attribute 'id'
dhx@dhx:~/yolov5_ws$这个是切换galactic的分支,还是出现同样的报错