小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
6.2.4章节,在终端中输入命令启动rvzi时,显示找不到package 'fishibot_description' not found
-
背景(可选):
问题描述:
在本小节的最后一步去启动rvzi时,终端报错:
wlz@ros2:~/chapt6/chapt6_ws$ ros2 launch fishibot_description display_robot.launch.py model:=/home/wlz/chapt6/chapt6_ws/install/fishbot_description/share/fishbot_description/urdf/fishbot/fishbot.urdf.xacro
Package 'fishibot_description' not found: "package 'fishibot_description' not found, searching: ['/home/wlz/chapt6/chapt6_ws/install/fishbot_description', '/opt/ros/humble']"具体细节和上下文:
1.base.urdf.xacro
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="base_xacro" params="length radius">
<!-- 机器人的身体部分 -->
<link name="base_link">
<!--部件的外观描述-->
<visual>
<!--沿着自己几何中心的偏移和旋转量-->
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
<!--几何形状-->
<geometry>
<cylinder radius="${radius}" length="${length}"/>
</geometry>
<!--材质颜色-->
<material name="white">
<color rgba="1.0 1.0 1.0 0.5"/>
</material>
</visual>
</link>
</xacro:macro>
</robot>2.laser.urdf.xacro:
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="laser_xacro" params="xyz">
<!--雷达支撑杆-->
<link name="laser_cylinder_link">
<!--部件的外观描述-->
<visual>
<!--沿着自己几何中心的偏移和旋转量-->
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
<!--几何形状-->
<geometry>
<cylinder radius="0.01" length="0.10"/>
</geometry>
<!--材质颜色-->
<material name="black">
<color rgba="0.0 0.0 0.0 1.0"/>
</material>
</visual>
</link><!--雷达--> <link name="laser_link"> <!--部件的外观描述--> <visual> <!--沿着自己几何中心的偏移和旋转量--> <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/> <!--几何形状--> <geometry> <cylinder radius="0.02" length="0.02"/> </geometry> <!--材质颜色--> <material name="black"> <color rgba="0.0 0.0 0.0 1.0"/> </material> </visual> </link> <!--机器人的关节:用于组合机器人的部件(即上述的雷达和支撑杆)--> <joint name="laser_joint" type="fixed"> <parent link="laser_cylinder_link"/> <child link="laser_link"/> <origin xyz="0.0 0.0 0.05" rpy="0.0 0.0 0.0"/> </joint> <joint name="laser_cylinder_joint" type="fixed"> <parent link="base_link"/> <child link="laser_cylinder_link"/> <origin xyz="${xyz}" rpy="0.0 0.0 0.0"/> </joint> </xacro:macro>
</robot>
3.imu.urdf.xacro:
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="imu_xacro" params="xyz">
<!--机器人的IMU部件,惯性测量传感器-->
<link name="imu__link">
<!--部件的外观描述-->
<visual>
<!--沿着自己几何中心的偏移和旋转量-->
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
<!--几何形状-->
<geometry>
<box size="0.02 0.02 0.02"/>
</geometry>
<!--材质颜色-->
<material name="black">
<color rgba="0.0 0.0 0.0 0.5"/>
</material>
</visual>
</link><!--机器人的关节:用于组合机器人的部件(即上述的机器人的身体和其传感器)--> <joint name="imu_joint" type="fixed"> <parent link="base_link"/> <child link="imu_link"/> <origin xyz="${xyz}" rpy="0.0 0.0 0.0"/> </joint> </xacro:macro>
</robot>
4.camera.urdf.xacro:
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="camera_xacro" params="xyz">
<!--机器人的IMU部件,惯性测量传感器-->
<link name="camera_link">
<!--部件的外观描述-->
<visual>
<!--沿着自己几何中心的偏移和旋转量-->
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
<!--几何形状-->
<geometry>
<box size="0.02 0.02 0.02"/>
</geometry>
<!--材质颜色-->
<material name="black">
<color rgba="0.0 0.0 0.0 0.5"/>
</material>
</visual>
</link><!--机器人的关节:用于组合机器人的部件(即上述的机器人的身体和其传感器)--> <joint name="camera_joint" type="fixed"> <parent link="base_link"/> <child link="camera_link"/> <origin xyz="${xyz}" rpy="0.0 0.0 0.0"/> </joint> </xacro:macro>
</robot>
5.fishbot.urdf.xacro:
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firstbot">
<!-- 基础部分 base_link -->
<xacro:include filename="$(find fishbot_description)/urdf/fishbot/base.urdf.xacro"/>
<!-- 传感器部分 -->
<xacro:include filename="$(find fishbot_description)/urdf/fishbot/sensor/imu.urdf.xacro"/>
<xacro:include filename="$(find fishbot_description)/urdf/fishbot/sensor/camera.urdf.xacro"/>
<xacro:include filename="$(find fishbot_description)/urdf/fishbot/sensor/laser.urdf.xacro"/><xacro:base_xacro length="0.12" radius="0.10" />
<xacro:imu_xacro xyz="0.0 0.0 0.02" />
<xacro:camera_xacro xyz="0.10 0.0 0.075" />
<xacro:laser_xacro xyz="0.0 0.0 0.10" /></robot>
尝试过的解决方法:
wlz@ros2:~/chapt6/chapt6_ws$ ros2 pkg list | grep fishbot_description
fishbot_description
wlz@ros2:~/chapt6/chapt6_ws$ ros2 launch fishibot_description display_robot.launch.py model:=/home/wlz/chapt6/chapt6_ws/install/fishbot_description/share/fishbot_description/urdf/fishbot/fishbot.urdf.xacro
Package 'fishibot_description' not found: "package 'fishibot_description' not found, searching: ['/home/wlz/chapt6/chapt6_ws/install/fishbot_description', '/opt/ros/humble']"
列出了以下功能包,显示存在重新source了一下,仍然不行
-
从你提供的信息来看,问题出现在尝试启动
rviz2
(通过rvzi
可能是个笔误,通常我们使用rviz2
) 来显示fishibot_description
包中的机器人模型时,系统找不到fishibot_description
包。尽管你已经确认该包已经通过ros2 pkg list
列出,但启动命令仍然报错。这里有几个可能的解决方案和检查步骤:-
确认工作空间设置:
确保你的 ROS 2 工作空间(chapt6_ws
)已经被正确设置。这包括:- 你的工作空间已经被构建:运行
colcon build
在chapt6_ws
目录下。 - 环境变量已经更新:运行
source install/setup.bash
(对于 Bash shell)或相应的命令来更新你的 shell 环境以包含新的包。
- 你的工作空间已经被构建:运行
-
检查包名和路径:
- 确认
fishibot_description
包确实存在于chapt6_ws/install
目录下。 - 检查
fishbot_description
(注意是fishbot
而不是fishi
)是否在所有相关文件和命令中都被正确引用。
- 确认
-
检查
display_robot.launch.py
文件:- 确保
display_robot.launch.py
文件中没有错误,并且正确引用了fishibot_description
包中的资源。 - 特别是检查
model
参数是否正确指向了.urdf.xacro
文件的路径。
- 确保
-
重新 source 环境:
- 有时候,仅仅重新 source 环境变量就可以解决问题。关闭并重新打开终端,或者再次运行
source install/setup.bash
。
- 有时候,仅仅重新 source 环境变量就可以解决问题。关闭并重新打开终端,或者再次运行
-
检查 ROS 2 环境变量:
- 确保
ROS_PACKAGE_PATH
环境变量包含了你的工作空间目录。你可以通过echo $ROS_PACKAGE_PATH
来查看。
- 确保
-
尝试直接使用
rviz2
:- 有时候,直接使用
rviz2
并手动加载 URDF 文件可能是一个解决方案。你可以在rviz2
的 GUI 中通过 “Add” -> “By topic” -> “RobotModel” 来尝试加载模型,确保你选择了正确的 URDF/XACRO 文件。
- 有时候,直接使用
-
检查拼写和大小写:
- Linux 系统对大小写敏感,确保所有文件和目录的引用都使用了正确的大小写。
如果以上步骤都不能解决问题,可能需要更详细地检查你的工作空间配置和文件路径设置。希望这些步骤能帮助你解决问题!
以上为生成回答,仅供参考~
-
-
@321731520 在 6.2.4章节,在终端中输入命令启动rvzi时,显示找不到package 'fishibot_description' not found 中说:
fishbot_description
fishibot_description
fishbot_description这俩单词长度不一样欸
-
@小鱼 ok口语拼多了
-
@小鱼
这是咋回事小鱼 -
@321731520 这个map这里不能下拉选base
-
@321731520 看视频介绍,手动输入的