您很可能使用教程sudo apt install ros-melodic-vrx-gazebo 中的命令安装了该软件包。所以使用roslaunch vrx_gazebo sandisland.launch 启动的包不在你的catkin 工作区中。如果你想摆脱它,你可以用sudo apt remove ros-melodic-vrx-gazebo 卸载它。但这并不是绝对必要的。
有几种方法可以找出某些 ros 包的位置,请尝试运行以下命令:
rospack find vrx_gazebo 会告诉你使用的包的位置
roscd vrx_gazebo 会将您带到安装它的文件夹,例如
/opt/ros/melodic/share/vrx_gazebo
如果您还按照从源代码安装的教程进行操作,那么问题很可能是没有采购已构建的软件包。指南的最后一行有点误导。行*Remember to run this command every time you open a new terminal. 是为了引用命令source ~/vrx_ws/devel/setup.bash
使用已安装的包还是使用源代码构建的包取决于它们在环境变量 ROS_PACKAGE_PATH 中列出的顺序。此变量由source /opt/ros/melodic/setup.bash 和source ~/vrx_ws/devel/setup.bash 修改。因此,请使用printenv | grep ROS 或echo $ROS_PACKAGE_PATH 在每一步之后查看变量。从理论上讲,如果您按照我使用source 命令的顺序获取终端,它应该使用从源代码构建的包,您可以使用前面提到的rospack find ... 和roscd ... 命令进行验证。
最后,将源命令添加到您的 .bashrc 文件可能更容易,这样您就不会忘记为 ROS 安装教程中提到的终端源。您可以将工作区的来源添加到同一个文件中,您只需要注意如果您想使用不同的工作区,您需要更改文件。
http://wiki.ros.org/melodic/Installation/Ubuntu#melodic.2BAC8-Installation.2BAC8-DebEnvironment.Environment_setup
教程中的相关命令:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
你可以对工作区做同样的事情:
echo "source ~/vrx_ws/devel/setup.bash" >> ~/.bashrc
在运行这些命令后,运行exec bash 以将更改导入当前终端。所有未来的终端都将加载这些命令。