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

    ros2 launch 功能包出现找不到包

    已定时 已固定 已锁定 已移动
    动手学ROS2
    ros2 gazebo 环境变量
    2
    2
    849
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 2
      八九不离十
      最后由 编辑

      我在学习古月居老师的ros2 21讲中,学习learning_gazebo遇到的问题,图中的car.launch.py是自己的小车(替换),我就更改了这一个地方:a9a4f6fb-cef1-4943-b228-27dd64360c5b-image.png
      编译也是挺成功的,配置环境变量,在运行时候出现:
      czf@czf-virtual-machine:~/dev_ws$ ros2 launch learning_gazebo load_urdf_into_gazebo.launch.py
      [INFO] [launch]: All log files can be found below /home/czf/.ros/log/2024-09-28-13-47-22-614299-czf-virtual-machine-56867
      [INFO] [launch]: Default logging verbosity is set to INFO
      [ERROR] [launch]: Caught exception in launch (see debug for traceback): "package 'ros2_21_tutorials' not found, searching: ['/home/czf/dev_ws/install/learning_urdf', '/home/czf/dev_ws/install/learning_topic_cpp', '/home/czf/dev_ws/install/learning_topic', '/home/czf/dev_ws/install/learning_tf_cpp', '/home/czf/dev_ws/install/learning_tf', '/home/czf/dev_ws/install/learning_service_cpp', '/home/czf/dev_ws/install/learning_service', '/home/czf/dev_ws/install/learning_qos', '/home/czf/dev_ws/install/learning_pkg_python', '/home/czf/dev_ws/install/learning_pkg_c', '/home/czf/dev_ws/install/learning_parameter_cpp', '/home/czf/dev_ws/install/learning_parameter', '/home/czf/dev_ws/install/learning_node_cpp', '/home/czf/dev_ws/install/learning_node', '/home/czf/dev_ws/install/learning_launch', '/home/czf/dev_ws/install/learning_action_cpp', '/home/czf/dev_ws/install/learning_action', '/home/czf/dev_ws/install/learning_interface', '/home/czf/dev_ws/install/learning_gazebo_fortress', '/home/czf/dev_ws/install/learning_cv', '/opt/ros/humble', '/home/czf/dev_ws/install/learning_gazebo', '/home/czf/test/install/bee', '/home/czf/test/install/bee']"

      我以为是环境变量没配置好,然后我又运行同一个工作空间下的其他功能包(成功运行): '/home/czf/test/install/bee']"
      czf@czf-virtual-machine:~/dev_ws$ ros2 launch learning_urdf display.launch.py
      [INFO] [launch]: All log files can be found below /home/czf/.ros/log/2024-09-28-13-48-29-355394-czf-virtual-machine-56893
      [INFO] [launch]: Default logging verbosity is set to INFO
      [INFO] [joint_state_publisher-1]: process started with pid [56895]
      [INFO] [robot_state_publisher-2]: process started with pid [56897]
      [INFO] [rviz2-3]: process started with pid [56899]
      [rviz2-3] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
      [robot_state_publisher-2] [INFO] [1727502510.803271222] [robot_state_publisher]: got segment back_caster_link
      [robot_state_publisher-2] [INFO] [1727502510.803713913] [robot_state_publisher]: got segment base_link
      [robot_state_publisher-2] [INFO] [1727502510.803867610] [robot_state_publisher]: got segment front_caster_link
      不知道学习ros2 的小伙伴有遇到这个问题没

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

        从你提供的错误信息来看,问题出现在 ros2 launch 命令试图加载一个名为 ros2_21_tutorials 的包,但这个包在你的工作空间或ROS 2环境中并未找到。这通常是因为在 .launch.py 文件中引用了不存在的包或路径。

        解决步骤

        1. 检查 .launch.py 文件:
          打开 load_urdf_into_gazebo.launch.py 文件,检查是否有任何地方引用了 ros2_21_tutorials。这可能是一个包名错误,或者是一个不应该存在的依赖。

        2. 替换或删除错误的包引用:
          如果 ros2_21_tutorials 确实是一个错误,你可能需要将其替换为正确的包名,或者如果它是不必要的,直接删除相关行。

        3. 检查环境变量:
          虽然你已经提到环境变量配置可能不是问题(因为你能够成功运行其他包),但确认一下总是好的。确保你的 ROS_PACKAGE_PATH 环境变量包含了所有相关的包路径。你可以通过运行 echo $ROS_PACKAGE_PATH 来查看当前设置。

        4. 重新编译工作空间:
          在修改 .launch.py 文件后,确保重新编译你的工作空间。使用 colcon build --packages-select <your-package-name> 来仅编译修改过的包,或者使用 colcon build 来编译整个工作空间。

        5. 清理并重建:
          有时候,旧的构建文件可能会导致问题。你可以尝试清理你的构建目录(通常是 build/ 和 install/)并重新编译整个工作空间。

        6. 检查 Python 脚本:
          如果 .launch.py 文件中使用了 Python 脚本或模块,确保这些脚本或模块是可用的,并且没有引用不存在的包或模块。

        7. 查看日志和调试信息:
          如果问题仍然存在,尝试增加日志的详细程度,或者查看 launch 命令的调试输出,以获取更多关于错误的信息。

        8. 检查 ROS 2 版本和兼容性:
          确保你使用的 ROS 2 版本与你的教程或代码兼容。有时候,教程是基于特定版本的 ROS 2,而你可能在使用一个不同的版本。

        示例

        如果 load_urdf_into_gazebo.launch.py 文件中有一行类似于 Node(package='ros2_21_tutorials', ...),你应该将其更改为正确的包名,比如 Node(package='learning_gazebo', ...)(假设 learning_gazebo 是正确的包名)。

        希望这些步骤能帮助你解决问题!如果还有其他问题,欢迎继续提问。


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

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

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