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

    10章节2.2学习遇到的错误。

    已定时 已固定 已锁定 已移动
    动手学ROS2
    ros2 linux ros2 humble
    2
    4
    376
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 我
      我叫王二狗的狗
      最后由 编辑

      mwh@mwh-virtual-machine:~/fishbot_ws$ colcon build --packages-up-to cartographer_ros
      Package 'cartographer_ros' specified with --packages-up-to was not found
      报错。按照步骤一步一步来的f8607c62-48f6-4f9e-b177-15f1db87f254-image.png

      1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        当你遇到这样的错误,表示 colcon 无法在你的工作空间中找到名为 cartographer_ros 的包。这通常是由以下几个原因造成的:

        1. 工作空间设置不正确:确保你的工作空间(这里是 fishbot_ws)已经正确设置,并且包含有 cartographer_ros 包。通常这意味着你的工作空间应该有一个 src 目录,而 cartographer_ros 应该位于 src 目录下。

        2. cartographer_ros 包未克隆或未正确安装:如果你是通过 Git 克隆的,确保你已经正确地将 cartographer_ros 仓库克隆到了 src 目录下。如果是通过其他方式安装的,确保安装步骤已正确完成。

        3. 环境变量未设置:有时候,即使包在正确的位置,如果环境变量没有正确设置,colcon 也可能找不到包。确保你的 source 命令(如 source install/setup.bash)已经运行,并且是在当前 shell 会话中。

        4. 依赖问题:cartographer_ros 可能依赖于其他未安装的包。检查 cartographer_ros 的文档或 CMakeLists.txt 文件,看看是否有未满足的依赖。

        5. 使用错误的命令或参数:虽然 --packages-up-to 是 colcon 的一个有效参数,但请确保你没有误用。该参数是用来指定构建到哪个包为止,但它要求指定的包及其所有依赖都必须存在。

        解决步骤

        1. 检查目录结构:

          cd ~/fishbot_ws/src
          ls
          

          确认 cartographer_ros 是否在列表中。

        2. 克隆或安装 cartographer_ros:
          如果不在,你可能需要克隆它:

          cd ~/fishbot_ws/src
          git clone https://github.com/cartographer-project/cartographer_ros.git
          

          注意:确保使用正确的 URL 和版本。

        3. 重新构建工作空间:
          确保你在工作空间的根目录下,然后运行:

          cd ~/fishbot_ws
          colcon build --packages-up-to cartographer_ros
          
        4. 检查环境变量:
          如果问题依旧,尝试重新加载环境:

          source install/setup.bash
          
        5. 查看依赖:
          如果错误指向缺少依赖,确保所有依赖都已安装。

        如果以上步骤都不能解决问题,可能需要更详细地检查 cartographer_ros 的安装文档或寻求社区的帮助。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        我 1 条回复 最后回复 回复 引用 0
        • 我
          我叫王二狗的狗 @小伊
          最后由 编辑

          @小伊 在 10章节2.2学习遇到的错误。 中说:

          git clone https://github.com/cartographer-project/cartographer_ros.git

          git clone git@github.com:ros2/cartographer.git -b ros2
          我是这么克隆的有影响吗

          1 条回复 最后回复 回复 引用 0
          • 小伊小
            机器人小伊
            最后由 编辑

            在您提供的两段 Git 克隆命令中,有一些关键的区别,这些区别可能会影响您克隆的仓库和分支。让我们逐一分析:

            1. 第一个命令:

              git clone https://github.com/cartographer-project/cartographer_ros.git
              

              这个命令克隆的是 cartographer_ros 仓库,这个仓库是专门为 ROS 1(Robot Operating System 版本 1)设计的 Cartographer(一个提供实时同时定位与地图构建(SLAM)功能的库)的 ROS 包。这个仓库位于 cartographer-project 组织下。

            2. 第二个命令:

              git clone git@github.com:ros2/cartographer.git -b ros2
              

              这个命令尝试克隆 ros2/cartographer 仓库,并指定 -b ros2 参数来克隆 ros2 分支。这个仓库和分支是专门为 ROS 2 设计的 Cartographer 版本。注意这里使用的是 SSH URL(git@github.com:ros2/cartographer.git),这要求您已经在您的机器上设置了 SSH 密钥,并且该密钥已经被添加到您的 GitHub 账户中。

            是否有影响?

            • 如果您是在为 ROS 1 开发:使用第一个命令是正确的,因为它克隆的是为 ROS 1 设计的 cartographer_ros。
            • 如果您是在为 ROS 2 开发:使用第二个命令是正确的,因为它克隆的是为 ROS 2 设计的 cartographer 的 ros2 分支。

            注意事项:

            • 确保您使用的 URL 和分支与您的 ROS 版本相匹配。
            • 如果您没有设置 SSH 密钥,或者不确定是否已设置,您可能需要使用 HTTPS URL 来克隆仓库,或者按照 GitHub 的指导设置 SSH 密钥。
            • 如果您不小心克隆了错误的仓库或分支,您可以通过删除本地仓库(使用 rm -rf 命令)并重新运行正确的 git clone 命令来纠正。

            总结来说,您使用的克隆命令是否有影响取决于您的目标 ROS 版本。确保选择与您的 ROS 版本相匹配的仓库和分支。


            以上为生成回答,仅供参考~

            我是小伊,已接入ChatGpt,所有回复,仅供参考~

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