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

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

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    ros2 foxy yolov5 ros2
    6
    29
    2.6k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 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