鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    在使用小鱼的yolov5_ros2功能包时,编译环节出现问题

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    ros2 foxy yolov5 ros2
    6
    29
    3.2k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 小鱼小
      小鱼 技术大佬 @LeeSonFirm
      最后由 小鱼 编辑

      @LeeSonFirm 这个是下好了,下好了的目录有提示

      @LeeSonFirm 在 在使用小鱼的yolov5_ros2功能包时,编译环节出现问题 中说:

      Requirement already satisfied: yolov5 in ./.local/lib/python3.8/site-packages (7.0.13)

      不过这只是依赖,并不是功能包

      新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

      L 1 条回复 最后回复 回复 引用 0
      • L
        LeeSonFirm @小鱼
        最后由 编辑

        @小鱼
        是的,我找不到yolov5的功能包,请问后续需要怎样操作呢?

        小鱼小 1 条回复 最后回复 回复 引用 0
        • 小鱼小
          小鱼 技术大佬 @LeeSonFirm
          最后由 编辑

          @LeeSonFirm 根据教程下载功能包就可以了

          新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

          L 2 条回复 最后回复 回复 引用 0
          • L
            LeeSonFirm @小鱼
            最后由 编辑

            @小鱼
            我按照教程用那个pip3 install指令没有下载下来,输入代码之后显示的就是我上面发的

            1 条回复 最后回复 回复 引用 0
            • L
              LeeSonFirm @小鱼
              最后由 编辑

              @小鱼 是需要我去下载您在GitHub上给的yolov5_ros2的源码吗,然后放到这个依赖所在的目录中进行编译?

              小鱼小 1 条回复 最后回复 回复 引用 0
              • 小鱼小
                小鱼 技术大佬 @LeeSonFirm
                最后由 编辑

                @LeeSonFirm 你看教程,按着教程走就可以了

                新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                L 2 条回复 最后回复 回复 引用 0
                • L
                  LeeSonFirm @小鱼
                  最后由 编辑

                  @小鱼 我已经严格按照教程执行,可是输入pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple yolov5之后,我找不到这个功能包,并且无法进行编译

                  小鱼小 1 条回复 最后回复 回复 引用 0
                  • L
                    LeeSonFirm @小鱼
                    最后由 编辑

                    @小鱼 不好意思,我是小白,刚接触ros,让您费心了🙏

                    1 条回复 最后回复 回复 引用 0
                    • 小鱼小
                      小鱼 技术大佬 @LeeSonFirm
                      最后由 编辑

                      @LeeSonFirm 输入这个命令只是安装yolov5的python库而已,当然找不到功能包,按照这个步骤来:

                      中文文档 | English Document

                      YOLO_ROS2

                      基于YOLOV5 的ROS2封装,允许用户使用给定的模型文件和相机参数进行三维空间物体检测和抓取操作。

                      YOLO_ROS2

                      1. 安装依赖

                      首先,确保您已经更新了系统并且安装了必要的依赖。以下是一些安装步骤,其中$ROS_DISTRO 是您的ROS2发行版(例如:foxy、galactic):

                      sudo apt update
                      sudo apt install python3-pip ros-$ROS_DISTRO-vision-msgs
                      pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple yolov5  
                      

                      2. 下载编译和运行

                      下载开源库

                      mkdir -p yolov5_ws/src
                      cd yolov5_ws/src
                      git clone https://github.com/fishros/yolov5_ros2.git
                      

                      编译项目并设置环境变量

                      cd yolov5_ws
                      colcon build
                      source install/setup.bash
                      

                      现在,您可以运行Yolo_ROS2节点。默认情况下,它将使用CPU来进行检测,使用名为/image的图像话题。您可以根据需要更改这些参数:

                      ros2 run yolov5_ros2 yolo_detect_2d --ros-args -p device:=cpu -p image_topic:=/image
                      

                      如果您要使用真实相机,请修改默认的图像话题(image_topic:=/image),然后在另一个终端中运行以下命令来将相机图像转化为ROS话题:

                      ros2 run image_tools cam2image --ros-args -p width:=640 -p height:=480 -p frequency:=30.0 -p device_id:=-1
                      

                      您也可以使用其他相机,例如usb_cam。在这种情况下,安装相应的包并运行usb_cam节点:

                      sudo apt-get install ros-<ros2-distro>-usb-cam # 安装
                      ros2 run usb_cam usb_cam_node_exe
                      

                      Yolo_ROS2相机

                      3. 订阅结果

                      Yolo_ROS2将检测结果发布到/yolo_result话题中,包括原始像素坐标以及归一化后的相机坐标系下的x和y坐标。您可以使用以下命令查看检测结果:

                      ros2 topic echo /yolo_result
                      

                      Yolo_ROS2检测结果

                      4. 更进一步使用

                      4.1 参数设置

                      在运行Yolo_ROS2节点时,您可以使用 -p name:=value 的方式来修改参数值。

                      4.1.1 图像话题

                      您可以通过指定以下参数来更改图像话题:

                      image_topic:=/image
                      

                      4.1.2 计算设备设置

                      如果您有CUDA支持的显卡,可以选择以下参数来配置计算设备:

                      device:=cpu
                      

                      4.1.3 是否实时显示结果

                      您可以使用以下参数来控制是否实时显示检测结果。设置为True将实时显示结果,设置为False则不会显示:

                      show_result:=False
                      

                      请注意,实时显示中的cv2.imshow可能会卡住。如果只需要验证结果,可以将此参数设置为False。

                      4.1.4 切换不同Yolov5模型

                      默认情况下,Yolo_ROS2使用yolov5s模型。您可以通过以下参数来更改模型:

                      model:=yolov5m
                      

                      4.1.5 是否发布结果图像

                      如果您希望Yolo_ROS2发布检测结果的图像,请使用以下参数:

                      pub_result_img:=True
                      

                      这将允许您通过/result_img话题查看检测结果的图像。

                      4.1.5 相机参数文件

                      功能包默认从 /camera/camera_info 话题获取相机参数,在获取成功前,相机参数文件路径可以通过参数进行设置,参数为:camera_info_file,通过该参数可以设置文件路径,注意需要使用绝对目录:

                      camera_info_file:=/home/fishros/chapt9/src/yolov5_ros2/config/camera_info.yaml
                      

                      新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                      L 2 条回复 最后回复 回复 引用 0
                      • L
                        LeeSonFirm @小鱼
                        最后由 编辑

                        @小鱼 好的,感谢您,您就是我的god😘

                        L 1 条回复 最后回复 回复 引用 0
                        • L
                          LeeSonFirm @小鱼
                          最后由 编辑

                          @小鱼 在 在使用小鱼的yolov5_ros2功能包时,编译环节出现问题 中说:

                          colcon build

                          lizijian@lizijian-virtual-machine:~$ cd yolov5_ws
                          lizijian@lizijian-virtual-machine:~/yolov5_ws$ colcon build
                          Starting >>> yolov5_ros2
                          [0.711s] WARNING:colcon.colcon_ros.task.ament_python.build:Package 'yolov5_ros2' doesn't explicitly install a marker in the package index (colcon-ros currently does it implicitly but that fallback will be removed in the future)
                          --- stderr: yolov5_ros2
                          Traceback (most recent call last):
                          File "setup.py", line 7, in <module>
                          setup(
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/init.py", line 108, in setup
                          return distutils.core.setup(**attrs)
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 184, in setup
                          return run_commands(dist)
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 200, in run_commands
                          dist.run_commands()
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 970, in run_commands
                          self.run_command(cmd)
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/dist.py", line 974, in run_command
                          super().run_command(command)
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 989, in run_command
                          cmd_obj.run()
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 321, in run
                          self.find_sources()
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 329, in find_sources
                          mm.run()
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 555, in run
                          self.prune_file_list()
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 621, in prune_file_list
                          base_dir = self.distribution.get_fullname()
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/_core_metadata.py", line 266, in get_fullname
                          return _distribution_fullname(self.get_name(), self.get_version())
                          File "/home/lizijian/.local/lib/python3.8/site-packages/setuptools/_core_metadata.py", line 284, in _distribution_fullname
                          canonicalize_version(version, strip_trailing_zero=False),
                          TypeError: canonicalize_version() got an unexpected keyword argument 'strip_trailing_zero'

                          Failed <<< yolov5_ros2 [1.45s, exited with code 1]

                          Summary: 0 packages finished [1.63s]
                          1 package failed: yolov5_ros2
                          1 package had stderr output: yolov5_ros2
                          lizijian@lizijian-virtual-machine:~/yolov5_ws$

                          这是啥情况啊,鱼神

                          1 条回复 最后回复 回复 引用 0
                          • L
                            LeeSonFirm @LeeSonFirm
                            最后由 编辑

                            @LeeSonFirm 是setuptools版本问题吗

                            S 1 条回复 最后回复 回复 引用 0
                            • S
                              shanjinfeng @LeeSonFirm
                              最后由 编辑

                              @LeeSonFirm 大哥,我跟你一样的问题,根本编译不了这个功能包。是ros2版本的问题吗,我的是humble

                              S 3 2 条回复 最后回复 回复 引用 0
                              • S
                                shanjinfeng @shanjinfeng
                                最后由 编辑

                                @shanjinfeng tarting >>> yolov5_ros2
                                /home/sjf/.local/lib/python3.10/site-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require'
                                warnings.warn(msg)
                                [0.395s] WARNING:colcon.colcon_ros.task.ament_python.build:Package 'yolov5_ros2' doesn't explicitly install a marker in the package index (colcon-ros currently does it implicitly but that fallback will be removed in the future)
                                --- stderr: yolov5_ros2
                                /home/sjf/.local/lib/python3.10/site-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require'
                                warnings.warn(msg)
                                Traceback (most recent call last):
                                File "/home/sjf/fishbot_ws/src/yolov5_ros2/setup.py", line 7, in <module>
                                setup(
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/init.py", line 117, in setup
                                return distutils.core.setup(**attrs)
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 183, in setup
                                return run_commands(dist)
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 199, in run_commands
                                dist.run_commands()
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 954, in run_commands
                                self.run_command(cmd)
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/dist.py", line 995, in run_command
                                super().run_command(command)
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 973, in run_command
                                cmd_obj.run()
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 313, in run
                                self.find_sources()
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 321, in find_sources
                                mm.run()
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 549, in run
                                self.prune_file_list()
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/command/sdist.py", line 162, in prune_file_list
                                super().prune_file_list()
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py", line 380, in prune_file_list
                                base_dir = self.distribution.get_fullname()
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/_core_metadata.py", line 267, in get_fullname
                                return _distribution_fullname(self.get_name(), self.get_version())
                                File "/home/sjf/.local/lib/python3.10/site-packages/setuptools/_core_metadata.py", line 285, in _distribution_fullname
                                canonicalize_version(version, strip_trailing_zero=False),
                                TypeError: canonicalize_version() got an unexpected keyword argument 'strip_trailing_zero'

                                Failed <<< yolov5_ros2 [0.85s, exited with code 1]

                                Summary: 0 packages finished [0.99s]
                                1 package failed: yolov5_ros2
                                1 package had stderr output: yolov5_ros2

                                1 条回复 最后回复 回复 引用 0
                                • 3
                                  3040233158 @shanjinfeng
                                  最后由 编辑

                                  @shanjinfeng 我也是这个问题,请问有解决方案了吗

                                  3 1 条回复 最后回复 回复 引用 0
                                  • 3
                                    3215492890 @3040233158
                                    最后由 编辑

                                    @3040233158 我也是这个问题现在解决了吗

                                    1 条回复 最后回复 回复 引用 0
                                    • 第一个帖子
                                      最后一个帖子
                                    皖ICP备16016415号-7
                                    Powered by NodeBB | 鱼香ROS