如何完全删除 ros/gazebo-simulation

How do I delete a ros/gazebo-simulation completly

我有一个奇怪的问题。我目前正在摆弄 VRX 模拟器,它模拟无人驾驶水面车辆。

对于安装,我遵循了 https://bitbucket.org/osrf/vrx/wiki/tutorials/SystemSetupInstall 上的指南。

然后我尝试修改了一些文件并尝试重建项目。 这就是我注意到它总是在 gazebo 中使用我的模拟的 "old" 版本的时候。

从现在开始,无论我做了什么(我什至删除了整个 catkin 工作区文件夹),即使在我使用 roslaunch 时不存在任何 build/src 文件夹,ROS 仍设法始终启动我的模拟的原始版本。

roslaunch vrx_gazebo sandisland.launch

所以我的问题是如何摆脱我的 simulation/model 以及 ros/gazebo 在哪里缓存我的模拟?

您很可能使用教程 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.bashsource ~/vrx_ws/devel/setup.bash 都修改了这个变量。因此,使用 printenv | grep ROSecho $ROS_PACKAGE_PATH 查看每个步骤后的变量。理论上,如果您按照我的 source 命令的顺序获取您的终端,它应该使用从源构建的包,您可以使用前面提到的 rospack find ...roscd ... 命令进行验证。

最后,将 sourcing 命令添加到 .bashrc 文件中可能会更容易,这样您就不会忘记按照 ROS 安装教程中提到的 source 终端。您可以将工作区的来源添加到同一个文件,您只需要知道,如果您想使用不同的工作区,您需要更改文件。

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 将更改放入当前终端。所有未来的终端都将加载这些命令。