小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
ros2 launch 功能包出现找不到包
-
我在学习古月居老师的ros2 21讲中,学习learning_gazebo遇到的问题,图中的car.launch.py是自己的小车(替换),我就更改了这一个地方:
编译也是挺成功的,配置环境变量,在运行时候出现:
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 的小伙伴有遇到这个问题没 -
从你提供的错误信息来看,问题出现在
ros2 launch
命令试图加载一个名为ros2_21_tutorials
的包,但这个包在你的工作空间或ROS 2环境中并未找到。这通常是因为在.launch.py
文件中引用了不存在的包或路径。解决步骤
-
检查
.launch.py
文件:
打开load_urdf_into_gazebo.launch.py
文件,检查是否有任何地方引用了ros2_21_tutorials
。这可能是一个包名错误,或者是一个不应该存在的依赖。 -
替换或删除错误的包引用:
如果ros2_21_tutorials
确实是一个错误,你可能需要将其替换为正确的包名,或者如果它是不必要的,直接删除相关行。 -
检查环境变量:
虽然你已经提到环境变量配置可能不是问题(因为你能够成功运行其他包),但确认一下总是好的。确保你的ROS_PACKAGE_PATH
环境变量包含了所有相关的包路径。你可以通过运行echo $ROS_PACKAGE_PATH
来查看当前设置。 -
重新编译工作空间:
在修改.launch.py
文件后,确保重新编译你的工作空间。使用colcon build --packages-select <your-package-name>
来仅编译修改过的包,或者使用colcon build
来编译整个工作空间。 -
清理并重建:
有时候,旧的构建文件可能会导致问题。你可以尝试清理你的构建目录(通常是build/
和install/
)并重新编译整个工作空间。 -
检查 Python 脚本:
如果.launch.py
文件中使用了 Python 脚本或模块,确保这些脚本或模块是可用的,并且没有引用不存在的包或模块。 -
查看日志和调试信息:
如果问题仍然存在,尝试增加日志的详细程度,或者查看launch
命令的调试输出,以获取更多关于错误的信息。 -
检查 ROS 2 版本和兼容性:
确保你使用的 ROS 2 版本与你的教程或代码兼容。有时候,教程是基于特定版本的 ROS 2,而你可能在使用一个不同的版本。
示例
如果
load_urdf_into_gazebo.launch.py
文件中有一行类似于Node(package='ros2_21_tutorials', ...)
,你应该将其更改为正确的包名,比如Node(package='learning_gazebo', ...)
(假设learning_gazebo
是正确的包名)。希望这些步骤能帮助你解决问题!如果还有其他问题,欢迎继续提问。
以上为生成回答,仅供参考~
-